
:root {
    --white:#FFFFFF;--cream:#F8F6F1;--cream-mid:#EDE9E2;--cream-dark:#DDD8CF;
    --navy:#0E1117;--navy-light:#1C2128;
    --helix:#4A6E7F;--helix-light:#A8C4D4;--helix-pale:#C2D8E4;--helix-glow:rgba(74,110,127,.08);
    --text:#1A1A1A;--text-mid:#5A6872;--text-soft:#62707C;--text-inv:#F0F2F4;
    --serif:'Instrument Serif',Georgia,serif;--sans:'Inter',-apple-system,sans-serif;
    --ease:cubic-bezier(.22,1,.36,1);--container:1240px;
    --sv:clamp(6rem,12vw,10rem);--gap:clamp(1.5rem,4vw,2.5rem);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--sans);font-size:15px;color:var(--text);background:var(--cream);overflow-x:hidden;line-height:1.65}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;border:none;background:none;cursor:pointer}
::selection{background:var(--helix);color:white}

/* ══ PRELOADER ══ */
.pre{position:fixed;inset:0;z-index:9999;background:var(--cream);display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .8s var(--ease),visibility .8s}
.pre.done{opacity:0;visibility:hidden;pointer-events:none}
.pre-logo{height:28px;width:auto;opacity:0;animation:fi .6s var(--ease) .3s forwards}
.pre-bar{width:100px;height:1px;background:var(--cream-dark);margin-top:1.5rem;position:relative;overflow:hidden;opacity:0;animation:fi .4s var(--ease) .6s forwards}
.pre-fill{position:absolute;top:0;left:0;height:100%;width:0;background:var(--helix);animation:bf 1.4s var(--ease) .8s forwards}
@keyframes fi{to{opacity:1}}
@keyframes bf{to{width:100%}}

/* ══ REVEAL ══ */
.r{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.r.v{opacity:1;transform:translateY(0)}
.r-d1{transition-delay:.1s}.r-d2{transition-delay:.2s}.r-d3{transition-delay:.3s}.r-d4{transition-delay:.4s}.r-d5{transition-delay:.5s}
.r-scale{opacity:0;transform:scale(.95);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.r-scale.v{opacity:1;transform:scale(1)}
.r-left{opacity:0;transform:translateX(-40px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.r-left.v{opacity:1;transform:translateX(0)}
.r-right{opacity:0;transform:translateX(40px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.r-right.v{opacity:1;transform:translateX(0)}

/* ══ NAV ══ */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .4s,border-color .4s,backdrop-filter .4s}
.nav.scrolled{background:rgba(248,246,241,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--cream-dark)}
.nav-in{max-width:var(--container);margin:0 auto;padding:1.1rem var(--gap);display:flex;align-items:center;justify-content:space-between}
.nav-logo img{height:22px;width:auto;transition:opacity .3s}
.nav-logo:hover img{opacity:.7}
.nav-links{display:flex;align-items:center;gap:2.25rem}
.nav-link{font-size:11.5px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--text-mid);transition:color .3s;position:relative}
.nav-link::after{content:'';position:absolute;bottom:-3px;left:0;width:0;height:1px;background:var(--helix);transition:width .3s var(--ease)}
.nav-link:hover{color:var(--text)}.nav-link:hover::after{width:100%}
.nav-right{display:flex;align-items:center;gap:1.5rem}
.nav-tel{font-size:12px;font-weight:500;color:var(--text-mid);letter-spacing:.03em;transition:color .3s}
.nav-tel:hover{color:var(--helix)}
.nav-book{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;padding:.6rem 1.4rem;background:var(--helix);color:white;border-radius:2px;transition:all .3s var(--ease)}
.nav-book:hover{background:var(--navy);transform:translateY(-1px)}
.ham{display:none;padding:6px;cursor:pointer}.ham span{display:block;width:22px;height:1.5px;background:var(--text);margin:4px 0;transition:.3s var(--ease);transform-origin:center}
.ham.on span:first-child{transform:rotate(45deg) translate(4px,4px)}.ham.on span:nth-child(2){opacity:0}.ham.on span:last-child{transform:rotate(-45deg) translate(4px,-4px)}
.mob{position:fixed;inset:0;z-index:99;background:var(--cream);display:flex;flex-direction:column;justify-content:center;padding:3rem;opacity:0;visibility:hidden;transition:.4s var(--ease)}
.mob.open{opacity:1;visibility:visible}
.mob a{font-family:var(--serif);font-size:2.5rem;color:var(--text);padding:.4rem 0;display:block;transition:color .3s}
.mob a:hover{color:var(--helix)}
.mob-book{margin-top:2rem;font-family:var(--sans)!important;font-size:13px!important;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:1rem 2rem;background:var(--helix);color:white!important;display:inline-block;width:fit-content}
@media(max-width:960px){.nav-links,.nav-tel,.nav-book{display:none}.ham{display:block}}

/* ══ HERO — LIGHT, NO LOGO, FULL-WIDTH IMAGE ══ */
.hero{min-height:100vh;background:var(--cream);position:relative;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}
.hero-content{display:flex;flex-direction:column;justify-content:center;padding:8rem var(--gap) 4rem clamp(2rem,6vw,5rem);position:relative;z-index:2}
.hero-label{font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--helix);margin-bottom:2rem;opacity:0;animation:fsu .6s var(--ease) 2.2s forwards}
.hero h1{font-family:var(--serif);font-size:clamp(3rem,5.5vw,5rem);font-weight:400;line-height:1.08;color:var(--text);letter-spacing:-.02em;opacity:0;animation:fsu .8s var(--ease) 2.4s forwards}
.hero h1 em{font-style:italic;color:var(--helix)}
.hero-sub{font-size:17px;color:var(--text-mid);max-width:440px;margin-top:1.5rem;line-height:1.75;opacity:0;animation:fsu .7s var(--ease) 2.7s forwards}
.hero-actions{display:flex;gap:.75rem;margin-top:2.5rem;opacity:0;animation:fsu .7s var(--ease) 3s forwards;flex-wrap:wrap}
.btn-p{font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;padding:.85rem 2rem;background:var(--helix);color:white;border:1px solid var(--helix);transition:all .35s var(--ease);cursor:pointer;display:inline-flex;align-items:center;gap:.5rem}
.btn-p:hover{background:var(--navy);border-color:var(--navy);transform:translateY(-1px)}
.btn-g{font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;padding:.85rem 2rem;border:1px solid var(--cream-dark);color:var(--text-mid);transition:all .35s var(--ease);cursor:pointer}
.btn-g:hover{border-color:var(--helix);color:var(--helix)}
.hero-img{position:relative;overflow:hidden}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:center 20%;opacity:0;animation:fi 1.2s var(--ease) 2.4s forwards}
.hero-img::after{content:'';position:absolute;inset:0;background:linear-gradient(to right,var(--cream) 0%,transparent 20%),linear-gradient(to bottom,var(--cream) 0%,transparent 18%);pointer-events:none}

/* ══ SMOKE REVEAL — SVG Perlin noise organic dissolve ══ */
.smoke-reveal{position:relative;height:300vh}
.smoke-reveal-sticky{position:sticky;top:0;height:100vh;overflow:hidden}
.smoke-reveal-img{position:absolute;inset:0}
.smoke-reveal-img img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.smoke-svg-wrap{position:absolute;inset:0;pointer-events:none;z-index:2}
.smoke-svg-wrap svg{width:100%;height:100%;display:block}
.smoke-reveal-bottom{position:absolute;bottom:0;left:0;right:0;height:200px;background:linear-gradient(to bottom,transparent,var(--cream));z-index:10;pointer-events:none}
@media(max-width:768px){.smoke-reveal{height:240vh}}
@media(prefers-reduced-motion:reduce){.smoke-reveal{height:auto}.smoke-reveal-sticky{position:relative;height:70vh}.smoke-svg-wrap{display:none}}
.hero-scroll{position:absolute;bottom:2rem;left:clamp(2rem,6vw,5rem);z-index:3;display:flex;align-items:center;gap:1rem;opacity:0;animation:fi .6s var(--ease) 3.3s forwards}
.hero-scroll span{font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text-soft)}
.hero-scroll-bar{width:40px;height:1px;background:var(--helix);animation:sp 2s ease-in-out infinite}
@keyframes sp{0%,100%{opacity:1;transform:scaleX(1)}50%{opacity:.3;transform:scaleX(.5)}}
@keyframes fsu{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:768px){.hero{grid-template-columns:1fr;min-height:auto}.hero-content{padding:9rem 2rem 3rem}.hero-img{height:50vh}}

/* ══ BRAND BAR — PARTNER LOGOS ══ */
.brand-bar{background:var(--white);border-top:1px solid var(--cream-dark);border-bottom:1px solid var(--cream-dark);padding:1.5rem 0;overflow:hidden;position:relative;z-index:3}
.brand-track{display:flex;align-items:center;justify-content:center;gap:clamp(2rem,5vw,4rem);flex-wrap:wrap;max-width:var(--container);margin:0 auto;padding:0 var(--gap)}
.brand-track img{height:24px;width:auto;opacity:.35;filter:grayscale(1);transition:opacity .3s}
.brand-track img:hover{opacity:.7}

/* ══ ABOUT ══ */
.about{background:var(--cream);padding:var(--sv) 0}
.about-in{max-width:var(--container);margin:0 auto;padding:0 var(--gap);display:grid;grid-template-columns:5fr 6fr;gap:clamp(3rem,8vw,7rem);align-items:center}
.about-img{position:relative;overflow:hidden;border-radius:4px}
.about-img img{width:100%;aspect-ratio:4/5;object-fit:cover}
.about-text h2{font-family:var(--serif);font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:400;line-height:1.15;color:var(--text)}
.about-text h2 em{font-style:italic;color:var(--helix)}
.about-text p{margin-top:1.25rem;font-size:14px;color:var(--text-mid);line-height:1.8}
.about-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:2rem;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--helix);border-bottom:1px solid var(--helix);padding-bottom:2px;transition:gap .3s var(--ease)}
.about-link:hover{gap:.8rem}
.label{font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--helix);margin-bottom:1.25rem}
@media(max-width:768px){.about-in{grid-template-columns:1fr}}

/* ══ SERVICES — EACH WITH ITS OWN FULL IMAGE + SCROLL ANIMATION ══ */
.services{background:var(--white);padding:var(--sv) 0}
.services-in{max-width:var(--container);margin:0 auto;padding:0 var(--gap)}
.services-head{text-align:center;max-width:560px;margin:0 auto 5rem}
.services-head h2{font-family:var(--serif);font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1.12;color:var(--text)}
.services-head p{font-size:14px;color:var(--text-mid);margin-top:1rem;line-height:1.75}

.svc{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--cream-dark);min-height:500px;overflow:hidden}
.svc:nth-child(even){direction:rtl}.svc:nth-child(even) > *{direction:ltr}
.svc-content{padding:clamp(2.5rem,5vw,4rem);display:flex;flex-direction:column;justify-content:center}
.svc-num{font-size:11px;color:var(--text-soft);letter-spacing:.1em;margin-bottom:1.5rem}
.svc-content h3{font-family:var(--serif);font-size:clamp(1.5rem,2.5vw,2.2rem);font-weight:400;color:var(--text);line-height:1.2;margin-bottom:1rem}
.svc-content p{font-size:14px;color:var(--text-mid);line-height:1.8;max-width:420px}
.svc-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.5rem;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--helix);transition:gap .3s var(--ease)}
.svc-link:hover{gap:.8rem}
.svc-img{position:relative;overflow:hidden}
.svc-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.svc:hover .svc-img img{transform:scale(1.03)}
.svc-img::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(74,110,127,.05) 0%,transparent 60%);pointer-events:none}
@media(max-width:768px){.svc,.svc:nth-child(even){grid-template-columns:1fr;direction:ltr}.svc:nth-child(even) > *{direction:ltr}.svc-img{height:300px}}

.svc-extra{text-align:center;padding:3rem 0;border-top:1px solid var(--cream-dark);font-size:13px;color:var(--text-soft);font-style:italic}

/* ══ GALLERY ══ */
.gallery{background:var(--white);padding:var(--sv) 0}
.gallery-in{max-width:var(--container);margin:0 auto;padding:0 var(--gap)}
.gallery-head{text-align:center;max-width:560px;margin:0 auto 2rem}
.gallery-head h2{font-family:var(--serif);font-size:clamp(2rem,3.5vw,2.8rem);font-weight:400;color:var(--text)}
.gallery-head p{font-size:14px;color:var(--text-mid);margin-top:1rem;line-height:1.7}
.gf{display:flex;justify-content:center;gap:.4rem;margin-bottom:3rem;flex-wrap:wrap}
.gf-btn{padding:.5rem 1.2rem;font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-mid);border:1px solid var(--cream-dark);background:transparent;cursor:pointer;transition:.3s var(--ease)}
.gf-btn:hover,.gf-btn.on{background:var(--helix);color:white;border-color:var(--helix)}
.g-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.g-card{position:relative;overflow:hidden;border-radius:6px;background:var(--cream)}
.g-card-img{position:relative;overflow:hidden;aspect-ratio:1/1}
.g-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.g-card:hover .g-card-img img{transform:scale(1.04)}
.g-card-info{padding:1.25rem 1.25rem 1.5rem}
.g-card-type{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--helix);margin-bottom:.5rem}
.g-card-specs{display:flex;flex-wrap:wrap;gap:.5rem}
.g-spec{font-size:11px;color:var(--text-mid);padding:.25rem .6rem;background:var(--white);border-radius:100px;border:1px solid var(--cream-dark)}
.g-note{text-align:center;margin-top:2.5rem;font-size:12px;color:var(--text-soft);font-style:italic}
@media(max-width:768px){.g-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.g-grid{grid-template-columns:1fr}}

/* ══ PAYMENT ══ */
.payment{background:var(--cream);padding:var(--sv) 0;border-top:1px solid var(--cream-dark)}
.payment-in{max-width:var(--container);margin:0 auto;padding:0 var(--gap)}
.payment-head{text-align:center;max-width:560px;margin:0 auto 3rem}
.payment-head h2{font-family:var(--serif);font-size:clamp(2.4rem,5vw,3.5rem);font-weight:400;color:var(--text)}
.payment-head p{font-size:14px;color:var(--text-mid);margin-top:1rem;line-height:1.75}
.pay-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}
.pay-card{background:var(--white);padding:2rem 1.5rem;border-radius:6px;text-align:center;border:1px solid var(--cream-dark);transition:border-color .3s var(--ease),transform .3s var(--ease)}
.pay-card:hover{border-color:var(--helix);transform:translateY(-2px)}
.pay-icon{width:48px;height:48px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--helix-glow);color:var(--helix)}
.pay-card h4{font-family:var(--serif);font-size:1.1rem;color:var(--text);margin-bottom:.4rem}
.pay-card p{font-size:12px;color:var(--text-mid);line-height:1.6}
@media(max-width:768px){.pay-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.pay-grid{grid-template-columns:1fr}}

/* ══ STATS ══ */
.stats{background:var(--white);padding:clamp(4rem,8vw,6rem) 0;border-top:1px solid var(--cream-dark);border-bottom:1px solid var(--cream-dark)}
.stats-in{max-width:var(--container);margin:0 auto;padding:0 var(--gap);display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;text-align:center}
.stat-n{font-family:var(--serif);font-size:clamp(2.5rem,5vw,3.8rem);font-weight:400;color:var(--helix);line-height:1}
.stat-t{font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft);margin-top:.75rem}
@media(max-width:768px){.stats-in{grid-template-columns:repeat(2,1fr);gap:3rem}}

/* ══ FEATURE ══ */
.feature{background:var(--cream);padding:var(--sv) 0}
.feature-in{max-width:var(--container);margin:0 auto;padding:0 var(--gap);display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,6vw,6rem);align-items:center}
.feature h2{font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.5rem);font-weight:400;line-height:1.15;color:var(--text)}
.feature-p{margin-top:1.25rem;font-size:14px;color:var(--text-mid);line-height:1.8}
.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem;margin-top:2.5rem}
.feat-item::before{content:'';display:block;width:24px;height:1px;background:var(--helix);margin-bottom:.75rem}
.feat-item h4{font-family:var(--serif);font-size:1.1rem;color:var(--text);margin-bottom:.3rem}
.feat-item p{font-size:13px;color:var(--text-mid);line-height:1.6}
.feat-img{overflow:hidden;border-radius:4px}
.feat-img img{width:100%;aspect-ratio:4/5;object-fit:cover}
@media(max-width:768px){.feature-in{grid-template-columns:1fr}.feat-img{order:-1}.feat-img img{aspect-ratio:16/10}}

/* ══ TEAM ══ */
.team{background:var(--white);padding:var(--sv) 0}
.team-in{max-width:var(--container);margin:0 auto;padding:0 var(--gap)}
.team-head{text-align:center;max-width:500px;margin:0 auto 4rem}
.team-head h2{font-family:var(--serif);font-size:clamp(2rem,3.5vw,2.8rem);font-weight:400;color:var(--text)}
.t-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1.5rem}
.t-img{position:relative;overflow:hidden;aspect-ratio:3/4;margin-bottom:1.25rem;border-radius:4px;background:var(--cream)}
.t-img img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .7s var(--ease)}
.t-card:hover .t-img img{transform:scale(1.04)}
.t-img::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(14,17,23,.6) 0%,transparent 50%);opacity:0;transition:opacity .4s;pointer-events:none}
.t-card:hover .t-img::after{opacity:1}
.t-hover{position:absolute;bottom:1.25rem;left:1.25rem;right:1.25rem;z-index:2;font-size:13px;color:var(--text-inv);line-height:1.6;opacity:0;transform:translateY(6px);transition:.4s var(--ease)}
.t-card:hover .t-hover{opacity:1;transform:translateY(0)}
.t-card h3{font-family:var(--serif);font-size:1.15rem;color:var(--text)}
.t-card span{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--helix);display:block;margin-top:.15rem}
@media(max-width:960px){.t-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.t-grid{grid-template-columns:repeat(2,1fr)}}

/* ══ TESTIMONIALS ══ */
.testi{background:var(--cream);padding:var(--sv) 0}
.testi-in{max-width:680px;margin:0 auto;padding:0 var(--gap);text-align:center}
.testi-head h2{font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.5rem);font-weight:400;color:var(--text);margin-bottom:3rem}
.testi-c{position:relative;min-height:200px}
.t-slide{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .5s var(--ease)}
.t-slide.on{opacity:1}
.t-mark{font-family:var(--serif);font-size:4rem;line-height:1;color:var(--helix);opacity:.2}
.t-quote{font-family:var(--serif);font-size:clamp(1.05rem,1.8vw,1.3rem);font-weight:400;font-style:italic;line-height:1.7;color:var(--text);margin-top:.5rem}
.t-who{font-size:12px;font-weight:500;color:var(--text-mid);margin-top:1.5rem;letter-spacing:.04em}
.t-dots{display:flex;gap:.4rem;justify-content:center;margin-top:2rem}
.t-dot{width:6px;height:6px;border-radius:50%;background:var(--cream-dark);border:none;cursor:pointer;transition:.3s var(--ease);padding:0}
.t-dot.on{background:var(--helix);transform:scale(1.4)}

/* ══ CTA ══ */
.cta{background:var(--helix);padding:clamp(5rem,10vw,8rem) 0;text-align:center;position:relative;overflow:hidden}
.cta::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.1),transparent);pointer-events:none}
.cta-in{position:relative;z-index:2;max-width:600px;margin:0 auto;padding:0 var(--gap)}
.cta h2{font-family:var(--serif);font-size:clamp(2.2rem,4.5vw,3.5rem);font-weight:400;line-height:1.1;color:white}
.cta p{font-size:15px;color:rgba(255,255,255,.7);margin-top:1.25rem;line-height:1.7}
.cta .btn-w{margin-top:2.5rem;display:inline-flex;align-items:center;gap:.5rem;font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;padding:.9rem 2.5rem;background:white;color:var(--helix);border:none;cursor:pointer;transition:all .35s var(--ease)}
.cta .btn-w:hover{background:var(--navy);color:white;transform:translateY(-1px)}
.cta-tel{margin-top:1rem;font-size:13px;color:rgba(255,255,255,.6)}
.cta-tel a{color:white;border-bottom:1px solid rgba(255,255,255,.3);transition:border-color .3s}
.cta-tel a:hover{border-color:white}

/* ══ CONTACT ══ */
.contact{background:var(--cream);padding:var(--sv) 0}
.contact-in{max-width:var(--container);margin:0 auto;padding:0 var(--gap);display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,6vw,5rem)}
.contact-form h2,.contact-info h2{font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.4rem);font-weight:400;color:var(--text);margin-bottom:2rem}
.fg{margin-bottom:1rem}
.fg label{display:block;font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-mid);margin-bottom:.4rem}
.fg input,.fg textarea{width:100%;padding:.75rem 0;background:transparent;border:none;border-bottom:1px solid var(--cream-dark);font-size:14px;color:var(--text);outline:none;transition:border-color .3s}
.fg input:focus,.fg textarea:focus{border-bottom-color:var(--helix)}
.fg textarea{min-height:80px;resize:vertical}
.ci{display:flex;gap:1rem;margin-bottom:1.25rem;align-items:flex-start}
.ci-icon{width:36px;height:36px;border-radius:50%;background:var(--helix-glow);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--helix)}
.ci-text h4{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text);margin-bottom:.15rem}
.ci-text p,.ci-text a{font-size:14px;color:var(--text-mid);line-height:1.6}
.ci-text a:hover{color:var(--helix)}
.hours{margin-top:2rem}
.hours h4{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text);margin-bottom:.75rem}
.h-row{display:flex;justify-content:space-between;padding:.4rem 0;border-bottom:1px solid var(--cream-dark);font-size:13px}
.h-row span:first-child{color:var(--text);font-weight:500}.h-row span:last-child{color:var(--text-mid)}
.h-row.hl span:last-child{color:var(--helix);font-weight:600}
.pay{margin-top:1.5rem;padding:1rem;background:var(--helix-glow);border:1px solid rgba(74,110,127,.1);font-size:13px;color:var(--text-mid);line-height:1.6;border-radius:4px}
@media(max-width:768px){.contact-in{grid-template-columns:1fr}}

/* ══ FOOTER ══ */
.footer{background:var(--navy);padding:4rem 0 1.5rem}
.footer-in{max-width:var(--container);margin:0 auto;padding:0 var(--gap)}
.f-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.08)}
.f-brand-logo{height:20px;width:auto;margin-bottom:1rem;opacity:.8}
.f-brand p{font-size:13px;color:rgba(255,255,255,.4);line-height:1.7;max-width:280px}
.f-socials{display:flex;gap:.75rem;margin-top:1.25rem}
.f-soc{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.4);transition:.3s var(--ease)}
.f-soc:hover{border-color:var(--helix-light);color:var(--helix-light)}
.f-soc svg{width:16px;height:16px}
.f-col h4{font-size:10px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.8);margin-bottom:1rem}
.f-col a{display:block;font-size:13px;color:rgba(255,255,255,.4);padding:.3rem 0;transition:color .3s}
.f-col a:hover{color:var(--helix-light)}
.f-bot{display:flex;justify-content:space-between;align-items:center;padding-top:1.5rem;flex-wrap:wrap;gap:.5rem}
.f-bot p{font-size:12px;color:rgba(255,255,255,.3)}
.f-bot a{color:var(--helix-light);transition:color .3s}.f-bot a:hover{color:var(--helix-pale)}
@media(max-width:768px){.f-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.f-grid{grid-template-columns:1fr}}

/* ══ BACK TO TOP ══ */
.btt{position:fixed;bottom:1.5rem;right:1.5rem;width:44px;height:44px;background:var(--helix);color:white;display:flex;align-items:center;justify-content:center;z-index:50;opacity:0;visibility:hidden;transform:translateY(8px);transition:.4s var(--ease);cursor:pointer;border:none;border-radius:2px}
.btt.vis{opacity:1;visibility:visible;transform:translateY(0)}
.btt:hover{background:var(--navy)}
.btt svg{width:18px;height:18px}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}html{scroll-behavior:auto}.r,.r-scale,.r-left,.r-right{opacity:1;transform:none}}

/* ════════════════════ INTERIOR PAGES ════════════════════ */
.page-wrap{padding-top:0}
/* Sub-hero */
.sub-hero{background:var(--navy);color:var(--text-inv);padding:clamp(7rem,14vw,10rem) var(--gap) clamp(3.5rem,7vw,5rem);position:relative;overflow:hidden}
.sub-hero::after{content:'';position:absolute;inset:0;background:radial-gradient(120% 80% at 80% 0%,var(--helix-glow),transparent 60%);pointer-events:none}
.sub-hero-in{max-width:var(--container);margin:0 auto;position:relative;z-index:1}
.crumb{display:flex;gap:.5rem;align-items:center;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:1.5rem;flex-wrap:wrap}
.crumb a{color:rgba(255,255,255,.6);transition:color .3s}.crumb a:hover{color:var(--helix-light)}
.crumb span{color:rgba(255,255,255,.25)}
.sub-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,6vw,4.4rem);line-height:1.04;letter-spacing:-.02em;margin-bottom:1.1rem}
.sub-hero h1 em{font-style:italic;color:var(--helix-light)}
.sub-hero-lead{font-size:clamp(1rem,2.2vw,1.18rem);color:rgba(255,255,255,.7);max-width:620px;line-height:1.7}
.sub-hero-actions{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap}
/* Generic interior section */
.sec{padding:clamp(3.5rem,8vw,6rem) var(--gap)}
.sec-in{max-width:var(--container);margin:0 auto}
.sec-narrow{max-width:780px;margin:0 auto}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--helix);margin-bottom:1rem}
.sec h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4.2vw,3rem);line-height:1.1;letter-spacing:-.015em;color:var(--navy);margin-bottom:1.25rem}
.sec h2 em{font-style:italic;color:var(--helix)}
.prose p{font-size:15.5px;line-height:1.8;color:var(--text-mid);margin-bottom:1.1rem}
.prose strong{color:var(--text)}
.prose ul{list-style:none;margin:1.25rem 0}
.prose ul li{position:relative;padding-left:1.6rem;margin-bottom:.7rem;font-size:15px;line-height:1.7;color:var(--text-mid)}
.prose ul li::before{content:'';position:absolute;left:0;top:.65em;width:7px;height:7px;background:var(--helix);border-radius:50%}
/* Packages / pricing cards */
.pkg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin-top:2.5rem}
.pkg-card{background:var(--white);border:1px solid var(--cream-dark);border-radius:6px;padding:2rem 1.75rem;transition:.4s var(--ease)}
.pkg-card:hover{transform:translateY(-4px);box-shadow:0 18px 50px rgba(14,17,23,.08);border-color:var(--helix-light)}
.pkg-card .pk-n{font-family:var(--serif);font-size:2.4rem;color:var(--navy);line-height:1}
.pkg-card .pk-l{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--helix);margin:.4rem 0 1rem}
.pkg-card p{font-size:13.5px;color:var(--text-mid);line-height:1.65}
/* Process steps */
.steps{display:grid;gap:1.1rem;margin-top:2.5rem;counter-reset:step}
.step{background:var(--white);border:1px solid var(--cream-dark);border-radius:6px;padding:1.75rem 1.9rem;position:relative;padding-left:4.5rem}
.step::before{counter-increment:step;content:counter(step,decimal-leading-zero);position:absolute;left:1.75rem;top:1.75rem;font-family:var(--serif);font-size:1.4rem;color:var(--helix)}
.step h3{font-size:15px;font-weight:600;color:var(--navy);margin-bottom:.5rem;letter-spacing:.01em}
.step p{font-size:14px;line-height:1.7;color:var(--text-mid)}
/* FAQ */
.faq{margin-top:2.5rem;border-top:1px solid var(--cream-dark)}
.faq-item{border-bottom:1px solid var(--cream-dark)}
.faq-q{width:100%;text-align:left;padding:1.4rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:15.5px;font-weight:500;color:var(--navy);background:none;border:none;cursor:pointer}
.faq-q::after{content:'+';font-size:1.4rem;color:var(--helix);transition:transform .3s}
.faq-item.open .faq-q::after{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s var(--ease)}
.faq-a p{font-size:14.5px;line-height:1.8;color:var(--text-mid);padding-bottom:1.4rem}
/* Service cards (hub) */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;margin-top:3rem}
.svc-card{display:block;background:var(--white);border:1px solid var(--cream-dark);border-radius:6px;padding:2rem 1.9rem;transition:.4s var(--ease)}
.svc-card:hover{transform:translateY(-4px);box-shadow:0 18px 50px rgba(14,17,23,.08);border-color:var(--helix-light)}
.svc-card h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;color:var(--navy);margin-bottom:.6rem}
.svc-card p{font-size:14px;line-height:1.7;color:var(--text-mid);margin-bottom:1rem}
.svc-card .svc-go{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--helix)}
/* CTA band */
.cta-band{background:var(--navy);color:var(--text-inv);padding:clamp(3.5rem,8vw,5.5rem) var(--gap);text-align:center}
.cta-band h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4.5vw,3rem);margin-bottom:1rem}
.cta-band p{color:rgba(255,255,255,.65);max-width:560px;margin:0 auto 2rem;font-size:15.5px;line-height:1.7}
@media(max-width:600px){.step{padding-left:1.9rem;padding-top:3.4rem}.step::before{top:1.5rem;left:1.9rem}}

/* ════════ SERVICES DROPDOWN NAV ════════ */

/* ════════ GALLERY PAGE ════════ */
.gallery-grid{columns:3;column-gap:14px;max-width:var(--container);margin:0 auto;padding:0 var(--gap)}
.gallery-grid figure{break-inside:avoid;margin:0 0 14px;overflow:hidden;border-radius:6px;background:var(--cream-mid);cursor:pointer}
.gallery-grid img{width:100%;height:auto;display:block;transition:transform .6s var(--ease);opacity:0}
.gallery-grid img.v{opacity:1}
.gallery-grid figure:hover img{transform:scale(1.04)}
@media(max-width:900px){.gallery-grid{columns:2}}
@media(max-width:560px){.gallery-grid{columns:1}}
/* lightbox */
.lb{position:fixed;inset:0;background:rgba(14,17,23,.92);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:.3s;padding:2rem}
.lb.open{opacity:1;visibility:visible}
.lb img{max-width:92vw;max-height:88vh;border-radius:4px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lb-close{position:absolute;top:1.5rem;right:1.8rem;color:#fff;font-size:2rem;background:none;border:none;cursor:pointer;line-height:1;opacity:.8}
.lb-close:hover{opacity:1}

/* ════════ SMILE RESULTS GALLERY ════════ */
.gallery{background:var(--white);padding:var(--sv) 0}
.gallery-in{max-width:var(--container);margin:0 auto;padding:0 var(--gap)}
.gallery-head{text-align:center;max-width:560px;margin:0 auto 2rem}
.gallery-head h2{font-family:var(--serif);font-size:clamp(2rem,3.5vw,2.8rem);font-weight:400;color:var(--text)}
.gallery-head p{font-size:14px;color:var(--text-mid);margin-top:1rem;line-height:1.7}
.gf{display:flex;justify-content:center;gap:.4rem;margin-bottom:3rem;flex-wrap:wrap}
.gf-btn{padding:.5rem 1.2rem;font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-mid);border:1px solid var(--cream-dark);background:transparent;cursor:pointer;transition:.3s var(--ease)}
.gf-btn:hover,.gf-btn.on{background:var(--helix);color:white;border-color:var(--helix)}
.g-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.g-card{position:relative;overflow:hidden;border-radius:6px;background:var(--cream)}
.g-card-img{position:relative;overflow:hidden;aspect-ratio:1/1}
.g-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.g-card:hover .g-card-img img{transform:scale(1.04)}
.g-card-info{padding:1.25rem 1.25rem 1.5rem}
.g-card-type{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--helix);margin-bottom:.5rem}
.g-card-specs{display:flex;flex-wrap:wrap;gap:.5rem}
.g-spec{font-size:11px;color:var(--text-mid);padding:.25rem .6rem;background:var(--white);border-radius:100px;border:1px solid var(--cream-dark)}
@media(max-width:768px){.g-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.g-grid{grid-template-columns:1fr}}

/* services dropdown */
.nav-dd{position:relative;display:flex;align-items:center}
.nav-dd::after{content:'';width:5px;height:5px;border-right:1.5px solid var(--text-mid);border-bottom:1.5px solid var(--text-mid);transform:rotate(45deg);margin-left:.4rem;margin-top:-3px;opacity:.5;flex:none;transition:opacity .3s,border-color .3s}
.nav-dd:hover::after{opacity:.85;border-color:var(--text)}
.nav-dd::before{content:'';position:absolute;top:100%;left:-2rem;right:-2rem;height:18px}
.nav-dd-menu{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);background:var(--white);border:1px solid var(--cream-dark);border-radius:3px;padding:1.75rem 2rem;display:grid;grid-template-columns:repeat(3,minmax(155px,1fr));gap:.2rem 2.6rem;opacity:0;visibility:hidden;transition:opacity .3s var(--ease),transform .3s var(--ease);box-shadow:0 30px 70px -22px rgba(14,17,23,.22);z-index:120}
.nav-dd:hover .nav-dd-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.nav-dd-col{display:flex;flex-direction:column}
.nav-dd-h{font-size:9.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--helix);margin-bottom:.7rem;padding-bottom:.55rem;border-bottom:1px solid var(--cream-dark)}
.nav-dd-menu a{font-size:12.5px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--text-mid);padding:.4rem 0;transition:color .2s,padding-left .2s;white-space:nowrap}
.nav-dd-menu a:hover{color:var(--navy);padding-left:.3rem}
.nav-dd-all{margin-top:.55rem;color:var(--helix)!important;font-weight:600;font-size:11px!important;letter-spacing:.04em}

/* ════════ PAGE FEATURE IMAGE (interior pages) ════════ */
.page-feat{max-width:var(--container);margin:0 auto;padding:clamp(2.5rem,5vw,3.5rem) var(--gap) 0}
.page-feat img{width:100%;height:clamp(320px,42vw,500px);object-fit:cover;object-position:center 22%;border-radius:6px;display:block}
/* inline split feature (image + text) */
.feat-split{max-width:var(--container);margin:0 auto;padding:clamp(3rem,7vw,5rem) var(--gap);display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.feat-split img{width:100%;height:100%;min-height:380px;max-height:540px;object-fit:cover;object-position:center 18%;border-radius:6px}
.feat-split.flip > .prose{order:2}
.feat-split.flip > img{order:1}
@media(max-width:768px){.feat-split{grid-template-columns:1fr}}
/* blog hero image */
.post-hero-img{max-width:var(--container);margin:0 auto;padding:clamp(2rem,4vw,3rem) var(--gap) 0}
.post-hero-img img{width:100%;height:clamp(240px,38vw,460px);object-fit:cover;border-radius:6px;display:block}


/* ════════ FEATURE: before/after result card ════════ */
.feat-result{max-width:540px;margin:clamp(2.5rem,5vw,3.5rem) auto 0;padding:0 var(--gap);text-align:center}
.feat-result img{width:100%;border-radius:6px;display:block;border:1px solid var(--cream-dark)}
.feat-result figcaption{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-soft);margin-top:.9rem}
/* ════════ FEATURE: split image + panel (editorial variety) ════════ */
.feat-band{max-width:var(--container);margin:0 auto;padding:clamp(2.5rem,5vw,3.5rem) var(--gap) 0}
.feat-band-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(1.5rem,4vw,3rem);align-items:stretch}
.feat-band-grid img{width:100%;height:100%;min-height:340px;max-height:520px;object-fit:cover;object-position:center 20%;border-radius:6px;display:block}
.feat-panel{background:var(--navy);color:var(--text-inv);border-radius:6px;padding:clamp(2rem,4vw,3rem);display:flex;flex-direction:column;justify-content:center}
.feat-panel .eyebrow{color:var(--helix-light)}
.feat-panel p{font-family:var(--serif);font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.25;color:#fff;margin:.5rem 0 1.5rem}
@media(max-width:760px){.feat-band-grid{grid-template-columns:1fr}.feat-band-grid img{max-height:380px}}

/* ════════════════════════════════════════════════════════
   CINEMATIC SERVICE HEROES — 3 distinct category treatments
   ════════════════════════════════════════════════════════ */
.svc-hero{position:relative;overflow:hidden}
.svc-hero .crumb a{transition:color .3s}
.svc-cine-cta{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap}

/* ── CLINICAL: full-bleed image, navy immersive, text bottom-left ── */
.svc-clinical{height:clamp(540px,82vh,820px);min-height:520px;background:var(--navy)}
.svc-clinical .svc-hero-bg{position:absolute;inset:-8% 0;will-change:transform}
.svc-clinical .svc-hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 24%}
.svc-clinical::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,17,23,.5) 0%,rgba(14,17,23,.18) 40%,rgba(14,17,23,.85) 100%);z-index:1}
.svc-clinical .svc-hero-in{position:absolute;inset:0;z-index:2;max-width:var(--container);margin:0 auto;padding:0 var(--gap) clamp(3rem,7vh,5.5rem);display:flex;flex-direction:column;justify-content:flex-end}
.svc-clinical .crumb{color:rgba(255,255,255,.5)}.svc-clinical .crumb a{color:rgba(255,255,255,.7)}.svc-clinical .crumb a:hover{color:var(--helix-light)}
.svc-clinical h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,6.5vw,5.2rem);line-height:1;letter-spacing:-.02em;color:#fff;max-width:16ch}
.svc-clinical h1 em{font-style:italic;color:var(--helix-light)}
.svc-clinical .svc-hero-lead{color:rgba(255,255,255,.78);max-width:560px;margin-top:1.1rem;font-size:clamp(1rem,2vw,1.15rem);line-height:1.7}

/* ── COSMETIC: light editorial split, serif headline + framed smile ── */
.svc-cosmetic{background:var(--cream);padding:clamp(7rem,12vw,9rem) var(--gap) clamp(3rem,6vw,5rem)}
.svc-cosmetic .svc-hero-in{max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.svc-cosmetic .crumb{color:var(--text-soft)}.svc-cosmetic .crumb a{color:var(--text-mid)}
.svc-cosmetic h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.8rem,6vw,5.4rem);line-height:1;letter-spacing:-.025em;color:var(--navy);margin-top:.5rem}
.svc-cosmetic h1 em{font-style:italic;color:var(--helix)}
.svc-cosmetic .svc-hero-lead{color:var(--text-mid);max-width:46ch;margin-top:1.4rem;font-size:15.5px;line-height:1.8}
.svc-cosmetic .svc-hero-media{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:1/1;box-shadow:0 40px 80px -30px rgba(14,17,23,.28);border:1px solid var(--cream-dark)}
.svc-cosmetic .svc-hero-media img{width:100%;height:100%;object-fit:cover;display:block}
.svc-cosmetic .svc-hero-tag{position:absolute;left:1rem;bottom:1rem;z-index:2;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(14,17,23,.55);backdrop-filter:blur(6px);padding:.5rem .85rem;border-radius:100px}
@media(max-width:820px){.svc-cosmetic .svc-hero-in{grid-template-columns:1fr;gap:2.5rem}.svc-cosmetic .svc-hero-media{aspect-ratio:16/11}}

/* ── ORTHO / TECH: dark split, scan imagery, monospace accent ── */
.svc-tech{background:var(--navy);color:#fff;padding:clamp(7rem,12vw,9rem) var(--gap) clamp(3.5rem,7vw,5.5rem);position:relative}
.svc-tech::before{content:'';position:absolute;inset:0;background:radial-gradient(120% 90% at 85% 0%,rgba(74,110,127,.28),transparent 55%);pointer-events:none}
.svc-tech .svc-hero-in{position:relative;max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.svc-tech .crumb{color:rgba(255,255,255,.45)}.svc-tech .crumb a{color:rgba(255,255,255,.65)}
.svc-tech .svc-tech-kicker{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--helix-light);display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}
.svc-tech .svc-tech-kicker::before{content:'';width:24px;height:1px;background:var(--helix-light)}
.svc-tech h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,6vw,5rem);line-height:1.02;letter-spacing:-.02em;color:#fff}
.svc-tech h1 em{font-style:italic;color:var(--helix-light)}
.svc-tech .svc-hero-lead{color:rgba(255,255,255,.72);max-width:48ch;margin-top:1.3rem;font-size:15.5px;line-height:1.8}
.svc-tech .svc-hero-media{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:5/6;border:1px solid rgba(255,255,255,.08)}
.svc-tech .svc-hero-media img{width:100%;height:108%;object-fit:cover;object-position:center 25%;will-change:transform}
@media(max-width:820px){.svc-tech .svc-hero-in{grid-template-columns:1fr;gap:2.5rem}.svc-tech .svc-hero-media{aspect-ratio:16/11}}

/* hero entrance reveal (cinematic) */
.cine-up{opacity:0;transform:translateY(28px)}
.cine-up.in{opacity:1;transform:none;transition:opacity 1s var(--ease),transform 1s var(--ease)}
@media(prefers-reduced-motion:reduce){.cine-up{opacity:1!important;transform:none!important}.svc-clinical .svc-hero-bg,.svc-cosmetic .svc-hero-media img,.svc-tech .svc-hero-media img{transform:none!important}}

/* ════════ SERVICE PAGE — scroll-across results gallery ════════ */
.svc-gallery{overflow:hidden;padding:clamp(3rem,7vw,5rem) 0;background:var(--cream-mid);border-top:1px solid var(--cream-dark)}
.svc-gallery-head{max-width:var(--container);margin:0 auto clamp(1.5rem,3vw,2.5rem);padding:0 var(--gap)}
.svc-gallery-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,4vw,2.8rem);color:var(--navy);letter-spacing:-.015em;margin-top:.4rem}
.svc-gallery-head h2 em{font-style:italic;color:var(--helix)}
.svc-gallery-track{display:flex;gap:1rem;width:max-content;animation:svcgal 45s linear infinite;-webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}
.svc-gallery:hover .svc-gallery-track{animation-play-state:paused}
.svc-gallery-track figure{flex:none;width:clamp(250px,28vw,340px);margin:0;border-radius:8px;overflow:hidden;background:#fff;border:1px solid var(--cream-dark);box-shadow:0 12px 30px -18px rgba(14,17,23,.25)}
.svc-gallery-track img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.svc-gallery-track figcaption{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--text-soft);padding:.75rem .9rem;text-align:center}
@keyframes svcgal{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.svc-gallery-track{animation:none;width:auto;overflow-x:auto;mask-image:none;-webkit-mask-image:none;padding:0 var(--gap)}}

/* ══ ACCESSIBILITY: skip link, visible keyboard focus, contrast fixes ══ */
.skip-link{position:absolute;left:8px;top:-60px;z-index:10001;background:var(--navy);color:#fff;padding:.65rem 1.1rem;border-radius:4px;font-size:13px;font-weight:600;letter-spacing:.02em;transition:top .2s var(--ease)}
.skip-link:focus{top:8px}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--helix);outline-offset:2px;border-radius:2px}
.nav-book:focus-visible,.btn-w:focus-visible{outline-color:#fff}
#main{scroll-margin-top:90px}
#main:focus{outline:none}
.cta p{color:rgba(255,255,255,.9)}
.cta-tel{color:rgba(255,255,255,.85)}
.f-bot p{color:rgba(255,255,255,.62)}
.form-note{font-size:13px;margin-top:.75rem;min-height:1.1em}
.form-note.ok{color:var(--helix)}
.form-note.err{color:#B23B3B}

/* ══ MOBILE REFINEMENTS — mobile-only; desktop layout unchanged ══ */
.m-actionbar{display:none}
@media(max-width:960px){
  .m-actionbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:90;box-shadow:0 -2px 16px rgba(14,17,23,.14);font-family:var(--sans)}
  .m-act{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:54px;font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
  .m-act svg{width:17px;height:17px;flex:none}
  .m-act-call{background:var(--white);color:var(--navy)}
  .m-act-book{background:var(--helix);color:#fff}
  body{padding-bottom:54px}
  .btt{bottom:calc(54px + 1rem)}
}
@media(max-width:768px){
  .pay-card p,.feat-item p,.h-row span,.svc-extra,.g-note,.pkg-card p,.pkg-card li{font-size:14px}
  .gf-btn{min-height:44px;font-size:12px;padding:.7rem 1rem;display:inline-flex;align-items:center}
  .lb-close{width:44px;height:44px;display:flex;align-items:center;justify-content:center}
  .f-col a{padding:.5rem 0;font-size:14px}
  .svc-link{display:flex;margin-right:0 !important;min-height:40px;align-items:center}
}
@media(max-width:600px){
  .svc-gallery{overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;-webkit-mask-image:none;mask-image:none}
  .svc-gallery-track{animation:none;width:max-content;padding:0 var(--gap)}
  .svc-gallery-track figure{scroll-snap-align:center}
  .ab-strip{overflow-x:auto;-webkit-overflow-scrolling:touch;-webkit-mask-image:none;mask-image:none}
  .ab-strip-track{animation:none;width:max-content}
}

/* ══ AHPRA results / treatment disclaimer ══ */
/* Never give this block the .r reveal class — it must render without JavaScript. */
.results-disclaimer{max-width:820px;margin:2.5rem auto 0;padding:1.4rem 1.6rem;border:1px solid #DDD8CF;border-radius:8px;background:#FFFFFF;scroll-margin-top:90px}
.results-disclaimer p{font-size:14px;line-height:1.75;color:#5A6872}
.results-disclaimer p+p{margin-top:.9rem;font-weight:500}
.results-disclaimer-wrap{padding:0 var(--gap) 2rem}
