/* =========================================================
   Christina Holloway Media — luxury commercial photography
   Palette: cream #FDF9F0 · ink #1E1C1A · gold #B8935A
            soft gold #D9C3A0 · champagne #F3E9D6
   ========================================================= */
:root{
  --cream:#FDF9F0;
  --cream-2:#F8F1E3;
  --champagne:#F3E9D6;
  --soft-gold:#D9C3A0;
  --gold:#B8935A;
  --gold-deep:#8C6A3A;
  --gold-light:#D9B97A;
  --ink:#1E1C1A;
  --ink-deep:#0E0D0C;
  --ink-2:#161513;
  --muted:#5E5850;
  --gold-grad:linear-gradient(115deg,#8C6A3A 0%,#D9B97A 38%,#F1DDAE 50%,#B8935A 66%,#8C6A3A 100%);
  --gold-grad-h:linear-gradient(90deg,transparent,#8C6A3A 15%,#D9B97A 50%,#8C6A3A 85%,transparent);
  --serif:"Cormorant Garamond","Cormorant",Garamond,"Times New Roman",serif;
  --sans:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.2,.7,.1,1);
  --wrap:1280px;
  --header-h:112px;
  --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.45 0 0 0 0 0.36 0 0 0 0 0.22 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --noise-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .9 0 0 0 0 .7 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px;background:var(--ink-deep);font-size:107%}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:1rem;line-height:1.75;letter-spacing:.01em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:300;line-height:1.05;margin:0;letter-spacing:-.005em}
p{margin:0 0 1.1em}
em{font-style:italic}
.wrap{width:min(var(--wrap),100% - 3rem);margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--cream);padding:.6rem 1rem;z-index:999}
.skip:focus{left:1rem}
:focus-visible{outline:1px solid var(--gold);outline-offset:3px}

/* ---------- textures / section bases ---------- */
.tex-cream{position:relative;background:
  radial-gradient(1200px 600px at 85% -10%,rgba(217,195,160,.28),transparent 60%),
  radial-gradient(900px 500px at -10% 110%,rgba(243,233,214,.9),transparent 60%),
  var(--cream)}
.tex-cream::before,.tex-dark::before{content:"";position:absolute;inset:0;background-image:var(--noise);pointer-events:none;z-index:0}
.tex-dark{position:relative;background:
  radial-gradient(1000px 520px at 50% -20%,rgba(184,147,90,.13),transparent 65%),
  radial-gradient(700px 400px at 100% 100%,rgba(184,147,90,.07),transparent 60%),
  var(--ink-deep);color:var(--cream)}
.tex-dark::before{background-image:var(--noise-dark)}
.tex-cream>*,.tex-dark>*{position:relative;z-index:1}
.tex-champagne{background:linear-gradient(180deg,var(--cream) 0%,var(--champagne) 100%)}

.section{padding:clamp(5rem,11vw,9.5rem) 0}

/* ---------- type helpers ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:1rem;font-family:var(--sans);font-weight:500;font-size:.72rem;letter-spacing:.38em;text-transform:uppercase;color:var(--gold);margin-bottom:1.6rem}
.eyebrow::before{content:"";width:44px;height:1px;background:var(--gold-grad)}
.eyebrow.center::after{content:"";width:44px;height:1px;background:var(--gold-grad)}
.display{font-size:clamp(2.7rem,6.2vw,5.6rem);font-weight:300;line-height:1}
.display em,.gold-text{font-style:italic;background:var(--gold-grad);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.lead{font-size:clamp(1.02rem,1.3vw,1.14rem);color:var(--muted);max-width:40rem}
.tex-dark .lead{color:rgba(253,249,240,.72)}
/* Privacy note under gallery page lead */
.cat-head .privacy-note{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(.92rem,1.15vw,1.05rem);
  color:var(--soft-gold);
  max-width:40rem;
  margin:.7rem 0 0;
  line-height:1.45;
}

.center{text-align:center}
.section-head{margin-bottom:clamp(3rem,6vw,5rem)}
.section-head.center .lead{margin-inline:auto}
.rule{height:1px;border:0;background:var(--gold-grad-h);margin:0}

/* ---------- buttons ---------- */
.btn{--pad:1.05rem 2.1rem;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;padding:var(--pad);font-family:var(--sans);font-weight:500;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;border:0;border-radius:0;cursor:pointer;overflow:hidden;isolation:isolate;transition:color .45s var(--ease),transform .45s var(--ease),box-shadow .45s var(--ease);white-space:nowrap}
.btn-gold{background:var(--gold-grad);background-size:220% 100%;background-position:0 0;color:var(--ink-deep);box-shadow:0 10px 30px -12px rgba(140,106,58,.55);transition:background-position .9s var(--ease),transform .45s var(--ease),box-shadow .45s var(--ease)}
.btn-gold::after{content:"";position:absolute;top:0;left:-75%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);transform:skewX(-22deg);z-index:1;transition:none}
.btn-gold:hover{background-position:100% 0;transform:translateY(-2px);box-shadow:0 16px 36px -14px rgba(140,106,58,.75)}
.btn-gold:hover::after{left:130%;transition:left .9s var(--ease)}
.btn-outline{background:transparent;color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.btn-outline::before{content:"";position:absolute;inset:0;background:var(--gold-grad);transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease);z-index:-1}
.btn-outline:hover{color:var(--ink-deep)}
.btn-outline:hover::before{transform:scaleX(1);transform-origin:left}
.btn-ghost-light{background:transparent;color:var(--cream);box-shadow:inset 0 0 0 1px rgba(253,249,240,.5)}
.btn-ghost-light::before{content:"";position:absolute;inset:0;background:var(--cream);transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease);z-index:-1}
.btn-ghost-light:hover{color:var(--ink)}
.btn-ghost-light:hover::before{transform:scaleX(1);transform-origin:left}
.btn svg{width:16px;height:16px;flex:none}
.text-link{display:inline-flex;align-items:center;gap:.8rem;font-weight:500;font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;text-decoration:none;color:var(--gold-deep);padding-bottom:.45rem;background:linear-gradient(var(--gold),var(--gold)) left bottom/100% 1px no-repeat;transition:background-size .5s var(--ease),gap .4s var(--ease)}
.text-link:hover{gap:1.2rem}
.text-link .arrow{transition:transform .4s var(--ease)}

/* ---------- header ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--header-h);color:var(--ink);background:rgba(253,249,240,.97);transition:height .5s var(--ease),background .5s var(--ease),color .5s var(--ease),box-shadow .5s var(--ease),backdrop-filter .5s}
.site-header::after{content:none;display:none}
.site-header .bar{height:100%;display:flex;align-items:center;gap:2rem;width:min(1440px,100% - 3rem);margin-inline:auto}
.brand{flex:none;position:relative;z-index:5}

.nav{margin-left:auto;display:flex;align-items:center;gap:clamp(1.2rem,2.4vw,2.6rem)}
.nav a{position:relative;text-decoration:none;font-size:.72rem;font-weight:400;letter-spacing:.26em;text-transform:uppercase;padding:.4rem 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold-grad);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav a:hover::after,.nav a.is-active::after{transform:scaleX(1);transform-origin:left}
.header-actions{display:flex;align-items:center;gap:1.1rem}
.icon-btn{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(184,147,90,.55);color:var(--gold);transition:background .4s,color .4s}
.icon-btn:hover{background:var(--gold);color:var(--ink-deep)}
.icon-btn svg{width:17px;height:17px}
.site-header .btn{--pad:.85rem 1.5rem;font-size:.66rem}
.menu-toggle{display:none;width:44px;height:44px;background:none;border:0;cursor:pointer;position:relative;color:inherit;padding:0}
.menu-toggle span{position:absolute;left:10px;right:10px;height:1px;background:currentColor;transition:transform .4s var(--ease),opacity .3s,top .4s var(--ease)}
.menu-toggle span:nth-child(1){top:16px}.menu-toggle span:nth-child(2){top:22px}.menu-toggle span:nth-child(3){top:28px}
.menu-open .menu-toggle span:nth-child(1){top:22px;transform:rotate(45deg)}
.menu-open .menu-toggle span:nth-child(2){opacity:0}
.menu-open .menu-toggle span:nth-child(3){top:22px;transform:rotate(-45deg)}
/* transparent over hero (index only), solid after scroll */
.site-header.over-hero:not(.is-scrolled){background:linear-gradient(180deg,rgba(14,13,12,.55),rgba(14,13,12,0));color:var(--cream)}
.site-header.over-hero:not(.is-scrolled)::after{opacity:.0}
.site-header.over-hero:not(.is-scrolled) .brand-mono .logo-ink{opacity:0}
.site-header.over-hero:not(.is-scrolled) .brand-mono .logo-cream{opacity:1}
.site-header.over-hero:not(.is-scrolled) .icon-btn{box-shadow:inset 0 0 0 1px rgba(217,195,160,.6);color:var(--soft-gold)}
.site-header.is-scrolled{--header-h:88px;box-shadow:none;background:#FDF9F0;backdrop-filter:none;-webkit-backdrop-filter:none}
.menu-open .site-header{color:var(--cream)!important;background:var(--ink-deep)!important}
.menu-open .site-header .brand-mono .logo-ink{opacity:0!important}
.menu-open .site-header .brand-mono .logo-cream{opacity:1!important}


/* ---- Brand: CH mono (top) ↔ full lockup ---- */
.brand{display:block;position:relative;flex:0 0 auto;height:92px;width:auto;min-width:0;max-width:min(42vw,300px);text-decoration:none!important;transition:height .5s var(--ease),max-width .45s var(--ease);overflow:visible;color:inherit;z-index:2}
.brand:hover,.brand:focus,.brand:focus-visible{text-decoration:none!important;color:inherit}
.brand-mono,.brand-lockup,.brand-lockup *{text-decoration:none!important}
.brand-mono{position:absolute;left:0;top:50%;transform:translateY(-50%);height:100%;display:block;opacity:1;visibility:visible;pointer-events:auto;z-index:2;transition:opacity .4s var(--ease),visibility .4s var(--ease)}
.brand-mono img{height:100%;width:auto;display:block;max-width:none}
.brand-mono .logo-cream{position:absolute;left:0;top:0;opacity:0}
.brand-lockup{display:flex;align-items:center;gap:.7rem;position:absolute;left:0;top:50%;transform:translateY(-50%);opacity:0;visibility:hidden;pointer-events:none;z-index:1;color:var(--ink);max-height:100%;max-width:100%;transition:opacity .4s var(--ease),visibility .4s var(--ease);text-decoration:none!important}
.brand-lockup .lockup-mono-wrap{position:relative;flex:0 0 auto;height:52px;display:flex;align-items:center}
.brand-lockup .lockup-mono{height:52px;width:auto;display:block;position:relative}
.brand-lockup .lockup-mono.logo-cream{position:absolute;left:0;top:0;opacity:0;height:52px}
.brand-lockup .lockup-rule{width:1px;align-self:center;height:2.6rem;background:currentColor;opacity:.75;flex:none}
.brand-lockup .lockup-text{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.16rem;line-height:1;min-width:0}
.brand-lockup .lockup-name{font-family:var(--serif);font-weight:400;font-size:15px;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap}
.brand-lockup .lockup-media{display:flex;align-items:center;gap:.4rem;width:100%;justify-content:center}
.brand-lockup .lockup-media-word{font-family:var(--serif);font-weight:400;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase}
.brand-lockup .lockup-media-line{flex:1;height:1px;background:currentColor;opacity:.65;min-width:.9rem;max-width:2.2rem}
.brand-lockup .lockup-side{font-family:var(--serif);font-weight:400;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-deep);white-space:nowrap}
.brand-lockup .lockup-side[hidden]{display:none!important}
/* Main homes: mono at top → lockup on scroll (no side word) */
.site-header.lockup-main.is-scrolled .brand{height:64px;max-width:min(48vw,340px)}
.site-header.lockup-main.is-scrolled .brand-mono{opacity:0!important;visibility:hidden!important;pointer-events:none!important;width:0!important;height:0!important;overflow:hidden!important}
.site-header.lockup-main.is-scrolled .brand-lockup{opacity:1;visibility:visible;pointer-events:auto;z-index:3;color:var(--ink)}
.site-header.lockup-main.is-scrolled .brand-lockup .lockup-mono.logo-ink{opacity:1}
.site-header.lockup-main.is-scrolled .brand-lockup .lockup-mono.logo-cream{opacity:0}
.site-header.lockup-main.is-scrolled .lockup-side{display:none!important}
/* Hover preview on main: show lockup + side while previewing */
.site-header.lockup-main.is-previewing .brand-mono{opacity:0!important;visibility:hidden!important}
.site-header.lockup-main.is-previewing .brand-lockup{opacity:1;visibility:visible;z-index:3}
.site-header.lockup-main.is-previewing .lockup-side{display:block!important}
.site-header.lockup-main.over-hero:not(.is-scrolled):not(.is-previewing) .brand-lockup{color:var(--cream)}
.site-header.lockup-main.over-hero:not(.is-scrolled) .brand-mono .logo-ink{opacity:0}
.site-header.lockup-main.over-hero:not(.is-scrolled) .brand-mono .logo-cream{opacity:1}
.site-header.lockup-main.is-previewing:not(.is-scrolled) .brand-lockup{color:var(--cream);text-shadow:0 1px 10px rgba(14,13,12,.55)}
.site-header.lockup-main.is-previewing:not(.is-scrolled) .lockup-side{color:var(--gold-light);text-shadow:none}
.site-header.lockup-main.is-previewing:not(.is-scrolled) .lockup-mono.logo-ink{opacity:0}
.site-header.lockup-main.is-previewing:not(.is-scrolled) .lockup-mono.logo-cream{opacity:1;position:relative}
.site-header.lockup-main.is-previewing.is-scrolled .brand-lockup{color:var(--ink);text-shadow:none}
.site-header.lockup-main.is-previewing.is-scrolled .lockup-side{color:var(--gold-deep)}
.site-header.lockup-main.is-previewing.is-scrolled .lockup-mono.logo-ink{opacity:1}
.site-header.lockup-main.is-previewing.is-scrolled .lockup-mono.logo-cream{opacity:0}
/* Utility/gallery: full lockup always from top */
.site-header.lockup-always .brand{height:64px;max-width:min(40vw,320px)}
.site-header.lockup-always .brand-mono{opacity:0!important;visibility:hidden!important;pointer-events:none!important;width:0!important;height:0!important;overflow:hidden!important}
.site-header.lockup-always .brand-lockup{opacity:1;visibility:visible;pointer-events:auto;z-index:3;color:var(--ink)}
.site-header.lockup-always .lockup-mono.logo-ink{opacity:1}
.site-header.lockup-always .lockup-mono.logo-cream{opacity:0}
.site-header.lockup-always .lockup-side{color:var(--gold-deep)}
.site-header.lockup-always.is-scrolled .brand{height:58px}
/* Landing: dark ink CH, clear of gold bar */
.landing-header .brand{height:96px;max-width:none}
.landing-header:not(.is-scrolled):not(.is-previewing) .brand-mono{opacity:1;visibility:visible}
.landing-header:not(.is-scrolled):not(.is-previewing) .brand-mono .logo-ink{opacity:1!important;filter:drop-shadow(0 1px 2px rgba(253,249,240,.9)) drop-shadow(0 2px 8px rgba(14,13,12,.28))}
.landing-header:not(.is-scrolled):not(.is-previewing) .brand-mono .logo-cream{opacity:0!important}
.landing-header.is-scrolled .brand-lockup{color:var(--ink);text-shadow:none}
.landing-header.is-scrolled .lockup-mono.logo-ink{opacity:1}
.landing-header.is-scrolled .lockup-mono.logo-cream{opacity:0}
.landing-header.is-previewing:not(.is-scrolled) .brand-lockup{color:var(--ink);text-shadow:0 1px 8px rgba(253,249,240,.85)}
.landing-header.is-previewing:not(.is-scrolled) .lockup-side{color:var(--gold-deep)}
.landing-header.is-previewing:not(.is-scrolled) .lockup-mono.logo-ink{opacity:1}
.landing-header.is-previewing:not(.is-scrolled) .lockup-mono.logo-cream{opacity:0}
.menu-open .site-header .brand-lockup{color:var(--cream);text-shadow:none}
.menu-open .site-header .brand-lockup .lockup-side{color:var(--gold-light)}
.menu-open .site-header .brand-lockup .lockup-mono.logo-ink{opacity:0}
.menu-open .site-header .brand-lockup .lockup-mono.logo-cream{opacity:1;position:relative}
.menu-open .site-header .brand-mono .logo-ink{opacity:0!important}
.menu-open .site-header .brand-mono .logo-cream{opacity:1!important}
/* Header bar: prevent brand/toggle overlap */
.site-header .bar{gap:clamp(.75rem,1.5vw,1.75rem)}
.site-header .bar > .brand{flex:0 1 300px}
.site-header .bar > .nav{flex:1 1 auto;min-width:0;margin-left:0}
.side-switch{flex:none;margin-right:clamp(.35rem,1vw,1rem)}
@media (max-width:1024px){
  .brand{height:72px;max-width:min(46vw,220px)}
  .site-header.lockup-main.is-scrolled .brand,.site-header.lockup-always .brand{height:56px;max-width:min(58vw,240px)}
  .brand-lockup{gap:.4rem}
  .brand-lockup .lockup-mono-wrap,.brand-lockup .lockup-mono,.brand-lockup .lockup-mono.logo-cream{height:36px}
  .brand-lockup .lockup-name{font-size:11px;letter-spacing:.12em}
  .brand-lockup .lockup-media-word{font-size:8.5px;letter-spacing:.18em}
  .brand-lockup .lockup-side{font-size:9px;letter-spacing:.14em}
  .brand-lockup .lockup-rule{height:1.9rem}
  .landing-header .brand{height:70px}
}
@media (min-width:1025px) and (max-width:1280px){
  .brand{height:84px;max-width:min(38vw,280px)}
  .site-header.lockup-main.is-scrolled .brand,.site-header.lockup-always .brand{height:60px;max-width:min(42vw,300px)}
  .brand-lockup .lockup-mono-wrap,.brand-lockup .lockup-mono,.brand-lockup .lockup-mono.logo-cream{height:46px}
  .brand-lockup .lockup-name{font-size:14px;letter-spacing:.18em}
}

/* ---------- hero ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:640px;max-height:1080px;overflow:hidden;color:var(--cream);background:var(--ink-deep);display:flex;align-items:flex-end}
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;transform:scale(1.14);animation:kenburns 26s ease-in-out infinite alternate}
@keyframes kenburns{0%{transform:scale(1.14) translate3d(1.5%,1%,0)}100%{transform:scale(1.02) translate3d(-1%,-1%,0)}}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(14,13,12,.6) 0%,rgba(14,13,12,.42) 28%,rgba(14,13,12,.62) 58%,rgba(14,13,12,.95) 100%),
  radial-gradient(110% 85% at 15% 75%,rgba(14,13,12,.7),transparent 62%)}
.hero::after{content:"";position:absolute;inset:0;z-index:1;background-image:var(--noise-dark);opacity:.8;pointer-events:none}
.hero-inner{position:relative;z-index:2;width:min(1440px,100% - 3rem);margin-inline:auto;padding-bottom:clamp(5.5rem,11vh,8.5rem)}
.hero-kicker{text-shadow:0 1px 14px rgba(0,0,0,.7);display:flex;align-items:center;gap:1.1rem;font-weight:500;font-size:clamp(.66rem,1vw,.8rem);letter-spacing:.42em;text-transform:uppercase;color:#E8CF9C;margin-bottom:2rem}
.hero-kicker .dot{color:var(--gold)}
.hero h1{font-size:clamp(3.1rem,8.4vw,8.6rem);font-weight:300;line-height:.95;letter-spacing:-.015em;max-width:13ch;text-wrap:balance}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.04em .02em .14em;margin-bottom:-.12em}
.hero h1 .w>span{display:inline-block}
.hero h1 em>.w>span,.hero h1 .gold-word{font-style:italic;background:var(--gold-grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:goldsheen 6s ease-in-out infinite alternate}
@keyframes goldsheen{0%{background-position:0 0}100%{background-position:100% 0}}
.hero-rule{display:block;height:1px;width:min(340px,60vw);background:var(--gold-grad);margin:2.4rem 0 1.8rem;transform-origin:left}
.hero-sub{display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem 2.2rem}
.hero-place{font-family:var(--serif);font-style:italic;font-size:clamp(1.15rem,1.6vw,1.45rem);color:rgba(253,249,240,.85)}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;margin-left:auto}
.scroll-cue{position:absolute;z-index:2;left:50%;bottom:1.6rem;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.7rem;text-decoration:none;color:rgba(253,249,240,.7);font-size:.6rem;letter-spacing:.4em;text-transform:uppercase}
.scroll-cue .line{width:1px;height:54px;background:rgba(217,195,160,.25);position:relative;overflow:hidden}
.scroll-cue .line::after{content:"";position:absolute;left:0;top:-50%;width:1px;height:50%;background:var(--gold-light);animation:cue 2.2s var(--ease) infinite}
@keyframes cue{0%{top:-50%}100%{top:100%}}
.hero-side{position:absolute;z-index:2;right:2rem;top:50%;transform:translateY(-50%) rotate(90deg);transform-origin:right center;font-size:.6rem;letter-spacing:.5em;text-transform:uppercase;color:rgba(217,195,160,.6);white-space:nowrap}

/* hero intro animation (only when JS + motion allowed) */
.js .hero h1 .w>span{transform:translateY(110%);opacity:0;transition:transform 1.25s var(--ease),opacity 1.25s var(--ease)}
.js .hero-kicker,.js .hero-sub,.js .scroll-cue{opacity:0;transform:translateY(18px);transition:opacity 1.2s var(--ease),transform 1.2s var(--ease)}
.js .hero-rule{transform:scaleX(0);transition:transform 1.6s var(--ease)}
.js .hero.is-ready h1 .w>span{transform:none;opacity:1}
.js .hero.is-ready .hero-kicker{opacity:1;transform:none;transition-delay:.15s}
.js .hero.is-ready .hero-rule{transform:none;transition-delay:1.1s}
.js .hero.is-ready .hero-sub{opacity:1;transform:none;transition-delay:1.45s}
.js .hero.is-ready .scroll-cue{opacity:1;transform:translateX(-50%);transition-delay:1.9s}
.js .scroll-cue{transform:translate(-50%,18px)}

/* ---------- reveal on scroll ---------- */
.js .reveal{opacity:0;transform:translateY(38px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.js .reveal.from-left{transform:translateX(-40px)}
.js .reveal.from-right{transform:translateX(40px)}
.js .reveal.is-in{opacity:1;transform:none}
.js .reveal-rule{transform:scaleX(0);transition:transform 1.4s var(--ease)}
.js .reveal-rule.is-in{transform:none}

/* ---------- intro ---------- */
.intro-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(3rem,7vw,7rem);align-items:end}
.intro .display{max-width:15ch}
.intro-copy p{font-size:1.06rem;color:var(--muted)}
.intro-copy p:first-child::first-letter{font-family:var(--serif);float:left;font-size:4.6rem;line-height:.8;padding:.35rem .6rem 0 0;color:var(--gold)}
.proofs{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(4rem,8vw,6.5rem);border-top:1px solid rgba(184,147,90,.45)}
.proof{padding:2.2rem 1.8rem 0 0;position:relative}
.proof+.proof{padding-left:1.8rem;border-left:1px solid rgba(184,147,90,.25)}
.proof .num{font-family:var(--serif);font-style:italic;font-size:1.05rem;color:var(--gold);display:block;margin-bottom:.9rem}
.proof h3{font-size:clamp(1.45rem,1.9vw,1.9rem);font-weight:400;line-height:1.15}
.reviews-inline{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem;margin-top:clamp(4rem,8vw,6rem)}
.review{position:relative;padding:2.6rem 2.4rem 2.2rem;background:rgba(255,255,255,.55);box-shadow:inset 0 0 0 1px rgba(184,147,90,.35);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.review:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(184,147,90,.8),0 30px 60px -40px rgba(140,106,58,.6)}
.review::before{content:"\201C";position:absolute;right:1.6rem;top:-.2rem;font-family:var(--serif);font-size:7rem;line-height:1;color:rgba(184,147,90,.25)}
.stars{display:flex;gap:.25rem;color:var(--gold);margin-bottom:1.3rem}
.stars svg{width:15px;height:15px}
.review blockquote{margin:0 0 1.5rem;font-family:var(--serif);font-style:italic;font-size:clamp(1.35rem,1.9vw,1.7rem);line-height:1.3}
.review cite{font-style:normal;font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-deep);display:flex;align-items:center;gap:.8rem}
.review cite::before{content:"";width:26px;height:1px;background:var(--gold)}
.g-badge{display:inline-flex;align-items:center;gap:.55rem;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-left:auto}
.review-foot{display:flex;align-items:center;flex-wrap:wrap;gap:1rem}

/* ---------- marquee band ---------- */
.marquee{background:var(--ink-deep);color:var(--soft-gold);border-block:1px solid rgba(184,147,90,.35);overflow:hidden;padding:1.6rem 0}
.marquee-track{display:flex;width:max-content;animation:marquee 38s linear infinite}
.marquee-track span{font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,3vw,2.6rem);white-space:nowrap;padding:0 1.6rem;display:inline-flex;align-items:center;gap:3.2rem}
.marquee-track span::after{content:"";width:7px;height:7px;transform:rotate(45deg);background:var(--gold-grad);flex:none}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- work / gallery ---------- */
.work-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.filters{display:flex;flex-wrap:wrap;gap:.4rem 1.8rem;margin-top:1rem}
.filters button{background:none;border:0;padding:.5rem 0;cursor:pointer;font-family:var(--sans);font-weight:400;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(253,249,240,.55);position:relative;transition:color .4s}
.filters button::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold-grad);transform:scaleX(0);transition:transform .45s var(--ease)}
.filters button:hover{color:var(--cream)}
.filters button.is-active{color:var(--gold-light)}
.filters button.is-active::after{transform:scaleX(1)}
.filters .count{font-family:var(--serif);font-style:italic;letter-spacing:0;font-size:.95rem;margin-left:.35rem;color:var(--gold)}
.gallery{--g:1.4rem;columns:3 320px;column-gap:1.4rem;margin-top:3.2rem}
.tile{break-inside:avoid;margin:0 0 1.4rem;position:relative;cursor:zoom-in;overflow:hidden;background:var(--ink-2);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.tile img{width:100%;height:auto;transition:transform 1.4s var(--ease),filter 1s var(--ease)}
.tile::before{content:"";position:absolute;inset:14px;border:1px solid var(--gold-light);z-index:2;opacity:0;transform:scale(1.04);transition:opacity .6s var(--ease),transform .8s var(--ease);pointer-events:none}
.tile figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:3.5rem 2rem 1.8rem;background:linear-gradient(0deg,rgba(14,13,12,.85),transparent);display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.tile figcaption strong{display:block;font-family:var(--serif);font-weight:400;font-size:1.6rem;line-height:1.1;color:var(--cream)}
.tile figcaption small{display:block;font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-light);margin-bottom:.4rem}
.tile figcaption .plus{width:38px;height:38px;flex:none;border-radius:50%;box-shadow:inset 0 0 0 1px var(--gold-light);display:grid;place-items:center;color:var(--gold-light);font-family:var(--serif);font-size:1.4rem}
.tile:hover img,.tile:focus-visible img{transform:scale(1.035);filter:brightness(.82)}
.tile:hover::before,.tile:focus-visible::before{opacity:1;transform:none}
.tile:hover figcaption,.tile:focus-visible figcaption{opacity:1;transform:none}
.tile.is-hidden{display:none}
/* JS justified layout: rows of equal height, every photo at its natural ratio (no cropping) */
.gallery.is-justified{columns:auto;display:flex;flex-direction:column;gap:var(--g)}
.gallery.is-justified .grow{display:flex;gap:var(--g);width:100%;margin-inline:auto}
.gallery.is-justified .tile{margin:0;flex-basis:0;min-width:0}
.work-note{margin-top:2rem;font-family:var(--serif);font-style:italic;font-size:1.15rem;color:rgba(253,249,240,.6)}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(10,9,8,.96);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility .5s}
.lightbox.is-open{opacity:1;visibility:visible}
.lightbox figure{margin:0;max-width:min(92vw,1400px);display:flex;flex-direction:column;align-items:center}
.lightbox img{max-width:100%;max-height:82vh;width:auto;height:auto;object-fit:contain;box-shadow:0 0 0 1px rgba(184,147,90,.4),0 40px 80px -30px #000}
.lightbox figcaption{margin-top:1.2rem;color:var(--soft-gold);font-family:var(--serif);font-style:italic;font-size:1.3rem}
.lb-btn{position:absolute;background:none;border:0;color:var(--cream);cursor:pointer;width:56px;height:56px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(184,147,90,.5);display:grid;place-items:center;transition:background .4s,color .4s}
.lb-btn:hover{background:var(--gold);color:var(--ink-deep)}
.lb-btn svg{width:20px;height:20px}
.lb-close{top:1.5rem;right:1.5rem}
.lb-prev{left:1.5rem;top:50%;transform:translateY(-50%)}
.lb-next{right:1.5rem;top:50%;transform:translateY(-50%)}

/* ---------- packages ---------- */
.packages-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,3vw,2.6rem);align-items:stretch;max-width:1120px;margin-inline:auto}
.pkg{position:relative;padding:clamp(2.6rem,4.5vw,4rem) clamp(2rem,4vw,3.6rem);background:rgba(255,255,255,.6);box-shadow:inset 0 0 0 1px rgba(184,147,90,.4);display:flex;flex-direction:column;transition:transform .7s var(--ease),box-shadow .7s var(--ease)}
.pkg:hover{transform:translateY(-6px);box-shadow:inset 0 0 0 1px rgba(184,147,90,.85),0 40px 80px -50px rgba(140,106,58,.7)}
.pkg .pkg-label{font-size:.66rem;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-deep)}
.pkg h3{font-size:clamp(2.2rem,3.4vw,3.2rem);font-weight:300;margin:1.1rem 0 1.4rem;line-height:1.02}
.pkg h3 em{font-style:italic}
.pkg .pkg-rule{height:1px;background:var(--gold-grad);width:70px;margin-bottom:2rem}
.pkg ul{list-style:none;margin:0 0 2.2rem;padding:0}
.pkg li{position:relative;padding:.85rem 0 .85rem 2rem;border-bottom:1px solid rgba(184,147,90,.2);font-size:.98rem}
.pkg li::before{content:"";position:absolute;left:0;top:1.45rem;width:9px;height:9px;transform:rotate(45deg);box-shadow:inset 0 0 0 1px var(--gold)}
.pkg .closing{font-family:var(--serif);font-style:italic;font-size:1.45rem;line-height:1.3;margin:0 0 2.2rem}
.pkg .btn{margin-top:auto;align-self:flex-start}
.pkg-feature{background:var(--ink-deep);color:var(--cream);box-shadow:0 50px 90px -50px rgba(14,13,12,.75)}
.pkg-feature::before{content:"";position:absolute;inset:0;padding:1px;background:var(--gold-grad);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.pkg-feature::after{content:"";position:absolute;inset:10px;border:1px solid rgba(184,147,90,.22);pointer-events:none}
.pkg-feature:hover{box-shadow:0 60px 100px -50px rgba(14,13,12,.9)}
.pkg-feature .pkg-label{color:var(--gold-light)}
.pkg-feature li{border-bottom-color:rgba(217,195,160,.16);color:rgba(253,249,240,.88)}
.pkg-feature li::before{box-shadow:none;background:var(--gold-grad)}
.pkg-feature .closing{color:var(--soft-gold)}
.badge{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);z-index:3;background:var(--champagne);color:#8C6A3A;border:1px solid var(--gold);padding:.55rem 1.4rem;font-size:.62rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;white-space:nowrap}
.pkg-foot{text-align:center;margin-top:clamp(3rem,6vw,4.5rem)}
.pkg-foot .text-link{text-align:center}
.price{display:flex;align-items:baseline;gap:.6rem;margin:-.4rem 0 1.8rem}
.price .price-note,.price-note{font-size:.66rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-deep);white-space:nowrap}
.price .amt{font-family:var(--serif);font-weight:300;font-size:clamp(3.4rem,5.5vw,5rem);line-height:1;background:var(--gold-grad);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.price .per{font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
.pkg-feature .price .per{color:rgba(253,249,240,.6)}

/* ---------- reviews band ---------- */
.reviews-band .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.reviews-band .review{background:rgba(253,249,240,.03);box-shadow:inset 0 0 0 1px rgba(184,147,90,.3)}
.reviews-band .review:hover{box-shadow:inset 0 0 0 1px rgba(217,185,122,.75),0 40px 80px -40px rgba(0,0,0,.8)}
.reviews-band .review blockquote{color:var(--cream)}
.reviews-band .review cite{color:var(--soft-gold)}
.reviews-band .review::before{color:rgba(184,147,90,.18)}
.reviews-band .g-badge{color:rgba(253,249,240,.5)}
.big-quote{font-family:var(--serif);font-style:italic;font-size:clamp(2.2rem,4.8vw,4.2rem);font-weight:300;line-height:1.12;max-width:26ch;margin:0 auto}

/* ---------- services ---------- */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(184,147,90,.4);border-left:1px solid rgba(184,147,90,.4)}
.service{position:relative;padding:clamp(2.4rem,4vw,3.4rem) clamp(1.8rem,3vw,2.8rem);border-right:1px solid rgba(184,147,90,.4);border-bottom:1px solid rgba(184,147,90,.4);background:rgba(253,249,240,.5);overflow:hidden;transition:background .6s var(--ease)}
.service::before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:var(--gold-grad);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.service:hover{background:#fff}
.service:hover::before{transform:scaleX(1)}
.service .idx{position:absolute;right:1.6rem;top:1.3rem;font-family:var(--serif);font-style:italic;font-size:1rem;color:rgba(184,147,90,.8)}
.service svg{width:52px;height:52px;color:var(--gold);margin-bottom:1.8rem;transition:transform .7s var(--ease)}
.service:hover svg{transform:translateY(-4px)}
.service h3{font-size:clamp(1.6rem,2.2vw,2rem);font-weight:400;margin-bottom:.8rem}
.service p{color:var(--muted);margin:0;font-size:.95rem}

/* ---------- FAQs ---------- */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,7vw,7rem);align-items:start}
.faq-aside{position:sticky;top:120px}
.faq-list{border-top:1px solid var(--gold)}
.faq-list details{border-bottom:1px solid rgba(184,147,90,.55)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.8rem 0;font-family:var(--serif);font-size:clamp(1.35rem,2vw,1.75rem);font-weight:400;line-height:1.25;transition:color .4s}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:hover{color:var(--gold-deep)}
.faq-list .pm{position:relative;flex:none;width:40px;height:40px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(184,147,90,.6);transition:background .4s,transform .5s var(--ease)}
.faq-list .pm::before,.faq-list .pm::after{content:"";position:absolute;left:50%;top:50%;width:13px;height:1px;background:var(--gold-deep);transform:translate(-50%,-50%);transition:transform .5s var(--ease),background .4s}
.faq-list .pm::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-list details[open] .pm{background:var(--gold);transform:rotate(180deg)}
.faq-list details[open] .pm::before,.faq-list details[open] .pm::after{background:var(--ink-deep)}
.faq-list details[open] .pm::after{transform:translate(-50%,-50%) rotate(0)}
.faq-list .answer{padding:0 4rem 2rem 0;color:var(--muted);animation:faqin .6s var(--ease)}
.faq-list .answer a{color:var(--gold-deep)}
@keyframes faqin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,7vw,7rem);align-items:start}
.contact .display{max-width:12ch}
.phone-big{display:inline-block;margin:2.4rem 0 1.6rem;font-family:var(--serif);font-weight:300;font-size:clamp(2.8rem,5.6vw,5rem);line-height:1;text-decoration:none;letter-spacing:.01em;background:var(--gold-grad);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;transition:background-position 1s var(--ease)}
.phone-big:hover{background-position:100% 0}
.contact-btns{display:flex;gap:1rem;flex-wrap:wrap}
.contact-meta{margin-top:3.2rem;display:grid;grid-template-columns:1fr 1fr;gap:2rem 2.4rem;border-top:1px solid rgba(184,147,90,.35);padding-top:2.4rem}
.contact-meta h4{font-family:var(--sans);font-weight:500;font-size:.64rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:.6rem}
.contact-meta p,.contact-meta a{margin:0;color:rgba(253,249,240,.85);text-decoration:none;font-size:.98rem}
.contact-meta a:hover{color:var(--gold-light)}
.form{padding:clamp(2.2rem,4vw,3.4rem);background:rgba(253,249,240,.035);position:relative}
.form::before{content:"";position:absolute;inset:0;padding:1px;background:var(--gold-grad);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.7}
.form h3{font-size:2rem;margin-bottom:.4rem}
.form .form-intro{color:rgba(253,249,240,.6);font-size:.9rem;margin-bottom:1.8rem}
.field{position:relative;margin-bottom:1.5rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 1.6rem}
.field label{display:block;font-size:.62rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--soft-gold);margin-bottom:.5rem}
.field input,.field select,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(217,195,160,.4);color:var(--cream);font-family:var(--sans);font-weight:300;font-size:1rem;padding:.65rem 0;border-radius:0;transition:border-color .4s;-webkit-appearance:none;appearance:none}
.field textarea{resize:vertical;min-height:110px}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23B8935A'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .2rem center;cursor:pointer}
.field select option{color:var(--ink);background:var(--cream)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--gold-light)}
.field input::placeholder,.field textarea::placeholder{color:rgba(253,249,240,.3)}
.form-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem}
.form-status{margin-top:1.2rem;font-size:.9rem;color:var(--soft-gold);min-height:1.4em}

/* ---------- footer ---------- */
.site-footer{background:var(--ink-deep);color:rgba(253,249,240,.65);padding:5rem 0 2.4rem;position:relative}
.site-footer::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--gold-grad-h)}
.footer-top{display:grid;grid-template-columns:auto 1fr auto;gap:3rem;align-items:center}
.footer-logo{width:190px;height:auto}
.footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 2.2rem}
.footer-nav a{text-decoration:none;font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;transition:color .3s}
.footer-nav a:hover{color:var(--gold-light)}
.footer-social{display:flex;gap:.8rem}
.footer-social .icon-btn{color:var(--gold-light)}
.footer-bottom{margin-top:3.5rem;padding-top:1.8rem;border-top:1px solid rgba(184,147,90,.2);display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.72rem;letter-spacing:.14em}

/* ---------- pricing page ---------- */
.page-hero{padding:calc(var(--header-h) + clamp(4.5rem,9vw,8rem)) 0 clamp(3.5rem,6vw,5rem);text-align:center}
.page-hero .display{font-size:clamp(3rem,7vw,6.4rem);max-width:14ch;margin-inline:auto}
.page-hero .lead{margin:1.8rem auto 0}
.pricing-note{display:flex;align-items:center;justify-content:center;gap:1.2rem;margin-top:2.6rem;font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,2vw,1.7rem);color:var(--gold-deep)}
.pricing-note::before,.pricing-note::after{content:"";width:60px;height:1px;background:var(--gold-grad)}
.pricing-section{padding:clamp(2rem,4vw,3rem) 0 clamp(6rem,10vw,9rem)}
.cta-band{text-align:center;padding:clamp(5rem,10vw,8rem) 0}
.cta-band .display{max-width:16ch;margin:0 auto 2.6rem}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .nav{gap:1.3rem}
  .nav a{letter-spacing:.2em;font-size:.68rem}
  .hero-side{display:none}
}
@media (max-width:1024px){
  :root{--header-h:90px}
  .menu-toggle{display:block;order:3}
  .header-actions{margin-left:auto}
  .nav{position:fixed;inset:var(--header-h) 0 auto 0;height:calc(100vh - var(--header-h));height:calc(100dvh - var(--header-h));flex-direction:column;justify-content:center;gap:1.4rem;background:var(--ink-deep);color:var(--cream);margin:0;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .45s var(--ease),transform .45s var(--ease),visibility .45s}
  .nav a{font-family:var(--serif);font-size:2.3rem;letter-spacing:0;text-transform:none;font-weight:300}
  .menu-open .nav{opacity:1;visibility:visible;transform:none}
  .brand{height:72px}
  .site-header.is-scrolled{--header-h:78px}
  .site-header.is-scrolled .brand{height:58px;max-width:min(90vw,360px)}
  .intro-grid,.faq-grid,.contact-grid{grid-template-columns:1fr}
  .faq-aside{position:static}
  .proofs{grid-template-columns:repeat(2,1fr)}
  .proof:nth-child(3){padding-left:0;border-left:0}
  .proof{padding-bottom:2rem}
  .reviews-band .grid{grid-template-columns:1fr 1fr}
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .footer-top{grid-template-columns:1fr;justify-items:center;text-align:center}
  .hero-ctas{margin-left:0}
}
@media (max-width:760px){
  body{font-size:.96rem}
  .wrap{width:calc(100% - 2.6rem)}
  .site-header .bar{width:calc(100% - 1.6rem);gap:.6rem}
  .header-actions{gap:.5rem}
  .site-header .btn{--pad:.75rem 1rem;font-size:.6rem;letter-spacing:.2em}
  .icon-btn{width:38px;height:38px}
  .hero{min-height:600px}
  .hero h1{font-size:clamp(2.9rem,13vw,4.4rem)}
  .hero-kicker{letter-spacing:.28em;gap:.6rem;flex-wrap:wrap}
  .hero-ctas .btn{flex:1 1 auto}
  .scroll-cue{display:none}
  .packages-grid,.reviews-inline,.reviews-band .grid,.services-grid{grid-template-columns:1fr}
  .pkg-feature{margin-top:1.2rem}
  .proofs{grid-template-columns:1fr}
  .proof,.proof+.proof{padding:1.6rem 0;border-left:0;border-bottom:1px solid rgba(184,147,90,.25)}
  .gallery{--g:.7rem;columns:2 150px;column-gap:.7rem}
  .tile{margin-bottom:.8rem}
  .tile figcaption{display:none}
  .field-row{grid-template-columns:1fr}
  .contact-meta{grid-template-columns:1fr}
  .faq-list .answer{padding-right:0}
  .contact-btns .btn,.form-actions .btn{flex:1 1 auto}
  .lb-prev,.lb-next{top:auto;bottom:1.2rem;transform:none}
  .review{padding:2.2rem 1.6rem 1.8rem}
}
@media (max-width:380px){
  .site-header .icon-btn{display:none}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .hero-media img{transform:none;animation:none}
  .marquee-track{animation:none}
  .js .reveal,.js .reveal-rule,.js .hero h1 .w>span,.js .hero-kicker,.js .hero-sub,.js .hero-rule{opacity:1!important;transform:none!important}
  .js .scroll-cue{opacity:1;transform:translateX(-50%)}
}

/* =========================================================
   v2 — two-door landing, Commercial | Family switch, family page
   ========================================================= */

/* ---------- Commercial | Family switch (in nav) ---------- */
.side-switch{display:inline-flex;align-items:center;padding:3px;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(184,147,90,.55);margin-right:clamp(.4rem,1.2vw,1.2rem)}
.nav .side-switch a{padding:.42rem .95rem;border-radius:999px;font-size:.6rem;letter-spacing:.24em;transition:background .4s var(--ease),color .4s var(--ease)}
.nav .side-switch a::after{display:none}
.nav .side-switch a:hover{color:var(--gold)}
.nav .side-switch a.is-current{background:var(--gold-grad);background-size:200% 100%;color:var(--ink-deep)}
.site-header.over-hero:not(.is-scrolled) .side-switch{box-shadow:inset 0 0 0 1px rgba(217,195,160,.55)}

/* ---------- Landing (two doors) ---------- */
.landing-page{background:var(--ink-deep)}
.site-header.landing-header{background:linear-gradient(180deg,rgba(14,13,12,.75),rgba(14,13,12,0));color:var(--cream)}
.site-header.landing-header::after{opacity:0}
.landing-header .bar{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem}
.landing-header .brand{grid-column:2;justify-self:center;height:96px}
.landing-header .landing-left{grid-column:1;grid-row:1;justify-self:start;font-size:.62rem;letter-spacing:.38em;text-transform:uppercase;color:var(--soft-gold)}
.landing-header .header-actions{grid-column:3;justify-self:end;margin:0}
.landing-header .contact-link{text-decoration:none;font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;position:relative;padding:.4rem 0}
.landing-header .contact-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold-grad);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.landing-header .contact-link:hover::after{transform:scaleX(1);transform-origin:left}
.landing-header.is-scrolled{background:rgba(14,13,12,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.landing-header.is-scrolled::after{opacity:1}
.landing-header.is-scrolled .brand{height:72px}

.doors{position:relative;display:flex;height:100vh;height:100svh;min-height:640px;max-height:1100px;background:var(--ink-deep);overflow:hidden}
.door{position:relative;flex:1 1 0;display:flex;align-items:flex-end;text-decoration:none;color:var(--cream);overflow:hidden;isolation:isolate;transition:flex-grow 1.1s var(--ease)}
.door-media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.door-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);animation:kenburns 28s ease-in-out infinite alternate;filter:brightness(.78) saturate(.95);transition:filter 1s var(--ease)}
.door::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,13,12,.5) 0%,rgba(14,13,12,.15) 35%,rgba(14,13,12,.55) 65%,rgba(14,13,12,.95) 100%);transition:opacity 1s var(--ease)}
.door::after{content:"";position:absolute;inset:18px;border:1px solid rgba(217,185,122,0);transition:border-color .9s var(--ease),inset .9s var(--ease);pointer-events:none}
.door+.door{box-shadow:none}
/* Luxurious gold bar between Commercial / Family doors */
.doors-divider{
  flex:0 0 8px;
  width:8px;
  align-self:stretch;
  position:relative;
  z-index:2;
  pointer-events:none;
  /* logo clears gold door bar */
  margin-top:clamp(7.25rem,13vh,9.25rem);
  background:linear-gradient(180deg,#5c4324 0%,#8C6A3A 14%,#D9B97A 36%,#F1DDAE 50%,#B8935A 64%,#8C6A3A 86%,#5c4324 100%);
  box-shadow:
    inset 1px 0 0 rgba(241,221,174,.7),
    inset -1px 0 0 rgba(70,50,22,.65),
    0 0 20px rgba(184,147,90,.4),
    0 0 2px rgba(241,221,174,.35);
}
.doors-divider::before{
  content:"";
  position:absolute;
  inset:0 -1px;
  border-left:1px solid rgba(241,221,174,.45);
  border-right:1px solid rgba(140,106,58,.5);
  pointer-events:none;
}
.doors-divider::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,transparent 0%,rgba(255,244,214,.4) 48%,rgba(255,244,214,.15) 52%,transparent 100%);
  pointer-events:none;
}

.door-inner{width:100%;padding:0 clamp(2rem,5vw,5rem) clamp(4.5rem,10vh,7.5rem)}
.door-kicker{display:block;font-weight:500;font-size:.68rem;letter-spacing:.4em;text-transform:uppercase;color:#E8CF9C;margin-bottom:1.2rem;text-shadow:0 1px 12px rgba(0,0,0,.6)}
.door-title{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(3.6rem,8vw,8.4rem);line-height:.9;letter-spacing:-.01em}
.door-title em{font-style:italic;background:var(--gold-grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.door-rule{display:block;width:90px;height:1px;background:var(--gold-grad);margin:1.8rem 0 1.4rem;transition:width 1s var(--ease)}
.door-text{display:block;max-width:30rem;font-size:.98rem;color:rgba(253,249,240,.78);margin-bottom:2rem}
.door .btn{pointer-events:none}
.doors:hover .door{flex-grow:.82}
.doors .door:hover,.doors .door:focus-visible{flex-grow:1.25}
.door:hover .door-media img,.door:focus-visible .door-media img{filter:brightness(1) saturate(1.05)}
.door:hover::after,.door:focus-visible::after{border-color:rgba(217,185,122,.75);inset:14px}
.door:hover .door-rule,.door:focus-visible .door-rule{width:160px}
.door:hover .btn-gold{background-position:100% 0}
.door:focus-visible{outline:none}
/* Family door placeholder (no family photos supplied yet) */
.door-placeholder{position:absolute;inset:0;background:
  radial-gradient(70% 55% at 60% 35%,rgba(217,185,122,.28),transparent 70%),
  radial-gradient(60% 50% at 20% 90%,rgba(140,106,58,.35),transparent 70%),
  linear-gradient(160deg,#2a231b 0%,#15120f 55%,#0b0a09 100%);animation:kenburns 28s ease-in-out infinite alternate;transition:filter 1s var(--ease);filter:brightness(.85)}
.door-placeholder::before{content:"";position:absolute;inset:0;background-image:var(--noise-dark);opacity:1}
.door-placeholder::after{content:"";position:absolute;left:50%;top:40%;width:min(46%,340px);aspect-ratio:400/180;transform:translate(-50%,-50%);background:url("../assets/logo/monogram-ch-gold.png") center/contain no-repeat;opacity:.14}
.door:hover .door-placeholder{filter:brightness(1.15)}
.door-centre{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);width:min(320px,70vw);height:120px;display:grid;place-items:center;pointer-events:none;isolation:isolate}
.door-centre-swirl{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:0}
.door-centre-swirl .swirl-path{fill:none}
.door-centre-swirl .swirl-diamond{filter:drop-shadow(0 0 4px rgba(217,185,122,.75))}
.door-centre-badge{position:relative;z-index:1;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:#0E0D0C;box-shadow:0 0 28px rgba(217,185,122,.28),0 0 8px rgba(184,147,90,.35)}
.door-centre-ring{position:absolute;border-radius:50%;pointer-events:none}
.door-centre-ring--outer{inset:3px;border:1px solid rgba(241,221,174,.55);box-shadow:0 0 0 .5px rgba(184,147,90,.25)}
.door-centre-ring--inner{inset:8px;border:1.25px solid rgba(217,185,122,.85)}
.door-centre-or{position:relative;z-index:2;font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.35rem;letter-spacing:.04em;line-height:1;background:var(--gold-grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 6px rgba(217,185,122,.35))}
.landing-intro{text-align:center;padding:clamp(5rem,9vw,7.5rem) 0 clamp(1rem,2vw,2rem)}
.landing-intro .display{max-width:20ch;margin:0 auto}
.js .door{opacity:0;transform:translateY(30px);transition:flex-grow 1.1s var(--ease),opacity 1.4s var(--ease),transform 1.4s var(--ease)}
.js .doors.is-ready .door{opacity:1;transform:none}
.js .doors.is-ready .door+.door{transition-delay:0s,.2s,.2s}
.js .door-centre{opacity:0;transition:opacity 1.2s var(--ease) 1s}
.js .doors.is-ready .door-centre{opacity:1}

/* ---------- Family hero (placeholder background) ---------- */
.hero-family .hero-media{background:
  radial-gradient(60% 60% at 70% 30%,rgba(217,185,122,.22),transparent 70%),
  radial-gradient(50% 50% at 10% 100%,rgba(140,106,58,.3),transparent 70%),
  linear-gradient(160deg,#2a231b 0%,#15120f 55%,#0b0a09 100%);animation:kenburns 28s ease-in-out infinite alternate}
.hero-family .hero-media::after{content:"";position:absolute;right:6%;top:50%;width:min(36vw,520px);aspect-ratio:400/180;transform:translateY(-60%);background:url("../assets/logo/monogram-ch-cream.png") center/contain no-repeat;opacity:.07}
.hero-family h1{max-width:12ch}

/* ---------- Placeholder photo frames ---------- */
.ph-gallery{columns:3 280px;column-gap:1.4rem}
.ph{break-inside:avoid;margin:0 0 1.4rem;position:relative;display:grid;place-items:center;text-align:center;background:
  radial-gradient(80% 70% at 50% 40%,#FBF5EA,var(--champagne));box-shadow:inset 0 0 0 1px var(--gold);overflow:hidden}
.ph::before{content:"";position:absolute;inset:12px;border:1px solid rgba(184,147,90,.35);pointer-events:none}
.ph::after{content:"";position:absolute;inset:0;background-image:var(--noise);pointer-events:none}
.ph .ph-in{position:relative;z-index:1;padding:1.5rem}
.ph img{width:86px;height:auto;margin:0 auto 1rem;opacity:.55}
.ph span{display:block;font-size:.66rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-deep)}
.ph em{display:block;font-family:var(--serif);font-size:1.3rem;color:var(--muted);margin-top:.4rem}
.ph.r45{aspect-ratio:4/5}.ph.r32{aspect-ratio:3/2}.ph.r11{aspect-ratio:1/1}.ph.r23{aspect-ratio:2/3}

/* ---------- Family session ---------- */
.session-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center;max-width:1180px;margin-inline:auto}
.session-grid .ph{margin:0}
.session-grid .pkg{height:auto}
.price-soon{font-family:var(--serif);font-style:italic;font-size:1.5rem;line-height:1.3;color:var(--gold-deep);margin:0 0 2rem}
.pkg-feature .price-soon{color:var(--soft-gold)}

/* ---------- Pricing: family placeholder ---------- */
.family-pricing{max-width:1120px;margin:clamp(4rem,8vw,6rem) auto 0}
.family-packages-grid{margin-top:clamp(1.6rem,3vw,2.4rem);grid-template-columns:minmax(0,560px);justify-content:center}
.pkg-opts{margin:.35rem 0 .85rem;font-size:.68rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep);text-decoration:none;border-bottom:none;box-shadow:none}
.pkg-feature .pkg-opts{color:var(--soft-gold)}
.pkg-feature .price{margin:.6rem 0 .2rem}
.pkg-feature .price .amt{color:var(--cream)}
.group-label{display:flex;align-items:center;gap:1.4rem;max-width:1120px;margin:0 auto 2.4rem;font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.6rem);font-weight:300}
.group-label::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--gold),transparent)}
.group-label em{font-style:italic;color:var(--gold-deep)}

@media (max-width:1180px){
  .nav .side-switch a{padding:.4rem .7rem;letter-spacing:.16em}
}
@media (max-width:1024px){
  .side-switch{margin:0 0 1rem}
  .nav .side-switch a{font-family:var(--sans);font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;padding:.6rem 1.2rem}
  .menu-open .site-header.over-hero .side-switch{box-shadow:inset 0 0 0 1px rgba(217,195,160,.55)}
  .session-grid{grid-template-columns:1fr}
  .session-grid .ph{max-width:520px;width:100%;margin-inline:auto}
}
@media (max-width:760px){
  .landing-header .landing-left{display:none}
  .landing-header .bar{grid-template-columns:auto 1fr;gap:.5rem}
  .landing-header .brand{grid-column:1;justify-self:start;height:70px}
  .landing-header .header-actions{grid-column:2}
  .landing-header .contact-link{font-size:.6rem;letter-spacing:.18em;margin-right:.3rem}
  .doors{flex-direction:column;height:auto;max-height:none;min-height:0}
  .door{min-height:calc(50svh + 10px);flex:none}
  .door:first-child{min-height:calc(50svh + 40px)}
  .door-inner{padding:0 1.6rem 2.4rem}
  .door-title{font-size:clamp(3rem,15vw,4.2rem)}
  .door-text{display:none}
  .door-rule{margin:1.1rem 0 1.2rem}
  .door+.door{box-shadow:none}
  .doors-divider{
    margin-top:clamp(5rem,10vh,6.5rem);
    flex:0 0 8px;
    width:100%;
    height:8px;
    align-self:stretch;
    background:linear-gradient(90deg,#5c4324 0%,#8C6A3A 14%,#D9B97A 36%,#F1DDAE 50%,#B8935A 64%,#8C6A3A 86%,#5c4324 100%);
    box-shadow:
      inset 0 1px 0 rgba(241,221,174,.7),
      inset 0 -1px 0 rgba(70,50,22,.65),
      0 0 20px rgba(184,147,90,.4),
      0 0 2px rgba(241,221,174,.35);
  }
  .doors-divider::before{
    inset:-1px 0;
    border-left:0;
    border-right:0;
    border-top:1px solid rgba(241,221,174,.45);
    border-bottom:1px solid rgba(140,106,58,.5);
  }
  .doors-divider::after{
    background:linear-gradient(180deg,transparent 0%,rgba(255,244,214,.4) 48%,rgba(255,244,214,.15) 52%,transparent 100%);
  }
  .doors:hover .door,.doors .door:hover{flex-grow:0}
  .door-centre{width:min(240px,88vw);height:96px}
  .door-centre-badge{width:56px;height:56px}
  .door-centre-or{font-size:1.1rem}
  .door-centre-ring--outer{inset:2px}
  .door-centre-ring--inner{inset:6px}
  .door .btn{--pad:.85rem 1.4rem}
  .ph-gallery{columns:2 140px;column-gap:.8rem}
  .ph{margin-bottom:.8rem}
  .ph img{width:56px}
  .ph em{font-size:1.05rem}
  .ph span{font-size:.52rem;letter-spacing:.2em}
}
@media (prefers-reduced-motion:reduce){
  .door-media img,.door-placeholder,.hero-family .hero-media{animation:none;transform:none}
  .js .door,.js .door-centre{opacity:1!important;transform:none!important}
}

/* ---------- Gallery: category line ---------- */
.cat-line{margin:2rem 0 0;min-height:1.6em;font-family:var(--serif);font-style:italic;font-size:clamp(1.15rem,1.6vw,1.4rem);color:var(--soft-gold)}
.work-more{margin-top:2.6rem;text-align:center}
.work-more .text-link{color:var(--gold-light)}

/* ---------- Clients page ---------- */
.client-list{border-top:1px solid var(--gold);max-width:1280px;margin-inline:auto}
.client{border-bottom:1px solid rgba(184,147,90,.55)}
.client summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:4rem 1fr auto auto;align-items:center;gap:1.6rem;padding:clamp(1.8rem,3.4vw,2.8rem) 0;transition:padding .6s var(--ease)}
.client summary::-webkit-details-marker{display:none}
.client .c-num{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--gold)}
.client .c-name{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,5vw,4.4rem);line-height:1;transition:color .5s var(--ease),transform .7s var(--ease);display:block}
.client .c-cat{display:block;margin-top:.7rem;font-size:.64rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-deep)}
.client .c-count{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--muted);white-space:nowrap}
.client .c-open{display:inline-flex;align-items:center;gap:1rem;font-size:.64rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-deep);white-space:nowrap}
.client .c-open .pm{position:relative;width:48px;height:48px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(184,147,90,.6);transition:background .4s,transform .6s var(--ease)}
.client .c-open .pm::before,.client .c-open .pm::after{content:"";position:absolute;left:50%;top:50%;width:15px;height:1px;background:var(--gold-deep);transform:translate(-50%,-50%);transition:transform .5s var(--ease),background .4s}
.client .c-open .pm::after{transform:translate(-50%,-50%) rotate(90deg)}
.client .c-open .when-open{display:none}
.client[open] .c-open .when-open{display:inline}
.client[open] .c-open .when-closed{display:none}
.client summary:hover .c-name{color:var(--gold-deep);transform:translateX(8px)}
.client summary:hover .pm{background:rgba(184,147,90,.12)}
.client[open] .pm{background:var(--gold);transform:rotate(180deg)}
.client[open] .pm::before,.client[open] .pm::after{background:var(--ink-deep)}
.client[open] .pm::after{transform:translate(-50%,-50%) rotate(0)}
.client[open] .c-name{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;font-style:italic}
.client-body{padding:0 0 clamp(2.6rem,5vw,4rem);animation:faqin .7s var(--ease)}
.client-body .client-note{font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--muted);margin:0 0 1.6rem}
.client-body .gallery{margin-top:0}
.tile.ph-tile{cursor:default;background:none}
.tile.ph-tile .ph{margin:0;height:100%;min-height:100%}
.tile.ph-tile::before,.tile.ph-tile figcaption{display:none}
.tex-cream .tile figcaption strong{color:var(--cream)}

@media (max-width:760px){
  .client summary{grid-template-columns:2.2rem 1fr auto;gap:.9rem}
  .client .c-count{display:none}
  .client .c-open .label{display:none}
  .client .c-open .pm{width:40px;height:40px}
  .client .c-cat{letter-spacing:.22em}
}

/* ---------- Door blurbs ---------- */
.door-text{font-size:1.02rem;line-height:1.6;color:rgba(253,249,240,.9);text-shadow:0 1px 14px rgba(0,0,0,.65);margin-bottom:1.1rem;max-width:32rem}
.door-tags{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .9rem;margin:0 0 2rem;padding:0;list-style:none;max-width:34rem}
.door-tags .dt{display:inline-flex;align-items:center;gap:.9rem;font-size:.62rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:#E8CF9C;text-shadow:0 1px 10px rgba(0,0,0,.7)}
.door-tags .dt+.dt::before{content:"";width:5px;height:5px;transform:rotate(45deg);background:var(--gold-grad);flex:none}
@media (max-width:760px){
  .door-text{display:block;font-size:.92rem;margin-bottom:.8rem}
  .door-tags{gap:.35rem .7rem;margin-bottom:1.4rem}
  .door-tags .dt{font-size:.55rem;letter-spacing:.18em;gap:.7rem}
  .door{min-height:auto!important;padding-top:7rem}
  .door:first-child{padding-top:8.5rem}
}

/* ---------- Landing: "not sure" band ---------- */
.landing-page .doors{height:calc(100vh - 88px);height:calc(100svh - 88px);min-height:600px}
.unsure-band{position:relative;background:var(--ink-deep);color:var(--cream);border-top:1px solid rgba(184,147,90,.55);min-height:88px;display:flex;align-items:center}
.unsure-band::before{content:"";position:absolute;inset:0;background-image:var(--noise-dark);pointer-events:none}
.unsure-band .wrap{position:relative;display:flex;align-items:center;justify-content:center;gap:1.4rem 2.2rem;flex-wrap:wrap;padding:1.1rem 0;text-align:center}
.unsure-band p{margin:0;font-family:var(--serif);font-size:clamp(1.1rem,1.6vw,1.4rem);color:rgba(253,249,240,.85)}
.unsure-band p em{color:var(--gold-light)}
.unsure-band .btn{--pad:.75rem 1.5rem;font-size:.62rem}
@media (max-width:760px){
  .landing-page .doors{height:auto;min-height:0}
  .unsure-band .wrap{padding:1.8rem 0;flex-direction:column;gap:1rem}
}
.doors:hover .door-centre{opacity:0!important;transition:opacity .5s var(--ease)}

/* =========================================================
   v3 — calmer, category-led commercial side
   ========================================================= */
/* nav with category links: tighter type, collapses earlier */
.nav.nav-cats{gap:clamp(.9rem,1.5vw,1.7rem)}
.nav.nav-cats>a{font-size:.64rem;letter-spacing:.16em;white-space:nowrap}
.nav a.is-current-page{color:var(--gold-deep)}
.nav a.is-current-page::after{transform:scaleX(1)}
.site-header.over-hero:not(.is-scrolled) .nav a.is-current-page{color:var(--gold-light)}
@media (max-width:1420px){
  .site-header:has(.nav-cats) .menu-toggle{display:block;order:3}
  .site-header:has(.nav-cats) .bar{gap:1rem}
  .nav.nav-cats{position:fixed;inset:var(--header-h) 0 auto 0;height:calc(100vh - var(--header-h));height:calc(100dvh - var(--header-h));flex-direction:column;justify-content:center;gap:1.1rem;background:var(--ink-deep);color:var(--cream);margin:0;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .45s var(--ease),transform .45s var(--ease),visibility .45s;overflow-y:auto}
  .nav.nav-cats>a{font-family:var(--serif);font-size:clamp(1.6rem,4.6vw,2.2rem);letter-spacing:0;text-transform:none;font-weight:300}
  .menu-open .nav.nav-cats{opacity:1;visibility:visible;transform:none}
  .site-header:has(.nav-cats) .header-actions{margin-left:auto}
  .nav.nav-cats .side-switch{margin:0 0 1rem}
  .nav.nav-cats .side-switch a{font-family:var(--sans);font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;padding:.6rem 1.2rem}
  .nav.nav-cats a.is-current-page{color:var(--gold-light)}
}

/* short hero */
.hero.hero-short{height:78vh;height:78svh;min-height:560px;max-height:820px}
.hero-short h1{max-width:none}
.hero-short .hero-inner{padding-bottom:clamp(4rem,9vh,6.5rem)}

/* category tiles */
.cats.section{padding-block:clamp(4.5rem,9vw,7.5rem)}
.cats .section-head{margin-bottom:clamp(2.4rem,4.5vw,3.6rem)}
.cat-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2vw,1.6rem)}
.cat-tile{position:relative;display:block;aspect-ratio:16/11;overflow:hidden;background:var(--ink-deep);color:var(--cream);text-decoration:none;isolation:isolate}
.cat-media{position:absolute;inset:0;z-index:-2}
.cat-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.6s var(--ease),filter .8s var(--ease);filter:brightness(.82)}
.cat-tile::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,13,12,0) 30%,rgba(14,13,12,.9) 100%)}
.cat-tile::after{content:"";position:absolute;inset:14px;border:1px solid rgba(217,185,122,0);transition:border-color .6s var(--ease),inset .6s var(--ease);pointer-events:none}
.cat-tile:hover .cat-media img,.cat-tile:focus-visible .cat-media img{transform:scale(1.08);filter:brightness(.95)}
.cat-tile:hover::after,.cat-tile:focus-visible::after{border-color:rgba(217,185,122,.8);inset:12px}
.cat-info{position:absolute;left:0;right:0;bottom:0;padding:clamp(1.6rem,3vw,2.6rem);display:grid;gap:.5rem}
.cat-name{font-family:var(--serif);font-size:clamp(2rem,3.4vw,3.1rem);line-height:1;font-weight:300}
.cat-line-1{font-size:.95rem;color:rgba(253,249,240,.82)}
.cat-go{display:inline-flex;align-items:center;gap:.6rem;margin-top:.5rem;font-size:.66rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-light)}
.cat-go svg{width:15px;height:15px;transition:transform .5s var(--ease)}
.cat-tile:hover .cat-go svg{transform:translateX(6px)}
.cat-ph{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:1rem;padding-bottom:22%;background:radial-gradient(120% 90% at 30% 20%,#3a2f20 0%,#1a1612 55%,#0E0D0C 100%)}
.cat-ph::after{content:"";position:absolute;inset:0;background-image:var(--noise-dark)}
.cat-ph img{width:min(150px,30%);height:auto;object-fit:contain;filter:none;opacity:.35;transform:none}
.cat-tile:hover .cat-ph img{transform:none}
.cat-ph span{font-size:.62rem;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--soft-gold);opacity:.75}

/* compact packages on dark */
.packages-compact.section{padding-block:clamp(4.5rem,9vw,7.5rem)}
.packages-compact .section-head{margin-bottom:clamp(2.4rem,4.5vw,3.6rem)}
.packages-compact .pkg{padding:clamp(2.2rem,3.6vw,3rem) clamp(1.8rem,3.4vw,3rem);background:rgba(253,249,240,.04);box-shadow:inset 0 0 0 1px rgba(184,147,90,.45);color:var(--cream)}
.packages-compact .pkg li{color:rgba(253,249,240,.85);border-bottom-color:rgba(217,195,160,.16);padding-block:.7rem}
.packages-compact .pkg li::before{top:1.3rem}
.packages-compact .pkg .pkg-label{color:var(--gold-light)}
.packages-compact .pkg-feature{background:var(--ink-deep)}
.packages-compact .pkg-foot .text-link{color:var(--gold-light)}
.faqs .text-link{display:inline-flex}

/* category pages */
.cat-page{padding:calc(var(--header-h) + clamp(3.5rem,7vw,6rem)) 0 clamp(4.5rem,9vw,7rem);color:var(--cream)}
.cat-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(2.4rem,4.5vw,3.6rem)}
.cat-head .display{font-size:clamp(2.8rem,6vw,5.4rem)}
.cat-head .lead{margin:1.2rem 0 0;font-family:var(--serif);font-style:italic;font-size:clamp(1.2rem,1.7vw,1.5rem)}
.cat-head-ctas{display:flex;gap:1rem;flex-wrap:wrap}
.cat-page .tile.ph-tile .ph{min-height:0}
.others{padding:clamp(3rem,6vw,4.5rem) 0}
.others .eyebrow{margin-bottom:1.4rem}
.other-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.other-cat{display:flex;align-items:center;gap:1rem;padding:.8rem 1.2rem .8rem .8rem;text-decoration:none;box-shadow:inset 0 0 0 1px rgba(184,147,90,.4);background:rgba(255,255,255,.5);transition:box-shadow .5s var(--ease),transform .5s var(--ease)}
.other-cat:hover{box-shadow:inset 0 0 0 1px var(--gold);transform:translateY(-3px)}
.other-cat img,.other-cat .oc-ph{width:64px;height:64px;object-fit:cover;flex:none}
.other-cat .oc-ph{background:radial-gradient(120% 90% at 30% 20%,#3a2f20,#0E0D0C)}
.other-cat span{font-family:var(--serif);font-size:1.35rem;line-height:1.1}
.other-cat svg{width:15px;height:15px;margin-left:auto;color:var(--gold);flex:none}

/* family — calmer */
.intro-line{padding:clamp(3.5rem,7vw,5.5rem) 0;text-align:center}
.intro-line p{margin:0 auto;max-width:34ch;font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.3}
.intro-line em{color:var(--gold-deep)}
.session-single{max-width:620px;margin-inline:auto}

@media (max-width:760px){
  .cat-grid,.other-row{grid-template-columns:1fr}
  .cat-tile{aspect-ratio:4/3}
  .hero.hero-short{height:72svh;min-height:520px}
  .cat-head{align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  .cat-media img,.cat-tile::after,.other-cat{transition:none}
  .cat-tile:hover .cat-media img{transform:scale(1.02)}
}
@media (min-width:1421px){
  .site-header:has(.nav-cats) .bar{gap:1.25rem}
  .nav.nav-cats{gap:1rem}
  .nav.nav-cats>a{letter-spacing:.1em}
  .nav.nav-cats .side-switch{margin-right:.4rem}
  .nav.nav-cats .side-switch a{padding:.4rem .7rem;letter-spacing:.14em}
  .site-header:has(.nav-cats) .header-actions{gap:.8rem}
}

/* =========================================================
   v3b — sliders on doors, nav dropdown, family categories,
   grouped clients, side pages, Who Am I
   ========================================================= */
/* nav: Gallery dropdown (plain static links, CSS only) */
.nav-drop{position:relative;display:inline-flex;align-items:center}
.nav-drop .drop{position:absolute;top:calc(100% + .6rem);left:-1.2rem;min-width:230px;display:grid;padding:.9rem 1.2rem;background:var(--ink-deep);box-shadow:0 24px 50px -24px rgba(14,13,12,.6),inset 0 0 0 1px rgba(184,147,90,.45);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s;z-index:5}
.nav-drop .drop::before{content:"";position:absolute;left:0;right:0;top:-.8rem;height:.8rem}
.nav-drop:hover .drop,.nav-drop:focus-within .drop{opacity:1;visibility:visible;transform:none}
.nav .nav-drop .drop a{color:var(--cream);padding:.55rem 0;font-size:.64rem;letter-spacing:.2em;white-space:nowrap}
.nav .nav-drop .drop a:hover{color:var(--gold-light)}
.nav .nav-drop .drop a::after{bottom:.3rem}
.nav a.is-current-page{color:var(--gold-deep)}
.site-header.over-hero:not(.is-scrolled) .nav>a.is-current-page,.site-header.over-hero:not(.is-scrolled) .nav-drop>a.is-current-page{color:var(--gold-light)}
@media (max-width:1024px){
  .nav{overflow-y:auto;justify-content:flex-start;padding-block:2.4rem}
  .nav-drop{flex-direction:column}
  .nav-drop .drop{position:static;opacity:1;visibility:visible;transform:none;background:none;box-shadow:none;padding:.3rem 0 0;min-width:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.2rem 1.1rem;max-width:22rem}
  .nav-drop .drop::before{display:none}
  .nav .nav-drop .drop a{font-family:var(--sans);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--soft-gold);padding:.35rem 0}
}

/* doors are now divs with an overlay link, so the slider can be used */
.door-link{position:absolute;inset:0;z-index:0}
.door-inner{position:relative;z-index:1;pointer-events:none}
.door-inner .btn,.door-inner .door-slider{pointer-events:auto}
.door .btn{pointer-events:auto}
.door:focus-within::after{border-color:rgba(217,185,122,.75);inset:14px}
h2.door-title{margin:0}
p.door-text{margin-top:0}
.landing-page .doors{height:auto;min-height:calc(100svh - 88px);max-height:none}
.landing-page .door{padding-top:clamp(7rem,14vh,9rem)}
.landing-page .door-title{font-size:clamp(3.4rem,6.4vw,6.6rem)}
.landing-page .door-inner{padding-bottom:clamp(3rem,7vh,5rem)}
.landing-page .door-tags{margin-bottom:1.3rem}
/* slider */
.door-slider{position:relative;margin:0 0 1.6rem;max-width:min(100%,36rem);background:rgba(255,255,255,.9);border:2.5px solid #fff;border-radius:14px;padding:.7rem .75rem .65rem;box-shadow:0 10px 36px rgba(14,13,12,.22),0 1px 0 rgba(255,255,255,.65) inset;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.door-slider .ds-nav{margin-top:.55rem}
.ds-track{display:flex;gap:.6rem;overflow-x:hidden;scroll-snap-type:none;scroll-behavior:auto;overscroll-behavior-x:none;scrollbar-width:none;padding:2px;cursor:default;-webkit-overflow-scrolling:auto;touch-action:pan-y}
.ds-track::-webkit-scrollbar{display:none}
.ds-track.is-touch-dragging{cursor:default;user-select:none}
.ds-item{flex:none;height:96px;width:auto;scroll-snap-align:start;box-shadow:0 0 0 1px rgba(217,185,122,.35);user-select:none;-webkit-user-drag:none}
img.ds-item{object-fit:contain;background:rgba(14,13,12,.4)}
.ds-ph{display:grid;place-content:center;text-align:center;gap:.2rem;padding:0 .6rem;background:linear-gradient(160deg,#F8F1E3,#EADBBF);position:relative}
.ds-ph::before{content:"";position:absolute;inset:5px;border:1px solid rgba(184,147,90,.5)}
.ds-ph span{font-family:var(--serif);font-size:1.02rem;color:var(--ink);line-height:1}
.ds-ph em{font-style:normal;font-size:.48rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-deep)}
.ds-nav{display:flex;gap:.5rem;margin-top:.7rem}
.ds-btn{width:32px;height:32px;border-radius:50%;border:0;background:rgba(14,13,12,.45);color:var(--gold-light);box-shadow:inset 0 0 0 1px rgba(217,185,122,.7);display:grid;place-items:center;cursor:pointer;transition:background .35s var(--ease),color .35s var(--ease)}
.ds-btn svg{width:14px;height:14px}
.ds-btn:hover{background:var(--gold);color:var(--ink-deep)}
.ds-btn[disabled]{opacity:.35;cursor:default}
@media (max-width:760px){
  .ds-item{height:78px}
  .door-slider{margin-bottom:1.2rem;padding:.55rem;border-radius:12px;border-width:2px}
  .landing-page .door{padding-top:6.5rem}
}

/* family category tiles (3-up) */
.cat-grid-3{grid-template-columns:repeat(3,1fr)}
.cat-tile-sm{aspect-ratio:4/3.4}
.cat-tile-sm .cat-name{font-size:clamp(1.8rem,2.6vw,2.5rem)}
.cat-tile-sm .cat-ph{padding-bottom:30%}
@media (max-width:1024px){.cat-grid-3{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.cat-grid-3{grid-template-columns:1fr}.cat-tile-sm{aspect-ratio:4/3}}
.other-row{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}

/* small page hero */
.page-hero.page-hero-sm{padding-bottom:clamp(2.4rem,4.5vw,3.6rem)}
.page-hero-sm .display{font-size:clamp(2.8rem,6vw,5.2rem)}
.page-hero-sm .lead{margin-top:1.2rem}
.header-spacer{height:var(--header-h);background:var(--ink-deep)}

/* clients grouped by category */
.clients-wrap{max-width:1100px}
.client-group+.client-group{margin-top:clamp(3rem,6vw,4.5rem)}
.cg-title{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,3.6vw,3.2rem);margin:0 0 1rem}
.cg-title em{font-style:italic;color:var(--gold-deep)}
.client-group .client summary{grid-template-columns:1fr auto auto;padding:1.25rem 0}
.client-group .client .c-name{font-size:clamp(1.3rem,2vw,1.7rem)}
.client-group .client .c-count{font-size:1rem}
.client-group .client .c-open .pm{width:38px;height:38px}
.client-group .client-body{padding-bottom:2rem}
@media (max-width:760px){.client-group .client summary{grid-template-columns:1fr auto}}

/* family services rows */
.svc-list{max-width:900px}
.svc-row{display:grid;grid-template-columns:12rem 1fr auto;align-items:center;gap:1.5rem;padding:1.5rem 0;border-bottom:1px solid rgba(184,147,90,.45);text-decoration:none;transition:padding .5s var(--ease)}
.svc-row:first-child{border-top:1px solid var(--gold)}
.svc-name{font-family:var(--serif);font-size:clamp(1.6rem,2.4vw,2.1rem)}
.svc-line{color:var(--muted)}
.svc-row svg{width:16px;height:16px;color:var(--gold)}
.svc-row:hover{padding-left:.6rem}
.svc-row:hover .svc-name{color:var(--gold-deep)}
@media (max-width:640px){.svc-row{grid-template-columns:1fr auto}.svc-line{grid-column:1;font-size:.92rem}.svc-row svg{grid-row:1/3;grid-column:2}}
.faq-narrow{max-width:860px}
.ph-gallery-3{columns:3 240px}

/* Who Am I */
.about-brief{max-width:40rem;text-align:center}
.about-brief p{font-family:var(--serif);font-size:clamp(1.3rem,2vw,1.65rem);line-height:1.5;margin:0 0 1.1em}
.about-brief p:first-child::first-line{color:var(--gold-deep)}
.about-gallery{columns:4 220px}
.about-gallery .ph span{letter-spacing:.2em;padding-inline:.6rem;line-height:1.7}
.about-img{width:100%;height:auto;margin:0 0 1.4rem;break-inside:avoid}
.about-cta{padding:clamp(3.5rem,7vw,5.5rem) 0;text-align:center}
.about-cta p{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,2vw,1.6rem);margin:0 0 1.4rem}
@media (prefers-reduced-motion:reduce){.ds-track{scroll-behavior:auto}.nav-drop .drop{transition:none}}

/* v3c: stop reveal-from-side transforms causing sideways scroll on mobile */
html,body{overflow-x:clip}
/* v3c: Who Am I placeholder mosaic — even grid instead of columns */
.about-gallery{columns:auto;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(150px,15vw,210px);gap:1.2rem}
.about-gallery>.ph,.about-gallery>.about-img{margin:0;aspect-ratio:auto;height:100%;width:100%}
.about-gallery>.about-img{object-fit:contain;background:rgba(0,0,0,.15)}
.about-gallery>:nth-child(1){grid-column:1;grid-row:span 2}
.about-gallery>:nth-child(2){grid-column:2/4}
.about-gallery>:nth-child(3){grid-column:4;grid-row:span 2}
.about-gallery>:nth-child(6){grid-column:1/3}
.about-gallery>:nth-child(7){grid-column:3/5}
@media (max-width:760px){
  .about-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:150px;gap:.8rem}
  .about-gallery>:nth-child(n){grid-column:auto;grid-row:auto}
  .about-gallery>:nth-child(1),.about-gallery>:nth-child(3){grid-row:span 2}
  .about-gallery>:nth-child(7){grid-column:1/3}
}
@media (max-width:760px){.landing-page .door-commercial .door-inner{padding-top:6.4rem}}

/* v3d: landing — faded door backgrounds over cream for readability */
.landing-page{background:var(--cream)}
.landing-page .doors{background:var(--cream)}
.landing-page .door{color:var(--ink)}
.landing-page .door-media{opacity:.42}
.landing-page .door-media img{filter:brightness(1) saturate(.92)}
.landing-page .door:hover .door-media img,
.landing-page .door:focus-visible .door-media img{filter:brightness(1.05) saturate(1)}
.landing-page .door-placeholder{filter:none;opacity:1}
.landing-page .door:hover .door-placeholder{filter:brightness(1.08)}
.landing-page .door-kicker{color:var(--gold-deep);text-shadow:none;font-weight:600}
.landing-page .door-title{color:var(--ink);font-weight:400}
.landing-page .door-text{color:rgba(30,28,26,.84);text-shadow:none;font-weight:400}
.landing-page .door-tags .dt{color:var(--gold-deep);text-shadow:none;font-weight:600}
.landing-page .ds-btn{background:rgba(253,249,240,.9);color:var(--gold-deep);box-shadow:inset 0 0 0 1px rgba(184,147,90,.75)}
.landing-page .ds-btn:hover{background:var(--gold);color:var(--ink-deep)}
.landing-page img.ds-item{background:rgba(253,249,240,.55)}
.landing-page .unsure-band{background:var(--cream);color:var(--ink);border-top:1px solid rgba(184,147,90,.55);border-bottom:1px solid rgba(184,147,90,.35)}
.landing-page .unsure-band::before{opacity:.25}
.landing-page .unsure-band p{color:rgba(30,28,26,.88)}
.landing-page .unsure-band p em{color:var(--gold-deep)}
.site-header.landing-header{background:linear-gradient(180deg,rgba(253,249,240,.94) 0%,rgba(253,249,240,.55) 55%,rgba(253,249,240,0));color:var(--ink)}
.site-header.landing-header .btn-gold{color:var(--ink-deep)}

/* v3d continued: logo + scrolled header + softer family wash on cream */
.landing-page .door-media{opacity:.38}
.landing-header .brand-mono .logo-ink{opacity:1!important;filter:drop-shadow(0 1px 2px rgba(253,249,240,.95)) drop-shadow(0 2px 10px rgba(14,13,12,.35))}
.landing-header .brand-mono .logo-cream{opacity:0!important}
.landing-header .landing-left{color:var(--gold-deep)}
.landing-header .contact-link{color:var(--ink)}
.landing-header.is-scrolled{background:rgba(253,249,240,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--ink)}
.landing-page .door-placeholder{
  background:
    radial-gradient(70% 55% at 60% 35%,rgba(217,185,122,.4),transparent 70%),
    radial-gradient(60% 50% at 20% 90%,rgba(184,147,90,.28),transparent 70%),
    linear-gradient(160deg,#E5D4B8 0%,#D2BFA0 50%,#C4AE8C 100%);
  filter:none;
}
.landing-page .door-placeholder::before{opacity:.35}
.landing-page .door-placeholder::after{background-image:url("../assets/logo/monogram-ch-gold.png");opacity:.12}
.landing-page .door:hover .door-placeholder{filter:brightness(1.06)}
/* v3d tweak: fade photo and family wash separately (avoid double-stacking) */
.landing-page .door-media{opacity:1}
.landing-page .door-media>img{opacity:.4}
.landing-page .door-placeholder{opacity:.48}

/* v3d final: cream-over-photo fade (isolation was compositing against black) */
.landing-page .door{
  isolation:auto;
  background:var(--cream);
  color:var(--ink);
}
.landing-page .door-media{
  opacity:1;
  z-index:0;
}
.landing-page .door-media>img{
  opacity:1;
  filter:brightness(1.02) saturate(.92);
  object-fit:cover;
}
.landing-page .door-family .door-media>img{
  object-position:center 32%;
}
.landing-page .door-commercial .door-media>img{
  object-position:38% 55%;
}
.landing-page .door-media::after{
  content:"";
  position:absolute;inset:0;
  background:rgba(253,249,240,.58);
  pointer-events:none;
  z-index:1;
}
.landing-page .door:hover .door-media>img,
.landing-page .door:focus-visible .door-media>img{
  filter:brightness(1.06) saturate(1);
}
.landing-page .door-inner{z-index:2}
.landing-page .door-link{z-index:1}


/* enquiry form: single Get Started button */
.form-actions{justify-content:flex-start;gap:0}
.form-actions .btn{min-width:min(100%,220px)}

/* services pages: both-sides cross section */
.services-cross{padding:0 0 clamp(5rem,10vw,8rem)}
.services-split{height:1px;background:linear-gradient(90deg,transparent,rgba(184,147,90,.55),transparent);margin:0 0 clamp(2.4rem,5vw,3.6rem)}
.services-cross .group-label{margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.services-cross .services-grid{margin-top:.4rem}


/* v3e: category tile cream fade (commercial + family), keep hover zoom */
.cat-tile{background:var(--cream);color:var(--ink);isolation:auto}
.cat-media{z-index:0;opacity:1}
.cat-media>img{opacity:1;filter:brightness(1.02) saturate(.92)}
.cat-media::after{content:"";position:absolute;inset:0;background:rgba(253,249,240,.55);pointer-events:none;z-index:1}
.cat-tile::before{z-index:1;background:linear-gradient(180deg,rgba(253,249,240,0) 35%,rgba(253,249,240,.82) 100%)}
.cat-info{z-index:2;color:var(--ink)}
.cat-name{color:var(--ink)}
.cat-line-1{color:rgba(30,28,26,.78)}
.cat-go{color:var(--gold-deep)}
.cat-tile:hover .cat-media>img,.cat-tile:focus-visible .cat-media>img{transform:scale(1.08);filter:brightness(1.05) saturate(1)}
.cat-ph{background:radial-gradient(120% 90% at 30% 20%,#E8D9C0 0%,#D4C2A4 55%,#C4B090 100%)}
.cat-ph::after{opacity:.25}
.cat-ph img{opacity:.45;filter:none}
.cat-ph span{color:var(--gold-deep);opacity:.9}

/* v3f: hospitality collage — half-size (~220px / 5-col), no lightbox, no hover zoom */
.gallery:has(.collage-tile),
.gallery.is-justified:has(.collage-tile){
  display:block !important;
  flex-direction:unset !important;
  columns:5 !important;
  column-width:200px !important;
  column-gap:clamp(.5rem,1vw,.75rem) !important;
  margin-top:2.4rem;
  gap:unset !important;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}
.gallery.is-justified:has(.collage-tile) .grow{
  display:contents !important;
}
.gallery:has(.collage-tile) .collage-tile,
.js .gallery:has(.collage-tile) .collage-tile,
.js .gallery:has(.collage-tile) .reveal{
  margin:0 0 clamp(.5rem,1vw,.75rem);
  cursor:default;
  background:transparent;
  break-inside:avoid;
  opacity:1 !important;
  transform:none !important;
  pointer-events:auto;
}
.gallery:has(.collage-tile) .collage-tile img{
  width:100%;
  height:auto;
  display:block;
  transform:none !important;
  filter:none !important;
  transition:none !important;
  -webkit-user-drag:none;
  user-select:none;
  pointer-events:none; /* no drag/lightbox */
}
.gallery:has(.collage-tile) .collage-tile:hover img,
.gallery:has(.collage-tile) .collage-tile:focus-visible img{
  transform:none !important;
  filter:none !important;
  opacity:1 !important;
}
.gallery:has(.collage-tile) .collage-tile::before,
.gallery:has(.collage-tile) .collage-tile figcaption{display:none !important}
@media (max-width:1100px){
  .gallery:has(.collage-tile),
  .gallery.is-justified:has(.collage-tile){columns:3 !important;column-width:160px !important}
}
@media (max-width:560px){
  .gallery:has(.collage-tile),
  .gallery.is-justified:has(.collage-tile){columns:2 !important;column-width:120px !important;column-gap:.45rem !important}
}
/* Consecutive collage galleries: B&W block sits below colour with collage-gap spacing */
.gallery:has(.collage-tile) + .gallery:has(.collage-tile){
  margin-top:clamp(.5rem,1vw,.75rem);
}


.pkg-other{margin:-.35rem 0 1.15rem;font-size:.78rem;letter-spacing:.04em;color:rgba(30,28,26,.72)}
.tex-dark .pkg-other,.pkg-feature .pkg-other{color:rgba(253,249,240,.7)}

/* Commercial services — four category headings */
.comm-cats{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.4rem,3vw,2.2rem) clamp(1.5rem,3vw,2.8rem);margin:0 0 clamp(2.4rem,4vw,3.2rem);padding-bottom:clamp(1.6rem,3vw,2.2rem);border-bottom:1px solid rgba(184,147,90,.35)}
.comm-cat-title{font-family:var(--serif);font-weight:300;font-size:clamp(1.55rem,2.4vw,2.05rem);line-height:1.15;color:var(--ink);margin:0 0 .55rem}
.comm-cat-title em{font-style:italic;background:var(--gold-grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.comm-cat-line{margin:0;font-size:.92rem;line-height:1.55;color:var(--muted);max-width:28rem}
@media (max-width:700px){
  .comm-cats{grid-template-columns:1fr;gap:1.35rem}
}

.pkg-feature .price-note,.tex-dark .price-note{color:var(--soft-gold)}

/* Keep header tidy with larger monogram */
.site-header .bar{flex-wrap:nowrap}
.nav{flex-wrap:nowrap}
@media (min-width:1025px) and (max-width:1280px){
  .brand{height:84px}
  .site-header.is-scrolled .brand{height:64px;max-width:min(72vw,440px)}
  .nav{gap:1.1rem}
  .nav a{letter-spacing:.14em;font-size:.64rem}
  .site-header .btn{--pad:.75rem 1.15rem;font-size:.6rem}
}


/* Landing: keep CH logo clear of gold door bar */
.landing-header{z-index:100}
.landing-header .brand{z-index:6;isolation:isolate}
.landing-page .doors{z-index:1}
.landing-page .doors-divider{z-index:2}

/* Services: solid brand black (no gold fade) */
.tex-ink-solid{position:relative;background:var(--ink-deep);color:var(--cream)}
.tex-ink-solid::before{content:"";position:absolute;inset:0;background-image:var(--noise-dark);pointer-events:none;z-index:0;opacity:.65}
.tex-ink-solid>*{position:relative;z-index:1}
.tex-ink-solid .comm-cat-title{color:var(--cream)}
.tex-ink-solid .comm-cat-line{color:rgba(253,249,240,.72)}
.tex-ink-solid .comm-cats{border-bottom-color:rgba(184,147,90,.35)}
.tex-ink-solid .service{background:rgba(253,249,240,.04);color:var(--cream);border-right-color:rgba(184,147,90,.35);border-bottom-color:rgba(184,147,90,.35)}
.tex-ink-solid .services-grid{border-top-color:rgba(184,147,90,.35);border-left-color:rgba(184,147,90,.35)}
.tex-ink-solid .service:hover{background:rgba(253,249,240,.09)}
.tex-ink-solid .service h3{color:var(--cream)}
.tex-ink-solid .service p{color:rgba(253,249,240,.72)}
.tex-ink-solid .service .idx{color:rgba(217,185,122,.55)}
.tex-ink-solid .service svg{color:var(--gold-light)}
.tex-ink-solid .text-link{color:var(--gold-light)}
.tex-ink-solid .group-label{color:var(--cream)}
.tex-ink-solid .group-label em{color:var(--gold-light)}
.services.tex-dark,.tex-dark.services{background:var(--ink-deep)!important}


/* ---------- Package Terms (Monthly Content Partnership) ---------- */
.pkg-terms{margin:clamp(2.2rem,4vw,3.2rem) auto 0;max-width:920px;border:1px solid rgba(184,147,90,.45);background:linear-gradient(180deg,rgba(253,249,240,.97),rgba(247,239,224,.92));box-shadow:0 18px 40px rgba(14,13,12,.06);padding:0}
.pkg-terms>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1.2rem;padding:1.15rem 1.5rem;font-family:var(--serif);font-size:clamp(1.25rem,2vw,1.55rem);font-weight:400;letter-spacing:.04em;color:var(--ink);transition:color .35s}
.pkg-terms>summary::-webkit-details-marker{display:none}
.pkg-terms>summary:hover{color:var(--gold-deep)}
.pkg-terms>summary .pm{flex:none}
.pkg-terms[open]>summary{border-bottom:1px solid rgba(184,147,90,.35);color:var(--gold-deep)}
.pkg-terms[open] .pm{background:var(--gold);transform:rotate(180deg)}
.pkg-terms[open] .pm::before,.pkg-terms[open] .pm::after{background:var(--ink-deep)}
.pkg-terms[open] .pm::after{transform:translate(-50%,-50%) rotate(0)}
.pkg-terms-body{padding:1.4rem 1.5rem 1.75rem;color:var(--ink)}
.pkg-terms-body>p{margin:0 0 1.25rem;font-size:.95rem;line-height:1.65;color:rgba(40,34,28,.88);max-width:62ch}
.pkg-terms-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1.75rem}
.pkg-terms-list li{position:relative;padding-left:1.15rem;font-size:.9rem;line-height:1.55;color:rgba(40,34,28,.9)}
.pkg-terms-list li::before{content:"";position:absolute;left:0;top:.55em;width:.42rem;height:.42rem;border-radius:50%;background:radial-gradient(circle at 35% 35%,#F1DDAE,#B8935A 55%,#8C6A3A);box-shadow:0 0 0 1px rgba(184,147,90,.35)}
@media (max-width:760px){
  .pkg-terms-list{grid-template-columns:1fr;gap:.75rem}
  .pkg-terms>summary,.pkg-terms-body{padding-left:1.1rem;padding-right:1.1rem}
}

/* Footer dual side labels (landing only) */
.footer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem}
.footer-sides{display:flex;align-items:center;gap:.55rem;font-family:var(--serif);font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.footer-sides-dot{width:4px;height:4px;border-radius:50%;background:var(--gold);opacity:.85}

img[src*="monogram-ch-gold"],.door-placeholder::after{
  filter:none;
}


/* ===== Mobile polish: no header overlap, no horizontal bleed ===== */
@media (max-width:1024px){
  .site-header .bar{gap:.55rem; overflow:visible}
  .site-header .bar > .brand{
    flex:1 1 auto;
    min-width:0;
    max-width:calc(100% - 7.5rem) !important;
  }
  .header-actions .btn{display:none} /* phone + hamburger only — frees lockup space */
  .header-actions{gap:.35rem; flex:0 0 auto; margin-left:auto}
  .brand-lockup{max-width:100%; overflow:hidden}
  .brand-lockup .lockup-name{font-size:10.5px; letter-spacing:.1em}
  .brand-lockup .lockup-media-word{font-size:8px; letter-spacing:.16em}
  .brand-lockup .lockup-side{font-size:8.5px; letter-spacing:.12em}
  .brand-lockup .lockup-mono-wrap,
  .brand-lockup .lockup-mono,
  .brand-lockup .lockup-mono.logo-cream{height:34px}
  .brand-lockup .lockup-rule{height:1.7rem}
  .brand-lockup{gap:.35rem}
  .site-header.lockup-always .brand,
  .site-header.lockup-main.is-scrolled .brand{
    height:54px;
    max-width:calc(100% - 7.5rem) !important;
  }
  .packages-grid, .family-packages-grid, .services-grid, .pricing-section .wrap{
    overflow-x:clip;
  }
  .js .reveal.from-left, .js .reveal.from-right{
    transform:translateY(24px); /* avoid horizontal translate bleed on small screens */
  }
}
@media (max-width:760px){
  .site-header .bar > .brand{max-width:calc(100% - 6.25rem) !important}
  .site-header.lockup-always .brand,
  .site-header.lockup-main.is-scrolled .brand{max-width:calc(100% - 6.25rem) !important}
  .brand-lockup .lockup-name{font-size:9.5px; letter-spacing:.06em}
  .brand-lockup .lockup-media-line{min-width:.4rem; max-width:1rem}
  .landing-header .brand{max-width:min(58vw,200px)!important; height:64px}
  .landing-header .brand-mono{height:100%}
  .pkg{padding:clamp(1.8rem,5vw,2.4rem) clamp(1.2rem,4vw,1.8rem)}
  .pkg-terms{margin-inline:.2rem}
  .pkg-terms>summary, .pkg-terms-body{padding-left:1rem; padding-right:1rem}
  .footer-logo{width:min(160px,70vw)}
  .footer-sides{font-size:.55rem; letter-spacing:.2em; flex-wrap:wrap; justify-content:center}
  .door-slider{max-width:100%; margin-inline:0}
  .ds-track{max-width:100%}
  .contact-btns{flex-wrap:wrap}
}
@media (max-width:400px){
  .brand-lockup .lockup-media{display:none} /* keep CH | NAME / SIDE readable */
  .brand-lockup .lockup-name{font-size:9px; letter-spacing:.04em}
}

@media (max-width:1024px){
  .landing-header.is-scrolled .brand,
  .landing-header.lockup-main.is-scrolled .brand{
    max-width:calc(100% - 6.5rem)!important;
    justify-self:start;
  }
  .landing-header.is-scrolled .bar{grid-template-columns:auto 1fr auto}
  .landing-header.is-scrolled .brand{grid-column:1}
}

/* Readability boost (1 Nov 2026): bolder text, especially on landing photos */
body{font-weight:400}
.landing-page .door-kicker{font-weight:700;color:#7A5A26;font-size:.74rem;text-shadow:0 0 10px rgba(253,249,240,.95),0 0 3px rgba(253,249,240,.9)}
.landing-page .door-title{font-weight:600;color:#14120F;text-shadow:0 0 18px rgba(253,249,240,.8),0 0 4px rgba(253,249,240,.7)}
.landing-page .door-text{font-weight:600;color:#14120F;font-size:1.08rem;text-shadow:0 0 10px rgba(253,249,240,.95),0 0 3px rgba(253,249,240,.95)}
.landing-page .door-tags .dt{font-weight:700;color:#7A5A26;font-size:.68rem;text-shadow:0 0 10px rgba(253,249,240,.95),0 0 3px rgba(253,249,240,.9)}
.landing-left,.landing-right{font-weight:700;color:#14120F;text-shadow:0 0 10px rgba(253,249,240,.95)}
@media (max-width:640px){.landing-page .door-tags .dt{font-size:.6rem}.landing-page .door-text{font-size:.96rem}}

/* Landing hover preview: dark, readable lockup with no overlapping CH (1 Nov 2026) */
.site-header.landing-header.lockup-main.is-previewing:not(.is-scrolled) .brand-lockup{color:#14120F;text-shadow:0 0 10px rgba(253,249,240,.95),0 0 3px rgba(253,249,240,.95)}
.site-header.landing-header.lockup-main.is-previewing:not(.is-scrolled) .lockup-name,
.site-header.landing-header.lockup-main.is-previewing:not(.is-scrolled) .lockup-media-word{font-weight:600}
.site-header.landing-header.lockup-main.is-previewing:not(.is-scrolled) .lockup-side{color:#7A5A26;font-weight:700;text-shadow:0 0 8px rgba(253,249,240,.95)}
.site-header.landing-header.lockup-main.is-previewing .lockup-mono.logo-ink{opacity:1!important;position:relative;filter:drop-shadow(0 0 4px rgba(253,249,240,.9))}
.site-header.landing-header.lockup-main.is-previewing .lockup-mono.logo-cream{display:none!important}
.site-header.landing-header.lockup-main.is-previewing .brand-lockup{max-width:none!important;width:max-content;gap:.8rem}
.site-header.landing-header.lockup-main.is-previewing .lockup-mono-wrap{width:auto;flex:0 0 auto}

/* Lockup layout hardening for Safari (1 Nov 2026): fixed CH width so it can never overlap the name */
.brand-lockup{max-width:none!important}
.brand-lockup .lockup-mono-wrap{flex:0 0 116px;width:116px;min-width:116px;overflow:visible}
.brand-lockup .lockup-mono{width:116px!important;height:52px!important;object-fit:contain;flex:none}
.brand-lockup .lockup-mono.logo-cream{position:absolute;left:0;top:50%;transform:translateY(-50%)}
.brand-lockup .lockup-rule,.brand-lockup .lockup-text{flex:0 0 auto}
.brand-lockup .lockup-media-line{flex:0 0 1.6rem;width:1.6rem}
@media (min-width:1025px) and (max-width:1280px){
  .brand-lockup .lockup-mono-wrap{flex-basis:102px;width:102px;min-width:102px}
  .brand-lockup .lockup-mono{width:102px!important;height:46px!important}
}
@media (max-width:1024px){
  .brand-lockup .lockup-mono-wrap{flex-basis:76px;width:76px;min-width:76px}
  .brand-lockup .lockup-mono{width:76px!important;height:34px!important}
  .brand-lockup .lockup-media-line{flex-basis:.8rem;width:.8rem}
}
/* Lockup takes real space in the header so it never touches the Commercial/Family switch */
.site-header.lockup-always .brand{display:flex;align-items:center;width:max-content;max-width:none!important;margin-right:1.4rem}
.site-header.lockup-always .brand-lockup{position:relative;top:auto;transform:none}
@media (min-width:1025px) and (max-width:1280px){.site-header.lockup-always .brand-lockup .lockup-name{font-size:13px;letter-spacing:.16em}.site-header.lockup-always .brand{margin-right:.9rem}}
.site-header.lockup-always .bar > .brand,.site-header.lockup-main.is-scrolled .bar > .brand{flex:0 0 auto!important}
@media (min-width:1025px) and (max-width:1280px){.site-header .header-actions .btn-gold{display:none}}
@media (min-width:1281px) and (max-width:1520px){.site-header .nav{gap:1.35rem}.site-header .nav a{letter-spacing:.2em}.site-header .header-actions{flex:0 0 auto;gap:.8rem}}
.site-header .header-actions{flex:0 0 auto}
/* Nothing under MEDIA in any logo (1 Nov 2026) */
.brand-lockup .lockup-side,.site-header .lockup-side,.site-header.lockup-main.is-previewing .lockup-side{display:none!important}
.footer-legal{flex-basis:100%;order:3;max-width:46rem;font-size:.66rem;letter-spacing:.06em;line-height:1.6;opacity:.7}

/* Landing: Commercial and Family content lines up at the same heights (1 Nov 2026) */
@media (min-width:761px){
  .landing-page .door{align-items:flex-start}
  .landing-page .door-tags{align-content:flex-start}
}
/* Safari-safe header lockup: logo in normal flow so it always keeps its own width (1 Nov 2026) */
.site-header.lockup-always .brand-mono{display:none!important}
.site-header.lockup-always .bar > .brand{position:relative;display:flex!important;align-items:center;flex:0 0 auto!important;width:auto!important;min-width:-webkit-min-content;min-width:min-content;max-width:none!important;height:auto!important;margin-right:1.4rem}
.site-header.lockup-always .brand-lockup{position:static!important;transform:none!important;display:flex;flex-wrap:nowrap;width:auto!important;max-width:none!important;max-height:none;flex:0 0 auto}
.site-header.lockup-always .bar{flex-wrap:nowrap}
.site-header.lockup-always .bar > .side-switch,.site-header.lockup-always .bar > .nav{flex-shrink:1}
/* Two labelled Instagram links: Commercial + Family (1 Nov 2026) */
.insta-pair .insta-link{display:flex;align-items:center;gap:.6rem;margin-top:.35rem;text-decoration:none}
.insta-pair .insta-tag{display:inline-block;min-width:6.2rem;font-size:.6rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-light)}
.footer-social{align-items:center;flex-wrap:wrap}
.insta-chip{display:inline-flex;align-items:center;gap:.5rem;height:44px;padding:0 1rem 0 .85rem;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(217,195,160,.6);color:var(--gold-light);text-decoration:none;font-size:.62rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;transition:background .3s,color .3s}
.insta-chip svg{width:16px;height:16px;flex:none}
.insta-chip:hover{background:var(--gold);color:var(--ink-deep)}
@media (max-width:640px){.insta-pair .insta-link{flex-wrap:wrap;gap:.1rem .6rem}.footer-social{justify-content:center}}
/* Instagram + Facebook groups */
.insta-pair .insta-link a{text-decoration:none}
.insta-pair .insta-link a:hover{color:var(--gold-light)}
.soc-sep{opacity:.5}
.soc-group{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .45rem .3rem 1rem;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(217,195,160,.45)}
.soc-label{font-size:.6rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-light);margin-right:.2rem}
.soc-group .icon-btn{width:38px;height:38px}
.insta-pair{grid-column:1/-1;order:5}
.insta-pair .insta-link{flex-wrap:wrap}
@media (max-width:640px){.insta-pair .insta-tag{flex-basis:100%;margin-top:.5rem}.insta-pair .insta-link{gap:.15rem .6rem}}
/* Deeper, bolder gold small words on landing (1 Nov 2026) */
.landing-page .door-kicker,.landing-page .door-tags .dt{color:#5A3D0E;font-weight:700;-webkit-text-stroke:.25px #5A3D0E;text-shadow:0 0 14px rgba(253,249,240,1),0 0 6px rgba(253,249,240,.95),0 0 2px rgba(253,249,240,.9)}
.landing-page .door-kicker{font-size:.8rem;letter-spacing:.3em}
.landing-page .door-tags .dt{font-size:.72rem;letter-spacing:.2em}
.landing-page .door-tags .dt+.dt::before{background:#5A3D0E}
@media (max-width:640px){.landing-page .door-kicker{font-size:.68rem}.landing-page .door-tags .dt{font-size:.62rem;letter-spacing:.16em}}
/* Remove pale strip above the gold centre line: let the photos meet under it (1 Nov 2026) */
@media (min-width:761px){
  .landing-page .doors-divider{flex:0 0 0!important;width:0!important;padding:0 4px;margin-left:-4px;margin-right:-4px;box-sizing:border-box;z-index:3}
}
/* Commercial/Family pages: hovering the switch keeps the header exactly as it was (no lockup swap, no overlap) (1 Nov 2026) */
.site-header.lockup-main.is-previewing:not(.landing-header):not(.is-scrolled) .brand-mono{opacity:1!important;visibility:visible!important}
.site-header.lockup-main.is-previewing:not(.landing-header):not(.is-scrolled) .brand-lockup{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.site-header.lockup-main.is-previewing .lockup-mono.logo-cream{position:absolute!important}
/* About: real photos of Christina (1 Nov 2026) */
.about-gallery.about-photos{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:auto;gap:1.2rem}
.about-gallery.about-photos>.about-img{grid-column:auto!important;grid-row:auto!important;aspect-ratio:4/5;height:auto;width:100%;object-fit:cover;background:none;margin:0;display:block}
@media (max-width:760px){.about-gallery.about-photos{grid-template-columns:repeat(2,1fr);gap:.7rem}}
.li-strong strong{font-weight:700;color:var(--gold-light)}
/* Commercial/Family pages, scrolled header: lay the name logo out in normal flow so it never overlaps the switch or menu (1 Nov 2026) */
.site-header.lockup-main.is-scrolled:not(.landing-header) .brand-mono{display:none!important}
.site-header.lockup-main.is-scrolled:not(.landing-header) .bar > .brand{position:relative;display:flex!important;align-items:center;flex:0 0 auto!important;width:auto!important;min-width:-webkit-min-content;min-width:min-content;max-width:none!important;height:auto!important;margin-right:1.4rem}
.site-header.lockup-main.is-scrolled:not(.landing-header) .brand-lockup{position:static!important;transform:none!important;display:flex;flex-wrap:nowrap;width:auto!important;max-width:none!important;max-height:none;flex:0 0 auto}
.site-header.lockup-main.is-scrolled:not(.landing-header) .bar{flex-wrap:nowrap}
.site-header.lockup-main.is-scrolled:not(.landing-header) .bar > .side-switch,.site-header.lockup-main.is-scrolled:not(.landing-header) .bar > .nav{flex-shrink:1}
.pkg-voucher{margin:.35rem 0 0;font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#5A3D0E}
.tex-dark .pkg-voucher,.pkg-dark .pkg-voucher{color:var(--gold-light)}
.pkg-voucher{margin-bottom:1.1rem}
/* Services category titles: all solid gold, white glow, bolder + bigger (1 Nov 2026) */
.comm-cat-title,.tex-ink-solid .comm-cat-title{font-weight:600;font-size:clamp(1.8rem,2.8vw,2.4rem);color:#D9B97A;text-shadow:0 0 12px rgba(255,250,238,.35),0 0 2px rgba(255,250,238,.5)}
.comm-cat-title em,.tex-ink-solid .comm-cat-title em{font-style:normal;background:none;color:inherit;-webkit-text-fill-color:currentColor;text-shadow:inherit}
/* Family sessions block on commercial services page: proper centred section heading (1 Nov 2026) */
.services-cross .fam-head{text-align:center;margin:0 auto clamp(2rem,4vw,3rem)}
.services-cross .fam-head .display{margin:.6rem 0 0}
.services-cross .fam-head{max-width:900px;margin-left:0}
@media (min-width:1281px){.site-header .nav .nav-contact{display:none}} /* Get Started button covers Contact on wide screens */

/* Doors keep equal width on hover so text never reflows/drops */

/* About: "The girl behind the lens" script heading */
.behind-lens{font-family:"Pinyon Script",cursive;font-weight:400;font-size:clamp(2.6rem,5.5vw,4.4rem);line-height:1.2;color:#FFFDF8;text-align:center;margin:0 0 clamp(1.8rem,4vw,3rem);letter-spacing:0;text-shadow:0 0 14px rgba(255,250,238,.25)}

/* Family hero: faded B&W family photo behind the heading */
.hero-family .hero-media.hero-photo-faded{background:#0d0b09;animation:none}
.hero-family .hero-media.hero-photo-faded img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 55%;opacity:.38;filter:grayscale(1);transform:none;animation:none}
.hero-family .hero-media.hero-photo-faded::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(13,11,9,.85) 0%,rgba(13,11,9,.45) 55%,rgba(13,11,9,.25) 100%)}
.hero-family .hero-media.hero-photo-faded::after{display:none}
.hero-family .hero-media.hero-photo-faded img{opacity:.6;object-position:50% 62%}
.hero-family .hero-media.hero-photo-faded::before{background:linear-gradient(90deg,rgba(13,11,9,.8) 0%,rgba(13,11,9,.4) 50%,rgba(13,11,9,.15) 100%)}
@media (min-width:900px){.hero-family .hero-media.hero-photo-faded img{left:auto;width:62%;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 35%);mask-image:linear-gradient(90deg,transparent 0%,#000 35%);object-position:50% 58%}}
/* Family hero: photo clearer and kept clear of the heading */
.hero-family .hero-media.hero-photo-faded img{opacity:1;filter:grayscale(1) brightness(1.15)}
.hero-family .hero-media.hero-photo-faded::before{background:linear-gradient(90deg,rgba(13,11,9,.85) 0%,rgba(13,11,9,.35) 45%,rgba(13,11,9,0) 70%)}
@media (min-width:900px){.hero-family .hero-media.hero-photo-faded img{width:50%;object-position:50% 40%;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 25%);mask-image:linear-gradient(90deg,transparent 0%,#000 25%)}}
.hero-family::before{background:linear-gradient(90deg,rgba(13,11,9,.55) 0%,rgba(13,11,9,.15) 45%,rgba(13,11,9,0) 70%),linear-gradient(0deg,rgba(13,11,9,.35) 0%,rgba(13,11,9,0) 30%)}
@media (min-width:900px){.hero-family .hero-inner h1{max-width:46vw}}
.hero-place-gold{margin:.35rem 0 0;color:var(--soft-gold,#d8b878)}
@media (max-width:899px){.hero-family .hero-media.hero-photo-faded img{opacity:.55;object-position:60% 40%}}
/* Gold italic words: room for letter tails (e.g. the j) so Safari does not clip them */
.hero h1 em>.w>span,.hero h1 .gold-word{display:inline-block;padding:0 .08em .18em .22em;margin:0 -.08em -.18em -.22em}
/* Upright j inside gold italic headings so it reads as a J */
.hero h1 .j-fix{font-style:normal;font-weight:400;display:inline-block;margin-right:.04em;background:inherit;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
/* Family hero photo brighter */
.hero-family .hero-media.hero-photo-faded img{filter:grayscale(1) brightness(1.3) contrast(1.05)}
/* Enquiry form: thicker gold frame with ornate swirl corners */
.form::before{padding:3px;opacity:1}
.form{box-shadow:inset 0 0 0 9px transparent,inset 0 0 0 10px rgba(217,185,122,.45)}
.form::after{content:"";position:absolute;inset:-6px;pointer-events:none;background:url(../assets/img/ornament/corner-tl.svg) top left/78px no-repeat,url(../assets/img/ornament/corner-tr.svg) top right/78px no-repeat,url(../assets/img/ornament/corner-bl.svg) bottom left/78px no-repeat,url(../assets/img/ornament/corner-br.svg) bottom right/78px no-repeat}
@media (max-width:600px){.form::after{background-size:56px}}
/* Doors grow on hover, but the writing keeps a fixed width so it never wraps or jumps */
@media (min-width:900px){.doors:hover .door{flex-grow:.9}.doors .door:hover,.doors .door:focus-visible{flex-grow:1.12}.doors .door-inner{flex:none;width:min(36vw,36rem);box-sizing:content-box}.doors .door-inner .eyebrow{white-space:nowrap}}
@media (min-width:900px){.door-centre{transition:opacity .5s ease}.doors:hover .door-centre{opacity:0}}
/* "Black & White" script title above each B&W gallery */
.bw-title{font-family:"Pinyon Script",cursive;font-weight:400;font-size:clamp(2.2rem,4.5vw,3.6rem);line-height:1.2;color:#FFFDF8;text-align:center;margin:clamp(2.5rem,6vw,4.5rem) 0 clamp(1.2rem,3vw,2rem);letter-spacing:0;text-shadow:0 0 14px rgba(255,250,238,.25)}

/* About business blurbs */
.about-biz .about-sub{font-family:var(--sans,Montserrat,sans-serif);font-size:.78rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-deep);margin:0 0 .8rem}
.about-biz p+.about-sub{margin-top:2rem}
.about-biz p:first-child::first-line{color:inherit}
.about-biz .about-gold-title{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(2rem,3.6vw,2.8rem);line-height:1.1;margin:0 0 1rem;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.page-hero-sm .display.about-biz-title{max-width:none;white-space:nowrap;font-size:clamp(1.55rem,5.4vw,4.6rem)}
.about-biz .about-gold-title{font-size:clamp(2.6rem,5vw,3.8rem);font-weight:600;font-style:italic}
.about-brief{max-width:58rem}
.about-biz p+.about-gold-title{margin-top:2.4rem}
.about-biz p+.about-sub{margin-top:2.8rem}
.about-biz .about-cats{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 0;margin:0 0 1.6rem;font-family:var(--sans,Montserrat,sans-serif);font-size:.8rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep)}
.about-biz .about-cats span{padding:0 1rem}
.about-biz .about-cats span+span{border-left:1px solid currentColor}
@media (max-width:640px){.about-biz .about-cats{flex-direction:column;align-items:center;gap:.55rem}.about-biz .about-cats span+span{border-left:0}}
.about-biz .about-gold-title{font-weight:700;background:linear-gradient(135deg,#a9822f 0%,#c9a24b 45%,#8f6a22 100%);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 2px 3px rgba(60,40,10,.28))}
.about-biz .about-gold-title{filter:none;font-family:"Pinyon Script",cursive;font-style:normal;font-weight:400;font-size:clamp(3.4rem,6.4vw,5rem);letter-spacing:.05em;line-height:1.25;-webkit-text-stroke:.7px #9c7628;padding:0 .2em}
.about-flourish{display:flex;justify-content:center;margin:3.6rem auto 2.6rem}.about-flourish svg{width:min(420px,80%);height:auto}.about-biz .about-flourish+.about-sub{margin-top:0}
.about-flourish svg{width:min(600px,92%)}
.about-biz .about-gold-title{font-family:var(--serif);font-style:italic;font-weight:600;font-size:clamp(3rem,6vw,4.6rem);letter-spacing:.06em;line-height:1.15;-webkit-text-stroke:0;background:linear-gradient(135deg,#6e5127 0%,#9b7b46 50%,#6e5127 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;padding:0 .1em}
.about-biz .who-title{font-size:clamp(3.6rem,7.5vw,5.8rem);margin-bottom:.4rem}.about-biz p+.about-flourish{margin-top:3.6rem}
.about-biz .who-display{text-align:center;margin:0 auto .6rem;font-size:clamp(2.6rem,6vw,4.6rem);max-width:none}
.who-hero{background:linear-gradient(180deg,#f8f3ea 0%,#efe3cf 70%)!important;padding-top:1.5rem!important}.who-hero .about-flourish{margin:0 auto 2.6rem}.who-hero::before,.who-hero::after,.who-body::before,.who-body::after{display:none!important}.who-body{background:#efe3cf!important}
.who-hero .display em{background:none!important;color:#1c1c1c!important;-webkit-text-fill-color:#1c1c1c!important}
.about-biz .about-gold-title .fl{font-family:"Pinyon Script",cursive;font-style:normal;font-weight:400;font-size:1.45em;line-height:0;letter-spacing:0;margin-right:.04em;vertical-align:-.04em}
.about-biz .about-sub+.about-gold-title{margin-top:.9rem}
.who-hero .display .fl{font-family:"Pinyon Script",cursive;font-style:normal;font-weight:400;font-size:1.45em;line-height:0;margin-right:.02em;vertical-align:-.04em}
.about-biz .about-gold-title{background:linear-gradient(135deg,#b9852a 0%,#d9ab3f 30%,#f0d27a 50%,#d4a33a 70%,#b07d24 100%)!important;-webkit-background-clip:text!important;background-clip:text!important}.about-biz .about-sub+.about-gold-title{margin-top:1.7rem}
.about-biz .about-sub+.about-gold-title{margin-top:2.6rem}
.about-flourish.glimmer{position:relative}
.about-flourish.glimmer svg{filter:drop-shadow(0 0 2px rgba(255,226,140,.85)) drop-shadow(0 0 6px rgba(240,200,100,.45))}
.about-biz .about-gold-title{font-family:Montserrat,sans-serif!important;font-style:normal!important;font-weight:500!important;text-transform:uppercase;letter-spacing:.3em!important;font-size:clamp(1.5rem,3.4vw,2.6rem)!important;line-height:1.2!important;padding-left:.3em!important}
.about-biz .about-sub+.about-gold-title{margin-top:1.1rem}
.who-hero .display.about-biz-title,.who-hero .display em{font-family:Montserrat,sans-serif!important;font-style:normal!important;font-weight:500!important;text-transform:uppercase;letter-spacing:.3em;font-size:clamp(1.5rem,3.4vw,2.6rem)!important}
.who-hero .display.about-biz-title{padding-left:.3em}
.session-single.session-duo{max-width:1120px;display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,3vw,2.6rem);align-items:stretch}
.family-packages-grid.family-duo{grid-template-columns:repeat(2,minmax(0,520px))}
@media (max-width:820px){.session-single.session-duo,.family-packages-grid.family-duo{grid-template-columns:1fr}}
/* three family packages + blurbs + Maternity subtitle */
.session-single.session-trio{max-width:1280px;grid-template-columns:repeat(3,1fr)}
.family-packages-grid.family-trio{max-width:1280px;grid-template-columns:repeat(3,minmax(0,400px))}
.pkg h3:has(+.pkg-sub){margin-bottom:.15rem}
.pkg .pkg-sub{margin:0 0 1.1rem;font-family:inherit;font-size:clamp(1.4rem,2vw,1.9rem);font-weight:300;line-height:1.1;color:var(--gold-deep)}
.pkg .pkg-sub em{font-style:italic}
.pkg-feature .pkg-sub,.tex-dark .pkg-sub{color:var(--soft-gold)}
.pkg h3+.pkg-sub{font-family:var(--serif,'Cormorant Garamond',serif)}
.pkg .pkg-blurb{margin:.2rem 0 1rem;font-size:.92rem;line-height:1.55;opacity:.92}
.pkg .pkg-blurb p{margin:0 0 .4rem}
.pkg ul.pkg-blurb-list{margin:0 0 .2rem;padding:0}
.pkg ul.pkg-blurb-list li{padding:.12rem 0 .12rem 1.1rem;border:0;font-size:.9rem}
.pkg ul.pkg-blurb-list li::before{top:.62rem;width:5px;height:5px;border-radius:50%;transform:none;box-shadow:none;background:var(--gold)}
@media (max-width:1100px){.session-single.session-trio,.family-packages-grid.family-trio{grid-template-columns:1fr;max-width:620px}}
/* About photos: a touch smaller */
@media (min-width:761px){.about-gallery.about-photos{max-width:min(88%,1000px);margin-inline:auto}}
/* About photos: curated gallery-wall layout (desktop) */
@media (min-width:761px){
  .about-gallery.about-photos{grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(58px,6.2vw,82px);gap:1rem}
  .about-gallery.about-photos>.about-img{aspect-ratio:auto!important;height:100%!important}
  .about-gallery.about-photos>:nth-child(1){grid-column:1!important;grid-row:1/8!important}
  .about-gallery.about-photos>:nth-child(2){grid-column:2/4!important;grid-row:1/4!important}
  .about-gallery.about-photos>:nth-child(3){grid-column:2!important;grid-row:4/8!important}
  .about-gallery.about-photos>:nth-child(4){grid-column:3!important;grid-row:4/8!important}
  .about-gallery.about-photos>:nth-child(5){grid-column:4!important;grid-row:5/8!important}
  .about-gallery.about-photos>:nth-child(6){grid-column:4!important;grid-row:1/5!important}
  .about-gallery.about-photos>:nth-child(7){grid-column:2/5!important;grid-row:8/13!important;object-position:center center!important}
  .about-gallery.about-photos>:nth-child(8){grid-column:1!important;grid-row:8/13!important}
  .about-gallery.about-photos>:nth-child(9){grid-column:1!important;grid-row:8/13!important;object-position:center 60%!important}
}

/* T&C's apply link and booking terms pop-up */
.tc-link{display:inline-flex;align-items:center;gap:.5em;margin:.1rem 0 1rem;padding:0;background:none;border:0;cursor:pointer;font-family:var(--sans);font-size:.66rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-light);transition:color .3s}
.tc-link:hover{color:#F1DDAE}
.tc-link span{font-size:1.1em;letter-spacing:0}
.tc-modal{width:min(760px,92vw);max-height:88vh;padding:0;border:0;background:transparent;color:var(--cream);overflow:visible}
.tc-modal::backdrop{background:rgba(14,13,12,.72);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.tc-inner{position:relative;max-height:88vh;overflow:auto;padding:clamp(2rem,5vw,3.4rem) clamp(1.4rem,5vw,3.6rem);background:var(--ink-deep);border:1px solid var(--gold);outline:1px solid rgba(184,147,90,.45);outline-offset:-9px;text-align:center}
.tc-close{position:absolute;top:.8rem;right:1rem;background:none;border:0;color:var(--soft-gold);font-size:2.2rem;font-weight:300;line-height:1;cursor:pointer}
.tc-close:hover{color:#F1DDAE}
.tc-logo{display:block;width:74px;height:auto;margin:0 auto 1rem}
.tc-title{margin:0 0 1.6rem;font-family:var(--serif);font-weight:400;font-size:clamp(2rem,4.6vw,3.2rem);line-height:1.05;text-transform:uppercase;letter-spacing:.04em;color:var(--soft-gold)}
.tc-title em{font-family:"Pinyon Script",cursive;font-style:normal;text-transform:none;letter-spacing:0;font-size:1.15em;color:var(--gold-light)}
.tc-inner p{margin:0 auto 1rem;max-width:58ch;font-size:.92rem;line-height:1.75;color:rgba(253,249,240,.88)}
.tc-inner .tc-note{margin-top:1.3rem;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-light)}
.tc-close:focus:not(:focus-visible){outline:none}

/* Four family packages: Family, Maternity, Newborn, Birthdays */
.session-single.session-quad,.family-packages-grid.family-quad{max-width:1360px;width:100%;box-sizing:border-box;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.4rem}
@media (max-width:1320px){.session-single.session-quad,.family-packages-grid.family-quad{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px}}
@media (max-width:760px){.session-single.session-quad,.family-packages-grid.family-quad{grid-template-columns:1fr;max-width:620px}}

/* Tidy four family cards: every row lines up across the cards */
.session-single.session-quad,.family-packages-grid.family-quad{align-items:stretch}
.session-quad>.pkg,.family-quad>.pkg{display:grid;grid-template-rows:subgrid;grid-row:span 9;row-gap:0;align-content:start}
.session-quad>.pkg>*,.family-quad>.pkg>*{margin-top:0}
.session-quad>.pkg h3,.family-quad>.pkg h3{font-size:clamp(1.7rem,2.1vw,2.15rem);line-height:1.08;margin-bottom:1rem;align-self:start}
.session-quad>.pkg .price,.family-quad>.pkg .price{align-self:end;margin-bottom:.35rem}
.session-quad>.pkg .tc-link,.family-quad>.pkg .tc-link{justify-self:start;align-self:start}
.session-quad>.pkg .pkg-opts,.family-quad>.pkg .pkg-opts{align-self:start}
.session-quad>.pkg .pkg-rule,.family-quad>.pkg .pkg-rule{align-self:end}
.session-quad>.pkg .contact-btns,.family-quad>.pkg .contact-btns{align-self:end}
.pkg-extras{margin:2.2rem auto 0;text-align:center;font-family:var(--sans);font-size:.68rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.tex-dark .pkg-extras{color:var(--gold-light)}
.pkg-extras span{margin:0 .8em}
@media (max-width:760px){.session-quad>.pkg,.family-quad>.pkg{display:block}}
.session-quad>.pkg .price,.family-quad>.pkg .price{flex-wrap:wrap}
.family-pricing:has(.family-quad){max-width:1360px}
.family-quad>.pkg,.session-quad>.pkg{padding:clamp(1.8rem,2.4vw,2.4rem) clamp(1.3rem,1.8vw,1.9rem)}

/* Five family packages: three on top, two centred underneath */
.session-single.session-five,.family-packages-grid.family-five{max-width:1200px;grid-template-columns:repeat(6,minmax(0,1fr))}
.session-five>.pkg,.family-five>.pkg{grid-column:span 2}
.session-five>.pkg:nth-child(4),.family-five>.pkg:nth-child(4){grid-column:2/4}
.session-five>.pkg:nth-child(5),.family-five>.pkg:nth-child(5){grid-column:4/6}
.family-pricing:has(.family-five){max-width:1200px}
@media (max-width:1100px){.session-single.session-five,.family-packages-grid.family-five{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px}.session-five>.pkg,.family-five>.pkg,.session-five>.pkg:nth-child(4),.family-five>.pkg:nth-child(4),.session-five>.pkg:nth-child(5),.family-five>.pkg:nth-child(5){grid-column:auto}}
@media (max-width:760px){.session-single.session-five,.family-packages-grid.family-five{grid-template-columns:1fr;max-width:620px}}
.pkg .amt.amt-text{font-size:clamp(2rem,3vw,2.6rem)}

/* Home: Enter button with a 4-photo slider level beside it (3 Nov 2026) */
.door-row{display:flex;align-items:center;gap:1.4rem;margin-top:clamp(1.5rem,14vh,9rem);pointer-events:auto;width:max-content;max-width:calc(50vw - 7rem)}
.door-row>.btn{flex:none}
.door-row .door-slider{position:relative;margin:0;width:28rem;max-width:100%;flex:0 1 auto;min-width:0;padding:.45rem;border-radius:10px;border-width:2px}
.door-row .ds-track{gap:.4rem;padding:0}
.door-row .ds-item{width:calc((100% - 1.2rem)/4);height:auto;aspect-ratio:4/5;object-fit:cover;background:none}
.door-row .ds-nav{position:absolute;inset:0;margin:0;display:flex;align-items:center;justify-content:space-between;padding:0 .2rem;pointer-events:none}
.door-row .ds-btn{pointer-events:auto;width:28px;height:28px;background:rgba(253,249,240,.92)}
.door-row .ds-btn[disabled]{opacity:0}
@media (max-width:900px){.door-row{flex-direction:column;align-items:flex-start;width:100%;max-width:100%}.door-row .door-slider{width:100%}}

/* Home: bigger, easier-to-read door text (3 Nov 2026) */
@media (min-width:901px){.doors .door-kicker{font-size:.95rem!important;letter-spacing:.26em!important}.doors .door-text{font-size:1.3rem!important;line-height:1.55!important;max-width:36rem!important}.doors .dt{font-size:.9rem!important;letter-spacing:.15em!important}.doors .door-tags{gap:.6rem 1rem!important;max-width:40rem!important}.doors .door-inner{width:min(42vw,42rem)!important}}
/* Home: Cinzel for the big Commercial / Family headings (3 Nov 2026) */
.doors .door-title{font-family:"Cinzel","Cormorant Garamond",serif!important;font-weight:500!important;letter-spacing:.06em}
@media (min-width:901px){.doors .door-title{font-size:clamp(2.6rem,4.4vw,4.6rem)!important}}

/* Commercial: 50% deposit line under packages (4 Nov 2026) */
.pkg-deposit{text-align:center;margin:clamp(2rem,4vw,3rem) 0 0;font-size:.74rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#5A3D0E}
.tex-dark .pkg-deposit,.pkg-dark .pkg-deposit,.packages-compact .pkg-deposit{color:var(--gold-light)}
.pkg-deposit + .pkg-foot{margin-top:1.4rem}

/* Complete Session: session types shown clearly near the price (4 Nov 2026) */
.pkg-opts.pkg-opts-strong strong{display:block;font-size:.82rem;font-weight:700;letter-spacing:.14em;color:#8a6420;line-height:1.5;margin-bottom:.2rem}
.pkg-opts.pkg-opts-strong span{display:block}

/* machinery backgrounds Nov 2026 */
.hero-media img[src*="hero-commercial-cat-bulldozer"]{
  object-position:58% 42%;
}

/* Product gallery larger tiles Nov 2026 — Industry & Products only */
.products-gallery .gallery:has(.collage-tile),
.products-gallery .gallery.is-justified:has(.collage-tile){
  columns:3 !important;
  column-width:300px !important;
  column-gap:clamp(.65rem,1.2vw,1rem) !important;
}
@media (max-width:1100px){
  .products-gallery .gallery:has(.collage-tile),
  .products-gallery .gallery.is-justified:has(.collage-tile){
    columns:2 !important;
    column-width:220px !important;
  }
}
@media (max-width:560px){
  .products-gallery .gallery:has(.collage-tile),
  .products-gallery .gallery.is-justified:has(.collage-tile){
    columns:2 !important;
    column-width:140px !important;
    column-gap:.5rem !important;
  }
}

/* Commercial Mini / Medium / Ultra trio (9 Nov 2026) */
.packages-grid.packages-commercial-trio{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1280px;gap:clamp(1.2rem,2.2vw,1.8rem);align-items:stretch}
.pkg .pkg-concept{margin:.2rem 0 0;font-family:var(--serif);font-style:italic;font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.35;color:rgba(40,34,28,.78)}
.pkg-feature .pkg-concept,.packages-compact .pkg .pkg-concept,.tex-dark .pkg .pkg-concept{color:rgba(253,249,240,.78)}
.pkg-nested,.pkg-addon{margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid rgba(184,147,90,.35)}
.pkg-feature .pkg-nested,.pkg-feature .pkg-addon{border-top-color:rgba(217,195,160,.28)}
.pkg-nested-label,.pkg-addon-label{display:block;font-size:.62rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:.55rem}
.pkg-feature .pkg-nested-label,.pkg-feature .pkg-addon-label,.packages-compact .pkg-nested-label,.packages-compact .pkg-addon-label{color:var(--gold-light)}
.pkg-nested h4,.pkg-addon h4{font-family:var(--serif);font-weight:300;font-size:clamp(1.45rem,2.2vw,1.9rem);line-height:1.1;margin:0 0 .7rem}
.pkg-nested h4 em,.pkg-addon h4 em{font-style:italic}
.pkg-addon p{margin:0 0 1rem;font-size:.92rem;line-height:1.55;color:rgba(40,34,28,.82)}
.pkg-feature .pkg-addon p,.packages-compact .pkg-addon p{color:rgba(253,249,240,.82)}
.pkg-nested .price,.pkg-addon .price{margin:.15rem 0 1rem}
.pkg-nested ul,.pkg-addon ul{margin:0 0 1.2rem}
.pkg-nested .btn,.pkg-addon .btn{margin-top:0}
.pkg-footnote{text-align:center;margin:clamp(1.6rem,3vw,2.4rem) auto 0;max-width:52rem;font-size:.78rem;letter-spacing:.04em;line-height:1.55;color:rgba(40,34,28,.62)}
.tex-dark .pkg-footnote,.packages-compact .pkg-footnote{color:rgba(253,249,240,.55)}
.pkg-feature .btn-outline{color:var(--cream);border-color:rgba(217,185,122,.65)}
.pkg-feature .btn-outline:hover{border-color:var(--gold-light);color:var(--gold-light)}
@media (max-width:1100px){
  .packages-grid.packages-commercial-trio{grid-template-columns:1fr;max-width:620px}
  .packages-commercial-trio .pkg-feature{margin-top:0}
}

/* Addon CTA: long label must wrap inside card (9 Nov 2026) */
.pkg-addon .btn{align-self:stretch;max-width:100%;box-sizing:border-box;white-space:normal;text-align:center;line-height:1.45;letter-spacing:.18em;padding:.95rem 1.1rem;height:auto}
.packages-compact .pkg-addon .btn{max-width:100%}


/* close gap above Enquire on cards with an add-on (10 Nov) */
.pkg:has(.pkg-addon)>.btn{margin-top:0}
/* bigger package group headings (11 Nov) */
.pricing-section .group-label{font-size:clamp(2.6rem,4.8vw,4.2rem);font-weight:400;margin-bottom:3rem;color:var(--ink-deep,#14120f)}
.pricing-section .group-label::after{height:2px}
/* Package Terms more obvious (11 Nov) */
.pkg-terms{border:2px solid var(--gold);box-shadow:0 22px 48px rgba(14,13,12,.14)}
.pkg-terms>summary{background:var(--ink-deep,#14120f);color:var(--gold-light,#d9c3a0);font-size:clamp(1.5rem,2.4vw,1.95rem);padding:1.35rem 1.7rem}
.pkg-terms>summary:hover{color:var(--cream,#fdf9f0)}
.pkg-terms>summary .pm::before,.pkg-terms>summary .pm::after{background:var(--gold-light,#d9c3a0)}
.pkg-terms>summary .pm{position:relative;width:38px;height:38px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--gold-light,#d9c3a0);transition:transform .5s}
.pkg-terms>summary .pm::before,.pkg-terms>summary .pm::after{content:"";position:absolute;left:50%;top:50%;width:13px;height:1.5px;transform:translate(-50%,-50%)}
.pkg-terms>summary .pm::after{transform:translate(-50%,-50%) rotate(90deg)}
.pkg-terms[open]>summary .pm::after{transform:translate(-50%,-50%) rotate(0)}
/* three family cards after removing Weddings (11 Nov) */
.family-packages-grid.family-quad.family-three{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1100px}
@media (max-width:1100px){.family-packages-grid.family-quad.family-three{grid-template-columns:1fr;max-width:620px}}
.session-single.session-quad.session-three{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1100px}
@media (max-width:1100px){.session-single.session-quad.session-three{grid-template-columns:1fr;max-width:620px}}
/* "Click me!" prompt above footer socials (11 Nov) */
.footer-social{position:relative;margin-top:3.4rem}
.footer-social::before{content:"Click me!";position:absolute;left:50%;bottom:calc(100% + 1.6rem);transform:translateX(-50%);font-family:var(--serif);font-style:italic;font-size:1.35rem;letter-spacing:.04em;color:var(--gold-light,#d9c3a0);white-space:nowrap;pointer-events:none}
.footer-social::after{content:"\2193";position:absolute;left:50%;bottom:calc(100% + .2rem);font-size:1.3rem;line-height:1;color:var(--gold-light,#d9c3a0);pointer-events:none;animation:clickme-bob 1.6s ease-in-out infinite}
@keyframes clickme-bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,5px)}}
@media (prefers-reduced-motion:reduce){.footer-social::after{animation:none;transform:translateX(-50%)}}
/* header social icons (11 Nov) */
.header-actions .hdr-soc{color:var(--gold-deep)}
/* (hdr-soc mobile hide removed 14 Nov) */
.footer-social::before{font-size:1.55rem;bottom:calc(100% + 2rem)}
.footer-social::after{font-size:1.9rem;bottom:calc(100% + .1rem)}
/* 8 about photos after removing boat (11 Nov) */
.packages-compact .pkg ul+.pkg-addon{margin-top:0}

/* Uncropped galleries (14 Nov 2026)
   Photos keep their natural aspect ratio — nothing is cropped.
   CSS columns are the no-JS fallback; JS (.is-justified) packs into
   equal-height rows. Occasional full-width uncropped heroes (was 2x2 tiles). */
.gallery:has(.collage-tile),
.gallery.is-justified:has(.collage-tile){
  --cols:4;
  --cg:clamp(.55rem,1.1vw,.85rem);
  display:block !important;
  flex-direction:unset !important;
  columns:var(--cols) !important;
  column-width:auto !important;
  column-gap:var(--cg) !important;
  gap:unset !important;
  grid-template-columns:none !important;
  grid-auto-rows:auto !important;
  grid-auto-flow:row !important;
  margin-top:2.4rem;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}
.products-gallery .gallery:has(.collage-tile),
.products-gallery .gallery.is-justified:has(.collage-tile){
  --cols:3;
  --cg:clamp(.65rem,1.2vw,1rem);
}
@media (max-width:1100px){
  .gallery:has(.collage-tile),
  .gallery.is-justified:has(.collage-tile){--cols:3}
  .products-gallery .gallery:has(.collage-tile),
  .products-gallery .gallery.is-justified:has(.collage-tile){--cols:2}
}
@media (max-width:560px){
  .gallery:has(.collage-tile),
  .gallery.is-justified:has(.collage-tile),
  .products-gallery .gallery:has(.collage-tile),
  .products-gallery .gallery.is-justified:has(.collage-tile){--cols:2;--cg:.45rem}
  .products-gallery .gallery:has(.collage-tile),
  .products-gallery .gallery.is-justified:has(.collage-tile){--cg:.5rem}
}
.gallery:has(.collage-tile) .collage-tile,
.js .gallery:has(.collage-tile) .collage-tile,
.js .gallery:has(.collage-tile) .reveal{
  margin:0 0 var(--cg);
  break-inside:avoid;
  overflow:visible !important;
  position:relative;
  background:transparent;
  opacity:1 !important;
  transform:none !important;
  cursor:default;
  pointer-events:auto;
}
.gallery:has(.collage-tile) .collage-tile img{
  position:static !important;
  inset:auto !important;
  width:100%;
  height:auto !important;
  display:block;
  object-fit:contain;
  object-position:center;
  transform:none !important;
  filter:none !important;
  transition:none !important;
  -webkit-user-drag:none;
  user-select:none;
  pointer-events:none;
}
.gallery:has(.collage-tile) .collage-tile:hover img,
.gallery:has(.collage-tile) .collage-tile:focus-visible img{
  transform:none !important;
  filter:none !important;
  opacity:1 !important;
}
.gallery:has(.collage-tile) .collage-tile::before,
.gallery:has(.collage-tile) .collage-tile figcaption{display:none !important}
.gallery:has(.collage-tile) + .gallery:has(.collage-tile){margin-top:var(--cg)}
/* neutralize old 2x2 grid spans */
.gallery:has(.collage-tile) > .collage-tile:nth-child(26n+2),
.gallery:has(.collage-tile) > .collage-tile:nth-child(26n+15),
.products-gallery .gallery:has(.collage-tile) > .collage-tile:nth-child(26n+2),
.products-gallery .gallery:has(.collage-tile) > .collage-tile:nth-child(26n+15){
  grid-column:auto;
  grid-row:auto;
}
/* JS justified rows: equal height in each row, widths by aspect ratio, no crop */
.js .gallery:has(.collage-tile).is-justified,
.js .gallery:has(.collage-tile).is-masonry{
  columns:auto !important;
  column-gap:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:var(--cg) !important;
}
.js .gallery:has(.collage-tile).is-justified > .grow{
  display:flex !important;
  flex-direction:row;
  align-items:stretch;
  gap:var(--cg);
  width:100%;
  margin:0;
}
.js .gallery:has(.collage-tile).is-justified > .grow .collage-tile,
.js .gallery:has(.collage-tile).is-justified > .grow .collage-tile.reveal{
  margin:0 !important;
  min-width:0;
  overflow:visible !important;
  flex-shrink:0;
}
.js .gallery:has(.collage-tile).is-justified > .grow .collage-tile img{
  width:100%;
  height:100% !important;
  object-fit:contain;
  object-position:center;
  display:block;
}
.js .gallery:has(.collage-tile).is-justified > .grow:last-child{
  margin-bottom:0;
}
.js .gallery:has(.collage-tile).is-justified > .grow-hero .collage-tile{
  width:100% !important;
  flex:1 0 100% !important;
  height:auto !important;
}
.js .gallery:has(.collage-tile).is-justified > .grow-hero .collage-tile img{
  width:100% !important;
  height:auto !important;
  object-fit:contain;
}

/* header Instagram/Facebook + bolder mobile menu button */
.site-header .header-actions .hdr-soc svg{width:17px;height:17px}
@media (max-width:1024px){
  .site-header .header-actions{gap:.45rem}
  .site-header .header-actions .icon-btn{width:38px;height:38px}
  .menu-toggle{width:46px;height:46px;border-radius:50%;background:var(--gold);color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.25);margin-left:.5rem}
  .menu-toggle span{left:12px;right:12px;height:2px;border-radius:2px}
  .menu-toggle span:nth-child(1){top:16px}.menu-toggle span:nth-child(2){top:22px}.menu-toggle span:nth-child(3){top:28px}
  .menu-open .menu-toggle span:nth-child(1),.menu-open .menu-toggle span:nth-child(3){top:22px}
}
@media (max-width:380px){.site-header .header-actions .icon-btn{display:inline-grid;width:34px;height:34px}.site-header .header-actions{gap:.3rem}.menu-toggle{margin-left:.3rem}}
/* phones: drop the small name text beside the CH so socials + menu fit */
@media (max-width:520px){.site-header .brand-lockup .lockup-rule,.site-header .brand-lockup .lockup-text{display:none!important}}
/* home page: mobile menu button + socials (14 Nov) */
@media (min-width:1025px){.landing-header .landing-nav,.landing-header .icon-btn{display:none!important}}
@media (max-width:1024px){
  .landing-header .landing-left{display:none}
  .landing-header .bar{grid-template-columns:auto 1fr auto;gap:.5rem}
  .landing-header .brand{grid-column:1;justify-self:start}
  .landing-header .header-actions{grid-column:2;justify-self:end}
  .landing-header .menu-toggle{grid-column:3}
}
@media (max-width:520px){.landing-header .contact-link{display:none}}
/* mobile menu: clearer Commercial / Family chooser (14 Nov) */
.side-switch .ss-choose{display:none}
@media (max-width:1024px){
  .nav .side-switch{box-shadow:none!important;padding:0;gap:.6rem;align-items:center;margin:0 0 1.4rem}
  .nav .side-switch .ss-choose{display:flex;flex-direction:column;align-items:center;gap:.15rem;color:var(--gold-light);line-height:1}
  .nav .side-switch .ss-word{font-family:var(--sans);font-size:.58rem;letter-spacing:.28em;text-transform:uppercase}
  .nav .side-switch .ss-arrow{font-size:1.6rem;line-height:1}
  .nav .side-switch a{background:transparent!important;color:rgba(217,195,160,.6)!important;box-shadow:inset 0 0 0 1px rgba(217,195,160,.35);font-size:.62rem!important;padding:.55rem .9rem!important;letter-spacing:.2em!important;opacity:.75;transition:all .35s var(--ease)}
  .nav .side-switch a.is-current{background:var(--gold-grad)!important;background-size:200% 100%!important;color:var(--ink-deep)!important;box-shadow:0 4px 18px rgba(184,147,90,.45);font-size:.82rem!important;font-weight:600;padding:.85rem 1.3rem!important;opacity:1}
}
@media (max-width:380px){.nav .side-switch{gap:.4rem}.nav .side-switch a.is-current{font-size:.72rem!important;padding:.75rem 1rem!important}.nav .side-switch a{padding:.5rem .7rem!important}}
/* social media add-on: bigger, attention-grabbing panel (14 Nov) */
.pkg-addon{position:relative;margin-top:2rem;padding:1.6rem 1.4rem 1.5rem;border:1.5px solid var(--gold)!important;border-radius:14px;background:linear-gradient(135deg,rgba(217,185,122,.22),rgba(184,147,90,.08) 60%,rgba(241,221,174,.18));box-shadow:0 0 0 4px rgba(184,147,90,.12),0 10px 30px rgba(184,147,90,.25);animation:addon-glow 3s ease-in-out infinite}
@keyframes addon-glow{0%,100%{box-shadow:0 0 0 4px rgba(184,147,90,.12),0 10px 30px rgba(184,147,90,.22)}50%{box-shadow:0 0 0 6px rgba(184,147,90,.2),0 12px 38px rgba(184,147,90,.42)}}
.pkg-addon .pkg-addon-label{display:inline-block;background:var(--gold-grad);background-size:200% 100%;color:var(--ink-deep)!important;font-weight:600;font-size:.66rem;padding:.4rem .85rem;border-radius:999px;margin-bottom:.9rem}
.pkg-addon .pkg-addon-label::before{content:"+ ";font-weight:700}
.pkg-addon h4{font-size:clamp(1.9rem,3vw,2.4rem)!important;font-weight:400!important;line-height:1.1}
.pkg-addon p{font-size:1rem!important}
.pkg-addon .btn{background:var(--gold-grad)!important;background-size:200% 100%!important;color:var(--ink-deep)!important;border-color:transparent!important;box-shadow:0 6px 18px rgba(184,147,90,.35);width:100%;justify-content:center;text-align:center}
@media (prefers-reduced-motion:reduce){.pkg-addon{animation:none}}
/* 14 Nov: mobile hero clears header (kicker was overlapping logo) */
@media (max-width:1024px){.hero{height:auto;min-height:100svh;max-height:none}.hero-inner{padding-top:7.5rem}}

/* ---------- Testimonials page (14 Nov 2026) ---------- */
.testi-recommend{display:inline-flex;align-items:center;gap:.45rem;margin:1.35rem 0 0;font-family:var(--sans);font-size:.68rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep)}
.testi-recommend .testi-fb{width:14px;height:14px;flex:none;color:var(--gold)}
.testi-section{padding:0 0 clamp(3.5rem,7vw,5.5rem)}
.testi-tabs{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.55rem;margin:0 0 clamp(2rem,4vw,2.8rem);padding:4px;width:max-content;max-width:100%;margin-inline:auto;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(184,147,90,.5)}
.testi-tab{appearance:none;border:0;background:transparent;color:var(--ink);font-family:var(--sans);font-size:.62rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;padding:.55rem 1.15rem;border-radius:999px;cursor:pointer;transition:background .35s var(--ease),color .35s var(--ease)}
.testi-tab:hover{color:var(--gold-deep)}
.testi-tab.is-active{background:var(--gold-grad);background-size:200% 100%;color:var(--ink-deep)}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.1rem,2vw,1.6rem)}
.testi-card{background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(253,249,240,.9));box-shadow:inset 0 0 0 1px rgba(184,147,90,.35),0 16px 36px -24px rgba(14,13,12,.18);padding:1.45rem 1.35rem 1.5rem;display:flex;flex-direction:column;min-width:0}
.testi-card-top{display:flex;align-items:center;gap:.95rem;margin-bottom:1rem}
.testi-avatar{width:64px;height:64px;flex:none;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px rgba(184,147,90,.45)}
.testi-name{margin:0;font-family:var(--serif);font-size:1.35rem;font-weight:400;letter-spacing:.02em;line-height:1.15}
.testi-tag{margin:.2rem 0 0;font-size:.58rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep)}
.testi-stars{display:flex;gap:.12rem;margin:.35rem 0 0;color:var(--gold)}
.testi-stars svg{width:13px;height:13px;flex:none}
.testi-quote{margin:0;font-family:var(--serif);font-style:italic;font-size:1.08rem;line-height:1.55;color:var(--ink);quotes:none}
.testi-quote.is-clamped{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}
.testi-more{appearance:none;border:0;background:none;padding:0;margin:.7rem 0 0;align-self:flex-start;font-family:var(--sans);font-size:.62rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);cursor:pointer}
.testi-more:hover{color:var(--gold)}
.testi-soon{margin:clamp(1.6rem,3vw,2.2rem) auto 0;max-width:36rem;text-align:center;font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,2.2vw,1.55rem);color:var(--muted)}
.testi-soon[hidden],.testi-card[hidden]{display:none!important}
@media (max-width:900px){.testi-grid{grid-template-columns:1fr 1fr}}
@media (max-width:620px){
  .testi-grid{grid-template-columns:1fr}
  .testi-tab{padding:.5rem .9rem;letter-spacing:.16em}
  .testi-quote{font-size:1.05rem}
}
/* 14 Nov: simpler nav (Gallery, Packages, About, Testimonials, Contact) — one line, readable type */
@media (min-width:1025px) and (max-width:1440px){
  .site-header .nav{gap:clamp(.9rem,1.2vw,1.45rem)}
  .site-header .nav a{letter-spacing:.16em;font-size:.66rem}
  .site-header.lockup-always .bar > .brand{margin-right:.9rem}
}
@media (min-width:1025px) and (max-width:1280px){
  .site-header .nav{gap:.85rem}
  .site-header .nav a{letter-spacing:.12em;font-size:.64rem}
  .nav .side-switch a{padding:.4rem .7rem;letter-spacing:.14em}
}

@media (min-width:800px){
  .footer-nav{flex-wrap:nowrap;gap:.85rem 1.2rem}
  .footer-nav a{letter-spacing:.2em}
  .footer-social{flex-wrap:nowrap}
}

/* Home: phone-only jump to Family (14 Nov 2026) — laptop unchanged */
.family-jump{display:none}
@media (max-width:1024px){
  .landing-page .family-jump{
    display:inline-flex;
    align-items:center;
    flex-wrap:wrap;
    gap:.2rem .4rem;
    margin:0 0 2.75rem;
    padding:.42rem .85rem;
    border-radius:999px;
    background:var(--gold-grad);
    background-size:200% 100%;
    color:var(--ink-deep);
    text-decoration:none;
    font-family:var(--sans);
    font-size:.7rem;
    font-weight:500;
    letter-spacing:.04em;
    line-height:1.3;
    pointer-events:auto;
    width:max-content;
    max-width:100%;
    box-shadow:0 4px 14px rgba(184,147,90,.35);
    box-sizing:border-box;
  }
  .landing-page .family-jump strong{font-weight:700;letter-spacing:.08em}
  .door-family{scroll-margin-top:var(--header-h)}
}
@media (min-width:1025px){
  .family-jump{display:none!important}
}

/* Category card titles: bolder and easier to read over photos (14 Nov 2026) */
.cat-name{
  font-weight:600;
  color:#141210;
  text-shadow:0 1px 1px rgba(253,249,240,.95),0 0 10px rgba(253,249,240,.85),0 0 22px rgba(253,249,240,.5);
}

/* About page hero banner photo — full scene, no crop, cream fade */
.page-hero.about-banner{
  position:relative;
  overflow:hidden;
  background:var(--cream);
  padding:var(--header-h) 0 0;
  text-align:center;
}
.about-banner.tex-cream::before{z-index:3;opacity:.35;pointer-events:none}
.about-banner-media{
  position:relative;
  width:100%;
  line-height:0;
  background:var(--cream);
}
.about-banner-media img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center center;
  vertical-align:top;
}
.about-banner-media::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, var(--cream) 0%, rgba(253,249,240,.15) 16%, rgba(253,249,240,.15) 84%, var(--cream) 100%),
    linear-gradient(90deg, var(--cream) 0%, rgba(253,249,240,0) 12%, rgba(253,249,240,0) 88%, var(--cream) 100%),
    rgba(253,249,240,.5);
}
.about-banner>.wrap{
  position:absolute;
  left:0;right:0;
  top:var(--header-h);
  bottom:0;
  z-index:4;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:clamp(.35rem,1.6vw,1rem) 1.1rem 0;
  pointer-events:none;
}
.about-banner>.wrap::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  width:min(980px,96%);
  height:3.4em;
  transform:translate(-50%,0);
  background:radial-gradient(ellipse at center, rgba(253,249,240,.88) 0%, rgba(253,249,240,.5) 55%, rgba(253,249,240,0) 78%);
  pointer-events:none;
}
.about-banner .display.about-biz-title{
  position:relative;
  z-index:1;
  margin:0;
  pointer-events:auto;
  color:#141210;
  font-weight:400;
  text-shadow:0 1px 1px rgba(253,249,240,1), 0 0 14px rgba(253,249,240,.95), 0 0 28px rgba(253,249,240,.8);
}
.about-banner .display.about-biz-title em{
  background:none!important;
  -webkit-background-clip:initial!important;
  background-clip:initial!important;
  color:#6e521f!important;
  -webkit-text-fill-color:#6e521f!important;
  filter:drop-shadow(0 1px 1px rgba(253,249,240,1)) drop-shadow(0 0 12px rgba(253,249,240,.95));
}
@media (max-width:640px){
  .about-banner>.wrap{
    padding-top:.2rem;
  }
  .about-banner>.wrap::before{
    width:100%;
    height:2.7em;
    background:radial-gradient(ellipse at top, rgba(253,249,240,.94) 0%, rgba(253,249,240,.7) 58%, rgba(253,249,240,0) 82%);
  }
  .about-banner .display.about-biz-title{
    white-space:nowrap;
    font-size:clamp(1.5rem,5.4vw,1.9rem);
  }
}

/* restored 14 Nov: home door + pkg-opts rules lost in uncrop edit */
/* Complete Session category line, more prominent (11 Nov 2026) */
.pkg-opts.pkg-opts-strong strong{font-size:1rem;letter-spacing:.12em;line-height:1.55;color:#7a5512;background:rgba(184,147,90,.14);border-left:3px solid var(--gold-deep,#b8935a);padding:.7rem .9rem;margin:.3rem 0 .55rem;border-radius:2px}
.pkg-feature .pkg-opts.pkg-opts-strong strong{color:var(--gold-light,#e6cf9f);background:rgba(217,195,160,.12)}

/* Home commercial door: 4 category boxes (11 Nov 2026) */
/* MOCKUP: 4 commercial category sections replacing the .door-tags row */
.door-commercial .door-cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0 0 1.1rem;max-width:40rem;pointer-events:auto}
.door-cats .dc{display:block;padding:.5rem .85rem .55rem;background:rgba(253,249,240,.84);border:1px solid rgba(184,146,74,.5);border-top:2px solid #B8924A;border-radius:8px;box-shadow:0 6px 22px rgba(14,13,12,.16);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:#14120F;text-decoration:none;transition:background .25s,transform .25s}
.door-cats .dc:hover,.door-cats .dc:focus-visible{background:rgba(253,249,240,.97);transform:translateY(-2px)}
.door-cats .dc-h{display:flex;align-items:center;gap:.5rem;font-family:Montserrat,sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#5A3D0E;margin-bottom:.25rem;white-space:nowrap}
.door-cats .dc-h::before{content:"";width:6px;height:6px;flex:none;transform:rotate(45deg);background:var(--gold-grad,#B8924A)}
.door-cats .dc-list{list-style:none;margin:0;padding:0 0 0 1.05rem;font-size:.76rem!important;line-height:1.28;font-weight:500;color:rgba(20,18,15,.85)}
.door-cats .dc-list li{display:flex;align-items:flex-start;gap:.45rem}
.door-cats .dc-list li::before{content:"";width:3px;height:3px;border-radius:50%;background:#B8924A;flex:none;margin-top:.58em}
.door-commercial .door-row{margin-top:0}
@media (min-width:901px){
 .doors .door-commercial .door-inner{padding-bottom:1.75rem!important}
 .door-commercial .door-cats{margin-bottom:.8rem}
 .doors .door-commercial .door-text{margin-bottom:.9rem!important}
}
@media (max-width:640px){
 .door-commercial .door-cats{gap:.45rem;margin-bottom:1rem}
 .door-cats .dc{padding:.5rem .5rem .55rem}
 .door-cats .dc-h{font-size:.56rem;letter-spacing:.12em;gap:.4rem;white-space:normal;line-height:1.3}
 .door-cats .dc-h::before{width:5px;height:5px}
 .door-cats .dc-list{font-size:.66rem!important;line-height:1.35;padding-left:.5rem}
 .door-cats .dc-list li{gap:.35rem}
}

@media (max-width:640px){.doors .door-title{font-size:clamp(2rem,11vw,3rem)!important;letter-spacing:.03em}}

/* Home family door: tags in one box matching commercial categories */
.door-family .door-cats-fam{margin:0 0 1.1rem;max-width:40rem;pointer-events:auto}
.door-family .dc-one{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem 1.3rem;padding:.8rem 1rem}
.door-family .dc-one:hover{transform:none}
.door-family .dc-one .dc-h{margin:0;text-decoration:none;transition:color .2s}
.door-family .dc-one .dc-h:hover{color:#B8924A}
.door-family .door-row{margin-top:0}
@media (max-width:640px){
 .door-family .dc-one{gap:.5rem 1rem;padding:.7rem .7rem}
 .door-family .dc-one .dc-h{font-size:.6rem;letter-spacing:.14em}
}
/* family tag box narrower so it doesn't cover faces */
.door-family .door-cats-fam{max-width:19rem}
.door-family .dc-one{justify-content:flex-start;gap:.5rem 1rem}
@media (max-width:640px){.door-family .door-cats-fam{max-width:72%}}

/* Commercial package cards: addon panel on the dark Ultra-style cards */
.packages-commercial-trio .pkg-feature .pkg-addon{
  background:linear-gradient(135deg,rgba(184,147,90,.18),rgba(14,13,12,.45) 55%,rgba(217,185,122,.12));
  box-shadow:0 0 0 4px rgba(184,147,90,.16),0 10px 28px rgba(0,0,0,.35);
}
.packages-commercial-trio .pkg-feature .pkg-addon h4{color:var(--cream)}
.packages-commercial-trio .pkg-feature .pkg-addon p{color:rgba(253,249,240,.86)}

/* What's included — commercial offerings moved from Services */
.pkg-included{margin:clamp(2.8rem,5vw,4rem) auto 0;max-width:920px}
.pkg-included-title{font-family:var(--serif);font-weight:300;font-size:clamp(1.7rem,3vw,2.4rem);margin:0 0 1.3rem;color:var(--ink)}
.pkg-included-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.85rem 2rem}
.pkg-included-list li{position:relative;padding-left:1.15rem;font-size:.95rem;line-height:1.55;color:rgba(40,34,28,.9)}
.pkg-included-list li::before{content:"";position:absolute;left:0;top:.55em;width:.42rem;height:.42rem;transform:rotate(45deg);background:var(--gold-grad);box-shadow:0 0 0 1px rgba(184,147,90,.35)}
.pkg-included-list strong{font-weight:500;color:var(--ink)}
.pkg-included-faqs{margin:1.6rem 0 0}
@media (max-width:700px){.pkg-included-list{grid-template-columns:1fr;gap:.75rem}}

@media (max-width:640px){
  .pricing-section .group-label{font-size:clamp(2.15rem,9.6vw,2.55rem);gap:.8rem}
}
@media (min-width:1025px){.site-header .nav .nav-faq{display:none}} /* FAQs last in phone menu only */

/* Packages & Services page: compact dark services block, then packages */
.ps-services{padding:clamp(1.5rem,3.6vw,2.8rem) 0 clamp(1.6rem,3.8vw,2.6rem)}
.ps-services .group-label{margin-bottom:clamp(1rem,2.4vw,1.6rem)}
.ps-services .comm-cats{margin:0 0 clamp(1.1rem,2.6vw,1.7rem);padding-bottom:clamp(1rem,2.2vw,1.5rem);gap:clamp(.75rem,1.8vw,1.2rem) clamp(1.1rem,2.8vw,2.2rem)}
.ps-services .comm-cat-title{margin:0 0 .28rem}
.ps-services .comm-cat-title a{color:inherit;text-decoration:none}
.ps-services .comm-cat-title a:hover{color:var(--gold-light)}
.ps-services .pkg-included{margin:0 auto}
.tex-ink-solid .pkg-included-title{color:var(--cream)}
.tex-ink-solid .pkg-included-list li{color:rgba(253,249,240,.82)}
.tex-ink-solid .pkg-included-list strong{color:var(--cream)}
.ps-note{margin:0 0 .9rem;text-align:center;font-size:.95rem;color:rgba(253,249,240,.72)}
.ps-jump{margin:.4rem 0 0;text-align:center}
#services,#packages{scroll-margin-top:calc(var(--header-h) + 10px)}
.pricing-section#packages{padding-top:clamp(1.6rem,3.4vw,2.6rem)}
@media (max-width:640px){
  .ps-services{padding:1.25rem 0 1.35rem}
  .ps-services .comm-cats{gap:.7rem;margin-bottom:1rem;padding-bottom:.9rem}
  .ps-services .comm-cat-line{font-size:.88rem;line-height:1.4}
  .pricing-section#packages{padding-top:1.4rem}
  .pricing-section#packages .group-label{margin-bottom:1.5rem}
}
.about-pkg-link{margin:.15rem 0 1.35rem;text-align:center}
@media (min-width:1025px){
  .site-header .nav > a{white-space:nowrap}
}
@media (min-width:1281px) and (max-width:1600px){
  .site-header .nav{gap:1.15rem}
  .site-header .nav a{letter-spacing:.12em;font-size:.64rem}
}

.footer-nav a{white-space:nowrap}
@media (min-width:800px){
  .footer-nav{gap:.7rem 1.05rem}
  .footer-nav a{letter-spacing:.14em;font-size:.64rem}
}
@media (max-width:1024px){.nav-drop .drop{display:none!important}} /* phone menu: Gallery only, no category chips */
/* custom packages panel */
.pkg-custom{max-width:640px;margin:2.6rem auto 3.5rem;padding:2rem 1.6rem;text-align:center;border:1px solid rgba(184,147,90,.55);background:rgba(184,147,90,.06)}
.pkg-custom-title{font-family:var(--serif);font-size:clamp(1.6rem,4vw,2.1rem);line-height:1.15;margin:0 0 .6rem;color:var(--ink,#151311)}
.pkg-custom-title em{color:var(--gold);font-style:italic}
.pkg-custom-text{margin:0 auto 1.3rem;max-width:30rem}
.tex-dark .pkg-custom-title{color:var(--cream)}
.pkg-custom .btn{white-space:normal;max-width:100%}

/* Family sessions heading on pricing.html made much more obvious (15 Nov 2026) */
.family-pricing{margin-top:clamp(3.5rem,8vw,6rem)}
.family-pricing .group-label{display:block;max-width:1120px;margin:0 auto 2.6rem;padding:clamp(1.6rem,4vw,2.6rem) 1.2rem;text-align:center;background:var(--ink-deep,#14120f);color:var(--cream,#f6f1e7);border-top:3px solid var(--gold,#b8935a);border-bottom:3px solid var(--gold,#b8935a);font-size:clamp(2.6rem,11vw,4.6rem);font-weight:500;line-height:1.05;box-shadow:0 14px 34px rgba(20,18,15,.25)}
.family-pricing .group-label::after{display:none}
.family-pricing .group-label::before{content:"Here for family photos?";display:block;margin-bottom:.7rem;font-family:var(--sans);font-size:clamp(.68rem,2.6vw,.82rem);font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-light,#d9bf8c)}
.family-pricing .group-label em{color:var(--gold-light,#d9bf8c)}

/* Commercial packages heading: same black banner as Family sessions (15 Nov 2026) */
.group-label.banner-head{display:block;max-width:1120px;margin:0 auto 2.6rem;padding:clamp(1.6rem,4vw,2.6rem) 1.2rem;text-align:center;background:var(--ink-deep,#14120f);color:var(--cream,#f6f1e7);border-top:3px solid var(--gold,#b8935a);border-bottom:3px solid var(--gold,#b8935a);font-size:clamp(2.6rem,11vw,4.6rem);font-weight:500;line-height:1.05;box-shadow:0 14px 34px rgba(20,18,15,.25)}
.group-label.banner-head::after{display:none}
.group-label.banner-head::before{content:"For your business";display:block;margin-bottom:.7rem;font-family:var(--sans);font-size:clamp(.68rem,2.6vw,.82rem);font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-light,#d9bf8c)}
.group-label.banner-head em{color:var(--gold-light,#d9bf8c)}

/* 15 Nov 2026: banners sit closer to their cards; commercial phone hero clears the logo */
.family-pricing .group-label{margin-bottom:.35rem;box-shadow:none}
.group-label.banner-head{margin-bottom:1.6rem;box-shadow:none}
@media (max-width:1024px){
  .hero.hero-short{height:auto;min-height:78svh;max-height:none}
  .hero-short .hero-inner{padding-top:8.5rem}
}
/* 15 Nov 2026: Terms & Conditions bar toned down (light, subtle) */
.pkg-terms{border:1px solid rgba(184,147,90,.45);box-shadow:none}
.pkg-terms>summary{background:transparent;color:var(--ink);font-size:clamp(1.15rem,1.8vw,1.4rem);padding:1rem 1.4rem}
.pkg-terms>summary:hover{color:var(--gold-deep)}
.pkg-terms>summary .pm{width:32px;height:32px;box-shadow:inset 0 0 0 1px var(--gold)}
.pkg-terms>summary .pm::before,.pkg-terms>summary .pm::after{background:var(--gold-deep)}
/* 15 Nov 2026: less space between header and family pill on phone home */
@media (max-width:760px){.landing-page .door-commercial .door-inner{padding-top:.6rem}}

/* 15 Nov 2026: Family sessions banner light (matches family cards), bold dark title */
.family-pricing .group-label{background:linear-gradient(180deg,#fdfaf3,#f6efe0);color:var(--ink-deep,#14120f);border:2px solid var(--gold,#b8935a);font-weight:600}
.family-pricing .group-label::before{color:var(--gold-deep,#8c6a3a)}
.family-pricing .group-label em{color:var(--gold-deep,#8c6a3a);font-weight:600}
@media (max-width:760px){.landing-page .door-commercial{padding-top:5.4rem}.landing-page .door-commercial .door-inner{padding-top:0}}

/* simple pricing hero */
.page-hero.ph-simple{padding-bottom:clamp(1.6rem,3vw,2.4rem)}
@media (max-width:760px){.page-hero.ph-simple{padding-top:calc(var(--header-h) + 2.2rem);padding-bottom:1.6rem}}

/* thicker family banner border */
.family-pricing .group-label{border-width:4px}

/* no family eyebrow */
.family-pricing .group-label::before{display:none}
/* bold commercial package names */
.packages-commercial-trio .pkg h3{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:clamp(2.5rem,3.8vw,3.4rem);margin-top:.6rem}
.packages-commercial-trio .price .amt{font-weight:600}
/* name and price on one line */
.packages-commercial-trio .pkg-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.6rem 0 1.4rem}
.packages-commercial-trio .pkg-head h3{margin:0}
.packages-commercial-trio .pkg-head .price{margin:0;flex-direction:column;align-items:flex-end;gap:.3rem;text-align:right}
.packages-commercial-trio .pkg-head .price .per{max-width:11rem;line-height:1.5}
.packages-commercial-trio .pkg-head{flex-wrap:wrap;min-width:0}
@media (max-width:760px){.packages-commercial-trio .pkg-head h3{font-size:2.1rem;letter-spacing:.06em}.packages-commercial-trio .pkg-head .price .amt{font-size:2.9rem}.packages-commercial-trio .pkg-head .price .per{font-size:.6rem;max-width:9rem}}
.packages-commercial-trio .pkg-head{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:1rem;row-gap:.35rem}
.packages-commercial-trio .pkg-head .price{display:contents}
.packages-commercial-trio .pkg-head .price .per{grid-column:1/-1;justify-self:end;max-width:none;text-align:right}
/* price back under name, bold sans */
.packages-commercial-trio .pkg-head{display:block;margin:.6rem 0 1.2rem}
.packages-commercial-trio .pkg-head h3{margin:0 0 .5rem}
.packages-commercial-trio .pkg-head .price{display:flex;margin:0}
.packages-commercial-trio .pkg-head .price .amt,.packages-commercial-trio .price .amt{font-family:var(--sans);font-weight:800;letter-spacing:.02em;font-size:clamp(2.4rem,3.4vw,3rem)}
.packages-commercial-trio .pkg-head .price{flex-direction:row;align-items:baseline;justify-content:flex-start;text-align:left}
.pkg-included-title{font-weight:700}
