:root{
    --s--1:clamp(.82rem,.8rem + .12vw,.9rem);
    --s-0:clamp(1rem,.97rem + .15vw,1.08rem);
    --s-1:clamp(1.12rem,1.06rem + .3vw,1.28rem);
    --s-2:clamp(1.28rem,1.16rem + .55vw,1.55rem);
    --s-3:clamp(1.5rem,1.3rem + .9vw,1.95rem);
    --s-4:clamp(1.8rem,1.5rem + 1.3vw,2.5rem);
    --s-5:clamp(2.05rem,1.6rem + 1.9vw,3rem);

    --ink:#14181A;         /* near-black, matches the logo card */
    --ink-mute:#4C5457;
    --ink-soft:#5E6567;    /* darkened from #7C8386 2026-09-28 so small/muted text meets 4.5:1 (WCAG AA) */
    --paper:#FFFFFF;
    --paper-2:#F6F1E9;
    --line:#E7E1D6;
    --line-strong:#D3CABA;

    /* Accent: deep harbor teal-blue. Reads calm and trustworthy rather than
       playful; distinct from La Petite Dent's green/orange; the blue-green
       also nods to breath/air without being literal. Warmed with a cream
       (not cool gray) neutral so the overall feel is welcoming, not clinical-cold. */
    --accent:#2B5A63;
    --accent-deep:#1D3F46;
    --accent-bright:#3C7B86;
    --accent-wash:#EDF1EC;

    /* Brass: echoes the office's black-and-brass metal accents. Decorative lines,
       numerals, and small text on dark backgrounds only (fails contrast as text on white). */
    --brass:#B08D57;
    --brass-light:#D2B47E;
    --brass-deep:#7F6334;  /* AA-safe brass for the rare cases where brass is text/UI color on a light background (never plain --brass as text on white/linen) */
    --stone:#EFE9DF;       /* warm organic neutral, like plaster/linen */

    /* Theme surfaces (2026-10-06 light/dark toggle). --band = the always-dark sections (hero, footer, CTA bands). */
    --band:#14181A;
    --surface:#FFFFFF;      /* cards, forms, menus */
    --field:#FFFFFF;
    --header-bg:rgba(255,255,255,.94);
    --btn-bg:#14181A; --btn-fg:#FFFFFF; --btn-hover:#000000;
    --accent-btn:#2B5A63; --accent-btn-hover:#3C7B86;
    --ph-a:#F4EFE6; --ph-b:#EDE6DA;
    --err:#9B2C22;
    --input-border:#767F82;
    color-scheme:light;

    --maxw:1160px;
    --disp:'Quicksand',system-ui,sans-serif;  /* matches the logo lettering */
    --body:'Quicksand',system-ui,-apple-system,sans-serif;
  }
  :root[data-theme="dark"]{
    --ink:#F2EFE9; --ink-mute:#C6CED0; --ink-soft:#A9B3B5;
    --paper:#121618; --paper-2:#1A2023; --line:#2D363A; --line-strong:#4A565B;
    --accent:#7FC0CB; --accent-deep:#9FD3DC; --accent-bright:#9FD3DC; --accent-wash:#1C2C30;
    --brass-deep:#D2B47E; --stone:#1F2629;
    --band:#0A0D0E; --surface:#1B2124; --field:#12171A;
    --header-bg:rgba(18,22,24,.94);
    --btn-bg:#F2EFE9; --btn-fg:#14181A; --btn-hover:#FFFFFF;
    --ph-a:#1E2528; --ph-b:#232B2E;
    --err:#FF9C8F;
    --input-border:#7C888C;
    color-scheme:dark;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:var(--body);font-size:var(--s-0);color:var(--ink-mute);background:var(--paper);line-height:1.7;font-weight:500;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  h1,h2,h3,h4{font-family:var(--disp);color:var(--ink);line-height:1.2;font-weight:700;letter-spacing:0}
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}
  ul{list-style:none}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;width:100%}
  section{padding:clamp(48px,7vw,92px) 0}

  .eyebrow{display:inline-flex;align-items:center;gap:.6em;font-family:var(--body);font-weight:600;font-size:var(--s--1);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
  .eyebrow::before{content:"";width:22px;height:1.5px;background:var(--brass)}
  .eyebrow.on-dark{color:var(--brass-light)}
  .eyebrow.on-dark::before{background:var(--brass-light)}

  .btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--body);font-weight:600;font-size:var(--s--1);padding:.9em 1.5em;border-radius:6px;border:1.5px solid var(--btn-bg);background:var(--btn-bg);color:var(--btn-fg);cursor:pointer;transition:transform .15s,background .15s,color .15s,border-color .15s}
  .btn:hover{transform:translateY(-1px);background:var(--btn-hover);border-color:var(--btn-hover)}
  .btn--accent{background:var(--accent-btn);border-color:var(--accent-btn);color:#fff}
  .btn--accent:hover{background:var(--accent-btn-hover);border-color:var(--accent-btn-hover)}
  .btn--ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
  .btn--ghost-light:hover{border-color:#fff;background:rgba(255,255,255,.08)}
  .btn--ghost-dark{background:transparent;color:var(--ink);border-color:var(--line-strong)}
  .btn--ghost-dark:hover{border-color:var(--ink)}
  .btn-row{display:flex;flex-wrap:wrap;gap:14px}

  /* Logo lockup: smile-in-circle mark + wordmark text (real vector logo TBD) */
  .mark{flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
  .wordmark{font-family:var(--body);font-weight:700;letter-spacing:.02em;line-height:1.15}
  .wordmark .l1{display:block;font-size:1em}
  .wordmark .l2{display:block;font-size:.62em;font-weight:600;letter-spacing:.16em;opacity:.75}
  .lockup{display:inline-flex;align-items:center;gap:12px;flex:none}
  .header-row .logo{height:38px;width:auto}
  .footer-logo .logo{height:40px;width:auto}
  @media(max-width:480px){.header-row .logo{height:30px}}

  /* Header */
  header{position:sticky;top:0;z-index:40;background:var(--header-bg);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
  .header-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;padding-bottom:14px}
  .header-row .mark{width:34px;height:34px}
  .header-row .wordmark{color:var(--ink);font-size:var(--s--1)}
  nav.primary{display:flex;align-items:center;gap:20px}
  nav.primary a{font-size:var(--s--1);font-weight:600;color:var(--ink-mute);white-space:nowrap}
  nav.primary a:hover{color:var(--ink)}
  .header-cta{display:flex;align-items:center;gap:10px}
  .menu-btn{display:none;background:none;border:none;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:44px;height:44px}
  .menu-btn span{display:block;width:24px;height:2px;background:var(--ink)}

  @media (max-width:1320px){
    nav.primary{position:fixed;inset:60px 0 0 0;background:var(--paper);flex-direction:column;align-items:flex-start;gap:0;padding:8px 24px 24px;transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;overflow-y:auto}
    nav.primary.open{opacity:1;transform:translateY(0);pointer-events:auto}
    nav.primary a{width:100%;padding:14px 0;border-bottom:1px solid var(--line)}
    .header-cta .btn--ghost-dark{display:none}
    .menu-btn{display:flex}
  }

  /* Hero */
  .hero{background:var(--band);color:#fff;padding:clamp(56px,9vw,110px) 0 clamp(48px,7vw,80px)}
  .hero .wrap{display:grid;gap:36px}
  .hero h1{color:#fff;font-size:var(--s-5);max-width:15ch}
  .hero p.lead{color:#C9D2D2;max-width:56ch;font-size:var(--s-1);margin-top:16px}
  .hero-logo{display:flex;align-items:center;gap:16px;margin-bottom:22px}
  .hero-logo .mark{width:52px;height:52px}
  .hero-logo .wordmark{color:#fff;font-size:var(--s-1)}
  .no-clean{margin-top:28px;border-left:2.5px solid var(--brass-light);padding:4px 0 4px 20px;max-width:60ch}
  .no-clean strong{color:#fff;display:block;margin-bottom:6px;font-family:var(--disp);font-weight:500;font-size:var(--s-1)}
  .no-clean p{color:#C9D2D2;font-size:var(--s--1);margin-top:8px}
  .no-clean a{color:var(--brass-light);text-decoration:underline}
  .hero .btn-row{margin-top:28px}

  /* Generic section headings */
  .section-head{max-width:60ch;margin-bottom:36px}
  .section-head h2{font-size:var(--s-4)}
  .section-head p{margin-top:12px;font-size:var(--s-1);color:var(--ink-mute)}

  /* Services */
  .services{background:var(--paper-2)}
  .grid-5{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
  .card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:26px 22px}
  .card h3{font-size:var(--s-1);margin-bottom:10px}
  .card p{font-size:var(--s--1);color:var(--ink-mute)}
  .card .tag{display:inline-block;font-size:var(--s--1);font-weight:700;color:var(--accent);margin-bottom:14px}

  /* Signs */
  .signs .wrap{display:grid;gap:40px;grid-template-columns:1fr}
  @media(min-width:820px){.signs .wrap{grid-template-columns:1fr 1fr}}
  .signs-list{display:grid;gap:14px}
  .sign-item{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;background:var(--paper-2);border-radius:8px;border:1px solid var(--line)}
  .sign-item .dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:8px}
  .sign-item p{font-size:var(--s--1);color:var(--ink)}

  /* Office */
  .office{background:var(--paper-2)}
  .office-grid{display:grid;gap:32px;grid-template-columns:1fr}
  @media(min-width:820px){.office-grid{grid-template-columns:1fr 1fr;align-items:center}}
  .office-features{display:grid;gap:16px}
  .office-feature{display:flex;gap:14px}
  .office-feature .num{flex:none;width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:.8rem;font-weight:600}
  .office-feature h4{font-size:var(--s-0);margin-bottom:4px}
  .office-feature p{font-size:var(--s--1)}

  .placeholder-img{aspect-ratio:4/3;width:100%;border:1.5px dashed var(--line-strong);border-radius:14px;background:repeating-linear-gradient(45deg,var(--ph-a),var(--ph-a) 10px,var(--ph-b) 10px,var(--ph-b) 20px);display:flex;align-items:center;justify-content:center;text-align:center;padding:20px}
  .placeholder-img span{font-size:var(--s--1);color:var(--ink-soft);font-weight:600;max-width:22ch}

  /* Doctors */
  .doctors-grid{display:grid;gap:28px;grid-template-columns:1fr}
  @media(min-width:720px){.doctors-grid{grid-template-columns:1fr 1fr}}
  .doctor-card{display:grid;gap:18px;grid-template-columns:120px 1fr;align-items:start}
  @media(max-width:480px){.doctor-card{grid-template-columns:1fr}}
  .doctor-card .placeholder-img{max-width:260px;aspect-ratio:4/5;border-radius:999px 999px 14px 14px}
  .doctor-card h3{font-size:var(--s-1);margin-bottom:2px}
  .doctor-card .cred{font-size:var(--s--1);color:var(--accent);font-weight:600;display:block;margin-bottom:10px}
  .doctor-card p{font-size:var(--s--1)}

  /* Providers */
  .providers{background:var(--band);color:#fff}
  .providers .section-head h2{color:#fff}
  .providers .section-head p{color:#C9D2D2}
  .provider-grid{display:grid;gap:20px;grid-template-columns:1fr}
  @media(min-width:760px){.provider-grid{grid-template-columns:1fr 1fr}}
  .provider-card{border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:28px;background:rgba(255,255,255,.04)}
  .provider-card h3{color:#fff;font-size:var(--s-1);margin-bottom:10px}
  .provider-card p{color:#C9D2D2;font-size:var(--s--1);margin-bottom:18px}

  /* Credibility strip */
  .credibility{background:var(--accent-wash);padding:26px 0}
  .credibility .wrap{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;text-align:center}
  .credibility p{font-size:var(--s--1);color:var(--ink);font-weight:600}

  /* General dentist note */
  .gd-note{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .gd-note .box{max-width:70ch;margin:0 auto;text-align:center}
  .gd-note h2{font-size:var(--s-2);margin-bottom:12px}
  .gd-note p{font-size:var(--s-0)}

  /* Footer */
  footer{background:var(--band);color:#C9D2D2;padding:52px 0 28px}
  .footer-grid{display:grid;gap:32px;grid-template-columns:1fr}
  @media(min-width:760px){.footer-grid{grid-template-columns:1.3fr 1fr 1fr}}
  footer h4{color:#fff;font-size:var(--s--1);letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;font-family:var(--body);font-weight:700}
  footer p, footer a{font-size:var(--s--1);color:#C9D2D2;margin-bottom:8px;display:block}
  footer a:hover{color:#fff}
  .footer-logo{margin-bottom:16px}
  .footer-bottom{margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.15);font-size:var(--s--1);color:#8FA0A0;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}

/* ---------- Sedation page ---------- */
.page-hero{background:var(--band);color:#fff;padding:clamp(56px,8vw,100px) 0 clamp(44px,6vw,72px)}
.page-hero h1{color:#fff;font-size:var(--s-5);max-width:18ch;margin-top:14px}
.page-hero p.lead{color:#C9D2D2;max-width:60ch;font-size:var(--s-1);margin-top:16px}
.page-hero .btn-row{margin-top:28px}
.video-wrap{display:grid;gap:32px;grid-template-columns:1fr}
@media(min-width:880px){.video-wrap{grid-template-columns:1.25fr 1fr;align-items:center}}
.video-frame{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:var(--band);display:flex;align-items:center;justify-content:center;text-align:center;color:#C9D2D2;padding:20px}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-frame .play{width:64px;height:64px;border-radius:50%;border:1.5px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.video-frame .play::before{content:"";border-left:16px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent;margin-left:4px}
.video-frame small{display:block;font-size:var(--s--1);font-weight:600}
.steps{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));counter-reset:step}
.step{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:26px 22px}
.step::before{counter-increment:step;content:counter(step);display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--ink);font-weight:700;margin-bottom:14px}
.step h3{font-size:var(--s-1);margin-bottom:8px}
.step p{font-size:var(--s--1)}
.two-col{display:grid;gap:36px;grid-template-columns:1fr}
@media(min-width:880px){.two-col{grid-template-columns:1fr 1fr}}
.checklist{display:grid;gap:12px;margin-top:18px}
.checklist li{position:relative;padding-left:28px;color:var(--ink)}
.checklist li::before{content:"";position:absolute;left:0;top:.55em;width:14px;height:8px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}
.info-request{background:var(--band);color:#fff}
.info-request .section-head h2{color:#fff}
.info-request .section-head p{color:#C9D2D2}
.info-grid{display:grid;gap:36px;grid-template-columns:1fr}
@media(min-width:880px){.info-grid{grid-template-columns:1fr 1.2fr;align-items:start}}
.info-form{background:var(--surface);color:var(--ink);border-radius:12px;padding:clamp(22px,4vw,34px);display:grid;gap:16px}
.info-form .row{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:560px){.info-form .row{grid-template-columns:1fr 1fr}}
.info-form label{display:grid;gap:6px;font-size:var(--s--1);font-weight:600;color:var(--ink)}
.info-form input,.info-form textarea,.info-form select{font:inherit;font-weight:500;font-size:var(--s-0);padding:12px 14px;border:1.5px solid var(--input-border);border-radius:8px;background:var(--field);color:var(--ink);width:100%}
.info-form input:focus,.info-form textarea:focus,.info-form select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.info-form fieldset{border:0;display:grid;gap:10px}
.info-form legend{font-size:var(--s--1);font-weight:600;margin-bottom:6px}
.info-form .check{display:flex;gap:10px;align-items:flex-start;font-weight:500}
.info-form .check input{width:auto;margin-top:.35em}
.info-form .note{font-size:.82rem;color:var(--ink-soft);font-weight:500}
.info-form .status{font-size:var(--s--1);font-weight:600;color:var(--accent)}
.info-points{display:grid;gap:14px;margin-top:22px}
.info-points li{color:#C9D2D2;padding-left:22px;position:relative}
.info-points li::before{content:"";position:absolute;left:0;top:.65em;width:8px;height:8px;border-radius:50%;background:var(--brass-light)}

/* ---------- Modern organic + black/brass details ---------- */
.office .placeholder-img{max-width:420px;margin:0 auto;aspect-ratio:4/5;border-radius:999px 999px 14px 14px;border-color:var(--brass)}
.office-feature .num{background:transparent !important;color:var(--ink) !important;border:1.5px solid var(--brass)}
.step::before{background:transparent;color:var(--ink);border:1.5px solid var(--brass)}
.section-head h2::after{content:"";display:block;width:44px;height:1.5px;background:var(--brass);margin-top:16px}
.gd-note h2::after{content:"";display:block;width:44px;height:1.5px;background:var(--brass);margin:16px auto 0}
.card{border-radius:14px}
.card:hover{border-color:var(--brass)}
.credibility{background:var(--stone)}
.btn--ghost-light:hover{border-color:var(--brass-light)}
footer .footer-bottom{border-top-color:rgba(176,141,87,.35)}

/* ---------- Doctors page ---------- */
.bio{display:grid;gap:36px;grid-template-columns:1fr;align-items:start}
@media(min-width:880px){.bio{grid-template-columns:360px 1fr}.bio.flip{grid-template-columns:1fr 360px}.bio.flip .bio-photo{order:2}}
.bio-photo{max-width:360px;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;border-radius:999px 999px 16px 16px;border:1.5px solid var(--brass);background:var(--paper-2)}
.bio h2{font-size:var(--s-4)}
.bio .cred{display:block;color:var(--accent);font-weight:700;margin:6px 0 18px}
.bio p+p{margin-top:14px}
.bio blockquote{margin:22px 0;padding:4px 0 4px 20px;border-left:2px solid var(--brass);font-family:var(--disp);font-size:var(--s-1);color:var(--ink);font-weight:600;line-height:1.5}
.training{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}
.training h3{font-size:var(--s--1);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px}
.training li{position:relative;padding-left:18px;font-size:var(--s--1);color:var(--ink);margin-bottom:6px}
.training li::before{content:"";position:absolute;left:0;top:.7em;width:8px;height:1.5px;background:var(--brass)}
.story{background:var(--paper-2)}
.story .wrap{max-width:780px}
.story p{font-size:var(--s-1);margin-top:14px}
/* ---------- Service page ---------- */
.prose{max-width:68ch}
.prose p+p{margin-top:14px}
.tools{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.cta-band{background:var(--band);color:#fff;text-align:center}
.cta-band h2{color:#fff;font-size:var(--s-4)}
.cta-band p{color:#C9D2D2;max-width:56ch;margin:14px auto 0;font-size:var(--s-1)}
.cta-band .btn-row{justify-content:center;margin-top:26px}

/* ---------- FAQ ---------- */
.faq{max-width:780px}
.faq details{border-bottom:1px solid var(--line);padding:18px 0}
.faq summary{cursor:pointer;list-style:none;font-family:var(--disp);font-weight:700;color:var(--ink);font-size:var(--s-1);display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--brass-deep);font-size:1.4em;line-height:1}
.faq details[open] summary::after{content:"\2013"}
.faq details p{margin-top:10px}
.signs-cols{display:grid;gap:28px;grid-template-columns:1fr}
@media(min-width:880px){.signs-cols{grid-template-columns:repeat(3,1fr)}}
.signs-cols h3{font-size:var(--s-1)}
  @media (max-width:560px){.header-cta .btn{display:none}}
  header .wrap.header-row{max-width:1380px}

/* ---------- Home hero with vertical office photo ---------- */
.hero .wrap.hero-split{display:grid;gap:40px;grid-template-columns:1fr;align-items:center}
@media(min-width:960px){.hero .wrap.hero-split{grid-template-columns:1.25fr .75fr}}
.hero-text{display:grid;gap:0}
.hero-photo{margin:0;justify-self:center;width:100%;max-width:400px}
.hero-photo img,.hero-photo-ph{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:999px 999px 16px 16px;border:1.5px solid var(--brass)}
.hero-photo-ph{display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;background:repeating-linear-gradient(45deg,#1E2427,#1E2427 10px,#22292C 10px,#22292C 20px);color:#9AA6A6;font-size:var(--s--1);font-weight:600}
@media(max-width:959px){.hero-photo{max-width:300px}}
.hero-text h1{margin-top:16px}

/* ---------- Reviews ---------- */
.reviews{background:var(--paper-2)}
.review-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.review-card{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:26px 24px;display:flex;flex-direction:column;gap:14px}
.review-card .stars{color:var(--brass-deep);letter-spacing:.12em;font-size:1.05rem}
.review-card blockquote{margin:0;color:var(--ink);font-size:var(--s-0);line-height:1.65}
.review-card figcaption{margin-top:auto;font-size:var(--s--1);font-weight:700;color:var(--ink-soft)}

/* ---------- Room photo (First Visit) ---------- */
.room-photo{margin:36px 0 0}
.room-photo img,.room-photo-ph{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:18px;border:1.5px solid var(--brass)}
.room-photo-ph{display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,var(--ph-a),var(--ph-a) 10px,var(--ph-b) 10px,var(--ph-b) 20px);color:var(--ink-soft);font-weight:600;font-size:var(--s--1)}
.room-photo figcaption{margin-top:12px;font-size:var(--s--1);color:var(--ink-soft);text-align:center}
@media(max-width:600px){.room-photo img,.room-photo-ph{aspect-ratio:4/3}}

/* ---------- Visit picker (First Visit) ---------- */
.visit-picker{padding:0;margin-top:-40px;position:relative;z-index:2}
.picker-grid{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:880px){.picker-grid{grid-template-columns:repeat(3,1fr)}}
.picker-card{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--brass);border-radius:14px;padding:24px 22px;box-shadow:0 18px 40px -28px rgba(20,24,26,.45);transition:transform .15s,border-color .15s}
.picker-card:hover{transform:translateY(-2px);border-color:var(--brass)}
.picker-card .tag{font-size:var(--s--1);font-weight:700;color:var(--accent);letter-spacing:.02em}
.picker-card h3{font-size:var(--s-1)}
.picker-card p{font-size:var(--s--1)}
.picker-go{margin-top:auto;font-size:var(--s--1);font-weight:700;color:var(--ink)}
.page-hero:has(+ .visit-picker){padding-bottom:clamp(80px,9vw,110px)}
#ortho,#tongue-tie,#sedation{scroll-margin-top:96px}

/* ---------- Utility bar (Schedule / Pay / Contact) ---------- */
.utility-bar{background:var(--band);color:#C9D2D2;font-size:.82rem}
.utility-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:8px;padding-bottom:8px;max-width:1380px}
.utility-links{display:flex;gap:22px}
.utility-links a{color:#fff;font-weight:600;white-space:nowrap}
.utility-links a:hover{color:var(--brass-light)}
.utility-addr{white-space:nowrap}
@media(max-width:600px){.utility-addr{display:none}.utility-row{justify-content:center}}
.mobile-only{display:none}
@media (max-width:1320px){nav.primary .mobile-only{display:block}}
.contact-list{display:grid;gap:14px;margin-top:18px}
.contact-list li{color:var(--ink)}
.contact-list strong{display:block;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.contact-list a{color:var(--accent);font-weight:700}
.map-frame{margin-top:26px;border-radius:14px;overflow:hidden;border:1.5px solid var(--brass);aspect-ratio:4/3}
.map-frame iframe{width:100%;height:100%;border:0;display:block}
#contactForm{background:var(--paper-2);border:1px solid var(--line)}

/* ---------- Teal quick-link boxes in the top bar ---------- */
.utility-row{padding-top:7px;padding-bottom:7px}
.utility-links{gap:8px}
.utility-links a.util-btn{background:var(--accent-btn);color:#fff;padding:7px 16px;border-radius:6px;font-weight:600;border:1px solid var(--accent-btn);transition:background .15s,border-color .15s}
.utility-links a.util-btn:hover{background:var(--accent-btn-hover);border-color:var(--accent-btn-hover);color:#fff}
@media(max-width:600px){.utility-links a.util-btn{padding:6px 12px;font-size:.8rem}}
@media(min-width:1321px){nav.primary{margin-left:auto}}

/* ---------- About dropdown ---------- */
.nav-drop{position:relative}
.nav-drop-btn{background:none;border:0;font:inherit;font-size:var(--s--1);font-weight:600;color:var(--ink-mute);cursor:pointer;padding:0;display:inline-flex;gap:6px;align-items:center;white-space:nowrap}
.nav-drop-btn span{font-size:.7em}
.nav-drop-menu{position:absolute;top:calc(100% + 14px);left:-16px;min-width:190px;background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--brass);border-radius:10px;box-shadow:0 18px 40px -24px rgba(20,24,26,.4);padding:8px;display:none;z-index:50}
.nav-drop-menu a{display:block;padding:10px 12px;border-radius:6px;white-space:nowrap}
.nav-drop-menu a:hover{background:var(--paper-2);color:var(--ink)}
.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu,.nav-drop.open .nav-drop-menu{display:block}
.nav-drop::after{content:"";position:absolute;left:0;right:0;top:100%;height:16px}
@media (max-width:1320px){
  .nav-drop{width:100%}
  .nav-drop-btn{width:100%;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}
  .nav-drop-menu{position:static;display:block;border:0;box-shadow:none;padding:0 0 0 14px;min-width:0}
  .nav-drop-menu a{border-bottom:1px solid var(--line);border-radius:0}
}

/* ---------- Office gallery ---------- */
.gallery{display:grid;gap:18px;grid-template-columns:1fr}
@media(min-width:760px){.gallery{grid-template-columns:repeat(2,1fr)}.gallery-item.wide{grid-column:1 / -1}}
.gallery-item{margin:0}
.gallery-item img,.gallery-ph{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;border:1.5px solid var(--brass)}
.gallery-item.wide img,.gallery-item.wide .gallery-ph{aspect-ratio:21/9}
@media(max-width:759px){.gallery-item.wide img,.gallery-item.wide .gallery-ph{aspect-ratio:4/3}}
.gallery-ph{display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;background:repeating-linear-gradient(45deg,var(--ph-a),var(--ph-a) 10px,var(--ph-b) 10px,var(--ph-b) 20px);color:var(--ink-soft);font-weight:600;font-size:var(--s--1)}
.gallery-item figcaption{margin-top:10px;font-size:var(--s--1);color:var(--ink-soft)}
.office .office-features{display:grid;gap:18px}
@media(min-width:880px){.office .office-features{grid-template-columns:repeat(3,1fr)}}
.nav-drop-btn{line-height:1.7}
.utility-links a.util-link{color:#fff;font-weight:600;padding:7px 10px;white-space:nowrap}
.utility-links a.util-link:hover{color:var(--brass-light)}
@media(max-width:600px){.utility-links a.util-link{display:none}}
@media(min-width:760px){.footer-grid{grid-template-columns:1.3fr 1fr 1fr 1fr}}
.res-card{display:flex;flex-direction:column}
.res-card .soon{margin-top:auto;padding-top:14px;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-deep)}
#care,#guides,#forms{scroll-margin-top:110px}

/* ---------- Free parent guide offer ---------- */
.guide-offer{background:var(--band);color:#fff}
.guide-offer h2{color:#fff;font-size:var(--s-4);margin-top:10px}
.guide-lead{color:#C9D2D2;font-size:var(--s-1);margin-top:12px;max-width:56ch}
.guide-grid{display:grid;gap:44px;grid-template-columns:1fr;align-items:center}
@media(min-width:900px){.guide-grid{grid-template-columns:300px 1fr}}
.guide-cover{justify-self:center;width:100%;max-width:280px;aspect-ratio:8.5/11;background:#1E2427;border:1.5px solid var(--brass);border-radius:6px 16px 16px 6px;box-shadow:18px 22px 40px -20px rgba(0,0,0,.7);padding:26px 22px;display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden}
.guide-cover::after{content:"";position:absolute;right:-110px;top:80px;width:180px;height:230px;border:1px solid var(--brass);border-radius:999px 999px 0 0;opacity:.45}
.guide-cover img{height:24px;width:auto;align-self:center;margin-bottom:auto}
.gc-eyebrow{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-light);font-weight:700}
.gc-title{font-family:var(--disp);font-weight:700;font-size:1.7rem;line-height:1.1;color:#fff;max-width:9ch;position:relative;z-index:1}
.gc-by{margin-top:auto;font-size:.68rem;color:#C9D2D2}
.guide-form{margin-top:24px;display:grid;gap:14px;max-width:560px}
.guide-form .row{display:grid;gap:14px;grid-template-columns:1fr}
@media(min-width:560px){.guide-form .row{grid-template-columns:1fr 1fr}}
.guide-form label{display:grid;gap:6px;font-size:var(--s--1);font-weight:600;color:#E4E9E9}
.guide-form input,.guide-form select{font:inherit;font-weight:500;padding:12px 14px;border:1.5px solid #8A97A0;border-radius:8px;background:rgba(255,255,255,.06);color:#fff;width:100%}
.guide-form select option{color:var(--ink)}
.guide-form input:focus,.guide-form select:focus{outline:2px solid var(--brass-light);outline-offset:1px;border-color:var(--brass-light)}
.guide-form .check{display:flex;gap:10px;align-items:flex-start;font-weight:500;color:#C9D2D2}
.guide-form .check input{width:auto;margin-top:.3em}
.guide-form .status{color:var(--brass-light);font-weight:600}
.guide-form .status a{color:#fff;text-decoration:underline}

/* ---------- Philosophy band ---------- */
.philosophy{background:var(--paper);text-align:center;padding:clamp(56px,8vw,100px) 0}
.philosophy .eyebrow{justify-content:center}
.phil-line{font-family:var(--disp);font-weight:700;color:var(--ink);font-size:clamp(1.6rem,1.2rem + 2vw,2.6rem);line-height:1.3;margin:14px auto 0;max-width:24ch}
.phil-line em{font-style:normal;color:var(--accent);border-bottom:2px solid var(--brass);padding-bottom:1px}
.phil-pillars{display:grid;gap:22px;grid-template-columns:1fr;margin:40px auto 0;max-width:920px;text-align:left}
@media(min-width:760px){.phil-pillars{grid-template-columns:repeat(3,1fr)}}
.phil-pillars div{border-top:1.5px solid var(--brass);padding-top:16px}
.phil-pillars h3{font-size:var(--s-1);margin-bottom:6px}
.phil-pillars p{font-size:var(--s--1)}

/* ---------- Accessibility: skip link, focus visibility, motion, required fields (2026-09-28 audit) ---------- */
.skip-link{position:absolute;left:12px;top:-60px;z-index:100;background:var(--band);color:#fff;padding:10px 18px;border-radius:0 0 8px 8px;font-weight:600;font-size:var(--s--1);transition:top .15s}
.skip-link:focus{top:0;outline:2px solid var(--brass-light);outline-offset:2px}

/* Visible, high-contrast focus for every interactive element that doesn't already define its own ring. */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;border-radius:2px;
}
.hero a:focus-visible,.hero button:focus-visible,
.providers a:focus-visible,.providers button:focus-visible,
footer a:focus-visible,footer button:focus-visible,
.cta-band a:focus-visible,.cta-band button:focus-visible,
.info-request a:focus-visible,.info-request button:focus-visible,
.guide-offer a:focus-visible,.guide-offer button:focus-visible,
.page-hero a:focus-visible,.page-hero button:focus-visible{
  outline-color:var(--brass-light);
}
.btn:focus-visible{outline-offset:3px}

/* Required form fields: shown visually (not by color alone) and announced natively via the required attribute. */
.req-mark{color:var(--accent);font-weight:700;margin-left:.2em}
.form-required-note{font-size:var(--s--1);color:var(--ink-soft);margin-bottom:14px}
.guide-form .form-required-note{color:#C9D2D2}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.001ms !important;animation-duration:.001ms !important;animation-iteration-count:1 !important;scroll-behavior:auto !important}
}

/* Mobile menu fix (2026-09-28): backdrop-filter on the sticky header trapped the fixed menu to 32px tall. */
@media (max-width:1320px){header{backdrop-filter:none;background:var(--paper)}}

/* ---------- Light / Dark toggle (2026-10-06) ---------- */
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.4em;min-height:44px;min-width:44px;padding:0 14px;font:inherit;font-size:var(--s--1);font-weight:600;color:var(--ink);background:transparent;border:1.5px solid var(--input-border);border-radius:999px;cursor:pointer;white-space:nowrap}
.theme-toggle:hover{border-color:var(--ink)}
.header-cta{gap:8px}
.logo-on-dark{display:none}
:root[data-theme="dark"] .header-row .logo-on-light{display:none}
:root[data-theme="dark"] .header-row .logo-on-dark{display:block}
@media(max-width:380px){.theme-toggle{padding:0 10px}}
.info-form .status.error{color:var(--err)}
