/* DNC Contact Page — clean front-end stylesheet */
/* v1.8.9: expand opening-hours content to use the available card width. */
.dnc-cp,
.dnc-cp * { box-sizing: border-box; }
.dnc-cp {
  --dnc-blue: #003EA5; --dnc-orange: #FF6A03; --dnc-yellow: #FFC72C;
  --dnc-surface: #FFFFFF; --dnc-text: #18243A; --dnc-muted: #64748B; --dnc-radius: 24px;
  /* MANUAL LAYOUT CONTROL: edit width / max-width / margin here. */
  display: block; width: 100%; max-width: none; min-width: 0; margin: 0;
  padding: clamp(18px, 3vw, 42px) 0 24px; color: var(--dnc-text);
  font-family: inherit; font-size: 16px; line-height: 1.6; overflow-wrap: anywhere;
}
.dnc-cp img,.dnc-cp iframe { max-width: 100%; }
/* Consistent full-width sizing for all page cards and content panels. */
.dnc-cp .dnc-cp-form-card,
.dnc-cp .dnc-cp-contact-card,
.dnc-cp .dnc-cp-hours,
.dnc-cp .dnc-cp-location,
.dnc-cp .dnc-cp-map,
.dnc-cp .dnc-cp-faq-list,
.dnc-cp .dnc-cp-bottom-cta {
  width: 100%;
  max-width: none;
  min-width: 0;
}

.dnc-cp h1,.dnc-cp h2,.dnc-cp h3,.dnc-cp p { margin-top: 0; }
.dnc-cp h1,.dnc-cp h2,.dnc-cp h3 { color: var(--dnc-text); line-height: 1.18; }
.dnc-cp h1 { max-width: 850px; margin: 18px auto 20px; font-size: clamp(2.25rem,5vw,4.35rem); font-weight: 760; letter-spacing: -.035em; }
.dnc-cp h2 { margin-bottom: 13px; font-size: clamp(1.5rem,2.6vw,2.25rem); font-weight: 730; letter-spacing: -.02em; }
.dnc-cp p { color: var(--dnc-muted); }
.dnc-cp a { text-decoration: none; }
.dnc-cp-hero { position: relative; padding: clamp(24px,5vw,64px) 18px clamp(38px,6vw,76px); text-align: center; overflow: hidden; }
.dnc-cp-eyebrow,.dnc-cp-kicker { display: inline-flex; align-items: center; gap: 9px; color: var(--dnc-blue); font-size: .76rem; font-weight: 800; letter-spacing: .14em; }
.dnc-cp-eyebrow { padding: 9px 14px; border: 1px solid rgba(0,62,165,.13); border-radius: 999px; background: rgba(0,62,165,.045); }
.dnc-cp-eyebrow>span { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: var(--dnc-orange); box-shadow: 0 0 0 4px rgba(255,106,3,.12); }
.dnc-cp-hero>p { max-width: 680px; margin: 0 auto; font-size: clamp(1rem,1.5vw,1.18rem); line-height: 1.8; }
.dnc-cp-hero-line { display: flex; justify-content: center; gap: 6px; margin-top: 28px; }
.dnc-cp-hero-line span { width: 26px; height: 4px; border-radius: 9px; background: var(--dnc-blue); }
.dnc-cp-hero-line span:nth-child(2) { width: 48px; background: var(--dnc-orange); }
.dnc-cp-main-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(18px,3vw,32px); align-items: start; width: 100%; min-width: 0; }
.dnc-cp-form-card { position: relative; min-width: 0; padding: clamp(22px,3.5vw,42px); overflow: hidden; border: 1px solid rgba(0,62,165,.1); border-radius: var(--dnc-radius); background: var(--dnc-surface); box-shadow: 0 16px 55px rgba(14,44,91,.075); }
.dnc-cp-form-card:before { position: absolute; top: 0; left: 0; width: 100%; height: 5px; background: linear-gradient(90deg,var(--dnc-blue) 0 68%,var(--dnc-orange) 68% 100%); content: ''; }
.dnc-cp-section-heading { margin-bottom: 26px; }
.dnc-cp-section-heading h2 { margin-top: 9px; }
.dnc-cp-section-heading p { margin-bottom: 0; }
.dnc-cp-form { display: grid; grid-template-columns: minmax(0,1fr); gap: 19px 0; width: 100%; min-width: 0; margin: 0; }
.dnc-cp-field { display: flex; min-width: 0; flex-direction: column; gap: 8px; }
.dnc-cp-field-name,.dnc-cp-field,.dnc-cp-field-message,.dnc-cp-submit,.dnc-cp-privacy { grid-column: 1 / -1; }
.dnc-cp-field label { color: var(--dnc-text); font-size: 14px; font-weight: 700; }
.dnc-cp-field label span { color: var(--dnc-orange); }
.dnc-cp-field input,.dnc-cp-field select { display: block; width: 100%; max-width: 100%; min-width: 0; width: 100%; height: 41px; min-height: 41px; box-sizing: border-box; padding: 7px 15px; border: 1px solid #DCE4EF; border-radius: 13px; outline: none; background: #FBFCFE; box-shadow: none; color: var(--dnc-text); font: inherit; font-size: 14px; }
.dnc-cp-field textarea { display: block; width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; padding: 8px 15px; border: 1px solid #DCE4EF; border-radius: 13px; outline: none; background: #FBFCFE; box-shadow: none; color: var(--dnc-text); font: inherit; font-size: 14px; }
.dnc-cp-field textarea { min-height: 155px; line-height: 1.65; resize: vertical; }
.dnc-cp-field input::placeholder,.dnc-cp-field textarea::placeholder { color: #98A4B5; }
.dnc-cp-field input:focus,.dnc-cp-field textarea:focus,.dnc-cp-field select:focus { border-color: var(--dnc-blue); background: #fff; box-shadow: 0 0 0 4px rgba(0,62,165,.09); }
.dnc-cp-select-wrap,.dnc-cp-subject-control { position: relative; width: 100%; min-width: 0; }
.dnc-cp-field select { appearance: none; padding-right: 15px; cursor: pointer; }
.dnc-cp-select-chevron { display: none; position: absolute; top: 50%; right: 18px; width: 9px; height: 9px; transform: translateY(-70%) rotate(45deg); border-right: 2px solid var(--dnc-blue); border-bottom: 2px solid var(--dnc-blue); pointer-events: none; }
.dnc-cp-field-hint { color: var(--dnc-muted); font-size: .78rem; line-height: 1.5; }
.dnc-cp-submit,.dnc-cp-cta-button { display: flex; height: 41px; min-height: 41px; box-sizing: border-box; align-items: center; justify-content: space-between; gap: 18px; padding: 8px 23px; border: 0; border-radius: 30px; background: var(--dnc-blue); box-shadow: 0 8px 18px rgba(0,62,165,.17); color: #fff; font: inherit; font-size: 14px; font-weight: 750; cursor: pointer; transition: transform .2s ease,background .2s ease,box-shadow .2s ease; }
.dnc-cp-submit { width: 100%; margin: 0; }
.dnc-cp-submit:hover,.dnc-cp-cta-button:hover { transform: translateY(-2px); background: var(--dnc-orange); box-shadow: 0 12px 24px rgba(255,106,3,.2); }
.dnc-cp-submit:disabled { cursor: wait; }
.dnc-cp .dnc-cp-submit,.dnc-cp .dnc-cp-submit span,.dnc-cp .dnc-cp-submit-arrow { color: var(--dnc-yellow)!important; }
.dnc-cp-submit-arrow { font-size: 1.35rem; }
.dnc-cp-privacy { margin: 0; text-align: center; font-size: .78rem; }
.dnc-cp-honey { position: absolute!important; left: -10000px!important; width: 1px!important; height: 1px!important; overflow: hidden!important; }
.dnc-cp-notice { margin: 0 0 20px; padding: 12px 15px; border-radius: 12px; font-size: .92rem; }
.dnc-cp-success { border: 1px solid #A7F3C4; background: #ECFDF3; color: #166534; }
.dnc-cp-error { border: 1px solid #FECACA; background: #FFF1F0; color: #991B1B; }
.dnc-cp-contact-side { display: flex; min-width: 0; flex-direction: column; gap: 15px; }
.dnc-cp-side-intro { padding: 10px 4px 13px; }
.dnc-cp-side-intro h2 { max-width: 360px; margin-top: 10px; }
.dnc-cp-side-intro p { max-width: 420px; margin-bottom: 0; }
.dnc-cp-contact-card { display: flex; width: 100%; min-width: 0; align-items: center; gap: 16px; padding: 21px; border: 1px solid rgba(0,62,165,.1); border-radius: var(--dnc-radius); background: var(--dnc-surface); box-shadow: 0 10px 34px rgba(14,44,91,.055); transition: transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.dnc-cp-contact-card:hover { transform: translateY(-3px); border-color: rgba(0,62,165,.28); box-shadow: 0 18px 38px rgba(14,44,91,.11); }
.dnc-cp-icon { display: grid; width: 54px; height: 54px; flex: 0 0 54px; place-items: center; border-radius: 17px; background: #EDF3FF; color: var(--dnc-blue); }
.dnc-cp-icon svg,.dnc-cp-hours-icon svg,.dnc-cp-map-placeholder svg { width: 25px; height: 25px; }
.dnc-cp-whatsapp-card .dnc-cp-icon { background: #FFF0E5; color: var(--dnc-orange); }
.dnc-cp-card-copy { display: flex; min-width: 0; flex: 1; flex-direction: column; gap: 3px; }
.dnc-cp-card-copy strong { color: var(--dnc-text); font-size: 1.02rem; }
.dnc-cp-card-copy>span { color: var(--dnc-muted); font-size: .86rem; line-height: 1.45; }
.dnc-cp-card-copy b { margin-top: 3px; color: var(--dnc-blue); font-size: .95rem; overflow-wrap: anywhere; }
.dnc-cp-arrow { align-self: flex-start; color: var(--dnc-orange); font-size: 1.2rem; }
.dnc-cp-hours { display: flex; align-items: flex-start; gap: 14px; padding: 19px 20px; border: 1px solid rgba(0,62,165,.07); border-radius: 18px; background: #F5F8FE; }
.dnc-cp-hours-copy { flex: 1 1 auto; width: 100%; min-width: 0; }
.dnc-cp-hours-icon { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; border-radius: 13px; background: #fff; color: var(--dnc-blue); }
.dnc-cp-hours strong { color: var(--dnc-text); font-size: .92rem; }
.dnc-cp-hours-list { width: 100%; min-width: 0; margin-top: 5px; }
.dnc-cp-hours-list p { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0; padding: 8px 0; border-bottom: 1px solid rgba(0,62,165,.12); font-size: .86rem; line-height: 1.45; }
.dnc-cp-hours-list p:last-child { border-bottom: 0; }
.dnc-cp-hours-list p > span:first-child { color: var(--dnc-muted); }
.dnc-cp-hours-list p > span:last-child { color: var(--dnc-text); text-align: right; white-space: nowrap; }
.dnc-cp-location { display: grid; grid-template-columns: minmax(230px,.7fr) minmax(0,1.3fr); align-items: stretch; gap: 28px; min-width: 0; margin-top: clamp(36px,6vw,70px); padding: clamp(22px,3vw,34px); border: 1px solid rgba(0,62,165,.07); border-radius: var(--dnc-radius); background: #F5F8FE; }
.dnc-cp-location-copy { align-self: center; min-width: 0; padding: 10px 0; }
.dnc-cp-location-copy h2 { margin-top: 10px; }
.dnc-cp-address { color: var(--dnc-text); font-weight: 650; line-height: 1.7; }
.dnc-cp-directions { display: inline-flex; height: 41px; min-height: 41px; box-sizing: border-box; align-items: center; gap: 10px; padding: 8px 18px; border-radius: 30px; background: var(--dnc-orange); color: #fff!important; font-size: 14px; font-weight: 750; }
.dnc-cp-map-note { margin: 14px 0 0; font-size: .78rem; }
.dnc-cp-map { min-width: 0; min-height: 300px; overflow: hidden; border-radius: 18px; background: #E8EEF7; box-shadow: 0 8px 24px rgba(14,44,91,.08); }
.dnc-cp-map iframe { display: block; width: 100%; height: 100%; min-height: 300px; border: 0; }
.dnc-cp-map-placeholder { display: flex; min-height: 300px; flex-direction: column; align-items: center; justify-content: center; padding: 25px; text-align: center; color: var(--dnc-blue); }
.dnc-cp-map-placeholder>span { display: grid; width: 58px; height: 58px; place-items: center; margin-bottom: 14px; border-radius: 18px; background: #fff; }
.dnc-cp-map-placeholder strong { color: var(--dnc-text); }
.dnc-cp-map-placeholder p { max-width: 310px; margin: 7px 0 0; font-size: .88rem; }
.dnc-cp-faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(24px,5vw,70px); padding: clamp(38px,6vw,76px) clamp(4px,1vw,12px); }
.dnc-cp-faq-heading h2 { margin-top: 12px; }
.dnc-cp-faq-list { border-top: 1px solid #E0E7F0; }
.dnc-cp-faq-item { padding: 0; border-bottom: 1px solid #E0E7F0; }
.dnc-cp-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 19px 2px; color: var(--dnc-text); font-weight: 720; list-style: none; cursor: pointer; }
.dnc-cp-faq-item summary::-webkit-details-marker { display: none; }
.dnc-cp-faq-item summary>span { position: relative; display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: 50%; background: #EDF3FF; }
.dnc-cp-faq-item summary>span:before,.dnc-cp-faq-item summary>span:after { position: absolute; width: 10px; height: 2px; border-radius: 2px; background: var(--dnc-blue); content: ''; }
.dnc-cp-faq-item summary>span:after { transform: rotate(90deg); }
.dnc-cp-faq-item[open] summary>span:after { transform: rotate(0); }
.dnc-cp-faq-item>p { margin: 0; padding: 0 38px 20px 2px; font-size: .93rem; line-height: 1.75; }
.dnc-cp-bottom-cta { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: clamp(25px,4vw,42px); overflow: hidden; border-radius: var(--dnc-radius); background: var(--dnc-blue); color: #fff; }
.dnc-cp-bottom-cta h2 { margin: 10px 0; color: #fff; }
.dnc-cp-bottom-cta p { margin: 0; color: rgba(255,255,255,.78); }
.dnc-cp-bottom-cta .dnc-cp-kicker { color: var(--dnc-yellow); }
.dnc-cp-cta-button { flex: 0 0 auto; background: var(--dnc-yellow); box-shadow: none; color: var(--dnc-blue)!important; }
.dnc-cp-cta-orb { position: absolute; top: -180px; right: 20%; width: 260px; height: 260px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; pointer-events: none; }
.dnc-cp-cta-orb:after { position: absolute; inset: 25px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; content: ''; }
.dnc-cp-reveal { opacity: 1; transform: none; }
.dnc-cp.dnc-cp-motion .dnc-cp-reveal { opacity: 0; transform: translateY(14px); transition: opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1); }
.dnc-cp.dnc-cp-motion .dnc-cp-reveal.dnc-cp-visible { opacity: 1; transform: translateY(0); }
.dnc-cp .dnc-cp-subject-trigger { display: flex; width: 100%; height: 41px; min-height: 41px; box-sizing: border-box; align-items: center; justify-content: space-between; padding: 8px 48px 8px 15px; border: 1px solid #DCE4EF; border-radius: 13px; background: #FBFCFE; color: var(--dnc-text); font: inherit; font-size: 14px; text-align: left; cursor: pointer; }
.dnc-cp .dnc-cp-subject-trigger:after { position: absolute; right: 19px; width: 9px; height: 9px; transform: translateY(-2px) rotate(45deg); border-right: 2px solid var(--dnc-blue); border-bottom: 2px solid var(--dnc-blue); content: ''; }
.dnc-cp .dnc-cp-subject-trigger:focus-visible,.dnc-cp .dnc-cp-subject-option:focus-visible { outline: 3px solid rgba(255,106,3,.35); outline-offset: 2px; }
.dnc-cp .dnc-cp-subject-menu { position: absolute; z-index: 20; top: calc(100% + 7px); right: 0; left: 0; display: none; max-height: 220px; margin: 0; padding: 6px; overflow-y: auto; border: 1px solid #DCE4EF; border-radius: 13px; background: #fff; box-shadow: 0 14px 32px rgba(14,44,91,.14); list-style: none; }
.dnc-cp .dnc-cp-subject-control.is-open .dnc-cp-subject-menu { display: block; }
.dnc-cp .dnc-cp-subject-option { width: 100%; padding: 9px 12px; border: 0; border-radius: 8px; background: transparent; color: var(--dnc-text); font: inherit; font-size: 14px; text-align: left; cursor: pointer; }
.dnc-cp .dnc-cp-subject-option:hover,.dnc-cp .dnc-cp-subject-option[aria-selected="true"] { background: #EDF3FF; color: var(--dnc-blue); }
.dnc-cp .dnc-cp-subject-control>select.dnc-cp-subject-native { position: absolute!important; width: 1px!important; height: 1px!important; padding: 0!important; opacity: 0!important; pointer-events: none!important; }
.dnc-cp .dnc-cp-subject-control:focus-within>select.dnc-cp-subject-native { opacity: 0!important; }
.dnc-cp a:focus-visible,.dnc-cp button:focus-visible { outline: 3px solid rgba(255,106,3,.55); outline-offset: 3px; }
/* Tablet and mobile layout: change columns only. Wrapper sizing is controlled
   by the base .dnc-cp rule near the top of this file. Edit that rule manually. */
@media (max-width: 850px) {
  .dnc-cp .dnc-cp-main-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .dnc-cp .dnc-cp-contact-side {
    display: flex;
    flex-direction: column;
  }

  .dnc-cp .dnc-cp-location {
    grid-template-columns: minmax(0, 1fr);
  }

  .dnc-cp .dnc-cp-faq {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }
}
@media (max-width: 560px) {
  /* Extend every major card closer to the mobile viewport edges. */
  .dnc-cp .dnc-cp-form-card,
  .dnc-cp .dnc-cp-contact-card,
  .dnc-cp .dnc-cp-hours,
  .dnc-cp .dnc-cp-location,
  .dnc-cp .dnc-cp-map,
  .dnc-cp .dnc-cp-faq-list,
  .dnc-cp .dnc-cp-bottom-cta {
    width: calc(100% + 16px);
    max-width: none;
    margin-left: -8px;
  }
  .dnc-cp-hero { padding: 32px 8px 40px; }
  .dnc-cp h1 { font-size: clamp(2.05rem,10vw,3rem); }
  .dnc-cp .dnc-cp-form-card { padding: 24px 18px; }
  .dnc-cp .dnc-cp-form { grid-template-columns: minmax(0,1fr); gap: 17px; }
  .dnc-cp .dnc-cp-field,.dnc-cp .dnc-cp-submit,.dnc-cp .dnc-cp-privacy { grid-column: 1 / -1; }
  .dnc-cp .dnc-cp-contact-card { gap: 12px; padding: 18px 15px; }
  .dnc-cp .dnc-cp-icon { width: 47px; height: 47px; flex-basis: 47px; border-radius: 15px; }
  .dnc-cp .dnc-cp-location { gap: 18px; padding: 20px 16px; }
  .dnc-cp .dnc-cp-map,.dnc-cp .dnc-cp-map iframe,.dnc-cp .dnc-cp-map-placeholder { min-height: 250px; }
  .dnc-cp .dnc-cp-faq { padding: 42px 2px; }
  .dnc-cp .dnc-cp-bottom-cta { align-items: flex-start; flex-direction: column; padding: 27px 21px; }
  .dnc-cp .dnc-cp-cta-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .dnc-cp *,.dnc-cp *:before,.dnc-cp *:after { animation-duration: .01ms!important; animation-iteration-count: 1!important; transition-duration: .01ms!important; scroll-behavior: auto!important; }
  .dnc-cp.dnc-cp-motion .dnc-cp-reveal { opacity: 1; transform: none; }
}

/* Rich-text message editor */
.dnc-cp .dnc-cp-field-message .wp-editor-tools .wp-editor-expand { display: none !important; }
.dnc-cp .dnc-cp-field-message .wp-editor-wrap { width: 100%; max-width: 100%; min-width: 0; }
.dnc-cp .dnc-cp-field-message .wp-editor-container { border: 1px solid #DCE4EF; border-radius: 12px; overflow: visible; }
.dnc-cp .dnc-cp-field-message .quicktags-toolbar { padding: 6px 8px; border-bottom: 1px solid #E5EAF2; background: #F8FAFD; }
.dnc-cp .dnc-cp-field-message .wp-editor-tabs { padding: 4px 6px 0; }
.dnc-cp .dnc-cp-field-message .mce-toolbar-grp { border-bottom: 1px solid #E5EAF2; }
.dnc-cp .dnc-cp-field-message iframe { max-width: 100%; }
.dnc-cp .dnc-cp-field-message .mce-statusbar { cursor: ns-resize; }
.dnc-cp .dnc-cp-field-message .mce-resizehandle { cursor: ns-resize; }
.dnc-cp .dnc-cp-field-message .wp-editor-area { width: 100%; box-sizing: border-box; padding: 10px 12px; font: inherit; font-size: 14px; line-height: 1.6; }
.dnc-cp .dnc-cp-field-message .wp-editor-wrap:focus-within .wp-editor-container { border-color: var(--dnc-blue); box-shadow: 0 0 0 3px rgba(0,62,165,.08); }
