:root{
  /* Brand colours */
  --navy:#0E1228; --navy-r:14,18,40;
  --navy-deep:#080B1C;
  --gold:#C59527; --gold-r:197,149,39;        /* solid fills (buttons, badges, bars) */
  --gold-light:#DBB960; --gold-light-r:219,185,96; /* text/accents on DARK */
  --gold-deep:#A77E21;                          /* warm gold accent on LIGHT (icons, small accents) */
  --cream:#F7F3EC; --cream-r:247,243,236;
  --cream2:#EEE6D6;
  --ink:#141B38;                                /* headings on light */
  --t:#4D463A;                                  /* body on light */
  --tl:#6F6555;                                 /* muted on light */
  --d-text:#EDE6D9;                             /* strong text on dark */
  --d-text-2:#CFC8BB;                           /* body on dark */
  --d-text-3:#A89F8D;                           /* muted on dark (AA on navy) */
  --surface:#FBF8F2;                            /* warm off-white card surface on light sections (never stark #FFF) */
  --w:#FFFFFF;
  --shadow:0 4px 22px rgba(14,18,40,.06);
  --shadow-h:0 24px 60px rgba(14,18,40,.16);
  /* Type scale */
  --fs-eyebrow:.79rem; --fs-note:.86rem; --fs-sm:.94rem; --fs-body:1.06rem;
  --fs-1:1.2rem; --fs-2:1.5rem;
  --fs-h3:clamp(1.7rem,3.2vw,2.4rem);
  --fs-h2:clamp(2rem,4vw,3rem);
  --fs-h1:clamp(2.5rem,5.2vw,4.15rem);
  /* Spacing scale */
  --sp-1:8px; --sp-2:14px; --sp-3:20px; --sp-4:28px; --sp-5:40px; --sp-6:56px; --sp-7:80px;
  --sec-pad:clamp(72px,9vw,108px);
  /* Radius scale */
  --r-pill:999px; --r-lg:28px; --r-card:20px; --r-sm:12px;
  --maxw:1200px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Manrope',system-ui,sans-serif;color:var(--t);background:var(--cream);line-height:1.7;overflow-x:hidden;font-size:17px}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.container{max-width:var(--maxw);margin:0 auto;padding:0 26px}
@media(max-width:768px){.container{padding:0 18px}}
h1,h2,h3,h4{font-family:'Manrope',sans-serif;color:var(--ink);font-weight:800;letter-spacing:-.4px;line-height:1.16}
/* All section titles share one size, whatever wrapper they sit in (.sec__head, .crafts__intro, .about__t, .revsum__t). The Final CTA h2 overrides below. */
h2{font-size:var(--fs-h2);line-height:1.18}
.dark h1,.dark h2,.dark h3,.dark h4{color:#F5EFE3}

/* Serif accent emphasis. On DARK sections the brand's bright gold stays vivid (--gold-light, per brand owner).
   On LIGHT sections it uses the palette's own on-light warm gold (--gold-deep) so it clears WCAG AA large-text
   contrast (the same on-light gold the eyebrow already uses); same warm-gold family, not a recolor.
   font-size kept under the heading line-height so the italic box never overlaps the next line. */
em.s{font-family:'Cormorant Garamond','Times New Roman',serif;font-style:italic;font-weight:700;font-size:1.16em;line-height:1;letter-spacing:-.2px;color:var(--gold)}
.dark em.s,.hero em.s,.fcta em.s{color:var(--gold)}
.eyebrow{font-family:'Cinzel',serif;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;font-size:var(--fs-eyebrow);color:var(--gold-deep)}
.dark .eyebrow,.hero .eyebrow{color:var(--gold)}
.lead{font-size:1.12rem;color:var(--t);max-width:62ch}
.dark .lead{color:var(--d-text-2)}

/* Buttons */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;max-width:100%;font-weight:700;font-size:.96rem;padding:15px 30px;border-radius:var(--r-pill);cursor:pointer;border:none;transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s,background .28s,color .28s,border-color .28s;white-space:nowrap}
.btn svg{width:18px;height:18px;flex:none}
.btn::before{content:'';position:absolute;top:0;left:-110%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transition:left .6s ease}
.btn:hover::before{left:110%}
.btn--primary{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:var(--navy)}
.btn--primary:hover{transform:translateY(-3px) scale(1.01);box-shadow:0 16px 40px rgba(var(--gold-r),.42)}
.btn--primary:active{transform:translateY(-1px) scale(.99)}
.btn--ghost{background:transparent;color:#F5EFE3;border:1.5px solid rgba(255,255,255,.34)}
.btn--ghost:hover{transform:translateY(-3px);background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6)}
.btn--ghost:active{transform:translateY(-1px)}
.btn--ghost-d{background:transparent;color:var(--ink);border:1.5px solid rgba(20,32,58,.22)}
.btn--ghost-d:hover{transform:translateY(-3px);background:rgba(20,32,58,.04);border-color:rgba(20,32,58,.42)}
.btn--ghost-d:active{transform:translateY(-1px)}
.btn--ghost-gold{background:transparent;color:var(--gold-deep);border:1.5px solid rgba(var(--gold-r),.5)}
.btn--ghost-gold:hover{transform:translateY(-3px);background:rgba(var(--gold-r),.08);border-color:rgba(var(--gold-r),.7)}
.btn--ghost-gold:active{transform:translateY(-1px)}
.btn--follow{background:var(--navy);color:var(--gold-light);border:1.5px solid transparent;box-shadow:0 10px 26px rgba(14,18,40,.16)}
.btn--follow:hover{background:var(--navy-deep);color:var(--gold-light);transform:translateY(-3px);box-shadow:0 16px 34px rgba(14,18,40,.28)}
.btn--follow:active{transform:translateY(-1px)}
.btn--lg{padding:17px 34px;font-size:1.02rem}

/* Nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:14px 0}
.nav::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,12,22,.74),rgba(8,12,22,0));pointer-events:none;transition:opacity .4s}
.nav::after{content:'';position:absolute;inset:0;background:rgba(247,243,236,.92);backdrop-filter:blur(14px);box-shadow:0 2px 24px rgba(14,18,40,.08);opacity:0;transition:opacity .4s;pointer-events:none;z-index:-1}
.nav .container{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;z-index:1}
.nav--solid::after{opacity:1}
.nav--solid::before{opacity:0}
.nav__b{display:flex;align-items:center;gap:12px}
.nav__b img{width:42px;height:42px;border-radius:50%}
.nav__b-name{font-family:'Cinzel',serif;font-weight:700;letter-spacing:2px;font-size:1.02rem;color:#F5EFE3;line-height:1.1;transition:color .4s}
.nav__b-name small{display:block;font-family:'Manrope',sans-serif;font-weight:600;letter-spacing:2px;font-size:.75rem;color:var(--gold);margin-top:3px}
.nav--solid .nav__b-name{color:var(--ink)}
.nav--solid .nav__b-name small{color:var(--gold-deep)}
.nav__l{display:flex;align-items:center;gap:30px}
.nav__l>a,.nav__item>a,.nav__item>.nav__trigger{font-weight:600;font-size:.92rem;color:rgba(245,239,227,.92);transition:color .25s}
.nav__l>a:hover,.nav__item:hover>.nav__trigger,.nav__item:focus-within>.nav__trigger{color:var(--gold)}
.nav--solid .nav__l>a,.nav--solid .nav__item>.nav__trigger{color:var(--t)}
.nav--solid .nav__l>a:hover,.nav--solid .nav__item:hover>.nav__trigger,.nav--solid .nav__item:focus-within>.nav__trigger{color:var(--gold-deep)}
/* Silo nav: each vertical opens a submenu of its services on hover/focus */
.nav__item{position:relative;display:flex;align-items:center}
.nav__trigger{display:inline-flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;font-family:'Manrope',sans-serif;padding:0;letter-spacing:0}
.nav__trigger svg{width:13px;height:13px;flex:none;transition:transform .25s}
.nav__item:hover .nav__trigger svg,.nav__item:focus-within .nav__trigger svg{transform:rotate(180deg)}
.nav__sub{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(8px);min-width:248px;background:var(--surface);border:1px solid rgba(20,24,28,.06);border-radius:16px;padding:10px;box-shadow:0 22px 60px rgba(14,18,40,.22);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,transform .25s,visibility .25s;z-index:20}
.nav__item:hover .nav__sub,.nav__item:focus-within .nav__sub{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.nav__sub::before{content:'';position:absolute;left:0;right:0;top:-12px;height:12px}
.nav__sub a{display:block;padding:9px 14px;font-size:.9rem;font-weight:600;color:var(--ink);border-radius:9px;transition:background .2s,color .2s;white-space:nowrap}
.nav__sub a:hover{background:rgba(var(--gold-r),.12);color:var(--gold-deep)}
.nav__sub .nav__sub-all{margin-top:6px;padding-top:12px;border-top:1px solid rgba(20,24,28,.08);color:var(--gold-deep);display:flex;align-items:center;gap:7px}
.nav__sub .nav__sub-all svg{width:14px;height:14px;flex:none}
.nav__r{display:flex;align-items:center;gap:16px}
.nav__r .tel{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.92rem;color:#F5EFE3;transition:color .4s}
.nav__r .tel svg{width:16px;height:16px}
.nav--solid .nav__r .tel{color:var(--ink)}
.nav__cta{padding:11px 24px;font-size:.9rem}
.nav__burger{display:none;width:44px;height:44px;border-radius:var(--r-sm);background:rgba(13,18,22,.5);border:1px solid rgba(255,255,255,.34);color:#F5EFE3;backdrop-filter:blur(8px);align-items:center;justify-content:center;cursor:pointer;flex:none;transition:background .25s,color .25s,transform .2s,border .25s}
.nav__burger svg{width:22px;height:22px;flex:none}
.nav__burger:hover{transform:scale(1.05);background:rgba(13,18,22,.7)}
.nav--solid .nav__burger{background:var(--navy);border-color:transparent;color:var(--gold)}
.nav__menu{display:none;position:absolute;top:calc(100% + 8px);left:18px;right:18px;background:var(--surface);border-radius:18px;padding:16px;box-shadow:0 22px 60px rgba(14,18,40,.22);flex-direction:column;gap:3px;border:1px solid rgba(20,24,28,.05);z-index:2}
.nav__menu.open{display:flex}
.nav__menu a{padding:14px;font-size:1rem;font-weight:600;color:var(--ink);border-radius:10px;transition:background .2s}
.nav__menu a:not(.btn):hover{background:rgba(var(--gold-r),.12)}
.nav__menu-tel{display:flex;align-items:center;gap:10px;color:var(--gold-deep)!important;font-weight:700!important;border-top:1px solid rgba(20,24,28,.08);margin-top:6px;padding-top:16px!important}
.nav__menu .btn{justify-content:center;width:100%;margin-top:8px}
/* Mobile silo: each vertical is a collapsible group */
.nav__menu-link{border-bottom:1px solid rgba(20,24,28,.06)}
.nav__menu-link:last-of-type{border-bottom:none}
.mgrp{border-bottom:1px solid rgba(20,24,28,.06)}
.mgrp:last-of-type{border-bottom:none}
.mgrp__t{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;background:none;border:none;cursor:pointer;text-align:left;padding:14px;font-family:'Manrope',sans-serif;font-size:1rem;font-weight:700;color:var(--ink);border-radius:10px}
.mgrp__t:hover{background:rgba(var(--gold-r),.1)}
.mgrp__t .chev{width:20px;height:20px;flex:none;color:var(--gold-deep);transition:transform .3s}
.mgrp.open .mgrp__t .chev{transform:rotate(180deg)}
.mgrp__sub{max-height:0;overflow:hidden;transition:max-height .35s ease}
.mgrp__sub a{display:block;padding:11px 14px 11px 26px;font-size:.94rem;font-weight:600;color:var(--t);border-radius:9px}
.mgrp__sub a:hover{background:rgba(var(--gold-r),.1);color:var(--gold-deep)}
.mgrp__sub a.mgrp__all{color:var(--gold-deep);font-weight:700}

/* Shot = portrait feature card: clean photo + subtle gold frame + faint motif */
.shot{position:relative;border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-h);aspect-ratio:4/5;background:var(--navy)}
.shot .ph{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s ease}
.shot .deco{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:screen;pointer-events:none;opacity:.32}
.shot::after{content:'';position:absolute;inset:16px;border:1.5px solid rgba(var(--gold-r),.8);border-radius:3px;pointer-events:none;z-index:3}
.shot:hover .ph{transform:scale(1.045)}
.shot__tag{position:absolute;left:16px;bottom:15px;z-index:4;font-family:'Cinzel',serif;font-weight:600;letter-spacing:1.2px;font-size:.76rem;text-transform:uppercase;color:#F5EFE3;background:rgba(10,14,24,.66);border:1px solid rgba(var(--gold-r),.4);padding:6px 12px;border-radius:var(--r-pill)}

/* Square gallery / IG tiles */
.tile{position:relative;border-radius:var(--r-sm);overflow:hidden;box-shadow:var(--shadow);display:block;aspect-ratio:1;background:var(--navy)}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}
.tile:hover img{transform:scale(1.06)}
.tile::after{content:'';position:absolute;inset:10px;border:1.5px solid rgba(var(--gold-r),.8);border-radius:3px;pointer-events:none;z-index:2}

/* Hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:120px 0 64px;overflow:hidden;background:var(--navy) url('assets/images/oscolu-hero-shop.webp?v=7') center/cover no-repeat;color:#F5EFE3}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(102deg,rgba(8,12,22,.84) 0%,rgba(8,12,22,.62) 40%,rgba(8,12,22,.34) 72%,rgba(8,12,22,.2) 100%);z-index:1}
.hero__deco{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:screen;opacity:.42;z-index:2;pointer-events:none}
.hero .container{position:relative;z-index:3;width:100%;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:50px;align-items:center}
.hero__t>*{min-width:0}
.hero__t .eyebrow{display:inline-block;margin-bottom:20px}
.hero h1{font-size:var(--fs-h1);color:#FBF7EE;margin-bottom:22px;line-height:1.1}
.hero__sub{font-size:1.17rem;color:#DCD5C8;max-width:46ch;margin-bottom:34px}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:30px}
.hero__cta .btn{flex:0 1 auto}
.hero__proof{display:flex;align-items:center;gap:12px;font-size:.96rem;color:#DCD5C8}
.hero__stars{color:var(--gold-light);letter-spacing:2px;font-size:1.05rem}
.hero__cards{display:flex;flex-direction:column;gap:14px;align-items:flex-end}
.hcard{display:flex;align-items:center;gap:14px;width:300px;background:rgba(10,14,24,.76);border:1px solid rgba(var(--gold-r),.3);border-radius:var(--r-sm);padding:12px 16px 12px 12px;animation:floaty 4.6s ease-in-out infinite}
.hcard:nth-child(2){animation-delay:.3s}.hcard:nth-child(3){animation-delay:.6s}
.hcard__im{width:62px;height:62px;border-radius:10px;object-fit:cover;flex:none;border:1px solid rgba(var(--gold-r),.4)}
.hcard__t{font-weight:800;font-size:1rem;color:#F5EFE3;line-height:1.2}
.hcard__s{font-size:.8rem;color:#BCB4A4;margin-top:3px}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

/* Trust bar */
.trust{background:var(--cream2);padding:28px 0}
.trust .container{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:22px 30px}
.trust__i{display:flex;align-items:center;gap:12px;color:var(--ink);font-weight:700;font-size:var(--fs-sm);flex:1 1 200px;min-width:0}
.trust__i svg{width:22px;height:22px;color:var(--gold-deep);flex:none}

/* Section base */
section{position:relative}
section[id],[id].fcta,.craftblk[id]{scroll-margin-top:96px}
.sec{padding:var(--sec-pad) 0}
.dark{background:var(--navy);color:var(--d-text-2)}
.cream2{background:var(--cream2)}
.sec__head{max-width:720px;margin-bottom:var(--sp-6)}
.sec__head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec__head h2{font-size:var(--fs-h2);margin-bottom:18px}
.goldbar{width:60px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--gold),var(--gold-light));margin-bottom:22px}
.center .goldbar{margin-left:auto;margin-right:auto}

/* Crafts */
.crafts__intro{text-align:center;max-width:680px;margin:0 auto 8px}
.crafts__intro h2{margin-bottom:16px}
.craftblk{padding-top:var(--sp-6);margin-top:var(--sp-6);border-top:1px solid rgba(var(--gold-r),.16)}
.craftblk:first-of-type{padding-top:0;margin-top:44px;border-top:none}
.craftblk__head{display:grid;grid-template-columns:1fr auto;gap:20px 40px;align-items:end;margin-bottom:32px}
.craftblk__head>*{min-width:0}
.craft__label{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.craft__badge{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex:none;background:linear-gradient(135deg,rgba(var(--gold-r),.26),rgba(var(--gold-r),.08));color:var(--gold)}
.craft__badge svg{width:24px;height:24px}
.craftblk h3{font-size:var(--fs-h3);margin-bottom:14px}
.craftblk__intro{font-size:var(--fs-body);color:var(--d-text-2);max-width:60ch}
.craftblk__cta{align-self:end;flex:none}
@media(max-width:760px){.craftblk__head{grid-template-columns:1fr}.craftblk__cta{justify-self:start}}
.craftblk__imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:32px}
.craftblk__imgs>*{min-width:0}

/* Priced menu */
.menu{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 48px}
.menu li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 2px;border-bottom:1px dashed rgba(var(--gold-r),.2)}
.menu li>*{min-width:0}
.menu__n{font-weight:700;color:var(--d-text);font-size:.99rem}
.menu__note{display:block;font-weight:500;font-size:var(--fs-note);color:var(--d-text-3);margin-top:2px;overflow-wrap:break-word}
.menu__r{text-align:right;flex:none;white-space:nowrap}
.menu__p{font-family:'Cinzel',serif;font-weight:700;color:var(--gold);font-size:1.02rem;font-variant-numeric:tabular-nums}
.menu__d{display:block;font-size:.8rem;color:var(--d-text-3);margin-top:1px;letter-spacing:.4px}
.menu__grouplabel{grid-column:1/-1;font-family:'Cinzel',serif;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;font-size:.78rem;color:var(--gold);margin:22px 0 8px;padding-top:8px;border-bottom:none}
.menu__grouplabel:first-child{margin-top:0;padding-top:0}
.menu__groupnote{grid-column:1/-1;display:block;border-bottom:none;font-size:var(--fs-note);color:var(--d-text-3);margin:-4px 0 6px;padding:0 2px}

/* svc-list (hair) */
.svc-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px 40px}
.svc-list>*{min-width:0}
.svc-list li{display:flex;gap:13px;align-items:flex-start}
.svc-list .tick{width:24px;height:24px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:rgba(var(--gold-r),.18);color:var(--gold);margin-top:1px}
.svc-list .tick svg{width:13px;height:13px}
.svc-list b{color:var(--d-text);font-weight:700}
.svc-list span{display:block;font-size:var(--fs-note);color:var(--d-text-3)}
.craft__note{font-size:var(--fs-note);color:var(--d-text-3);margin-top:16px}
/* "View all <vertical>" affordance under each vertical section */
.craft__viewall{display:inline-flex;align-items:center;gap:9px;margin-top:22px;font-family:'Cinzel',serif;font-weight:600;letter-spacing:.8px;text-transform:uppercase;font-size:.8rem;color:var(--gold);transition:color .25s,gap .25s}
.craft__viewall svg{width:15px;height:15px;flex:none;transition:transform .25s}
.craft__viewall:hover{color:var(--gold);gap:13px}
.craft__viewall:hover svg{transform:translateX(3px)}

/* Vertical TEASER (v2 front door): one short, designed teaser per vertical
   (image + intro + a few highlights + an Explore link to the hub). Alternates
   image side for rhythm. Inherits the dark-section + gold tokens. */
.vteaser{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,5vw,56px);align-items:center;padding-top:var(--sp-6);margin-top:var(--sp-6);border-top:1px solid rgba(var(--gold-r),.16)}
.vteaser:first-of-type{padding-top:0;margin-top:44px;border-top:none}
.vteaser>*{min-width:0}
.vteaser--flip .vteaser__media{order:2}
.vteaser__media{position:relative;border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-h);aspect-ratio:4/5;background:var(--navy)}
.vteaser__media img.ph{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s ease}
.vteaser:hover .vteaser__media img.ph{transform:scale(1.045)}
.vteaser__media img.deco{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:screen;pointer-events:none;opacity:.32}
.vteaser__media::after{content:'';position:absolute;inset:16px;border:1.5px solid rgba(var(--gold-r),.8);border-radius:3px;pointer-events:none;z-index:3}
.vteaser__h3{font-size:var(--fs-h3);margin:10px 0 14px}
.vteaser__intro{color:var(--d-text-2);max-width:52ch;margin-bottom:22px}
.vteaser__hl{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0 0 26px;padding:0}
.vteaser__hl li{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.05);border:1px solid rgba(var(--gold-r),.2);border-radius:var(--r-pill);padding:8px 16px;font-size:.88rem;font-weight:600;color:var(--d-text)}
.vteaser__hl li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--gold);flex:none}
@media(max-width:760px){.vteaser{grid-template-columns:1fr;gap:26px}.vteaser--flip .vteaser__media{order:0}.vteaser__media{max-width:420px}}

/* Coming-soon craft (beauty & nail): no photo, navy + gold-deco panel */
.soon{position:relative;overflow:hidden;border-radius:var(--r-lg);border:2px dashed rgba(var(--gold-r),.42);background:linear-gradient(135deg,rgba(var(--gold-r),.08),rgba(var(--gold-r),.02)),var(--navy-deep);padding:clamp(30px,5vw,52px)}
.soon__deco{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:screen;opacity:.22;pointer-events:none;z-index:0}
.soon__in{position:relative;z-index:1}
.soon__badge{display:inline-flex;align-items:center;gap:9px;font-family:'Cinzel',serif;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;font-size:.7rem;color:var(--gold);background:rgba(var(--gold-r),.12);border:1px solid rgba(var(--gold-r),.4);padding:7px 14px;border-radius:var(--r-pill);margin-bottom:20px}
.soon__badge svg{width:14px;height:14px;flex:none}
.soon__chips{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:6px 0 26px}
.soon__chips>*{min-width:0}
.soon__chip{display:flex;align-items:center;gap:13px;background:rgba(255,255,255,.04);border:1px solid rgba(var(--gold-r),.2);border-radius:var(--r-sm);padding:15px 18px}
.soon__chip .ic{width:36px;height:36px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center;background:rgba(var(--gold-r),.16);color:var(--gold)}
.soon__chip .ic svg{width:18px;height:18px}
.soon__chip b{display:block;color:var(--d-text);font-weight:700;font-size:1rem;line-height:1.25}
.soon__chip span{display:block;font-size:var(--fs-note);color:var(--gold);margin-top:2px;font-family:'Cinzel',serif;letter-spacing:.8px;text-transform:uppercase;font-size:.66rem}
.soon__foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px}
.soon__line{font-size:var(--fs-sm);color:var(--d-text-2);margin:0}
.soon__notify{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:.95rem;color:var(--gold);transition:color .25s}
.soon__notify svg{width:17px;height:17px;flex:none}
.soon__notify:hover{color:var(--gold)}
@media(max-width:560px){.soon__chips{grid-template-columns:1fr}}

/* About */
.about .container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:60px;align-items:center}
.about__media{position:relative}
.about__media .shot{aspect-ratio:4/3.4}
.about__cap{position:absolute;left:18px;bottom:18px;z-index:5;background:rgba(10,14,24,.84);color:#F5EFE3;border:1px solid rgba(var(--gold-r),.3);padding:10px 16px;border-radius:var(--r-sm);font-size:.86rem;font-weight:600}
.about__cap b{color:var(--gold)}
.about__t h2{margin-bottom:18px}
.about__t .prose{margin-bottom:30px;color:var(--t);font-size:1.08rem;overflow-wrap:break-word}
.team{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.team>*{min-width:0}
.tcard{display:flex;align-items:center;gap:13px;background:var(--surface);border:1px solid rgba(20,32,58,.07);border-radius:var(--r-sm);padding:13px 15px;box-shadow:var(--shadow)}
.tcard__av{width:48px;height:48px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-family:'Cinzel',serif;font-weight:700;font-size:1.25rem;color:var(--gold);background:var(--navy);overflow:hidden}
.tcard__av img{width:100%;height:100%;object-fit:cover}
.tcard__n{font-weight:800;color:var(--ink);font-size:.96rem;line-height:1.2}
.tcard__r{font-size:.78rem;color:var(--tl);margin-top:2px}

/* Work gallery */
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.gal>*{min-width:0}
.ghide{display:none}
.galmore{text-align:center;margin-top:34px}
.ig{margin-top:58px;text-align:center}
.ig__h{display:inline-flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);font-size:1.15rem;margin-bottom:8px}
.ig__h svg{width:24px;height:24px;color:var(--gold-deep)}
.ig__sub{color:var(--tl);margin-bottom:26px}
.ig__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:0 auto 28px;max-width:760px}
.ig__grid>*{min-width:0}
.ig__ov{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(14,18,40,0);color:#fff;opacity:0;transition:background .3s,opacity .3s;z-index:3}
.tile:hover .ig__ov{background:rgba(14,18,40,.42);opacity:1}
.ig__ov svg{width:26px;height:26px}

/* Mid CTA */
.midcta{background:linear-gradient(105deg,var(--gold) 0%,var(--gold-light) 100%);padding:52px 0;color:var(--navy)}
.midcta .container{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:26px}
.midcta h3{font-size:clamp(1.4rem,2.6vw,2.05rem);margin:0;color:var(--navy);max-width:680px;font-weight:800;letter-spacing:-.4px;line-height:1.25}
.midcta h3 em.s{color:var(--navy);background:linear-gradient(transparent 58%,rgba(255,255,255,.55) 58%);padding:0 2px}
.midcta .btn--primary{background:var(--navy);color:var(--gold)}
.midcta .btn--primary:hover{background:#070A18;box-shadow:0 18px 40px rgba(0,0,0,.32)}

/* Steps */
.steps{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.steps>*{min-width:0}
@media(min-width:769px){.steps::before{content:'';position:absolute;top:33px;left:16.6%;right:16.6%;height:2px;background:linear-gradient(90deg,rgba(var(--gold-r),.12),rgba(var(--gold-r),.55),rgba(var(--gold-r),.12));z-index:0}}
.step{position:relative;z-index:1;text-align:center;padding:0 6px}
.step__n{width:66px;height:66px;border-radius:50%;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--gold),var(--gold-light));color:var(--navy);font-family:'Cinzel',serif;font-weight:700;font-size:1.5rem;box-shadow:0 12px 30px rgba(var(--gold-r),.3)}
.step h3{font-size:1.18rem;margin-bottom:10px}
.step p{font-size:var(--fs-sm);color:var(--t);max-width:34ch;margin:0 auto}

/* Testimonials */
.revs{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.revs>*{min-width:0}
.rev{display:flex;flex-direction:column;background:rgba(255,255,255,.05);border:1px solid rgba(var(--gold-r),.16);border-radius:var(--r-card);padding:28px 30px 0;position:relative;overflow:hidden}
.rev__q{position:absolute;top:8px;right:24px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:5rem;color:rgba(var(--gold-r),.2);line-height:1;pointer-events:none}
.rev__h{font-weight:800;color:var(--gold);font-size:1.02rem;margin-bottom:10px;position:relative;z-index:1}
.rev__stars{color:var(--gold-light);letter-spacing:2px;font-size:.92rem;margin-bottom:12px}
.rev__txt{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:600;font-size:1.16rem;line-height:1.5;color:var(--d-text-2);flex:1;overflow-wrap:break-word}
.rev__f{display:flex;align-items:center;gap:13px;margin-top:22px;padding:22px 0 22px 4px;border-top:1px solid rgba(var(--gold-r),.14)}
.rev__av{width:44px;height:44px;border-radius:50%;flex:none;background:linear-gradient(135deg,var(--gold),var(--gold-light));color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;font-family:'Cinzel',serif}
.rev__nm{font-weight:700;color:var(--d-text);font-size:.92rem;line-height:1.2}
.rev__src{font-size:.78rem;color:var(--d-text-3);margin-top:2px}
/* Reviews rating-summary block */
.revsum{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:54px;align-items:center;margin-bottom:56px}
.revsum>*{min-width:0}
.revsum__card{background:rgba(255,255,255,.05);border:1px solid rgba(var(--gold-r),.22);border-radius:var(--r-card);padding:30px 32px}
.revsum__score{display:flex;align-items:baseline;gap:12px}
.revsum__big{font-family:'Cinzel',serif;font-weight:700;font-size:3.8rem;line-height:.95;color:var(--gold)}
.revsum__out{font-size:1.05rem;color:var(--d-text-3);font-weight:600}
.revsum__stars{margin-left:auto;color:var(--gold-light);letter-spacing:3px;font-size:1.2rem}
.revsum__meta{font-size:.9rem;color:var(--d-text-2);margin:10px 0 22px}
.revsum__bars{display:flex;flex-direction:column;gap:9px}
.revrow{display:flex;align-items:center;gap:12px;font-size:.84rem}
.revrow__lab{width:30px;flex:none;color:var(--gold);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:1px}
.revrow__track{flex:1;height:8px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden}
.revrow__fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gold),var(--gold-light))}
.revrow__n{width:30px;flex:none;text-align:right;color:var(--d-text-2);font-variant-numeric:tabular-nums}
.revsum__t .goldbar{margin-bottom:20px}
.revsum__t h2{margin-bottom:16px}
@media(max-width:860px){.revsum{grid-template-columns:1fr;gap:30px}.revsum__t{text-align:center}.revsum__t .goldbar{margin-left:auto;margin-right:auto}.revsum__t .lead{margin-left:auto;margin-right:auto}}
/* Reviews CTA (leave a review / refer a friend) */
.revcta{margin-top:var(--sp-6);padding-top:var(--sp-6);border-top:1px solid rgba(var(--gold-r),.16);text-align:center}
.revcta__t{font-size:1.12rem;color:var(--d-text-2);max-width:50ch;margin:0 auto 24px}
.revcta__btns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}

/* FAQ */
.faq{max-width:820px;margin:0 auto}
.faq__i{border-bottom:1px solid rgba(20,32,58,.12)}
.faq__q{width:100%;background:none;border:none;cursor:pointer;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:24px 4px;font-family:'Manrope',sans-serif;font-weight:700;font-size:1.1rem;color:var(--ink)}
.faq__q .ic{width:30px;height:30px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:rgba(var(--gold-r),.16);color:var(--gold-deep);transition:transform .3s,background .3s,color .3s}
.faq__q .ic svg{width:15px;height:15px;flex:none}
.faq__i.open .faq__q .ic{transform:rotate(45deg);background:var(--gold);color:var(--navy)}
.faq__a{max-height:0;overflow:hidden;transition:max-height .4s ease}
.faq__a p{padding:0 4px 24px;color:var(--t);font-size:1rem;max-width:68ch}

/* Final CTA */
.fcta{position:relative;background:var(--navy) url('assets/images/oscolu-atmospheric.webp?v=7') center/cover no-repeat;padding:clamp(96px,11vw,120px) 0;text-align:center;color:#F5EFE3}
.fcta::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,12,22,.62),rgba(8,12,22,.76));pointer-events:none}
.fcta>*{position:relative;z-index:1}
.fcta h2{font-size:clamp(2.1rem,4.4vw,3.3rem);color:#FBF7EE;margin-bottom:18px;max-width:20ch;margin-left:auto;margin-right:auto}
.fcta p{color:var(--d-text-2);font-size:1.12rem;max-width:54ch;margin:0 auto 34px}
.fcta__cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-bottom:30px}
.fcta__tr{display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:center;align-items:center;color:#BCB4A4;font-size:.92rem}
.fcta__tr .st{color:var(--gold);letter-spacing:2px}

/* Location */
.lo .container{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:54px;align-items:stretch}
.lo .container>*{min-width:0}
.lo__t .goldbar{margin-bottom:20px}
.lo__info{list-style:none;display:flex;flex-direction:column;gap:18px;margin:24px 0 26px}
.lo__info li{display:flex;gap:14px;align-items:flex-start}
.lo__info .ic{width:40px;height:40px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;background:rgba(var(--gold-r),.14);color:var(--gold-deep)}
.lo__info .ic svg{width:19px;height:19px}
.lo__info b{display:block;color:var(--ink);font-weight:700;font-size:.96rem}
.lo__info a,.lo__info span{color:var(--t);font-size:.96rem;overflow-wrap:anywhere}
.lo__info a:hover{color:var(--gold-deep)}
.hours{background:var(--surface);border:1px solid rgba(20,32,58,.08);border-radius:var(--r-card);padding:20px 22px;box-shadow:var(--shadow)}
.hours h3{font-size:.92rem;letter-spacing:1px;text-transform:uppercase;color:#8A5F14;margin-bottom:14px;font-family:'Cinzel',serif;font-weight:600}
.hours__l{list-style:none;display:flex;flex-direction:column;gap:7px}
.hours__l li{display:flex;justify-content:space-between;gap:14px;font-size:.93rem;color:var(--t)}
.hours__l li b{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}
.hours__l li.today{background:rgba(var(--gold-r),.18);font-weight:700;padding:6px 12px;margin:0 -12px;border-radius:9px}
.hours__l li.closed span{color:var(--tl)}
.hours__l li.closed b{color:var(--tl);font-weight:600}
.hours__note{font-size:var(--fs-note);color:var(--tl);margin-top:14px;padding-top:14px;border-top:1px solid rgba(20,32,58,.08)}
.lo__map{position:relative;overflow:hidden;border-radius:var(--r-lg);box-shadow:var(--shadow-h);min-height:520px;background:var(--cream2)}
.lo__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:transparent}

/* Footer */
.ft{background:var(--navy-deep);color:#A89F8D;padding:64px 0 30px}
.ft .container{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr 1.1fr;gap:36px}
.ft__b{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.ft__b img{width:46px;height:46px;border-radius:50%}
.ft__b-name{font-family:'Cinzel',serif;font-weight:700;letter-spacing:2px;color:#F5EFE3;font-size:1.05rem}
.ft__d{font-size:.92rem;line-height:1.7;max-width:34ch;margin-bottom:18px;color:#A89F8D}
.ft__soc{display:flex;gap:10px}
.ft__soc a{width:40px;height:40px;border-radius:11px;border:1px solid rgba(var(--gold-r),.26);display:flex;align-items:center;justify-content:center;color:var(--gold);transition:background .25s,transform .25s}
.ft__soc a:hover{background:rgba(var(--gold-r),.16);transform:translateY(-3px)}
.ft__soc svg{width:19px;height:19px}
.ft h4{font-family:'Cinzel',serif;color:#F5EFE3;font-size:.86rem;letter-spacing:1.5px;margin-bottom:16px;font-weight:600}
.ft ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.ft ul a,.ft ul li{font-size:.92rem;color:#B3AA98;transition:color .2s;overflow-wrap:anywhere}
.ft ul a:hover{color:var(--gold)}
.ft .ft__bot{border-top:1px solid rgba(255,255,255,.08);margin-top:48px;padding-top:24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 24px;font-size:.84rem;color:#9A917F}
.ft .ft__bot span{white-space:nowrap}

/* Back to top */
.totop{position:fixed;right:24px;bottom:24px;width:50px;height:50px;border-radius:50%;background:var(--navy);color:var(--gold);border:1px solid rgba(var(--gold-r),.4);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:90;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .3s,transform .3s;box-shadow:0 10px 28px rgba(0,0,0,.28)}
.totop.show{opacity:1;visibility:visible;transform:translateY(0)}
.totop:hover{background:#070A18;transform:translateY(-3px)}
.totop svg{width:20px;height:20px}

/* reveal */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}

/* Responsive */
@media(max-width:1024px){
  .hero .container{grid-template-columns:1fr;gap:0}
  .hero__cards{display:none}
  .nav__l{display:none}
  .about .container{grid-template-columns:1fr;gap:38px}
  .gal{grid-template-columns:1fr 1fr}
  .revs{grid-template-columns:1fr 1fr}
  .ft .container{grid-template-columns:1fr 1fr}
  .ft__brand{grid-column:1/-1}
}
@media(max-width:768px){
  body{font-size:16px}
  .hero{min-height:100svh;padding:104px 0 48px}
  .nav__r .tel{display:none}.nav__cta{display:none}.nav__burger{display:inline-flex}.nav .container{position:relative}
  .nav__b-name small{display:none}
  .menu{grid-template-columns:1fr;gap:0}
  .svc-list{grid-template-columns:1fr;gap:14px}
  .steps{grid-template-columns:1fr;gap:34px}
  .revs{grid-template-columns:1fr}
  .ig__grid{gap:8px}
  .lo .container{grid-template-columns:1fr;gap:32px;align-items:start}
  .lo__map{min-height:340px}
  .midcta .container{flex-direction:column;align-items:flex-start;text-align:left}
}
@media(max-width:560px){
  .craftblk__imgs{grid-template-columns:1fr 1fr}
  .gal{grid-template-columns:1fr 1fr}
  .team{grid-template-columns:1fr}
  .ft .container{grid-template-columns:1fr}
}
@media(max-width:400px){
  .btn--lg{padding:14px 22px;font-size:.96rem}
  .hero__cta{gap:10px}
  .hero__cta .btn{flex:1 1 auto}
  .fcta__cta .btn{flex:1 1 auto}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

/* ===== Silo-page additions (inherit the homepage :root tokens) ===== */
/* Fixed-nav height token, used to offset the first inner-page element (the
   breadcrumb) so it never sits UNDER the fixed top nav (fix b). The nav is
   position:fixed with padding:14px 0 and a 42px logo (~70px tall); mobile nav is
   a touch shorter, so the offset shrinks at <=768px. */
:root{--nav-h:72px;--napbar-h:56px}
@media(max-width:768px){:root{--nav-h:64px}}

/* Silo hero: a shorter hero than the home full-viewport hero, same look. Its top
   padding already clears the fixed nav, so a hero-first page is fine. */
.hero--silo{min-height:calc(100vh - var(--napbar-h));min-height:calc(100svh - var(--napbar-h));padding:140px 0 72px;background-size:cover;background-position:center;display:flex;align-items:center}
.hero--silo::after{content:'';position:absolute;inset:0;background:linear-gradient(102deg,rgba(8,12,22,.84) 0%,rgba(8,12,22,.6) 55%,rgba(8,12,22,.4) 100%);z-index:1}
.hero--silo .container{position:relative;z-index:3;display:block}
.hero--silo .hero__t{max-width:820px}

/* Hero H1 size tiers (fix a): a SHORT headline scales up to fill the hero, a
   long one is reined in so it never overflows. Inherits the heading font/weight
   from the homepage; only the responsive size changes. */
.hero--silo .hero__h1--xl{font-size:clamp(3rem,7vw,5.4rem);line-height:1.04}
.hero--silo .hero__h1--lg{font-size:clamp(2.5rem,5.4vw,4.2rem);line-height:1.08}
.hero--silo .hero__h1--sm{font-size:clamp(2.1rem,4.2vw,3.3rem);line-height:1.12}

/* Hub-only nav: the flat hub links sit directly in .nav__l (desktop) and
   .nav__menu (mobile); both inherit the homepage nav link styling. A thin rule
   between mobile hub links keeps them scannable. */
.nav__menu-link{border-bottom:1px solid rgba(20,24,28,.06)}
.nav__menu-link:last-of-type{border-bottom:none}

/* Breadcrumb: pushed BELOW the fixed nav via the nav-height offset (fix b). */
.bc{background:var(--cream2);padding:calc(var(--nav-h) + 14px) 0 14px;border-bottom:1px solid rgba(var(--gold-r),.14)}
.bc ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.86rem;margin:0;padding:0}
.bc a{color:var(--tl);font-weight:600;transition:color .2s}
.bc a:hover{color:var(--gold-deep)}
.bc__sep{color:var(--tl);opacity:.6}
.bc__cur{color:var(--ink);font-weight:700}

/* Overview block (fix d): a designed, scannable section, not a wall of text.
   A short lead line, a row of well-spaced sub-points (gold tick), and an
   optional inline REAL photo for rhythm. Uses only inherited tokens. */
.ov{display:block}
.ov--media{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center}
.ov__lead{font-size:1.18rem;color:var(--ink);font-weight:600;max-width:60ch;margin-bottom:26px}
.ov__points{list-style:none;display:grid;grid-template-columns:1fr;gap:18px;margin:0;padding:0;max-width:62ch}
.ov__points + p{margin-top:22px;max-width:62ch}
.ov__pt{display:flex;gap:14px;align-items:flex-start}
.ov__tick{width:26px;height:26px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:rgba(var(--gold-r),.16);color:var(--gold-deep);font-size:.82rem;font-weight:800;margin-top:2px}
.ov__tick svg{width:14px;height:14px}
.ov__pt b{display:block;color:var(--ink);font-weight:700;margin-bottom:2px}
.ov__pt span{display:block;font-size:var(--fs-sm);color:var(--t)}
.ov__media{position:relative;border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-h);aspect-ratio:4/5;background:var(--navy)}
.ov__media img{width:100%;height:100%;object-fit:cover;display:block}
.ov__media::after{content:'';position:absolute;inset:16px;border:1.5px solid rgba(var(--gold-r),.8);border-radius:3px;pointer-events:none}
@media(max-width:768px){.ov--media{grid-template-columns:1fr;gap:28px}.ov__media{max-width:420px}}
/* NAP + click-to-call bar */
.napbar{background:var(--navy);color:var(--d-text-2);padding:10px 0;min-height:var(--napbar-h);display:flex;align-items:center}
.napbar .container{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;width:100%}
.napbar__nap{font-size:.9rem;color:var(--d-text-2)}
.napbar__tel{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--gold);font-size:.94rem}
.napbar__tel:hover{color:var(--gold)}
.napbar__tel{white-space:nowrap;flex:none}
.napbar__bc ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:.85rem;margin:0;padding:0}
.napbar__bc a{color:var(--d-text-2);font-weight:600;text-decoration:none}
.napbar__bc a:hover{color:var(--gold)}
.napbar__bc .bc__sep{color:var(--d-text-2);opacity:.45}
.napbar__bc .bc__cur{color:#fff;font-weight:700}
/* Related-services list */
.related__list{list-style:none;display:flex;flex-wrap:wrap;gap:12px;padding:0;margin:0}
.related__list li{margin:0}
.related__list a{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid rgba(20,32,58,.08);border-radius:var(--r-pill);padding:11px 20px;font-weight:700;font-size:.92rem;color:var(--ink);box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s,color .25s}
.related__list a:hover{transform:translateY(-2px);color:var(--gold-deep);box-shadow:var(--shadow-h)}
.dark .related__list a{background:rgba(255,255,255,.05);border-color:rgba(var(--gold-r),.2);color:var(--d-text)}
/* Sticky mobile CTA (service pages) */
.sticky-cta{display:none}
@media(max-width:768px){
  .sticky-cta{display:flex;align-items:center;justify-content:center;position:fixed;left:14px;right:14px;bottom:14px;z-index:95;background:linear-gradient(135deg,var(--gold),var(--gold-light));color:var(--navy);font-weight:800;padding:15px;border-radius:var(--r-pill);box-shadow:0 12px 34px rgba(var(--gold-r),.4);text-align:center}
}
/* Prose blocks on light service pages */
.prose .lead{margin-bottom:18px}
/* Pricing menu on a LIGHT section: the homepage .menu colors (gold-light / d-text-3)
   are tuned for DARK sections and fail contrast on cream2. Re-tone them to the
   on-light palette inside a .menu--light wrapper (same gold family, AA on light). */
.menu--light .menu__n{color:var(--ink)}
/* Price text must clear AA 4.5:1 as bold 16px on cream2: --gold-deep (#A77E21)
   only reaches 3.16:1, so use the homepage's darker on-light brown (#8A5F14,
   the .hours h3 token), which clears AA. Same warm-gold family, not a recolor. */
.menu--light .menu__p{color:#8A5F14}
.menu--light .menu__d,.menu--light .menu__note{color:var(--t)}
.menu--light li{border-bottom-color:rgba(20,32,58,.12)}
/* Studio-framed reviews note: a short honest line above general (non-service-
   specific) reviews, on the dark reviews section. Inherits dark-section tokens. */
.revs__note{color:var(--d-text-2);font-size:var(--fs-sm);max-width:60ch;margin:-8px 0 30px}

/* ---- Section-context contrast (silo reuses homepage block classes that were
   only ever styled for the section they sat in on the homepage; the silo puts
   some on the OPPOSITE background, so re-tone them per context to clear WCAG AA.
   Homepage selectors are untouched: its .step/.svc-list sit in their original
   sections, and these overrides only fire in the mismatched silo context). ---- */
/* "How it works" renders as a DARK focal section here; the base .step colors are
   light-section tokens (dark text), so they'd be dark-on-dark. Re-tone to dark-
   section tokens. */
.dark .step h3{color:var(--d-text)}
.dark .step p{color:var(--d-text-2)}
.dark .step__n{box-shadow:0 12px 30px rgba(var(--gold-r),.3)}
/* "What you get" + "Why choose us" render as LIGHT sections here; the base
   .svc-list colors are dark-section tokens (light cream text) -> light-on-light.
   Re-tone to light-section tokens on any non-dark section. */
.sec:not(.dark) .svc-list b{color:var(--ink)}
.sec:not(.dark) .svc-list span{color:var(--tl)}
.sec:not(.dark) .svc-list .tick{background:rgba(var(--gold-r),.16);color:var(--gold-deep)}
/* Pricing note sits on the light cream2 section; base color is a dark-section
   muted token -> too faint on light. Use the on-light muted token (AA on cream2). */
.sec:not(.dark) .craft__note{color:var(--tl)}

/* ===== Mega-menu chrome extras (shared homepage + silo) ===== */
.nav__burger{width:auto;gap:8px;padding:0 14px}
.nav__burger-label{font-family:'Manrope',sans-serif;font-weight:700;font-size:.82rem;letter-spacing:.3px}
@media(max-width:1024px){.nav__burger{display:inline-flex}}

/* ===== Hub service cards (Change 3) ===== */
.hub-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.hub-cards>*{min-width:0}
@media(max-width:860px){.hub-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.hub-cards{grid-template-columns:1fr}}
.hubcard{display:flex;flex-direction:column;gap:14px;background:var(--surface);border:1px solid rgba(20,32,58,.08);border-radius:var(--r-card);padding:24px;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s;overflow:hidden}
.hubcard__media{margin:-24px -24px 4px;aspect-ratio:16/10;overflow:hidden;position:relative;display:block}
.hubcard__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.hubcard:hover .hubcard__media img{transform:scale(1.04)}
.hubcard__media::after{content:'';position:absolute;inset:8px;border:1.5px solid rgba(var(--gold-r),.8);border-radius:3px;pointer-events:none}
.hubcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-h)}
.hubcard__name{font-weight:800;color:var(--ink);font-size:1.12rem;line-height:1.25;letter-spacing:-.2px;transition:color .2s}
.hubcard__name:hover{color:var(--gold-deep)}
.hubcard__meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px;border-top:1px dashed rgba(var(--gold-r),.28)}
.hubcard__dur{font-size:var(--fs-sm);color:var(--tl)}
.hubcard__price{font-family:'Cinzel',serif;font-weight:700;color:#8A5F14;font-size:1.06rem;font-variant-numeric:tabular-nums}
.hubcard__book{width:100%;padding:12px 18px;font-size:.9rem}

.lo--svc{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:36px;margin-top:26px;align-items:stretch}
.lo--svc .lo__map iframe{min-height:300px}
@media(max-width:768px){.lo--svc{grid-template-columns:1fr;gap:24px}}
/* QC fixes: icon centering (beats .ov__pt span{display:block}) */
.ov__pt .ov__tick{display:flex;align-items:center;justify-content:center}
.ov__tick svg{display:block}

/* mux-fixes: mobile UX corrections */
.nav__menu .mgrp,.nav__menu .nav__menu-link,.nav__menu .nav__menu-tel{border-top:none;border-bottom:none;position:relative}
.nav__menu .mgrp::before,.nav__menu .nav__menu-link::before,.nav__menu .nav__menu-tel::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:rgba(20,24,28,.07);pointer-events:none}
.nav__menu>*:first-child::before{display:none}
@media(max-width:768px){
.sticky-cta{display:none;right:90px}
.sticky-cta.show{display:flex}
.nav__menu{max-height:calc(100vh - 88px);overflow-y:auto;-webkit-overflow-scrolling:touch}
.napbar{padding:8px 0}
.napbar .container{flex-wrap:nowrap;gap:0 10px;align-items:center}
.napbar__bc{flex:1 1 auto;min-width:0}
.napbar__bc ol{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.74rem;padding:0;margin:0}
.napbar__bc ol li{display:inline}
.napbar__bc ol .bc__sep{margin:0 3px}
.napbar__tel{flex:none;font-size:.8rem;white-space:nowrap}
.midcta .container{align-items:center;text-align:center}
.ft .ft__bot{flex-direction:column;justify-content:center;text-align:center;gap:8px}
}

/* Legal links in footer small-print row (added for compliance pages) */
.ft .ft__bot a{color:#9A917F;text-decoration:none;transition:color .2s}
.ft .ft__bot a:hover{color:var(--gold)}
