:root{
  /* ===== Ora palette — "Dentistry, distilled." =====
     Deep teal as the single brand color (headings, buttons, dark bands),
     coral clay as the one warm accent, warm cream canvas, ink body text.
     Variable NAMES are kept from the original build so every var() usage
     re-themes from here — the legacy names no longer describe the hue. */
  --blue:#0E4A44;          /* deep teal — primary buttons / links / panels */
  --blue-dk:#0A3A35;       /* darker teal — button hover */
  --gold:#0E4A44;          /* deep teal — serif headings (monochrome brand) */
  --lime:#CFE3DD;          /* pale mint — announcement bar / accent / <em> */
  --green:#0E4A44;         /* deep teal — insurance band bg, nav hover text, map */
  --ink:#26261F;           /* warm near-black — body text / titles */
  --muted:#6E675C;         /* warm gray — paragraph text */
  --line:#E2DACB;          /* warm border on cream */
  --green-pale:#E7EDE8;    /* pale teal tint — hover / icon backgrounds */
  --green-dk:#0C3F3A;      /* deep teal surface — footer / appcta / dark bands */
  --green-light:#CFE3DD;   /* pale mint — heading colour on dark teal */
  --tint:#F6F1E8;          /* warm cream — page background */
  --lavender:#DFEBE6;      /* mint-cream — insurance CTA band */
  --lavender-dk:#CFE3DD;   /* mint strip / compare tags */
  --peach:#DFEBE6;
  --radius:24px;           /* --radius--default: 1.5rem */
  --maxw:1240px;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Inter',system-ui,Arial,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--tint);line-height:1.5;-webkit-font-smoothing:antialiased;font-size:17px;padding-top:8.125rem}
img{max-width:100%;display:block}

h1,h2,h3,h4{font-family:var(--serif);color:var(--gold);font-weight:600;letter-spacing:-.01em;line-height:1.04;font-optical-sizing:auto}
h1{font-size:clamp(3rem,6.5vw,5.6rem);margin-bottom:.35em}
h2{font-size:clamp(2.1rem,4.4vw,3.6rem);margin-bottom:.5em}
h3{font-size:1.3rem;margin-bottom:.35em}
p{color:var(--muted)}
p+p{margin-top:.9em}
/* layout rows that align a heading beside other content stay flush */
.section-head h2,.reviews__head h2,.studio-card h3,.appcta__copy h2,.faq-grid>h2,.faq-head h2{margin-bottom:0}
a{color:inherit;text-decoration:none}
/* real Ora: white sections flow seamlessly on the off-white body; only
   colored band sections are rounded (via their own class) */
section{padding:clamp(3.5rem,7vw,6rem) clamp(1.25rem,5vw,3.5rem);background:#fff}

/* scroll-into-view reveal (class applied by script.js only to sections below
   the fold at load, so nothing flashes and no-JS renders everything) */
.will-reveal{opacity:0;transform:translateY(40px)}
.will-reveal.is-revealed{opacity:1;transform:translateY(0);transition:opacity .7s ease,transform .7s ease}
.wrap{max-width:var(--maxw);margin:0 auto}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--sans);font-weight:500;font-size:1rem;border-radius:999px;padding:.8rem 1.7rem;border:1.5px solid transparent;cursor:pointer;transition:.18s ease;white-space:nowrap}
.btn--blue{background:var(--blue);color:#fff}
.btn--blue:hover{background:var(--blue-dk)}
.btn--ghost{background:transparent;color:var(--ink);border-color:#cfcabf}
.btn--ghost:hover{border-color:var(--ink)}
.btn--lime{background:var(--lime);color:var(--green)}
.btn--lg{padding:1rem 2.1rem;font-size:1.05rem}
.btn--block{width:100%}
.link-arrow{font-weight:500;color:var(--blue)}
.link-arrow::after{content:" →";transition:.15s}
.link-arrow:hover::after{margin-left:.25rem}
.eyebrow{font-family:var(--sans);text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;font-weight:600;color:var(--muted)}

/* ---- fixed header unit (real .nav_wrapper: announcement + nav share one
   white rounded container inset .75rem from the viewport edges) ---- */
.announce{position:fixed;top:.75rem;left:.75rem;right:.75rem;z-index:95;background:var(--lime);color:var(--green);border-radius:24px 24px 0 0;height:2.375rem;display:flex;align-items:center;overflow:hidden;transition:background-color .2s ease}
.announce:hover{background:#C3DBD3}
.announce__inner{width:100%;max-width:80rem;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.5rem;font-size:.92rem;font-weight:500;white-space:nowrap}
.announce a{font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;display:inline-flex;gap:.4rem;align-items:center}

.nav{position:fixed;top:calc(.75rem + 2.375rem);left:.75rem;right:.75rem;z-index:94;padding:0 1rem;background:#fff;border-radius:0 0 24px 24px;box-shadow:0 1px 8px rgba(0,0,0,.08)}
.nav__inner{max-width:80rem;margin:0 auto;background:transparent;border-radius:0;box-shadow:none;display:flex;align-items:center;gap:1.5rem;padding:0 .5rem;min-height:5rem}
.nav__logo img{height:26px}
/* ---- Ora text wordmark (replaces the drawn logo) ---- */
.wordmark{font-family:var(--serif);font-weight:600;font-size:1.75rem;letter-spacing:-.015em;line-height:1;color:var(--green);display:inline-block;font-optical-sizing:auto}
.wordmark i{font-style:normal;color:#7FB5A8} /* mid mint — pale mint is too faint on white */
.wordmark--light{color:#F6F1E8}
.wordmark--light i{color:var(--lime)}
.footer__brand .wordmark{font-size:1.9rem;margin-bottom:1rem}
.nav__links{display:flex;align-items:center;gap:.25rem;margin-left:.5rem}
.nav__link,.nav__dd-toggle{font-family:var(--sans);font-weight:500;font-size:.96rem;color:var(--ink);padding:.7rem .9rem;border-radius:1rem;transition:background-color .2s ease,color .2s ease;background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:.3rem}
.nav__link:hover,.nav__dd-toggle:hover,.nav__dd.is-open .nav__dd-toggle{background-color:var(--green-pale);color:var(--green)}
.nav__dd-chevron{width:14px;height:14px;margin-top:1px;transition:transform .2s ease}
.nav__dd.is-open .nav__dd-chevron{transform:rotate(180deg)}

/* ---- dropdown mega-menus (real Ora nav: Pricing / Services / Studios / Orthodontics) ---- */
.nav__dd{position:relative}
.nav__dd-panel{position:absolute;top:100%;left:50%;transform:translateX(-50%);padding:2rem 1.5rem 1.5rem;margin-top:0;background:#fff;border-radius:var(--radius);box-shadow:0 2px 8px rgba(0,0,0,.14);display:none;z-index:80}
.nav__dd:hover .nav__dd-panel,.nav__dd.is-open .nav__dd-panel{display:flex;animation:navdd-in .22s ease both}
@keyframes navdd-in{from{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.nav__dd-chevron{transition:transform .25s ease}
.nav__dd:hover .nav__dd-chevron,.nav__dd.is-open .nav__dd-chevron{transform:rotate(180deg)}
.nav__dd-panel--wide{gap:1.5rem;width:46rem}
.nav__dd-panel--grid{grid-template-columns:1fr 1fr;gap:1.5rem;width:34rem}
.nav__dd:hover .nav__dd-panel--grid,.nav__dd.is-open .nav__dd-panel--grid{display:grid}
.nav__dd-panel--simple{flex-direction:column;width:16rem}
.nav__dd:hover .nav__dd-panel--simple,.nav__dd.is-open .nav__dd-panel--simple{display:flex}

.nav__dd-col{display:flex;flex-direction:column;gap:.75rem;max-width:20.5rem}
.nav__dd-col-label{font-family:var(--sans);font-weight:600;font-size:.85rem;color:var(--muted)}
.nav__divider{background:var(--line);width:100%;height:1px}

.nav__dd-link{display:flex;align-items:center;gap:.75rem;padding-right:2.25rem;text-decoration:none;color:var(--green);position:relative;transition:color .2s ease}
.nav__dd-link:hover{color:var(--green-dk)}
.nav__dd-link-icon{background:var(--green-pale);border-radius:1rem;flex:none;display:flex;align-items:center;justify-content:center;width:3.25rem;height:3.25rem;padding:.5rem}
.nav__dd-link-icon img{width:100%;height:100%}
.nav__dd-link-title{font-family:var(--sans);font-weight:500;color:var(--ink);font-size:.96rem}
.nav__dd-link-desc{font-family:var(--sans);font-size:.82rem;color:var(--muted);margin-top:.15rem}
.nav__dd-link-arrow{position:absolute;right:0;top:50%;transform:translateY(-50%) translateX(-8px);width:1.1rem;height:1.1rem;opacity:0;transition:opacity .25s ease,transform .25s ease}
.nav__dd-link:hover .nav__dd-link-arrow{opacity:1;transform:translateY(-50%) translateX(0)}
.nav__dd-all{display:block;margin-top:1.2rem;font-family:var(--sans);font-weight:500;color:var(--green);text-decoration:none}
.nav__dd-all:hover{color:var(--green-dk)}

.nav__dd-simple-link{display:block;padding:.6rem .7rem;border-radius:.75rem;color:var(--ink);text-decoration:none;font-weight:500;transition:background-color .2s ease,color .2s ease}
.nav__dd-simple-link:hover{background:var(--green-pale);color:var(--green)}

.nav__dd-featured{flex:1;background:var(--tint);border-radius:1rem;padding:1rem;display:flex;flex-direction:column;gap:1rem}
.nav__dd-featured-link{color:var(--green);text-decoration:none}
.nav__dd-featured-img{aspect-ratio:3/2;border-radius:.75rem;overflow:hidden;margin-bottom:.5rem}
.nav__dd-featured-img img{width:100%;height:100%;object-fit:cover}
.nav__dd-featured-title{font-family:var(--sans);font-weight:500;color:var(--ink)}
.nav__dd-featured-desc{font-family:var(--sans);font-size:.85rem;color:var(--muted);margin-top:.3rem}
.nav__dd-featured-links{display:flex;flex-direction:column;gap:.4rem}
.nav__dd-featured-links .nav__dd-link{padding-right:2rem}

.nav__pricing-card{display:flex;flex-direction:column;gap:1rem;border:1px solid var(--line);border-radius:1rem;padding:1rem;text-decoration:none;color:var(--ink);transition:border-color .2s ease}
.nav__pricing-card:hover{border-color:var(--green-dk)}
.nav__pricing-card .nav__dd-link-icon{background:var(--green-pale)}
.nav__pricing-card .nav__dd-link-title{font-weight:600}
.nav__pricing-card .nav__dd-link-desc{font-size:.85rem}

@media(max-width:1100px){
  .nav__dd-panel--wide{width:38rem}
  .nav__dd-panel--grid{width:28rem}
}
.nav__actions{margin-left:auto;display:flex;align-items:center;gap:1rem}
.nav__login{font-weight:500;font-size:.96rem}
.burger{width:26px;display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px 0}
.burger span{height:2px;background:var(--ink);border-radius:2px}

/* ---- hero ---- */
.hero{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;padding-top:clamp(2.5rem,5vw,4rem)}
.hero h1{margin-bottom:1.8rem}
.hero__sub p{font-size:1.14rem;color:var(--ink);max-width:38ch}
.hero__sub p+p{margin-top:1.1rem}
.hero__cta{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:2.2rem}
.hero__media img,.hero__media video{width:100%;border-radius:var(--radius);object-fit:cover;aspect-ratio:1/1.05}

/* ---- section head ---- */
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2.6rem}
.section-head h2{max-width:16ch}
.section-head--center{flex-direction:column;text-align:center;align-items:center}
.section-head--center h2{max-width:20ch}

/* ---- services (carousel row) ---- */
.svc-row{display:flex;gap:1.4rem;overflow-x:auto;padding-bottom:1rem;scroll-snap-type:x mandatory}
.svc-row::-webkit-scrollbar{height:6px}
.svc-row::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.svc-card{flex:0 0 300px;scroll-snap-align:start;border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;background:transparent}
.svc-card__img{border-radius:var(--radius) var(--radius) 0 0;overflow:hidden;margin:-1.5rem -1.5rem 1rem;background:var(--tint)}
.svc-card__img img{aspect-ratio:3/3.4;object-fit:cover;width:100%}
.svc-card h3{font-family:var(--sans);color:var(--ink);font-weight:600;font-size:1.25rem;margin-bottom:.4rem}
.svc-card p{font-size:.96rem;margin-bottom:.8rem}

/* ---- reviews ---- */
.reviews{background:#fff}
.reviews__head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;margin-bottom:2.6rem}
.reviews__g{height:34px}
.reviews__stars{height:20px}
.reviews__count{font-family:var(--sans);font-weight:600;color:var(--muted);font-size:.9rem;margin-top:-.4rem}
.review-slider{position:relative}
.review-track{display:flex;gap:1.4rem;overflow-x:auto;padding-bottom:1rem;scroll-snap-type:x mandatory;scroll-behavior:smooth}
.review-track::-webkit-scrollbar{height:6px}
.review-track::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.review{flex:0 0 350px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;scroll-snap-align:start;display:flex;flex-direction:column;gap:1rem}
/* real Ora default Splide arrow spec: gray circle, fades in on hover, dims when disabled */
.review-arrow{position:absolute;top:45%;transform:translateY(-50%);z-index:2;width:2.5rem;height:2.5rem;border:none;border-radius:50%;background:#ccc;color:#000;display:flex;align-items:center;justify-content:center;opacity:.7;cursor:pointer;transition:opacity .2s ease}
.review-arrow:hover:not(:disabled){opacity:.9}
.review-arrow:disabled{opacity:.3;cursor:default}
.review-arrow--prev{left:-.5rem}
.review-arrow--next{right:-.5rem}
@media(max-width:900px){.review-arrow{display:none}}
.review__stars{height:15px}
.review p{color:var(--ink);flex:1;display:-webkit-box;-webkit-line-clamp:9;-webkit-box-orient:vertical;overflow:hidden}
.review footer{display:flex;flex-direction:column}
.review footer strong{font-weight:600;color:var(--ink)}
.review footer span{color:var(--muted);font-size:.88rem}

/* ---- whole mouth (app features) — real: tinted rounded cards, centered
   content, 20rem images, rows 1.5fr/1fr with the reverse variant ---- */
.mouth-grid{display:flex;flex-direction:column;gap:1.5rem;margin-top:1rem}
.mouth-row{display:grid;grid-template-columns:1.5fr 1fr;gap:1.5rem;align-items:stretch}
.mouth-row--reversed{grid-template-columns:1fr 1.5fr}
.feat{display:flex;flex-direction:column;gap:1.5rem;background:var(--tint);border-radius:var(--radius);padding:2.5rem}
.feat__img{border-radius:1.25rem;overflow:hidden;height:20rem;flex:none;margin-bottom:0}
.feat__img img{width:100%;height:100%;object-fit:cover;display:block}
.feat__body{text-align:center;display:flex;flex-direction:column;align-items:center;padding:0 1.5rem}
.feat__body h3{font-family:var(--sans);color:var(--ink);font-weight:500;font-size:1.4rem;margin-bottom:.6rem}
.feat__body p{font-size:1rem}

/* ---- full-width image slider ---- */
.home-slider{position:relative;padding-left:0;padding-right:0}
.home-slider__track{display:flex;gap:1.5rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 4vw;scrollbar-width:none}
.home-slider__track::-webkit-scrollbar{display:none}
.home-slider__slide{flex:0 0 92vw;max-width:1500px;scroll-snap-align:center;border-radius:var(--radius);overflow:hidden}
.home-slider__slide img{width:100%;height:clamp(340px,60vh,640px);object-fit:cover;display:block}
.home-slider__arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:64px;height:52px;border-radius:16px;background:#fff;border:none;box-shadow:0 10px 28px -10px rgba(30,25,15,.4);display:flex;align-items:center;justify-content:center;color:var(--ink);cursor:pointer;transition:background-color .18s ease}
.home-slider__arrow:hover{background:var(--tint)}
.home-slider__arrow--prev{left:1.5vw}
.home-slider__arrow--next{right:1.5vw}

/* ---- studios ---- */
.studios{background:#fff}
.studios .section-head--center p{max-width:52ch;margin:.9rem auto 0}
.studios__inner{display:grid;grid-template-columns:0.9fr 1.1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.studios__copy p{margin:1.1rem 0 1.8rem;max-width:38ch;font-size:1.05rem}
/* homepage city cards (real: bordered rows w/ count + chevron, hover-links map pins) */
.studio-cards{display:flex;flex-direction:column;gap:1rem}
.studio-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;border:1px solid var(--line);border-radius:16px;padding:1.5rem 1.6rem;text-decoration:none;transition:border-color .2s ease;background:#fff}
.studio-card:hover{border-color:var(--green-dk)}
.studio-card h3{font-family:var(--sans);color:var(--ink);font-weight:600;font-size:1.3rem}
.studio-card__meta{display:flex;align-items:center;gap:.7rem;color:var(--ink);font-size:1.02rem;white-space:nowrap}
.studio-card__meta svg{transition:transform .25s ease}
.studio-card:hover .studio-card__meta svg{transform:translateX(5px)}
.studio-cards ~ .studios__map{height:100%;min-height:540px}
.studio-list{list-style:none;margin-bottom:2rem;border-top:1px solid var(--line)}
.studio-list li{display:flex;justify-content:space-between;align-items:center;padding:.9rem .2rem;border-bottom:1px solid var(--line);font-weight:500;color:var(--ink);transition:border-color .2s ease}
.studio-list em{font-style:normal;color:var(--muted)}
.studio-list li a{color:inherit;text-decoration:none}
.studio-list li a:hover{text-decoration:underline}
.studio-list li.is-clickable{cursor:pointer}
.studio-list li.is-clickable:hover{border-color:var(--green-dk)}
/* map */
.studios__map{height:clamp(360px,52vh,520px);border-radius:var(--radius);overflow:hidden;background:#e8ece9;box-shadow:0 12px 40px -24px rgba(30,25,15,.35);z-index:0}
.studios__map .leaflet-container{font-family:var(--sans)}
.ora-pin{filter:drop-shadow(0 4px 6px rgba(30,25,15,.35))}
.leaflet-popup-content{font-family:var(--sans);color:var(--ink);font-size:.95rem}
.leaflet-popup-content strong{color:var(--green)}

/* ---- clinical (icon features, matching real: no card borders) ---- */
.clinical{text-align:center}
.clinical h2{margin-bottom:2.6rem}
.clinical-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,2.5rem)}
.clinical-card{border:1px solid var(--line);border-radius:var(--radius);padding:2.2rem 1.9rem;text-align:left}
.clinical-card h3{font-family:var(--serif);color:var(--gold);font-weight:600;font-size:1.4rem;margin-bottom:.6rem}
.icon-feature{text-align:center;display:flex;flex-direction:column;align-items:center}
.icon-feature__icon{width:3.5rem;height:3.5rem;border-radius:1rem;background:var(--green-pale);display:flex;align-items:center;justify-content:center;padding:.7rem;margin-bottom:1.3rem}
.icon-feature__icon img{width:100%;height:100%}
.icon-feature h3{font-family:var(--sans);color:var(--ink);font-weight:600;font-size:1.35rem;margin-bottom:.7rem}
.icon-feature p{max-width:40ch}

/* ---- press (infinite marquee) ---- */
.press{text-align:center}
.press__inner{display:flex;align-items:center;gap:2.5rem}
.press__label{flex:none;font-weight:600;color:var(--ink);font-size:1rem}
.press h2{font-family:var(--sans);font-size:.9rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.14em;margin-bottom:2.2rem}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee__row{display:flex;gap:3.4rem;width:max-content;align-items:center;animation:marquee 60s linear infinite}
.marquee:hover .marquee__row{animation-play-state:paused}
.marquee__row img{height:24px;opacity:.55;filter:saturate(0);flex:none}
@keyframes marquee{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee__row{animation:none}}

/* ---- insurance (homepage: dark-green centered checker, matching real) ---- */
.insurance__inner{background:var(--green);border-radius:28px;padding:clamp(2.5rem,5vw,4.5rem) clamp(1.5rem,4vw,3rem);text-align:center}
.insurance__inner h2{color:#D9E8D5}
.insurance__sub{color:#fff;margin:.9rem auto 2.4rem;max-width:56ch}
.insurance__card{background:#fff;border-radius:var(--radius);max-width:820px;margin:0 auto;padding:clamp(2rem,4vw,3.2rem);display:flex;flex-direction:column;gap:2.4rem;text-align:left}
.insurance__field{display:flex;flex-direction:column;gap:.35rem;color:var(--muted);font-size:1rem;font-weight:400}
.insurance__field input,.insurance__field select{border:none;border-bottom:1px solid #9a958a;background:transparent;padding:.55rem 0;font:inherit;font-size:1.05rem;color:var(--ink);border-radius:0;width:100%}
.insurance__field input:focus,.insurance__field select:focus{outline:none;border-bottom-color:var(--green)}
.insurance__submit{align-self:center;margin-top:.4rem;font-family:var(--sans);font-weight:600;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:#b5b1a8;background:#EFEDE7;border:none;border-radius:999px;padding:1rem 2.8rem;cursor:not-allowed}
.insurance__fine{color:rgba(255,255,255,.75);font-size:.9rem;max-width:64ch;margin:1.8rem auto 0}
/* insurance/braces pages: blue split panel */
.insurance__panel{background:var(--blue);color:#fff;border-radius:28px;padding:clamp(2.2rem,4vw,3.6rem);display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3.5rem);align-items:center}
.insurance__copy h2{color:#fff}
.insurance__copy p{color:rgba(255,255,255,.9);margin-top:1rem}
.insurance__copy .fine{font-size:.85rem;color:rgba(255,255,255,.65)}
.insurance__form{background:#fff;border-radius:18px;padding:1.7rem;display:flex;flex-direction:column;gap:1rem}
.insurance__form label{display:flex;flex-direction:column;gap:.4rem;font-size:.8rem;font-weight:600;color:var(--ink)}
.insurance__form select,.insurance__form input{padding:.8rem .9rem;border:1.5px solid var(--line);border-radius:11px;font:inherit;font-size:.95rem;color:var(--ink)}
.insurance__form select:focus,.insurance__form input:focus{outline:none;border-color:var(--blue)}

/* ---- differently ---- */
.differently{background:#fff;text-align:center}
.differently h2{margin-bottom:2.6rem}
.diff-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem}
.diff-grid--icons{gap:clamp(1.5rem,3vw,2.5rem)}
.diff-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.9rem 1.5rem;text-align:left}
.diff-card h3{font-family:var(--serif);color:var(--gold);font-weight:600;font-size:1.25rem;margin-bottom:.5rem}
.diff-card p{font-size:.95rem}

/* ---- footer cta (real: full-width dark-green band above the footer) ---- */
.appcta{background:var(--green-dk);padding-bottom:clamp(2rem,4vw,3rem);border-radius:28px 28px 0 0}
.appcta__inner{display:flex;justify-content:space-between;align-items:center;gap:2.5rem;flex-wrap:wrap;text-align:left}
.appcta__copy{max-width:none;margin:0}
.appcta__copy h2{color:var(--green-light);font-size:clamp(2.3rem,4.5vw,3.4rem);max-width:22ch;margin-bottom:0}
.appcta__copy h2 em{font-style:italic;color:var(--lime)}
.appcta__copy p{color:#fff;margin:.9rem 0 0;font-size:1.05rem}
.appcta .btn{flex:none}

/* ---- shared full-bleed service hero (real full-hero_component) ---- */
.fullhero{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;align-items:center;min-height:48rem;padding:0}
.fullhero--small{min-height:32rem}
.fullhero__copy{width:100%;max-width:calc(var(--maxw)/2 + 2rem);margin-left:auto;padding:clamp(2.5rem,5vw,4rem) clamp(2rem,4vw,3.5rem) clamp(2.5rem,5vw,4rem) clamp(1.25rem,4vw,2rem)}
.fullhero__copy h1{margin-bottom:1.2rem}
.fullhero__copy .fullhero__sub p{font-size:1.08rem;color:var(--ink);max-width:44ch}
.fullhero__copy .fullhero__sub p+p{margin-top:1rem}
.fullhero__cta{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:2rem}
.fullhero__media{align-self:stretch;min-height:inherit;overflow:hidden;border-radius:20px 0 0 20px}
.fullhero__media img,.fullhero__media video{width:100%;height:100%;object-fit:cover;display:block;border-radius:0}
.btn--phone svg{width:1.35rem;height:1.35rem;flex:none}

/* ---- shared 2-col FAQ (real faq_component: H2 left, tinted borderless items right) ---- */
.faq-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(2rem,4vw,4rem);align-items:start}
.faq-grid>h2,.faq-head{position:sticky;top:9.5rem}
.faq-contact{margin-top:1.6rem;background:var(--tint);border-radius:var(--radius);padding:1.5rem 1.6rem}
.faq-contact h3{font-family:var(--sans);font-size:1.05rem;color:var(--ink);font-weight:600;margin-bottom:.25rem}
.faq-contact p{font-size:.95rem;margin-bottom:.9rem}
.faq-contact__links{display:flex;flex-direction:column;gap:.5rem}
.faq-contact__links a{color:var(--blue);font-weight:500;font-size:.95rem}
.faq-contact__links a:hover{text-decoration:underline}
.faq-items{display:flex;flex-direction:column;gap:1rem;min-width:0}
.faq-item{background:var(--tint);border:none;border-radius:var(--radius);overflow:hidden}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;font-family:var(--sans);font-weight:400;font-size:1.3rem;color:var(--ink)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::marker{content:""}
.faq-item summary::after{content:"+";flex:none;font-size:1.75rem;font-weight:300;line-height:1;color:var(--ink);transition:transform .2s ease}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item__body{padding:0 1.5rem 1.3rem}
.faq-item__body p{font-size:.98rem;color:var(--muted);margin-bottom:.8rem}
.faq-item__body p:last-child{margin-bottom:0}
.faq-item__body a{color:var(--blue)}

/* ---- shared lavender insurance CTA band (improved layout: copy left,
   insurer chips filling the right column) ---- */
.insband{background:var(--lavender);border-radius:24px;padding:clamp(2.5rem,5vw,4.25rem) clamp(1.25rem,5vw,3.5rem)}
.insband__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.insband__copy h2{color:var(--ink);max-width:24ch;margin-bottom:1rem}
.insband__copy p{color:var(--ink);margin:0 0 1.6rem;max-width:52ch}
.insband__chips{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.insband__chip{background:#fff;border-radius:16px;min-height:5.25rem;display:flex;align-items:center;justify-content:center;padding:1.25rem}
.insband__chip img{height:1.65rem;filter:invert(1)}
.insband__fine{color:var(--ink);opacity:.65;font-size:.9rem;margin-top:1.1rem;text-align:center}
@media(max-width:860px){.insband__grid{grid-template-columns:1fr}}

/* ---- shared reviews header (real: H2 left, bordered Google pill right) ---- */
.reviews__head--row{flex-direction:row;justify-content:space-between;align-items:center;text-align:left}
.reviews__gpill{display:flex;align-items:center;gap:.9rem;border:1px solid var(--line);border-radius:1rem;padding:.8rem 1.2rem}
.reviews__gpill img{height:30px}
.reviews__gpill div{display:flex;flex-direction:column}
.reviews__gpill strong{font-weight:600;color:var(--ink);font-size:.95rem}
.reviews__gpill span{color:var(--muted);font-size:.85rem}

/* ---- footer ---- */
.footer{background:var(--green-dk);color:#fff;padding:clamp(3rem,5vw,4.5rem) clamp(1.25rem,5vw,3.5rem) 2rem;border-radius:28px 28px 0 0}
.appcta+.footer{border-radius:0}
.footer__grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:2rem}
.footer__brand img{height:26px;margin-bottom:1rem}
.footer__brand p{color:rgba(255,255,255,.75);max-width:22ch}
.footer__app{display:flex;align-items:center;gap:.8rem;margin-top:1.6rem}
.footer__app span{color:rgba(255,255,255,.75);font-size:.85rem;max-width:14ch}
.footer__app img{height:64px;width:64px;margin-bottom:0;background:#fff;border-radius:8px;padding:.3rem}
.footer__col h4{font-family:var(--sans);color:#fff;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:1rem}
.footer__col a{display:block;color:rgba(255,255,255,.78);font-size:.92rem;padding:.28rem 0}
.footer__col a:hover{text-decoration:underline}
.footer__socials{max-width:var(--maxw);margin:2.5rem auto 0;display:flex;gap:1rem}
.footer__social-link{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;color:#fff;transition:background-color .2s ease}
.footer__social-link:hover{background:rgba(255,255,255,.22)}
.footer__col-nested{margin-bottom:.6rem}
.footer__col-nested h5{font-family:var(--sans);color:rgba(255,255,255,.55);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.2rem}
.footer__col-socials{display:flex;gap:.6rem;margin-top:.3rem}
.footer__col-socials .footer__social-link{width:30px;height:30px}
.footer__col-socials .footer__social-link svg{width:15px;height:15px}
.footer__bar{max-width:var(--maxw);margin:1.4rem auto 0;padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.2);display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.82rem;color:rgba(255,255,255,.7)}
.footer__bar nav{display:flex;gap:1.4rem}
.footer__bar a:hover{text-decoration:underline}
.footer__trademark{max-width:var(--maxw);margin:1.4rem auto 0;font-size:.72rem;color:rgba(255,255,255,.45);line-height:1.5}

/* ---- auto carousel (services) ---- */
.svc-row.is-auto{overflow:hidden;scroll-snap-type:none}
.svc-track{display:flex;gap:1.4rem;width:max-content}
.svc-row.is-auto .svc-track{animation:marquee var(--svc-dur,50s) linear infinite}
.svc-row.is-auto:hover .svc-track{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.svc-row.is-auto .svc-track{animation:none}}

/* No hover lift/shadow here — confirmed against the real site's CSS that
   plain content cards (services, feature, clinical, diff) have no hover
   effect at all. The only real card hover anywhere on the site is a subtle
   border-color change on studio cards (.studio-list li.is-clickable:hover). */

/* ---- responsive ---- */
@media(max-width:900px){
  .hero{grid-template-columns:1fr}
  .hero__media{order:-1}
  .clinical-grid{grid-template-columns:1fr}
  .diff-grid{grid-template-columns:repeat(2,1fr)}
  .mouth-row,.mouth-row--reversed{grid-template-columns:1fr}
  .studios__inner{grid-template-columns:1fr}
  .studio-cards ~ .studios__map{min-height:380px}
  .insurance__panel{grid-template-columns:1fr}
  .fullhero{grid-template-columns:1fr;min-height:0}
  .fullhero__media{order:-1;min-height:320px}
  .fullhero__copy{margin-left:0;max-width:none;padding:2rem 1.5rem}
  .faq-grid{grid-template-columns:1fr}
  .faq-grid>h2,.faq-head{position:static}
  .reviews__head--row{flex-direction:column;text-align:center}
  .footer__grid{grid-template-columns:1fr 1fr}
  .announce{display:none}
  .nav{top:.75rem;border-radius:24px}
  body{padding-top:6.75rem}
  .burger{display:flex}
  .nav__links{display:none}
  .nav.is-menu-open{border-radius:24px 24px 0 0}
  .nav.is-menu-open .nav__links{display:flex;flex-direction:column;align-items:stretch;gap:.25rem;position:absolute;top:100%;left:0;right:0;margin:0;background:#fff;border-radius:0 0 24px 24px;box-shadow:0 16px 28px -16px rgba(30,25,15,.3);padding:.5rem 1rem 1.25rem;max-height:calc(100vh - 8rem);overflow-y:auto}
  .nav.is-menu-open .nav__dd{width:100%}
  .nav.is-menu-open .nav__dd-toggle,.nav.is-menu-open .nav__link{width:100%;justify-content:space-between;text-align:left}
  .nav.is-menu-open .nav__dd-panel{position:static;transform:none;width:100% !important;min-width:0;box-shadow:none;animation:none;padding:.25rem 0 .75rem;flex-direction:column}
  .nav.is-menu-open .nav__dd-panel--wide,.nav.is-menu-open .nav__dd-panel--grid{display:none}
  .nav.is-menu-open .nav__dd.is-open .nav__dd-panel--wide{display:flex;flex-direction:column}
  .nav.is-menu-open .nav__dd.is-open .nav__dd-panel--grid{display:grid;grid-template-columns:1fr}
  .nav.is-menu-open .nav__dd-featured{display:none}
}
@media(max-width:560px){
  .diff-grid,.footer__grid{grid-template-columns:1fr}
  .section-head{flex-direction:column;align-items:flex-start}
  .svc-card{flex-basis:78vw}
  .review{flex-basis:82vw}
}
