:root {
  --paper: #f6faf8; --cream: #f5f1e8; --white: #fff; --ink: #102f3d; --navy: #0d3547;
  --teal: #0a938b; --teal-dark: #08746f; --aqua: #bce6df; --mint: #e5f3ef; --coral: #ef836c;
  --muted: #60757c; --line: rgba(16,47,61,.13); --shadow: 0 28px 80px rgba(13,53,71,.12);
  --radius: 28px; --header: 82px; --ease: cubic-bezier(.22,1,.36,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header) + 20px); }
body { margin: 0; overflow-x: clip; color: var(--ink); background: var(--paper); font-family: "Aptos", "Segoe UI", Arial, sans-serif; line-height: 1.55; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
body.menu-open .site-header { color: var(--ink); background: rgba(246,250,248,.98); border-color: var(--line); }
body.menu-open .site-header .brand-mark { color: var(--teal); }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; font: inherit; }
a:focus-visible, button:focus-visible { outline: 3px solid rgba(10,147,139,.35); outline-offset: 4px; }
h1,h2,h3,p,blockquote,figure { margin-top: 0; }
h1,h2,h3 { text-wrap: balance; }
.skip-link { position: fixed; z-index: 1000; top: 12px; left: 12px; padding: 11px 16px; border-radius: 12px; background: white; transform: translateY(-180%); box-shadow: var(--shadow); }
.skip-link:focus { transform: none; }
.section { padding: clamp(88px, 10vw, 150px) clamp(20px, 5vw, 72px); }
.section-shell { width: min(1240px, 100%); margin-inline: auto; }

/* Intro */
.intro { position: fixed; z-index: 999; inset: 0; pointer-events: none; visibility: hidden; }
.js .intro { visibility: visible; }
.intro-stage { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; color: white; }
.intro-stage-one { z-index: 2; background: var(--navy); animation: introOne 2s var(--ease) both; }
.intro-stage-two { z-index: 1; background: var(--paper); color: var(--navy); animation: introTwo 3.5s var(--ease) both; }
.intro-brand { position: relative; z-index: 2; display: flex; align-items: center; gap: 18px; text-transform: uppercase; animation: brandPulse 1.6s var(--ease) both; }
.intro-brand strong,.intro-brand small { display: block; letter-spacing: .09em; }
.intro-brand strong { font-size: clamp(1rem, 2vw, 1.4rem); }
.intro-brand small { margin-top: 3px; color: var(--aqua); font-size: .75rem; letter-spacing: .28em; }
.intro-orbit { position: absolute; width: min(68vw, 700px); aspect-ratio: 1; border: 1px solid rgba(188,230,223,.2); border-radius: 50%; animation: orbitSpin 8s linear infinite; }
.intro-orbit::before,.intro-orbit::after { position: absolute; border: 1px solid rgba(188,230,223,.13); border-radius: 50%; content:""; }
.intro-orbit::before { inset: 12%; }.intro-orbit::after { inset: 27%; }
.intro-stage-two::before { position: absolute; inset: 0; background: radial-gradient(circle at 50% 50%, white, transparent 40%), linear-gradient(115deg, transparent 42%, rgba(10,147,139,.08) 43%, transparent 44%); content:""; }
.intro-stage-two small { position: absolute; bottom: 15%; color: var(--teal); font-size: .68rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; animation: fadeInOut 1.4s 1.95s both; }
.intro-tooth { position: relative; width: 48px; height: 58px; border: 2px solid var(--teal); border-radius: 55% 55% 38% 38%; clip-path: polygon(0 0,100% 0,100% 70%,75% 100%,50% 78%,25% 100%,0 70%); animation: fadeInOut 1.4s 1.95s both; }
.intro-line { position: absolute; width: 100%; height: 2px; background: linear-gradient(90deg,transparent,var(--teal),white,var(--teal),transparent); box-shadow: 0 0 22px var(--teal); animation: scanLine 1.35s 2s var(--ease) both; }
@keyframes introOne { 0%,72%{clip-path:inset(0)} 100%{clip-path:inset(0 0 100%)} }
@keyframes introTwo { 0%,54%{clip-path:inset(100% 0 0)} 72%{clip-path:inset(0)} 100%{clip-path:inset(0 0 100%)} }
@keyframes brandPulse { 0%{opacity:0;transform:scale(.94)} 35%,75%{opacity:1;transform:none} 100%{opacity:0;transform:translateY(-12px)} }
@keyframes scanLine { from{opacity:0;transform:translateY(-35vh)} 20%{opacity:1} to{opacity:0;transform:translateY(35vh)} }
@keyframes fadeInOut { 0%,100%{opacity:0;transform:scale(.8)} 30%,75%{opacity:1;transform:none} }
@keyframes orbitSpin { to{transform:rotate(360deg)} }

/* Header */
.scroll-progress { position: fixed; z-index: 100; inset: 0 0 auto; height: 3px; }
.scroll-progress span { display: block; width: 100%; height: 100%; background: linear-gradient(90deg,var(--teal),#73d7cc); transform: scaleX(0); transform-origin: left; }
.site-header { position: fixed; z-index: 90; inset: 0 0 auto; height: var(--header); display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 0 clamp(20px,4.5vw,68px); color: white; border-bottom: 1px solid rgba(255,255,255,.16); transition: height .4s var(--ease),background .4s,box-shadow .4s,color .4s; }
.site-header.is-scrolled,.site-header.solid-header { height: 70px; color: var(--ink); background: rgba(246,250,248,.9); border-color: var(--line); box-shadow: 0 12px 50px rgba(13,53,71,.09); backdrop-filter: blur(20px); }
.brand { display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; text-transform: uppercase; }
.brand-mark { position: relative; width: 42px; height: 46px; flex: 0 0 auto; border: 1.5px solid currentColor; border-radius: 55% 55% 38% 38%; clip-path: polygon(0 0,100% 0,100% 70%,75% 100%,50% 78%,25% 100%,0 70%); color: var(--aqua); }
.site-header.is-scrolled .brand-mark,.site-header.solid-header .brand-mark { color: var(--teal); }
.brand-mark::before { position:absolute; top:10px; left:50%; width:10px; height:10px; border:1px solid currentColor; border-radius:50%; content:""; transform:translateX(-50%); }
.brand-mark-large { width: 54px; height: 60px; }
.brand strong,.brand small { display:block; line-height:1.1; }
.brand strong { font-size:.82rem; letter-spacing:.09em; }
.brand small { margin-top:5px; font-size:.61rem; font-weight:600; letter-spacing:.13em; opacity:.72; }
.main-nav { display:flex; align-items:center; gap: clamp(14px,2vw,30px); font-size:.83rem; font-weight:600; }
.main-nav > a:not(.nav-cta) { position:relative; padding:10px 0; opacity:.86; }
.main-nav > a:not(.nav-cta)::after { position:absolute; right:0; bottom:5px; left:0; height:1px; background:currentColor; content:""; transform:scaleX(0); transform-origin:right; transition:transform .35s var(--ease); }
.main-nav > a:hover::after { transform:scaleX(1); transform-origin:left; }
.nav-cta { display:inline-flex; align-items:center; gap:12px; min-height:44px; padding:0 18px; border-radius:100px; color:var(--navy); background:white; }
.site-header.is-scrolled .nav-cta,.site-header.solid-header .nav-cta { color:white; background:var(--teal); }
.menu-toggle { display:none; width:46px; height:46px; border:1px solid currentColor; border-radius:50%; background:transparent; cursor:pointer; }
.menu-toggle span { display:block; width:18px; height:1.5px; margin:4px auto; background:currentColor; transition:.3s; }

/* Hero */
.hero { position:relative; min-height:100svh; display:grid; align-items:end; overflow:hidden; padding:calc(var(--header) + 70px) clamp(20px,5vw,72px) 82px; color:white; background:var(--navy); isolation:isolate; }
.hero-picture,.hero-media,.hero-wash { position:absolute; inset:0; width:100%; height:100%; }
.hero-picture { z-index:-3; }.hero-media { object-fit:cover; object-position:center; scale:1.04; }
.hero-wash { z-index:-2; background:linear-gradient(90deg,rgba(7,39,54,.95) 0%,rgba(7,39,54,.78) 42%,rgba(7,39,54,.15) 78%),linear-gradient(0deg,rgba(7,39,54,.6),transparent 45%); }
.hero::after { position:absolute; z-index:-1; inset:0; background:linear-gradient(115deg,transparent 55%,rgba(188,230,223,.1)); content:""; }
.hero-shell { width:min(1370px,100%); margin-inline:auto; display:grid; grid-template-columns:minmax(0,1.12fr) minmax(300px,390px); gap:clamp(36px,8vw,130px); align-items:end; }
.hero-copy { max-width:820px; }
.eyebrow { display:flex; align-items:center; gap:10px; margin-bottom:20px; color:var(--teal-dark); font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.eyebrow > span { width:32px; height:1px; background:currentColor; }
.hero .eyebrow { color:var(--aqua); }
.hero h1 { margin-bottom:26px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(3.2rem,6.8vw,7rem); font-weight:400; line-height:.95; letter-spacing:-.045em; }
.hero h1 em { color:var(--aqua); font-style:normal; }
.hero-lead { max-width:680px; margin-bottom:30px; color:rgba(255,255,255,.76); font-size:clamp(1rem,1.35vw,1.2rem); }
.button-row { display:flex; flex-wrap:wrap; gap:12px; }
.button { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:54px; padding:0 23px; overflow:hidden; border:1px solid transparent; border-radius:100px; font-size:.88rem; font-weight:700; transition:transform .3s var(--ease),background .3s,color .3s,box-shadow .3s; }
.button:hover { transform:translateY(-3px); }
.button-primary { color:white; background:var(--teal); box-shadow:0 18px 42px rgba(10,147,139,.25); }
.button-primary::before { position:absolute; inset:-2px; background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.32) 50%,transparent 70%); content:""; transform:translateX(-120%); transition:transform .8s; }
.button-primary:hover::before { transform:translateX(120%); }
.button-ghost { border-color:rgba(255,255,255,.34); color:white; background:rgba(255,255,255,.08); backdrop-filter:blur(10px); }
.button-light { color:var(--navy); background:white; }
.button-large { min-height:62px; padding-inline:28px; }
.wa-dot { width:8px; height:8px; border-radius:50%; background:#83efbe; box-shadow:0 0 0 6px rgba(131,239,190,.12); }
.hero-proof { display:flex; align-items:center; gap:9px; margin-top:26px; font-size:.8rem; }
.proof-stars { color:#ffd58a; letter-spacing:.08em; }.hero-proof span { color:rgba(255,255,255,.58); }
.hero-panel { border:1px solid rgba(255,255,255,.2); border-radius:24px; padding:12px; background:rgba(246,250,248,.11); box-shadow:0 30px 90px rgba(0,0,0,.22); backdrop-filter:blur(22px); }
.panel-top { display:flex; justify-content:space-between; gap:10px; padding:10px 10px 16px; color:rgba(255,255,255,.64); font-size:.65rem; letter-spacing:.11em; text-transform:uppercase; }
.status-dot { color:#9ce6cd; }.status-dot::before { display:inline-block; width:6px; height:6px; margin-right:6px; border-radius:50%; background:#70d8b1; content:""; }
.hero-panel > a { display:grid; grid-template-columns:28px 1fr auto; gap:12px; align-items:center; padding:14px 12px; border-top:1px solid rgba(255,255,255,.13); transition:background .3s,border-radius .3s; }
.hero-panel > a:hover { border-radius:12px; background:rgba(255,255,255,.08); }
.hero-panel > a > span { color:var(--aqua); font-size:.68rem; }.hero-panel small,.hero-panel strong { display:block; }.hero-panel small { color:rgba(255,255,255,.58); font-size:.67rem; }.hero-panel strong { margin-top:2px; font-size:.83rem; }.hero-panel b { font-weight:400; opacity:.55; }
.hero-orbit { position:absolute; z-index:-1; border:1px solid rgba(188,230,223,.15); border-radius:50%; }
.orbit-one { width:32vw; aspect-ratio:1; top:4%; right:-10%; }.orbit-two { width:16vw; aspect-ratio:1; top:18%; right:-2%; }
.hero-scroll { position:absolute; right:clamp(20px,5vw,72px); bottom:24px; display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.48); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; }
.hero-scroll span { position:relative; width:42px; height:1px; overflow:hidden; background:rgba(255,255,255,.22); }.hero-scroll span::after { position:absolute; inset:0; background:white; content:""; animation:scrollLine 2s infinite; }
@keyframes scrollLine { from{transform:translateX(-100%)} to{transform:translateX(100%)} }

/* Trust + headings */
.trust-strip { display:grid; grid-template-columns:repeat(4,1fr); background:white; border-bottom:1px solid var(--line); }
.trust-strip > div { display:flex; align-items:center; gap:16px; min-height:112px; padding:22px clamp(18px,3vw,44px); border-right:1px solid var(--line); }
.trust-strip > div:last-child { border:0; }.trust-icon { display:grid; place-items:center; width:38px; height:38px; flex:0 0 auto; border:1px solid var(--line); border-radius:50%; color:var(--teal); font-size:.65rem; }.trust-strip p { margin:0; }.trust-strip strong,.trust-strip small { display:block; }.trust-strip strong { font-size:.9rem; }.trust-strip small { margin-top:2px; color:var(--muted); font-size:.74rem; }
.section-heading { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(280px,.65fr); gap:clamp(30px,8vw,130px); align-items:end; margin-bottom:55px; }
.section-heading h2,.process h2,.reviews h2,.contact h2,.final-cta h2,.legal-hero h1 { margin-bottom:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(2.7rem,5vw,5.4rem); font-weight:400; line-height:1.02; letter-spacing:-.04em; }
.section-heading > p { max-width:490px; margin:0; color:var(--muted); font-size:1.02rem; }

/* Treatments */
.treatments { background:var(--paper); }
.treatment-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:16px; }
.treatment-card { position:relative; min-height:340px; grid-column:span 4; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; padding:28px; border:1px solid var(--line); border-radius:var(--radius); background:white; box-shadow:0 15px 50px rgba(13,53,71,.05); transition:transform .5s var(--ease),box-shadow .5s,border-color .5s; }
.treatment-card:hover { transform:translateY(-7px); border-color:rgba(10,147,139,.3); box-shadow:var(--shadow); }
.treatment-feature { grid-column:span 8; background:linear-gradient(120deg,#e9f5f2,white); }
.treatment-feature::after { position:absolute; top:-40%; right:-8%; width:50%; aspect-ratio:1; border:1px solid rgba(10,147,139,.14); border-radius:50%; content:""; }
.treatment-family { grid-column:span 8; background:var(--cream); }
.treatment-teal { color:white; background:var(--teal); }.treatment-teal p,.treatment-teal .duration { color:rgba(255,255,255,.75); }.treatment-teal .card-link { border-color:rgba(255,255,255,.25); }
.card-index { position:absolute; top:28px; right:28px; color:var(--muted); font-size:.67rem; letter-spacing:.14em; }
.treatment-teal .card-index { color:rgba(255,255,255,.55); }
.line-icon { width:50px; height:50px; border:1px solid currentColor; border-radius:50%; opacity:.75; }
.line-icon::before { display:block; width:18px; height:18px; margin:15px; border:1px solid currentColor; border-radius:50%; content:""; }
.icon-spark::before { border-radius:2px; transform:rotate(45deg) scale(.7); }.icon-align::before { border-radius:50% 50% 40% 40%; }.icon-smile::before { border-width:0 0 1px; border-radius:0 0 50% 50%; }.icon-cross::before { border-radius:0; clip-path:polygon(37% 0,63% 0,63% 37%,100% 37%,100% 63%,63% 63%,63% 100%,37% 100%,37% 63%,0 63%,0 37%,37% 37%); background:currentColor; }.icon-family::before { box-shadow:10px 7px 0 -3px currentColor; }
.treatment-card h3 { margin-bottom:10px; font-family:"Manrope",sans-serif; font-size:clamp(1.45rem,2.2vw,2rem); font-weight:500; letter-spacing:-.035em; }.treatment-card p { max-width:560px; margin-bottom:14px; color:var(--muted); }.card-label { color:var(--teal)!important; font-size:.68rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }.duration { display:inline-block; color:var(--teal-dark); font-size:.73rem; font-weight:700; }.card-link { display:flex; justify-content:space-between; align-items:center; margin-top:24px; padding-top:17px; border-top:1px solid var(--line); font-size:.78rem; font-weight:700; }.card-link span { transition:transform .3s; }.card-link:hover span { transform:translate(3px,-3px); }

/* Process */
.process { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-height:900px; color:white; background:var(--navy); }
.process-media { position:sticky; top:0; height:100vh; min-height:700px; overflow:hidden; }
.process-media::after { position:absolute; inset:0; background:linear-gradient(0deg,rgba(7,39,54,.76),transparent 55%); content:""; }
.process-media img { width:100%; height:112%; object-fit:cover; }
.media-caption { position:absolute; z-index:2; left:clamp(24px,5vw,72px); bottom:56px; }.media-caption span { display:block; margin-bottom:8px; color:var(--aqua); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; }.media-caption strong { font-family:"Manrope"; font-size:clamp(1.8rem,3vw,3rem); font-weight:400; line-height:1.05; }
.media-badge { position:absolute; z-index:2; top:13%; right:8%; display:grid; place-items:center; width:112px; aspect-ratio:1; border:1px solid rgba(255,255,255,.35); border-radius:50%; color:white; background:rgba(13,53,71,.2); font-size:.67rem; font-weight:700; letter-spacing:.08em; text-align:center; text-transform:uppercase; backdrop-filter:blur(12px); }
.process-copy { padding:clamp(80px,9vw,145px) clamp(24px,7vw,105px); }.process-copy header > p:last-child { max-width:570px; margin-top:25px; color:rgba(255,255,255,.66); }.eyebrow-light { color:var(--aqua); }
.timeline { position:relative; margin:60px 0 0; padding:0; list-style:none; }.timeline::before { position:absolute; top:18px; bottom:18px; left:20px; width:1px; background:rgba(255,255,255,.15); content:""; }.timeline::after { position:absolute; top:18px; left:20px; width:1px; height:var(--timeline-progress,0%); background:var(--aqua); content:""; transition:height .25s linear; }
.timeline li { position:relative; z-index:1; display:grid; grid-template-columns:42px 1fr; gap:22px; padding-bottom:34px; }.timeline li:last-child { padding-bottom:0; }.step-number { display:grid; place-items:center; width:42px; height:42px; border:1px solid rgba(255,255,255,.25); border-radius:50%; color:rgba(255,255,255,.7); background:var(--navy); font-size:.64rem; transition:.4s; }.timeline li.is-active .step-number { color:var(--navy); border-color:var(--aqua); background:var(--aqua); box-shadow:0 0 0 7px rgba(188,230,223,.08); }.timeline h3 { margin:4px 0 5px; font-family:"Manrope"; font-size:1.08rem; font-weight:500; }.timeline p { margin:0; color:rgba(255,255,255,.58); font-size:.9rem; }

/* Gallery */
.clinic { background:linear-gradient(180deg,var(--cream),var(--paper)); }
.gallery-grid { display:grid; grid-template-columns:1.35fr .75fr .75fr; grid-template-rows:auto auto; gap:18px; }
.gallery-item { overflow:hidden; border-radius:var(--radius); background:white; box-shadow:0 14px 45px rgba(13,53,71,.07); }.gallery-wide { grid-column:span 2; }.gallery-tall { grid-row:span 2; }.gallery-small { grid-column:2; }.image-wrap { overflow:hidden; }.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }.gallery-item:hover img { transform:scale(1.035); }.gallery-wide .image-wrap { height:480px; }.gallery-tall .image-wrap { height:700px; }.gallery-small .image-wrap { height:280px; }
.gallery-item figcaption { display:flex; gap:14px; align-items:center; padding:19px 22px; }.gallery-item figcaption > span { color:var(--teal); font-size:.64rem; }.gallery-item strong,.gallery-item small { display:block; }.gallery-item strong { font-size:.9rem; }.gallery-item small { color:var(--muted); font-size:.7rem; }
.gallery-quote { display:flex; flex-direction:column; justify-content:space-between; min-height:340px; padding:30px; border:1px solid var(--line); border-radius:var(--radius); color:white; background:var(--teal); }.quote-mark { color:var(--aqua); font-family:serif; font-size:4rem; line-height:.7; }.gallery-quote p { margin:auto 0; font-family:"Manrope"; font-size:clamp(1.4rem,2.2vw,2rem); line-height:1.15; }.micro-line { width:44px; height:1px; background:rgba(255,255,255,.6); }

/* Reviews */
.reviews { color:white; background:var(--navy); }
.reviews-head { display:flex; justify-content:space-between; gap:40px; align-items:end; margin-bottom:55px; }.reviews-head > div:first-child { max-width:760px; }.rating-badge { display:flex; align-items:center; gap:18px; flex:0 0 auto; padding:20px 24px; border:1px solid rgba(255,255,255,.16); border-radius:20px; background:rgba(255,255,255,.07); }.rating-badge > strong { font-family:"Manrope"; font-size:3.2rem; font-weight:400; line-height:1; }.rating-badge span,.rating-badge small { display:block; }.rating-badge span { color:#ffd58a; letter-spacing:.08em; }.rating-badge small { margin-top:3px; color:rgba(255,255,255,.5); font-size:.7rem; }
.review-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.review-card { min-height:380px; display:flex; flex-direction:column; justify-content:space-between; padding:28px; border:1px solid rgba(255,255,255,.13); border-radius:var(--radius); background:rgba(255,255,255,.055); transition:transform .45s var(--ease),background .45s; }.review-card:hover { transform:translateY(-6px); background:rgba(255,255,255,.09); }.review-top { display:flex; justify-content:space-between; gap:15px; }.review-top span { color:#ffd58a; letter-spacing:.1em; font-size:.75rem; }.review-top small { color:rgba(255,255,255,.46); }.review-card blockquote { margin:45px 0; font-family:"Manrope"; font-size:clamp(1.25rem,1.8vw,1.7rem); font-weight:400; line-height:1.3; }.review-card footer { display:flex; align-items:center; gap:13px; padding-top:18px; border-top:1px solid rgba(255,255,255,.12); }.review-card footer > span { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; color:var(--navy); background:var(--aqua); font-size:.68rem; font-weight:700; }.review-card footer strong,.review-card footer small { display:block; }.review-card footer strong { font-size:.82rem; }.review-card footer small { color:rgba(255,255,255,.46); font-size:.68rem; }

/* Contact */
.contact { padding:clamp(88px,10vw,150px) clamp(20px,5vw,72px); background:var(--mint); }.contact-shell { width:min(1240px,100%); display:grid; grid-template-columns:.9fr 1.1fr; gap:18px; margin:auto; }.contact-copy { grid-row:span 2; display:flex; flex-direction:column; justify-content:center; padding:clamp(35px,5vw,70px); border-radius:var(--radius); background:white; box-shadow:0 20px 65px rgba(13,53,71,.08); }.contact-copy h2 { margin-bottom:24px; }.contact-copy > p:not(.eyebrow) { color:var(--muted); }.contact-copy > .button { align-self:flex-start; margin:17px 0 36px; }.contact-direct { display:grid; gap:0; border-top:1px solid var(--line); }.contact-direct a { display:flex; justify-content:space-between; gap:20px; padding:17px 0; border-bottom:1px solid var(--line); }.contact-direct small { color:var(--muted); }.contact-direct strong { font-size:.86rem; }
.map-card { position:relative; min-height:405px; overflow:hidden; border-radius:var(--radius); color:white; background:#cae5df; box-shadow:0 20px 65px rgba(13,53,71,.08); }.map-graphic { position:absolute; inset:0; background:linear-gradient(90deg,rgba(13,53,71,.09) 1px,transparent 1px),linear-gradient(rgba(13,53,71,.09) 1px,transparent 1px),radial-gradient(circle at 65% 35%,white,transparent 34%),#d8ebe7; background-size:55px 55px,55px 55px,100% 100%,auto; }.route { position:absolute; display:block; height:9px; border:2px solid var(--teal); border-width:2px 0 0; border-radius:50%; }.route-one { width:75%; top:50%; left:-8%; transform:rotate(18deg); }.route-two { width:55%; top:34%; right:-6%; transform:rotate(-45deg); }.map-pin-dot { position:absolute; top:37%; left:57%; display:grid; place-items:center; width:42px; height:42px; border-radius:50% 50% 50% 0; background:var(--teal); transform:rotate(-45deg); box-shadow:0 12px 35px rgba(10,147,139,.35); animation:pinFloat 2.5s ease-in-out infinite; }.map-pin-dot i { width:10px; height:10px; border-radius:50%; background:white; }.map-label { position:absolute; top:33%; left:calc(57% + 52px); color:var(--navy); font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }.map-info { position:absolute; right:18px; bottom:18px; left:18px; display:flex; align-items:end; justify-content:space-between; gap:20px; padding:20px; border:1px solid rgba(255,255,255,.42); border-radius:19px; color:var(--ink); background:rgba(255,255,255,.85); backdrop-filter:blur(16px); }.map-info small,.map-info strong { display:block; }.map-info small { color:var(--muted); }.map-info a { color:var(--teal-dark); font-size:.78rem; font-weight:700; }.availability { position:absolute; top:18px; left:18px; padding:9px 13px; border-radius:100px; color:var(--ink); background:rgba(255,255,255,.84); font-size:.67rem; font-weight:700; }.availability i { display:inline-block; width:7px; height:7px; margin-right:7px; border-radius:50%; background:#39aa79; }
@keyframes pinFloat { 50%{transform:rotate(-45deg) translate(4px,-4px)} }
.hours-card { padding:28px; border:1px solid var(--line); border-radius:var(--radius); background:rgba(255,255,255,.78); }.hours-head { display:flex!important; justify-content:space-between; align-items:start!important; border:0!important; padding:0 0 12px!important; }.hours-head .eyebrow { margin:0; }.hours-head small { color:var(--muted); }.hours-card > div { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:12px 0; border-top:1px solid var(--line); }.hours-card span { color:var(--muted); font-size:.8rem; }.hours-card strong { font-size:.78rem; text-align:right; }

/* Final and footer */
.final-cta { position:relative; display:grid; place-items:center; min-height:630px; overflow:hidden; padding:90px 20px; color:white; text-align:center; background:linear-gradient(135deg,#0a7c77,var(--navy)); }.final-cta::before { position:absolute; inset:0; background:radial-gradient(circle at 20% 10%,rgba(188,230,223,.25),transparent 30%),linear-gradient(110deg,transparent 45%,rgba(255,255,255,.05) 45.5%,transparent 46%); content:""; }.final-cta > div { position:relative; z-index:2; }.final-cta .eyebrow { justify-content:center; }.final-cta h2 { margin-bottom:18px; font-size:clamp(3.3rem,7vw,7.5rem); }.final-cta p { margin-bottom:30px; color:rgba(255,255,255,.68); }.cta-orbit { position:absolute; width:min(65vw,700px); aspect-ratio:1; border:1px solid rgba(255,255,255,.1); border-radius:50%; }.cta-orbit::before,.cta-orbit::after { position:absolute; border:1px solid rgba(255,255,255,.09); border-radius:50%; content:""; }.cta-orbit::before { inset:14%; }.cta-orbit::after { inset:30%; }
.site-footer { display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:50px; padding:65px clamp(20px,5vw,72px) 30px; color:rgba(255,255,255,.68); background:#082633; }.site-footer .brand { color:white; }.site-footer .brand-mark { color:var(--aqua); }.site-footer p { max-width:300px; margin:20px 0 0; font-size:.8rem; }.site-footer > div:not(.footer-brand) { display:flex; flex-direction:column; gap:9px; }.site-footer > div > strong { margin-bottom:8px; color:white; font-size:.7rem; letter-spacing:.13em; text-transform:uppercase; }.site-footer > div > a:not(.brand) { font-size:.78rem; transition:color .2s; }.site-footer > div > a:hover { color:white; }.footer-bottom { grid-column:1/-1; max-width:none!important; margin:20px 0 0!important; padding-top:25px; border-top:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.42); }
.mobile-cta { display:none; }

/* Legal */
.legal-main { min-height:100vh; background:var(--paper); }.legal-hero { padding:calc(var(--header) + 95px) clamp(20px,5vw,72px) 95px; color:white; background:linear-gradient(125deg,var(--navy),#0a716e); }.legal-hero-inner,.legal-layout { width:min(1160px,100%); margin:auto; }.legal-hero p:not(.eyebrow) { max-width:700px; margin:24px 0 0; color:rgba(255,255,255,.72); }.legal-content { padding:80px clamp(20px,5vw,72px) 120px; }.legal-layout { display:grid; grid-template-columns:260px 1fr; gap:45px; align-items:start; }.legal-index { position:sticky; top:100px; padding:22px; border:1px solid var(--line); border-radius:20px; background:white; }.legal-index strong { display:block; margin-bottom:14px; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; }.legal-index a { display:block; padding:9px 0; color:var(--muted); font-size:.8rem; border-top:1px solid var(--line); }.legal-card { padding:clamp(28px,5vw,55px); border:1px solid var(--line); border-radius:var(--radius); background:white; box-shadow:0 18px 55px rgba(13,53,71,.05); }.legal-card + .legal-card { margin-top:18px; }.legal-card h2 { margin-bottom:20px; font-family:"Manrope"; font-size:clamp(2rem,3.5vw,3.5rem); font-weight:400; letter-spacing:-.045em; }.legal-card p { color:var(--muted); }.legal-card p:last-child { margin-bottom:0; }

/* Motion enhancement */
.js .reveal { opacity:0; transform:translateY(35px); transition:opacity .8s var(--ease),transform .8s var(--ease); }.js .reveal.is-visible { opacity:1; transform:none; }.js .stagger-group .reveal:nth-child(2){transition-delay:.08s}.js .stagger-group .reveal:nth-child(3){transition-delay:.16s}.js .stagger-group .reveal:nth-child(4){transition-delay:.08s}.js .stagger-group .reveal:nth-child(5){transition-delay:.16s}.js .stagger-group .reveal:nth-child(6){transition-delay:.24s}
.js .hero-reveal { opacity:0; transform:translateY(25px); transition:opacity .9s var(--ease),transform .9s var(--ease); }.js body.intro-done .hero-reveal { opacity:1; transform:none; }.js body.intro-done .hero-reveal:nth-child(2){transition-delay:.1s}.js body.intro-done .hero-reveal:nth-child(3){transition-delay:.2s}.js body.intro-done .hero-reveal:nth-child(4){transition-delay:.3s}.js body.intro-done .hero-reveal:nth-child(5){transition-delay:.4s}

@media (max-width: 1060px) {
  .menu-toggle { display:block; }
  .main-nav { position:fixed; z-index:-1; inset:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:6px; padding:100px 28px 35px; color:var(--ink); background:rgba(246,250,248,.98); visibility:hidden; opacity:0; transform:translateY(-15px); transition:opacity .35s,transform .35s,visibility .35s; }
  .main-nav.is-open { visibility:visible; opacity:1; transform:none; }.main-nav > a:not(.nav-cta) { display:block; padding:9px 0; font-family:"Manrope"; font-size:clamp(1.5rem,7vw,2.2rem); font-weight:500; }.main-nav .nav-cta { width:100%; justify-content:center; margin-top:20px; color:white; background:var(--teal); }
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
  .hero-shell { grid-template-columns:1fr 340px; gap:35px; }.hero h1 { font-size:clamp(3.2rem,7vw,5.7rem); }
  .treatment-card { grid-column:span 6; }.treatment-feature,.treatment-family { grid-column:span 12; }
  .gallery-grid { grid-template-columns:1fr 1fr; }.gallery-tall { grid-row:auto; }.gallery-wide { grid-column:span 2; }.gallery-small { grid-column:auto; }.gallery-tall .image-wrap { height:420px; }
  .review-grid { grid-template-columns:1fr; }.review-card { min-height:300px; }
  .site-footer { grid-template-columns:1.4fr 1fr 1fr; }.site-footer > div:last-of-type { grid-column:2/-1; }
}

@media (max-width: 800px) {
  :root { --header:72px; }
  .site-header,.site-header.is-scrolled,.site-header.solid-header { height:var(--header); padding-inline:18px; }
  .menu-toggle { display:block; }
  .main-nav { position:fixed; z-index:-1; inset:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:6px; padding:100px 28px 35px; color:var(--ink); background:rgba(246,250,248,.98); visibility:hidden; opacity:0; transform:translateY(-15px); transition:opacity .35s,transform .35s,visibility .35s; }
  .main-nav.is-open { visibility:visible; opacity:1; transform:none; }.main-nav > a:not(.nav-cta) { display:block; padding:9px 0; font-family:"Manrope"; font-size:clamp(1.5rem,7vw,2.2rem); font-weight:500; }.main-nav .nav-cta { width:100%; justify-content:center; margin-top:20px; color:white; background:var(--teal); }
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
  .hero { min-height:auto; padding-top:145px; padding-bottom:70px; }.hero-shell { grid-template-columns:1fr; }.hero-panel { max-width:520px; }.hero-scroll { display:none; }
  .trust-strip { grid-template-columns:1fr 1fr; }.trust-strip > div:nth-child(2){border-right:0}.trust-strip > div { min-height:90px; border-bottom:1px solid var(--line); }
  .section-heading { grid-template-columns:1fr; gap:22px; }.section-heading h2,.process h2,.reviews h2,.contact h2 { font-size:clamp(2.5rem,9vw,4.4rem); }
  .process { grid-template-columns:1fr; }.process-media { position:relative; height:70vh; min-height:500px; }.process-copy { padding:80px 24px; }
  .reviews-head { align-items:flex-start; flex-direction:column; }.rating-badge { align-self:flex-start; }
  .contact-shell { grid-template-columns:1fr; }.contact-copy { grid-row:auto; }
  .site-footer { grid-template-columns:1fr 1fr; }.footer-brand { grid-column:1/-1; }.site-footer > div:last-of-type { grid-column:auto; }
  .legal-layout { grid-template-columns:1fr; }.legal-index { position:static; }
}

@media (max-width: 560px) {
  body { padding-bottom:72px; }
  .brand strong { font-size:.74rem; }.brand small { font-size:.55rem; }.brand-mark { width:36px; height:40px; }.brand-mark::before { top:9px; }
  .hero { min-height:100svh; padding:125px 18px 42px; }.hero-wash { background:linear-gradient(180deg,rgba(7,39,54,.72),rgba(7,39,54,.9) 64%,rgba(7,39,54,.97)); }.hero-media { object-position:center top; }.hero h1 { font-size:clamp(2.9rem,14vw,4.5rem); line-height:.98; }.hero-lead { font-size:.94rem; }.button-row,.button-row .button { width:100%; }.hero-panel { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-width:none; padding:8px; }.panel-top { grid-column:1/-1; }.hero-panel > a { grid-template-columns:1fr; gap:2px; min-width:0; padding:12px 10px; }.hero-panel > a > span,.hero-panel > a > b { display:none; }.hero-panel strong { font-size:.74rem; overflow-wrap:anywhere; }.hero-proof { margin-top:22px; }
  .trust-strip { grid-template-columns:1fr; }.trust-strip > div { border-right:0; }
  .section { padding:78px 18px; }.section-heading { margin-bottom:35px; }.section-heading h2,.process h2,.reviews h2,.contact h2 { font-size:clamp(2.35rem,11vw,3.3rem); }
  .treatment-grid { gap:12px; }.treatment-card,.treatment-feature,.treatment-family { grid-column:span 12; min-height:310px; padding:24px; }
  .process-media { height:58vh; min-height:420px; }.media-badge { width:90px; top:9%; }.process-copy { padding-inline:18px; }.timeline { margin-top:42px; }.timeline li { gap:15px; }
  .gallery-grid { display:flex; flex-direction:column; }.gallery-wide .image-wrap,.gallery-tall .image-wrap,.gallery-small .image-wrap { height:310px; }.gallery-quote { min-height:260px; }
  .reviews-head { margin-bottom:35px; }.rating-badge { width:100%; justify-content:center; }.review-card { min-height:330px; padding:23px; }
  .contact { padding:78px 18px; }.contact-copy { padding:31px 22px; }.contact-copy > .button { align-self:stretch; }.contact-direct a { align-items:flex-start; flex-direction:column; gap:3px; }.map-card { min-height:440px; }.map-info { align-items:flex-start; flex-direction:column; }.hours-card { padding:23px; }.hours-card > div { align-items:flex-start; flex-direction:column; gap:3px; }.hours-card strong { text-align:left; }
  .final-cta { min-height:550px; }.final-cta h2 { font-size:clamp(3rem,15vw,4.8rem); }.final-cta .button { width:100%; }
  .site-footer { grid-template-columns:1fr; padding:55px 20px 30px; }.footer-brand,.site-footer > div:last-of-type { grid-column:auto; }
  .mobile-cta { position:fixed; z-index:80; inset:auto 0 0; display:grid; grid-template-columns:.7fr 1.3fr; padding:8px; color:var(--navy); background:rgba(255,255,255,.94); border-top:1px solid var(--line); backdrop-filter:blur(18px); }.mobile-cta a { display:flex; flex-direction:column; justify-content:center; min-height:55px; padding:0 16px; border-radius:14px; }.mobile-cta a:last-child { color:white; background:var(--teal); }.mobile-cta span { font-size:.6rem; opacity:.7; }.mobile-cta strong { font-size:.8rem; }
  .legal-hero { padding-top:calc(var(--header) + 65px); }.legal-hero h1 { font-size:clamp(2.6rem,13vw,4.2rem); }.legal-content { padding-inline:18px; }.legal-card { padding:27px 22px; }
}

.treatment-card h3,
.media-caption strong,
.timeline h3,
.gallery-quote p,
.rating-badge > strong,
.review-card blockquote,
.legal-card h2,
.main-nav > a:not(.nav-cta) {
  font-family: Georgia, "Times New Roman", serif;
}

.route-one { transform-origin:left; }
.route-two { transform-origin:right; }
.js .map-card .route-one { transform:rotate(18deg) scaleX(0); }
.js .map-card .route-two { transform:rotate(-45deg) scaleX(0); }
.js .map-card.is-visible .route-one { animation:routeOne 1.1s .2s var(--ease) forwards; }
.js .map-card.is-visible .route-two { animation:routeTwo 1.1s .55s var(--ease) forwards; }
@keyframes routeOne { to { transform:rotate(18deg) scaleX(1); } }
@keyframes routeTwo { to { transform:rotate(-45deg) scaleX(1); } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
  .intro { display:none!important; }.js .hero-reveal,.js .reveal { opacity:1!important; transform:none!important; }.process-media img { transform:none!important; }
}
