/* Westside Dental: fonts, palette and page-specific components on top of core.css */
@font-face{font-family:"Fraunces";src:url(../fonts/fraunces-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url(../fonts/fraunces-latin-wght-italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Manrope";src:url(../fonts/manrope-latin-wght-normal.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
:root{--bg:#faf6f2;--fg:#2b1a24;--muted:#6b5560;--card:#ffffff;--alt:#f3ebe3;--line:rgba(58,15,42,.1);--line-strong:rgba(58,15,42,.22);--a1:#7a1f45;--on-a1:#ffffff;--acc:#a3164f;--a2:#d6bc97;--tint:#f8eaef;--glass:rgba(255,255,255,.76);--float-bg:rgba(255,255,255,.86);--ring:#a3164f;--spot:rgba(200,23,92,.12);--ink:#3a0f2a;--ink-fg:#fbf1ec;--ink-muted:#d3b9c4;--ink-acc:#e9cfa8;--ink-card:rgba(255,255,255,.05);--foot:#240a1a;--r:26px;--em:italic;--grain:.04;--fd:'Fraunces',system-ui,sans-serif;--fb:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;--hw:500;--h1max:5.2rem;--curtain:#3a0f2a;--fe:'Fraunces',serif;--emw:400;--star:#f5b301}
.concept{background:var(--a1);color:#ecd6dc;font-size:.78rem;padding:.45rem 1rem}

/* shared bits */
.stars{display:inline-flex;gap:2px;color:var(--star)}.stars svg{width:15px;height:15px;fill:currentColor;stroke:none}
.ph-frame .par{position:absolute;inset:-12% 0;will-change:transform}.ph-frame .par img{width:100%;height:100%;object-fit:cover}
.ph-frame{position:relative;overflow:hidden}

/* hero */
.ws-hero{padding:clamp(2rem,5vw,4rem) 0 3rem}.ws-grid{display:grid;gap:2.5rem;align-items:center;position:relative}
.ws-media{position:relative}.ws-main{aspect-ratio:4/5;border-radius:36px;max-height:660px;box-shadow:0 50px 90px -60px rgba(58,15,42,.6)}
.ws-media .float{position:absolute;z-index:2}.ws-media .f1{left:-5%;top:12%}.ws-media .f2{right:-3%;bottom:10%}.ws-media .f2 .stars svg{width:12px;height:12px}.ws-media .f2 .fi{align-items:center}
.hero-swirl{position:absolute;inset:auto -8% -12% auto;width:60%;z-index:1;pointer-events:none;opacity:.9}
.rating{display:inline-flex;align-items:center;gap:.55rem;padding:.5rem .9rem .5rem .7rem;border-radius:999px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--fg);font-size:.88rem;box-shadow:0 14px 30px -24px rgba(58,15,42,.5);margin-bottom:1.4rem;transition:transform .3s}
.rating:hover{transform:translateY(-2px)}.rating b{font-family:var(--fd);font-size:1.05rem}.rating span:last-child{color:var(--muted)}
.hero-facts{list-style:none;padding:0;margin:2rem 0 0;display:flex;flex-wrap:wrap;gap:.7rem 1.6rem}
.hero-facts li{display:flex;align-items:center;gap:.6rem;font-size:.85rem;color:var(--muted)}.hero-facts b{display:block;color:var(--fg);font-size:.95rem}
.hero-facts svg{width:38px;height:38px;padding:9px;border-radius:12px;background:var(--tint);color:var(--acc);flex:none}
.cue{position:absolute;left:50%;bottom:-2.2rem;width:26px;height:42px;border:2px solid var(--line-strong);border-radius:20px;display:none}
.cue span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--acc);animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%{transform:translateY(0);opacity:1}70%{transform:translateY(12px);opacity:0}100%{opacity:0}}

/* highlight marquee */
.usp{overflow:hidden}.usp .marq{display:flex;width:max-content;animation:marq 38s linear infinite}.usp ul{flex-wrap:nowrap;justify-content:flex-start;gap:0;padding:1.05rem 0}
.usp li{padding:0 1.6rem;white-space:nowrap;position:relative}.usp li::after{content:"";position:absolute;right:-3px;top:50%;width:6px;height:6px;border-radius:50%;background:#d6bc97;opacity:.5;transform:translateY(-50%)}
.usp:hover .marq{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}

/* about */
.ab-grid{display:grid;gap:3rem;align-items:center}.ab-grid .statement{margin:1rem 0 1.4rem}
.ab-stats{margin-top:2rem}.ab-stats .num .stars{margin-left:.5rem}.ab-stats .num .stars svg{width:18px;height:18px}
.ab-media{position:relative;min-height:440px}.ab-a{position:absolute;left:0;top:0;width:78%;aspect-ratio:3/2;border-radius:30px}.ab-b{position:absolute;right:0;bottom:0;width:58%;aspect-ratio:4/3;border-radius:26px;border:6px solid var(--bg);box-shadow:0 40px 70px -50px rgba(58,15,42,.6)}

/* family */
.ws-fam{display:grid;gap:1.2rem}.ws-fc{border-radius:28px;background:var(--card);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}.ws-fc:hover{transform:translateY(-6px);box-shadow:0 30px 60px -40px rgba(58,15,42,.5)}
.ws-fm{aspect-ratio:4/3;border-radius:0}.ws-fm img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1)}.ws-fc:hover .ws-fm img{transform:scale(1.05)}
.ws-ft{padding:1.4rem}.ws-ft h3{font-size:1.45rem;margin-bottom:.5rem}.ws-ft p{color:var(--muted)}.ws-more{font-weight:700;color:var(--acc);text-decoration:none;display:inline-flex;align-items:center;gap:.35rem}.ws-more svg{width:16px;height:16px}
.ws-em{min-height:15rem;aspect-ratio:4/3;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:.5rem;padding:1.6rem;background:radial-gradient(120% 90% at 90% 0%,rgba(200,23,92,.22),transparent 55%),linear-gradient(135deg,var(--a1),#7a1f45);color:#fbf1ec}
.ws-em-k{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:#e9cfa8;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.ws-em .ws-em-k svg{width:20px;height:20px;stroke-width:1.8}
.ws-em-n{font-family:var(--fd);font-size:clamp(1.9rem,3vw,2.4rem);color:#fff;text-decoration:none;letter-spacing:-.02em;line-height:1.1}.ws-em-s{color:#d3b9c4;font-size:.92rem}
.ws-em-b{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.6rem}.ws-em-b .btn{color:#fff;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.06)}.ws-em-b .ws-em-call{background:#fff;color:var(--a1);border-color:#fff}.ws-em .ws-em-b svg{width:16px;height:16px;stroke-width:1.8}

/* reel */
.reel-sec{padding-top:0}.reel{position:relative;border-radius:36px;overflow:hidden;aspect-ratio:16/9;background:var(--a1);box-shadow:0 60px 100px -70px rgba(58,15,42,.8)}
.reel-v{width:100%;height:100%;object-fit:cover;display:block}
.reel-cap{position:absolute;left:0;right:0;bottom:0;padding:2rem clamp(1.2rem,4vw,2.6rem);background:linear-gradient(transparent,rgba(58,15,42,.75));color:#fff}.reel-cap .kicker{color:#e9cfa8}.reel-cap p{font-family:var(--fd);font-size:clamp(1.2rem,2.6vw,2rem);margin:.4rem 0 0;max-width:28ch}

/* braces */
.br-grid{display:grid;gap:2rem;align-items:center}.br-a{aspect-ratio:4/5;border-radius:32px}.br-b{aspect-ratio:4/3;border-radius:28px}
.br-opts{display:grid;gap:.9rem}.br-o{display:flex;gap:1.1rem;padding:1.2rem 1.3rem;border-radius:22px;background:var(--card);border:1px solid var(--line);transition:border-color .3s,transform .3s}.br-o:hover{border-color:var(--acc);transform:translateX(4px)}
.br-o .n{font:700 .8rem/1 var(--fb);letter-spacing:.1em;color:var(--acc);padding-top:.35rem}.br-o h3{font-size:1.3rem;margin:0 0 .3rem}.br-o p{margin:0;color:var(--muted)}
.br-q{margin:.4rem 0 .6rem;padding:1.3rem 1.4rem;border-radius:22px;background:var(--tint)}.br-q blockquote{margin:.5rem 0;font-family:var(--fd);font-size:1.2rem;line-height:1.35}.br-q figcaption{font-size:.85rem;color:var(--muted)}
.br-opts>.btn{justify-self:start}

/* treatments */
.tx{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.tx-c{border-radius:26px;background:var(--card);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}.tx-c:hover{transform:translateY(-6px);box-shadow:0 30px 60px -40px rgba(58,15,42,.5)}
.tx-c .ph-frame{aspect-ratio:4/3}.tx-c .ph-frame img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1)}.tx-c:hover .ph-frame img{transform:scale(1.06)}
.tx-t{padding:1.2rem 1.3rem 1.4rem;position:relative}.tx-t h3{font-size:1.25rem;margin:.6rem 0 .3rem}.tx-t p{margin:0;color:var(--muted);font-size:.95rem}
.tx-t .ic{width:40px;height:40px;padding:9px;border-radius:12px;background:var(--tint);color:var(--acc)}
.tx-c:not(.tx-s) .tx-t .ic{position:absolute;top:-22px;right:1.1rem;background:var(--card);box-shadow:0 10px 24px -14px rgba(58,15,42,.5)}
.tx-s{background:linear-gradient(160deg,var(--card),var(--tint))}

/* fees */
.fees-grid{display:grid;gap:2.5rem;align-items:start}
.prsi{display:flex;gap:1rem;margin-top:1.6rem;padding:1.3rem 1.4rem;border-radius:22px;background:var(--a1);color:#fbf1ec}.prsi p{margin:.3rem 0 0;color:#e3cdd2}.prsi .ic{width:42px;height:42px;padding:9px;border-radius:12px;background:rgba(233,207,168,.14);color:#e9cfa8;flex:none}
.fee-list{border-radius:var(--r);background:var(--card);border:1px solid var(--line);padding:.4rem 1.4rem}
table.fees{width:100%;border-collapse:collapse}table.fees th,table.fees td{padding:1rem 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
table.fees tr:last-child th,table.fees tr:last-child td{border-bottom:0}table.fees th{font-weight:700}table.fees th small{display:block;font-weight:500;color:var(--muted);font-size:.85rem;margin-top:.2rem}
table.fees td{text-align:right;font-family:var(--fd);font-size:1.2rem;white-space:nowrap;padding-left:1rem;color:var(--acc)}

/* reviews */
/* reviews: two running rows of Google review cards */
.rev-sec{background:linear-gradient(180deg,var(--bg),#f5ede6);overflow:hidden}.rev-sec h2 em{color:var(--acc)}
.rev-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2.4rem}
.rev-score{display:flex;align-items:center;gap:1rem;text-decoration:none;color:var(--fg);padding:.9rem 1.3rem;border-radius:22px;background:#fff;box-shadow:0 18px 40px -26px rgba(58,15,42,.45);transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.rev-score:hover{transform:translateY(-3px);box-shadow:0 26px 50px -26px rgba(58,15,42,.55)}
.rev-score b{font-family:var(--fd);font-size:3rem;line-height:1}.rev-score>span{display:grid;gap:.3rem}.rev-score small{color:var(--muted)}.rev-score .stars svg{width:20px;height:20px}.rev-score .g{width:26px;height:26px;margin-left:.4rem}
.stars{color:var(--star);filter:drop-shadow(0 1px 0 rgba(180,120,0,.25))}.stars svg{fill:url(#gold)}
.rm{display:grid;gap:1.6rem;padding:.6rem 0 1rem;-webkit-mask:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent)}
.rm-row{overflow:hidden;padding:.5rem 0 1.4rem}
.rm-track{display:flex;width:max-content;animation:rm-run var(--t,60s) linear infinite}
.rm-rev .rm-track{animation-direction:reverse}
.rm-row:hover .rm-track,.rm-row:focus-within .rm-track{animation-play-state:paused}
.rm-set{display:flex;gap:1.6rem;padding-right:1.6rem}
@keyframes rm-run{to{transform:translateX(-50%)}}
.rc{display:flex;flex-direction:column;gap:1rem;width:420px;margin:0;padding:1.7rem 1.8rem 1.5rem;border-radius:22px;background:#fff;box-shadow:0 1px 0 rgba(58,15,42,.04),0 18px 40px -28px rgba(58,15,42,.4);border-bottom:3px solid transparent;cursor:pointer;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s,border-color .45s}
.rc:hover,.rc:focus-visible{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(58,15,42,.55);border-bottom-color:var(--acc);outline:0}
.rc-h{display:flex;align-items:center;gap:.9rem}
.rc-av{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;font:700 1.25rem/1 var(--fb);flex:none;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.rc:hover .rc-av{transform:scale(1.08) rotate(-6deg)}
.rc figcaption{display:grid;gap:2px;min-width:0}.rc figcaption b{font-size:1.08rem;color:var(--fg);transition:color .4s}.rc:hover figcaption b{color:var(--acc)}.rc figcaption small{font-size:.8rem;color:var(--muted)}
.rc .g{width:22px;height:22px;margin-left:auto;align-self:flex-start;flex:none}
.rc blockquote{margin:0;font-size:1rem;line-height:1.65;color:var(--fg);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.rc-st{margin-top:auto;display:flex;align-items:center;justify-content:space-between}.rc-st .stars svg{width:19px;height:19px}
.rc-st i{font:600 .78rem/1 var(--fb);font-style:normal;color:var(--acc);opacity:0;transform:translateX(-6px);transition:opacity .35s,transform .35s}.rc:hover .rc-st i,.rc:focus-visible .rc-st i{opacity:1;transform:none}
.rev-foot{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-top:1.2rem;text-align:center}.rev-foot .note{margin:0;color:var(--muted);font-size:.85rem;background:none;border:0;padding:0}
.rev-dlg{max-width:560px}.rev-dlg .dlg{padding:1.8rem}.rev-dlg .rc{width:auto;box-shadow:none;padding:0;cursor:default}.rev-dlg .rc:hover{transform:none}.rev-dlg .rc blockquote{-webkit-line-clamp:unset;font-size:1.05rem}.rev-dlg .rc-st i{display:none}.rev-dlg form{margin-top:1.2rem;text-align:right}
@media (max-width:640px){.rc{width:300px;padding:1.3rem 1.3rem 1.2rem}.rc blockquote{-webkit-line-clamp:6;font-size:.95rem}.rev-score b{font-size:2.4rem}}
@media (prefers-reduced-motion:reduce){.rm-track{animation:none}.rm-row{overflow-x:auto}.rm-set[aria-hidden]{display:none}}

/* album: a ring of photo cards turning in 3D */
.album-sec{overflow:hidden}.album-grid{display:grid;gap:2rem;align-items:center}
.album-copy .note{background:none;border:0;padding:0;font-size:.85rem;color:var(--muted)}
.ring-wrap{--cw:clamp(150px,17vw,240px);position:relative;height:calc(var(--cw) * 1.75);margin-top:1rem;perspective:1500px;perspective-origin:50% 40%;cursor:grab;touch-action:pan-y;user-select:none}
.ring-wrap:active{cursor:grabbing}
.ring{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d}
.rcard{position:absolute;left:calc(var(--cw) / -2);top:calc(var(--cw) * -.68);width:var(--cw);aspect-ratio:3/4;margin:0;border-radius:18px;overflow:hidden;background:var(--alt);box-shadow:0 30px 50px -30px rgba(58,15,42,.55);will-change:transform,opacity}
.rcard img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.rcard figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.2rem .9rem .8rem;background:linear-gradient(transparent,rgba(43,26,36,.72));color:#fff;display:grid;gap:2px}
.rcard b{font:600 .95rem/1.2 var(--fb)}.rcard span{font-size:.72rem;opacity:.8}
@media (prefers-reduced-motion:reduce){.ring-wrap{height:auto;perspective:none}.ring{position:static;width:auto;height:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.8rem}.rcard{position:relative;left:auto;top:auto;width:auto}}

/* live opening status */
.open-st{display:inline-flex;align-items:center;gap:.5rem;font:600 .82rem/1 var(--fb);color:var(--fg);text-decoration:none;white-space:nowrap}
.open-st i,.open-card>i{position:relative;width:9px;height:9px;border-radius:50%;background:#94a3b8;flex:none}
[data-state=open] i,.open-card[data-state=open]>i{background:#16a34a}[data-state=soon] i,.open-card[data-state=soon]>i{background:#f59e0b}[data-state=closed] i,.open-card[data-state=closed]>i{background:#dc2626}
[data-state=open] i::after,[data-state=soon] i::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;animation:ping 1.8s cubic-bezier(0,0,.2,1) infinite}
@keyframes ping{to{transform:scale(2.6);opacity:0}}
.nav-open{padding:.55rem .85rem;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.6);transition:background .3s}.nav-open:hover{background:#fff}
@media (max-width:1279px){.nav-open{display:none}}
footer .open-st{color:#fbf1ec;margin-top:.5rem}
.open-card{display:flex;align-items:center;gap:1rem;margin:1.2rem 0 1.4rem;padding:1rem 1.2rem;border-radius:18px;background:#fff;border:1px solid var(--line)}
.open-card>i{width:12px;height:12px}.open-card b{display:block;font-family:var(--fd);font-size:1.25rem}.open-card span{color:var(--muted);font-size:.9rem}
.open-card[data-state] >i::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;animation:ping 1.8s cubic-bezier(0,0,.2,1) infinite}.open-card[data-state=closed]>i::after{display:none}
.wk{display:grid;gap:.45rem;margin:0 0 1.4rem}
.wk-d{display:grid;grid-template-columns:2.6rem 1fr;align-items:center;gap:.7rem;font-size:.8rem;font-weight:600;color:var(--muted)}
.wk-b{position:relative;height:12px;border-radius:999px;background:var(--alt)}
.wk-b i{position:absolute;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,var(--acc),var(--a2));transform-origin:left;transform:scaleX(var(--s,1));transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.wk-b small{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);font-size:.66rem;color:var(--muted)}
.wk-b em{position:absolute;top:-4px;bottom:-4px;width:2px;border-radius:2px;background:var(--fg);display:none}
.wk-d.on{color:var(--fg)}.wk-d.on em{display:block}
.wk-x{display:flex;justify-content:space-between;margin-left:3.3rem;font-size:.68rem;color:var(--muted)}

/* treatment tiles: starting price */
.tx-c{position:relative}.tx-pr{position:absolute;top:.9rem;left:.9rem;z-index:2;padding:.4rem .7rem;border-radius:999px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font:700 .78rem/1 var(--fb);color:var(--fg);transition:transform .4s cubic-bezier(.2,.8,.2,1)}.tx-c:hover .tx-pr{transform:translateY(-3px) scale(1.04)}

/* team */
.team-cta{background:var(--a1);color:var(--ink-fg);display:flex;align-items:center}.team-cta h3{color:#fff;margin:.8rem 0 .4rem}.team-cta p{color:var(--ink-muted)}.team-cta .ic{width:42px;height:42px;padding:9px;border-radius:12px;background:rgba(233,207,168,.14);color:#e9cfa8}
.person .t h3{font-size:1.3rem;margin:0 0 .35rem}.person .t p{color:var(--muted);margin:0}.team-cta .t p{margin-bottom:1rem}

/* booking */
.ws-wz .steps{grid-template-columns:repeat(7,1fr);gap:.3rem}.ws-wz .steps li{font-size:.66rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:600px){.ws-wz .steps li:not([aria-current]){color:transparent}.ws-wz .steps li[aria-current]{overflow:visible}}

/* visit */
.ws-get{display:grid;gap:2.5rem;align-items:center}.ws-night{aspect-ratio:3/2;border-radius:36px}
.stat .st-i{width:44px;height:44px;color:var(--acc)}
.social{display:flex;gap:.6rem;margin-top:1.4rem}.social a{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border-radius:999px;border:1px solid var(--line);background:var(--card);text-decoration:none;color:var(--fg);font-weight:600;font-size:.9rem}.social svg{width:18px;height:18px}

/* footer */
footer .big em{font-style:italic;color:#e9cfa8}.ft-grid{display:grid;gap:1.5rem;margin:1.5rem 0}.ft-note{font-size:.85rem;opacity:.75}

@media (min-width:900px){
 .ws-grid{grid-template-columns:1.05fr .95fr}.cue{display:block}
 .ab-grid{grid-template-columns:1fr 1fr}.ws-fam{grid-template-columns:repeat(3,1fr)}
 .br-grid{grid-template-columns:.8fr 1fr .7fr}.br-b{align-self:end}
 .fees-grid{grid-template-columns:.8fr 1.2fr}.ws-get{grid-template-columns:1.1fr .9fr}.ft-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:899px){.nav-tel{display:none}.ab-media{min-height:340px}.br-b{display:none}.ws-media .f1{left:2%}.ws-media .f2{right:2%}.hero-swirl{display:none}}
@media (prefers-reduced-motion:reduce){.usp .marq{animation:none}.cue span{animation:none}}

/* treatment explainers */
.xp{display:grid;gap:1.2rem}.xp-c{border-radius:28px;overflow:hidden;background:var(--card);border:1px solid var(--line)}
.xp-v{aspect-ratio:16/9;background:var(--a1)}.xp-v video{width:100%;height:100%;display:block;object-fit:cover}
.xp-t{padding:1.3rem 1.4rem 1.5rem}.xp-t h3{font-size:1.35rem;margin:.6rem 0 .35rem}.xp-t p{margin:0;color:var(--muted)}
#explained .note{background:none;border:0;padding:0;margin-top:1.2rem}
@media (min-width:900px){.xp{grid-template-columns:1fr 1fr}}

/* brand logo */
.brand-logo img{display:block;height:42px;width:auto}
@media (max-width:520px){.brand-logo img{height:34px}}
.ft-logo{display:block;height:64px;width:auto;margin-bottom:1.6rem}

/* ---------- layout balance pass ---------- */
/* about: shorter statement, larger photo pair with a floating note */
.ab-grid .statement{font-size:clamp(1.7rem,3.2vw,2.6rem);max-width:22ch}
.ab-media{min-height:clamp(460px,46vw,620px)}
.ab-a{width:84%;aspect-ratio:4/3.3}
.ab-b{width:56%}
.ab-chip{position:absolute;left:-1.2rem;bottom:14%;z-index:3}
@media (max-width:899px){.ab-chip{left:.5rem;bottom:.5rem}}

/* reel: heading sits above the film so nothing covers the video captions */
.reel-head{display:grid;gap:1rem 3rem;align-items:end;margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.reel-head .sub{margin:0;max-width:34ch}
@media (min-width:900px){.reel-head{grid-template-columns:1.2fr .8fr}.reel-head .sub{justify-self:end}}
.reel-sec{padding-top:clamp(4.2rem,9vw,7.5rem)}

/* braces: sticky photo pair beside the options */
.br-grid{grid-template-columns:1fr;gap:clamp(2.5rem,5vw,4.5rem);align-items:start}
.br-media{position:relative;padding-bottom:16%}
.br-a{width:80%;aspect-ratio:4/5}
.br-b{position:absolute;right:0;bottom:0;width:52%;aspect-ratio:4/3.2;border:6px solid var(--bg);box-shadow:0 40px 70px -40px rgba(58,15,42,.55);display:block!important}
.br-chip{position:absolute;right:4%;top:10%;z-index:3}
.br-opts{gap:1rem}.br-o{padding:1.4rem 1.5rem}
@media (min-width:900px){.br-grid{grid-template-columns:1fr 1fr!important}.br-media{position:sticky;top:6.5rem}.br-opts{padding-top:1rem}}
@media (max-width:899px){.br-chip{right:2%;top:4%}}

/* fees: the side column holds a photo and stays in view */
.fee-ph{margin-top:1.4rem;aspect-ratio:4/3;border-radius:28px}
@media (min-width:900px){.fees-side{position:sticky;top:6.5rem}}

/* team: three equal columns, warmer portrait panels */
.team{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem}
.person{transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}.person:hover{transform:translateY(-6px);box-shadow:0 30px 60px -40px rgba(58,15,42,.5)}
.person .ph{aspect-ratio:4/3;background:radial-gradient(90% 80% at 30% 20%,rgba(214,188,151,.35),transparent 60%),radial-gradient(80% 70% at 80% 90%,rgba(200,23,92,.14),transparent 60%),var(--alt)}
.person .ph::before{content:"";position:absolute;width:150px;height:150px;border-radius:50%;border:1px solid rgba(122,31,69,.18);box-shadow:0 0 0 22px rgba(122,31,69,.05),0 0 0 46px rgba(122,31,69,.035)}
.person .mono{width:112px;height:112px;font-size:2.5rem;position:relative;background:linear-gradient(140deg,#7a1f45,var(--mono2,#c8175c));box-shadow:0 20px 40px -20px rgba(122,31,69,.7);transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.person:hover .mono{transform:scale(1.06) rotate(-4deg)}
.person .ph em{border:0;background:#fff;color:var(--acc);box-shadow:0 8px 18px -12px rgba(58,15,42,.4)}
.person .t{padding:1.4rem 1.5rem 1.6rem}
.team-cta{justify-content:center;background:radial-gradient(100% 80% at 90% 0%,rgba(200,23,92,.35),transparent 60%),linear-gradient(150deg,#7a1f45,#3a0f2a)}
.team-cta .t{padding:2rem}

/* treatment photos zoom gently into place */
.tx-c .ph-frame,.ws-fm{overflow:hidden}

.team-cta .t p{color:#f1dfe6}.team-cta .t h3{font-size:1.6rem}
@media (max-width:640px){.ab-stats{grid-template-columns:repeat(3,1fr)!important;gap:.5rem}.ab-stats .stat{padding:.9rem .7rem}.ab-stats .num{font-size:1.9rem}.ab-stats .num .stars{display:none}.ab-stats p{font-size:.75rem}}
@media (max-width:899px){.ab-media{min-height:400px}.ab-a{width:88%}.ab-b{width:60%}}

/* ---------- navigation bar in brand colours ---------- */
header.site .nav{min-height:64px;gap:1.25rem;padding:.55rem .55rem .55rem 1.2rem;background:linear-gradient(120deg,#3a0f2a 0%,#5a1838 60%,#7a1f45 100%);border:1px solid rgba(233,207,168,.22);box-shadow:0 18px 40px -26px rgba(58,15,42,.8)}
header.scrolled .nav{box-shadow:0 22px 50px -24px rgba(58,15,42,.85)}
.brand-logo img{height:44px}
.links{gap:.25rem;font:600 .9rem/1 var(--fb);letter-spacing:.01em}
.links a{position:relative;padding:.65rem .85rem;color:rgba(251,241,236,.78)}
.links a:hover{background:rgba(255,255,255,.08);color:#fff}
.links a::after{content:"";position:absolute;left:50%;bottom:.28rem;width:4px;height:4px;border-radius:50%;background:#e9cfa8;transform:translateX(-50%) scale(0);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.links a.on{color:#fff}.links a.on::after{transform:translateX(-50%) scale(1)}
.nav-cta{gap:.5rem}
.nav-cta .btn-sm,.nav-open{min-height:42px;font:600 .86rem/1 var(--fb)}
.nav-open{padding:0 1rem;border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fbf1ec}.nav-open:hover{background:rgba(255,255,255,.12)}
.nav-tel{color:#fbf1ec;border-color:rgba(255,255,255,.22)}.nav-tel:hover{background:rgba(255,255,255,.1)}
.nav-cta .btn-book{background:#e9cfa8;color:#3a0f2a;box-shadow:0 10px 24px -14px rgba(233,207,168,.9)}.nav-cta .btn-book:hover{background:#f3dfbf}
.menu-btn{color:#fbf1ec;border-color:rgba(255,255,255,.22)}
#sheet{background:#3a0f2a;border-color:rgba(233,207,168,.22)}#sheet a{color:#fbf1ec}#sheet a:hover{background:rgba(255,255,255,.08)}
.concept{background:#2b0b20;letter-spacing:.02em}
@media (max-width:520px){.brand-logo img{height:38px}header.site .nav{min-height:56px;padding-left:1rem}}
.ws-hero{padding-top:clamp(2.5rem,6vw,4.5rem)}
.brand-logo img{height:48px}
@media (max-width:520px){.brand-logo img{height:40px}}
