/* =====================================================================
   SELAH WEBSITE V3 — one design system, written from scratch (17 Oct 2026)
   Taste source: the V3 pricing guide (guide.selahweddings.co.nz) + the
   discover landing pages. Same brand: quincy-cf serif, Work Sans, warm
   stone + deep film-dark, clay accent. Every page uses ONLY this file.
   ===================================================================== */

/* ---------- fonts ---------- */
@font-face{font-family:"Work Sans";src:url(/assets/fonts/worksans-300.woff2) format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Work Sans";src:url(/assets/fonts/worksans-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Work Sans";src:url(/assets/fonts/worksans-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Work Sans";src:url(/assets/fonts/worksans-600.woff2) format("woff2");font-weight:600;font-display:swap}

/* ---------- tokens ---------- */
:root{
  --stone:#efe9df;          /* main page ground (the guide's stone) */
  --paper:#f8f5ef;          /* lighter alternate ground */
  --panel:#e6ded1;          /* deeper panel */
  --line:rgba(33,29,24,.13);
  --line-strong:rgba(33,29,24,.24);
  --ink:#1f1b16;            /* headings */
  --body:#433b31;           /* body copy, 9.6:1 on stone */
  --muted:#6b6256;          /* meta, 5.3:1 on stone */
  --clay:#94634c;           /* accent, 4.6:1 on stone */
  --clay-soft:#d9ab8f;      /* accent on dark */
  --night:#1c1814;          /* film-dark sections */
  --night-2:#25201a;
  --on-night:#efe8dc;
  --on-night-soft:rgba(239,232,220,.72);
  --gold:#b8894a;           /* review stars */

  --serif:"quincy-cf",Georgia,"Times New Roman",serif;
  --sans:"Work Sans",system-ui,-apple-system,"Segoe UI",sans-serif;

  --fs-xs:.78rem; --fs-sm:.9rem; --fs-base:1.0625rem; --fs-lg:1.2rem;
  --h1:clamp(2.7rem,1.55rem + 4.6vw,5.6rem);
  --h2:clamp(2.1rem,1.45rem + 2.6vw,3.6rem);
  --h3:clamp(1.45rem,1.2rem + .9vw,1.9rem);
  --h4:1.3rem;

  --maxw:1240px; --gut:clamp(20px,4.2vw,56px);
  --sec:clamp(76px,9vw,136px);
  --r:12px; --r-sm:8px; --pill:999px;
  --ease:cubic-bezier(.16,1,.3,1);
  --shadow:0 18px 50px -18px rgba(28,24,20,.35);

  --z-sticky:40; --z-header:60; --z-menu:70; --z-lightbox:90;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--stone);color:var(--body);font-family:var(--sans);font-size:var(--fs-base);line-height:1.68;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
p{margin:0 0 1em;text-wrap:pretty}
p:last-child{margin-bottom:0}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;color:var(--ink);line-height:1.06;letter-spacing:-.018em;margin:0;text-wrap:balance}
h1{font-size:var(--h1)} h2{font-size:var(--h2)} h3{font-size:var(--h3);line-height:1.15} h4{font-size:var(--h4);line-height:1.2}
h1 em,h2 em,h3 em,h4 em{font-style:italic;font-weight:300}
.accent{color:var(--clay)}
::selection{background:var(--clay);color:#fff}
:focus-visible{outline:2px solid var(--clay);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:var(--pill)}
.skip:focus{left:12px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:calc(var(--maxw) + var(--gut)*2);margin-inline:auto;padding-inline:var(--gut)}
.wrap--narrow{max-width:calc(780px + var(--gut)*2)}
.wrap--mid{max-width:calc(1000px + var(--gut)*2)}
.sec{padding-block:var(--sec);position:relative}
.sec--tight{padding-block:clamp(56px,6vw,88px)}
.sec--flush-top{padding-top:0}
.bg-paper{background:var(--paper)}
.bg-panel{background:var(--panel)}
.bg-night{background:var(--night);color:var(--on-night-soft)}
.bg-night h1,.bg-night h2,.bg-night h3,.bg-night h4{color:var(--on-night)}
.bg-night .accent,.bg-night .kicker{color:var(--clay-soft)}
.center{text-align:center}
.center p{margin-inline:auto}
.measure{max-width:62ch}
.stack>*+*{margin-top:1.1rem}

/* section heads */
.kicker{display:block;font-family:var(--serif);font-style:italic;font-weight:300;font-size:1.08rem;color:var(--clay);letter-spacing:0;margin:0 0 .85rem}
.label{display:inline-block;font-family:var(--sans);font-size:var(--fs-xs);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.bg-night .label{color:var(--on-night-soft)}
.head{margin-bottom:clamp(36px,5vw,64px)}
.head.center{max-width:760px;margin-inline:auto}
.head p.lede{margin-top:1.1rem}
.head--split{display:grid;grid-template-columns:1fr auto;align-items:end;gap:24px}
.lede{font-size:clamp(1.08rem,1rem + .35vw,1.22rem);line-height:1.62;color:var(--body);max-width:60ch}
.bg-night .lede{color:var(--on-night-soft)}

/* emphasis used inside verbatim reviews (spans only, never reworded) */
.hl{font-style:italic;color:var(--clay);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:rgba(148,99,76,.45)}
.bg-night .hl{color:var(--clay-soft);text-decoration-color:rgba(217,171,143,.45)}
.u-skim,.u-accent{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:rgba(148,99,76,.55);color:var(--ink)}
.bg-night .u-skim,.bg-night .u-accent{color:var(--on-night)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:52px;padding:0 1.65rem;border-radius:var(--pill);font-family:var(--sans);font-size:.95rem;font-weight:500;letter-spacing:.005em;line-height:1;border:1px solid var(--ink);background:var(--ink);color:#fbf8f3;cursor:pointer;transition:transform .5s var(--ease),background-color .3s,color .3s,border-color .3s,box-shadow .5s var(--ease);white-space:nowrap}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(28,24,20,.55)}
.btn:active{transform:translateY(0)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn--ghost:hover{border-color:var(--ink);box-shadow:none}
.btn--light{background:#fbf8f3;color:var(--ink);border-color:#fbf8f3}
.btn--glass{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.55)}
.btn--glass:hover{background:rgba(255,255,255,.16);border-color:#fff;box-shadow:none}
.btn--clay{background:var(--clay);border-color:var(--clay)}
.btn .arr{transition:transform .5s var(--ease)}
.btn:hover .arr{transform:translateX(3px)}
.btns{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.center .btns,.btns.center{justify-content:center}
.tlink{display:inline-flex;align-items:center;gap:.45em;font-weight:500;color:var(--ink);background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:3px;transition:background-size .5s var(--ease)}
.tlink:hover{background-size:0 1px;background-position:100% 100%}
.bg-night .tlink{color:var(--on-night)}

/* ---------- header ---------- */
.site-head{position:fixed;inset:0 0 auto;z-index:var(--z-header);transition:transform .6s var(--ease)}
.proofbar{height:38px;display:flex;align-items:center;justify-content:center;gap:clamp(14px,3vw,34px);background:var(--night);color:var(--on-night-soft);font-size:.78rem;letter-spacing:.02em;white-space:nowrap;overflow:hidden;padding-inline:16px}
.proofbar b{color:var(--on-night);font-weight:500}
.proofbar .st{color:var(--gold);letter-spacing:.08em;margin-right:.3em}
.proofbar .dot{width:3px;height:3px;border-radius:50%;background:rgba(239,232,220,.35);flex:none}
.navbar{transition:background-color .45s,box-shadow .45s,color .45s;color:#fff}
.navbar .wrap{display:flex;align-items:center;justify-content:space-between;height:78px;gap:24px}
.brand{display:flex;align-items:center;flex:none}
.brand img{height:36px;width:auto}
.brand .li{display:none}
.navlinks{display:flex;align-items:center;gap:clamp(18px,2.2vw,34px);font-size:.92rem;font-weight:400}
.navlinks a{position:relative;padding:6px 0;white-space:nowrap;opacity:.92;transition:opacity .3s}
.navlinks a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.navlinks a:hover{opacity:1}
.navlinks a:hover::after,.navlinks a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.nav-cta{min-height:44px;padding:0 1.25rem;font-size:.88rem}
.navbar .nav-cta{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.6);color:#fff}
.navbar .nav-cta:hover{background:#fff;color:var(--ink);box-shadow:none}
/* header over a light page (no dark hero): starts solid */
.site-head.is-solid .navbar,.site-head.scrolled .navbar{background:rgba(239,233,223,.97);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.site-head.is-solid .brand .lw,.site-head.scrolled .brand .lw{display:none}
.site-head.is-solid .brand .li,.site-head.scrolled .brand .li{display:block}
.site-head.is-solid .nav-cta,.site-head.scrolled .nav-cta{background:var(--ink);border-color:var(--ink);color:#fbf8f3}
.site-head.scrolled{transform:translateY(-38px)}
.menu-btn{display:none;width:46px;height:46px;border:0;background:transparent;color:inherit;cursor:pointer;position:relative;margin-right:-10px}
.menu-btn span{position:absolute;left:12px;right:12px;height:1.5px;background:currentColor;transition:transform .45s var(--ease),opacity .3s}
.menu-btn span:nth-child(1){top:17px}.menu-btn span:nth-child(2){top:23px}.menu-btn span:nth-child(3){top:29px}
.menu-open .menu-btn span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-open .menu-btn span:nth-child(2){opacity:0}
.menu-open .menu-btn span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* mobile sheet */
.menu-sheet{position:fixed;inset:0;z-index:var(--z-menu);background:var(--night);color:var(--on-night);display:flex;flex-direction:column;padding:150px var(--gut) 36px;opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility .5s}
.menu-sheet nav{display:flex;flex-direction:column;gap:2px}
.menu-sheet nav a{font-family:var(--serif);font-size:clamp(2rem,8vw,2.6rem);line-height:1.25;color:var(--on-night);transform:translateY(14px);opacity:0;transition:transform .7s var(--ease),opacity .7s var(--ease)}
.menu-sheet nav a em{font-weight:300}
.menu-sheet .menu-foot{margin-top:auto;display:grid;gap:14px;font-size:.95rem;color:var(--on-night-soft)}
.menu-sheet .menu-foot .btn{width:100%}
.menu-open .menu-sheet{opacity:1;visibility:visible}
.menu-open .menu-sheet nav a{transform:none;opacity:1}
.menu-open .menu-sheet nav a:nth-child(2){transition-delay:.04s}.menu-open .menu-sheet nav a:nth-child(3){transition-delay:.08s}.menu-open .menu-sheet nav a:nth-child(4){transition-delay:.12s}.menu-open .menu-sheet nav a:nth-child(5){transition-delay:.16s}.menu-open .menu-sheet nav a:nth-child(6){transition-delay:.2s}.menu-open .menu-sheet nav a:nth-child(7){transition-delay:.24s}
.menu-open .site-head .navbar{background:transparent!important;box-shadow:none!important;color:var(--on-night)!important}
.menu-open .site-head .brand .lw{display:block!important}.menu-open .site-head .brand .li{display:none!important}
.menu-open .site-head{transform:none!important;z-index:80}
.menu-open{overflow:hidden}

/* ---------- hero (home: full-bleed crossfade) ---------- */
.hero{position:relative;min-height:100svh;min-height:max(640px,100svh);max-height:1080px;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--night)}
.hero__slides{position:absolute;inset:0}
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease}
.hero__slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 9s linear}
.hero__slide.on{opacity:1}
.hero__slide.on img{transform:scale(1)}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(180deg,rgba(20,17,14,.55) 0%,rgba(20,17,14,0) 26%),
  linear-gradient(0deg,rgba(20,17,14,.78) 0%,rgba(20,17,14,.32) 38%,rgba(20,17,14,0) 62%),
  radial-gradient(120% 100% at 0% 90%,rgba(20,17,14,.66) 0%,rgba(20,17,14,0) 58%)}
.hero__inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(44px,7vh,88px)}
.hero__grid{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:40px}
.hero h1{color:#fff;font-size:var(--h1);max-width:13ch;line-height:1.02}
.hero h1 em{color:#f0c9ae}

.hero__sub{margin:1.1rem 0 0;font-size:clamp(1.02rem,.95rem + .35vw,1.18rem);color:rgba(255,255,255,.86);max-width:46ch;line-height:1.6}
.hero__sub em{font-family:var(--serif);font-style:italic;font-size:1.08em}
.hero .btns{margin-top:1.9rem}
.hero__proof{display:flex;align-items:center;gap:12px;margin-top:1.7rem;font-size:.86rem;color:rgba(255,255,255,.8)}
.hero__proof .st{color:#e7c27e;letter-spacing:.1em}
.hero__proof img{height:16px;width:auto;filter:brightness(0) invert(1);opacity:.85}
.hero__meta{display:flex;flex-direction:column;align-items:flex-end;gap:14px;font-size:.8rem;color:rgba(255,255,255,.75);letter-spacing:.04em}
.hero__count{font-family:var(--serif);font-size:1.05rem;letter-spacing:.02em;color:#fff}
.hero__count span{opacity:.55}
.hero__bars{display:flex;gap:6px}
.hero__bars button{width:34px;height:14px;border:0;background:transparent;padding:6px 0;cursor:pointer}
.hero__bars button i{display:block;height:2px;background:rgba(255,255,255,.3);overflow:hidden;position:relative}
.hero__bars button i::after{content:"";position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left}
.hero__bars button.on i::after{animation:bar 5.2s linear forwards}
.hero__bars button.done i::after{transform:scaleX(1)}
@keyframes bar{to{transform:scaleX(1)}}
.hero__place{font-family:var(--serif);font-style:italic;font-size:.98rem;letter-spacing:0;color:rgba(255,255,255,.82);min-height:1.4em;transition:opacity .6s}

/* ---------- page hero (subpages) ---------- */
.phero{position:relative;min-height:clamp(560px,82svh,860px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--night)}
.phero__img{position:absolute;inset:0}
.phero__img img,.phero__img video{width:100%;height:100%;object-fit:cover;animation:settle 2.4s var(--ease) both}
@keyframes settle{from{transform:scale(1.07)}to{transform:scale(1)}}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,17,14,.5) 0%,rgba(20,17,14,0) 28%),linear-gradient(0deg,rgba(20,17,14,.8) 0%,rgba(20,17,14,.3) 42%,rgba(20,17,14,0) 70%),radial-gradient(110% 95% at 0% 100%,rgba(20,17,14,.55) 0%,rgba(20,17,14,0) 60%)}
.hero .kicker,.phero .kicker{font-family:var(--sans);font-style:normal;font-weight:500;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;line-height:1.6;color:rgba(255,255,255,.9)!important;text-shadow:0 1px 12px rgba(0,0,0,.4);margin-bottom:1.1rem;max-width:max-content;position:relative;isolation:isolate}
.hero .kicker::before,.phero .kicker::before{content:"";position:absolute;z-index:-1;inset:-20px -44px;background:radial-gradient(50% 50% at 50% 50%,rgba(18,15,12,.52) 0%,rgba(18,15,12,.34) 55%,rgba(18,15,12,0) 100%);filter:blur(10px);pointer-events:none}
.phero__inner{position:relative;z-index:2;width:100%;padding-top:150px;padding-bottom:clamp(44px,7vh,84px)}
.phero h1{color:#fff;max-width:16ch;font-size:clamp(2.5rem,1.5rem + 4vw,5rem)}
.phero h1 em{color:#f0c9ae}
.phero .kicker{color:#f0c9ae}
.phero__sub{margin-top:1.1rem;max-width:52ch;color:rgba(255,255,255,.86);font-size:clamp(1.02rem,.96rem + .3vw,1.15rem)}
.phero .btns{margin-top:1.8rem}
.phero--short{min-height:clamp(460px,64svh,640px)}

/* breadcrumb */
.crumb{display:flex;flex-wrap:wrap;gap:8px;font-size:.82rem;color:var(--muted);padding-top:22px}
.crumb a{color:var(--body);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px}
.crumb span{opacity:.6}

/* ---------- marquee ---------- */
.marquee{background:var(--night);color:var(--on-night);overflow:hidden;padding:14px 0;border-top:1px solid rgba(239,232,220,.08)}
.marquee__track{display:flex;width:max-content;animation:mq 150s linear infinite}  /* 8 word sets, scrolls 4 per loop */
.marquee__track span{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(.95rem,.88rem + .3vw,1.15rem);padding:0 clamp(14px,1.8vw,26px);white-space:nowrap;display:flex;align-items:center;gap:clamp(14px,1.8vw,26px)}
.marquee__track span::after{content:"";width:4px;height:4px;border-radius:50%;background:var(--clay-soft);opacity:.7}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- intro split ---------- */
.split{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);gap:clamp(40px,7vw,110px);align-items:center}
.split--rev>:first-child{order:2}
.split h2{max-width:13ch}
.split .lede{margin-top:1.3rem}
.split .btns{margin-top:2rem}
.duo{position:relative;padding-bottom:16%;padding-left:12%}
.duo__a{border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow)}
.duo__b{position:absolute;left:0;bottom:0;width:48%;aspect-ratio:3/4;border-radius:var(--r);overflow:hidden;border:8px solid var(--stone);box-shadow:var(--shadow)}
.bg-paper .duo__b{border-color:var(--paper)}
.duo img{width:100%;height:100%;object-fit:cover}
.quoteline{margin-top:1.8rem;padding-top:1.4rem;border-top:1px solid var(--line);font-family:var(--serif);font-style:italic;font-size:1.12rem;color:var(--ink);line-height:1.5}
.quoteline cite{display:block;margin-top:.5rem;font-family:var(--sans);font-style:normal;font-size:.82rem;color:var(--muted)}
.quoteline .st{color:var(--gold);letter-spacing:.08em;margin-right:.4em}

/* ---------- media basics ---------- */
.ph{border-radius:var(--r);overflow:hidden;background:var(--panel);position:relative}
.ph img,.ph video{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
a:hover>.ph img,.ph:hover img{transform:scale(1.035)}
.bg-night .ph{background:var(--night-2)}

/* signature wall: lead image + masonry columns */
.sigwall{columns:3 280px;column-gap:14px}
.sigwall figure{margin:0 0 14px;break-inside:avoid;border-radius:var(--r);overflow:hidden;background:var(--night-2)}
.sigwall figure img{width:100%;transition:transform 1.2s var(--ease)}
.sigwall figure:hover img{transform:scale(1.035)}
.sig-lead{border-radius:var(--r);overflow:hidden;margin-bottom:14px;aspect-ratio:21/9}
.sig-lead img{width:100%;height:100%;object-fit:cover}

/* justified gallery rows (flex by aspect) */
.jrow{display:flex;flex-wrap:wrap;gap:12px;--h:290px}
.jrow>figure,.jrow>a{margin:0;height:var(--h);flex:var(--ar,1.5) 1 calc(var(--ar,1.5)*var(--h));border-radius:var(--r);overflow:hidden;position:relative;background:var(--panel)}
.jrow img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.jrow>*:hover img{transform:scale(1.035)}
.bg-night .jrow>figure{background:var(--night-2)}
.jrow--gal{--h:clamp(190px,23vw,330px)}
.jrow--sig::after{display:none}
.jrow--sig{--h:clamp(220px,22vw,330px)}
.jrow::after{content:"";flex:999 1 0}

/* ---------- offerings (photo / video / film) ---------- */
.offer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.2vw,30px);align-items:start}
.offer__item{display:block;color:inherit}
.offer__item:nth-child(2){margin-top:clamp(0px,6vw,90px)}
.offer__item .ph{aspect-ratio:3/4}
.offer__tag{position:absolute;left:14px;top:14px;z-index:2;background:rgba(28,24,20,.72);color:#f3ece2;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border-radius:var(--pill);font-weight:500}
.offer__body{padding:20px 4px 0}
.offer__body h3{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.offer__body h3 .arr{font-family:var(--sans);font-size:1rem;transition:transform .5s var(--ease)}
.offer__item:hover h3 .arr{transform:translateX(4px)}
.offer__body p{margin-top:.55rem;color:var(--muted);font-size:.98rem;max-width:36ch}
.offer__from{display:block;margin-top:.8rem;font-size:.86rem;color:var(--body)}
.offer__from b{font-family:var(--serif);font-weight:400;font-size:1.15rem;color:var(--ink)}

/* ---------- featured testimonial ---------- */
.feature-rev{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,6vw,90px);align-items:center}
.filmframe{position:relative;border-radius:var(--r);overflow:hidden;background:#000;aspect-ratio:4/3;box-shadow:var(--shadow)}
.filmframe video,.filmframe img{width:100%;height:100%;object-fit:cover}
.filmframe::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 10px #0d0b09,inset 0 0 60px rgba(0,0,0,.5);border-radius:var(--r);pointer-events:none}
.filmframe__cap{position:absolute;left:18px;bottom:16px;z-index:2;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.big-quote{font-family:var(--serif);font-weight:300;font-size:clamp(1.65rem,1.2rem + 1.8vw,2.6rem);line-height:1.2;color:var(--ink);letter-spacing:-.015em;text-wrap:balance;margin:0}
.big-quote em{font-style:italic;color:var(--clay)}
.bg-night .big-quote{color:var(--on-night)}
.bg-night .big-quote em{color:var(--clay-soft)}
.rev-body{margin-top:1.5rem;font-size:1rem;color:var(--body)}
.bg-night .rev-body{color:var(--on-night-soft)}
.rev-sig{margin-top:1.4rem;display:flex;align-items:center;gap:12px;font-size:.88rem;color:var(--muted)}
.rev-sig b{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.15rem;color:var(--ink)}
.bg-night .rev-sig b{color:var(--on-night)}
.st{color:var(--gold);letter-spacing:.1em}

/* ---------- review rail (Google) ---------- */
.rscore{display:flex;align-items:center;gap:16px}
.rscore__n{font-family:var(--serif);font-size:3.2rem;line-height:1;color:var(--ink)}
.rscore__meta{font-size:.84rem;color:var(--muted);line-height:1.45}
.rscore__meta .st{font-size:1rem}
.rscore img{height:18px;width:auto;display:inline-block;vertical-align:-3px;margin-left:6px}
.rail{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px var(--gut) 18px;margin-inline:calc(var(--gut)*-1);scrollbar-width:none;cursor:grab}
.rail::-webkit-scrollbar{display:none}
.rail.dragging{cursor:grabbing;scroll-snap-type:none}
.rcard{flex:0 0 clamp(270px,30vw,370px);scroll-snap-align:start;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:26px 26px 24px;display:flex;flex-direction:column;gap:14px;user-select:none}
.bg-paper .rcard{background:var(--stone)}
.rcard__head{display:flex;align-items:center;gap:12px}
.rcard__av{width:42px;height:42px;border-radius:50%;object-fit:cover;flex:none;background:var(--panel)}
.rcard__name{display:block;font-weight:500;color:var(--ink);font-size:.95rem;line-height:1.2}
.rcard__head .st{font-size:.82rem}
.rcard__g{margin-left:auto;width:18px;height:18px;opacity:.9}
.rcard p{font-family:var(--serif);font-size:1.12rem;line-height:1.48;color:var(--ink);margin:0}
.rcard p em{font-style:italic;color:var(--clay)}
.rail-nav{display:flex;gap:8px}
.rail-nav button{width:46px;height:46px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--ink);cursor:pointer;font-size:1.1rem;transition:background .3s,color .3s,border-color .3s}
.rail-nav button:hover:not(:disabled){background:var(--ink);color:#fff;border-color:var(--ink)}
.rail-nav button:disabled{opacity:.3;cursor:default}

/* testimonial stack (verbatim long-form, with photos) */
.tstack{display:grid;gap:clamp(48px,7vw,96px)}
.tstory{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(32px,5vw,80px);align-items:center}
.tstory:nth-child(even) .tstory__imgs{order:2}
.tstory__imgs{display:grid;grid-template-columns:repeat(var(--n,2),1fr);gap:10px}
.tstory__imgs .ph{aspect-ratio:3/4}
.tstory__imgs--wide .ph{aspect-ratio:4/3}
.tstory__q{font-family:var(--serif);font-size:clamp(1.4rem,1.15rem + 1vw,1.95rem);line-height:1.22;color:var(--ink);margin:0 0 1rem}
.tstory__meta{margin-top:.4rem;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* ---------- team ---------- */
.team{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:14px}
.team figure{margin:0}
.team .ph{aspect-ratio:3/4.2}
.team .ph img{filter:grayscale(1) contrast(1.02)}
.team figcaption{margin-top:12px}
.team .tm-n{display:block;font-family:var(--serif);font-size:1.2rem;color:var(--ink);line-height:1.1}
.team .tm-r{display:block;margin-top:4px;font-size:.74rem;line-height:1.45;color:var(--muted)}
.bg-night .team .tm-n{color:var(--on-night)}
.bg-night .team .tm-r{color:var(--on-night-soft)}
.facepile{display:flex;justify-content:center}
.facepile img{width:46px;height:46px;border-radius:50%;object-fit:cover;border:3px solid var(--stone);margin-left:-10px;filter:grayscale(1)}
.facepile img:first-child{margin-left:0}
.ticks{list-style:none;padding:0;margin:1.4rem 0 0;display:grid;gap:10px}
.ticks li{position:relative;padding-left:28px;color:var(--body)}
.ticks li::before{content:"";position:absolute;left:2px;top:.55em;width:12px;height:7px;border-left:1.5px solid var(--clay);border-bottom:1.5px solid var(--clay);transform:rotate(-45deg)}
.bg-night .ticks li{color:var(--on-night-soft)}
.bg-night .ticks li::before{border-color:var(--clay-soft)}

/* ---------- pricing menu (home teaser) ---------- */
.menu{border-top:1px solid var(--line-strong)}
.menu__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 24px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--line)}
.menu__row h3{font-size:clamp(1.35rem,1.15rem + .7vw,1.75rem)}
.menu__row h3 small{display:inline-block;margin-left:10px;vertical-align:middle;font-family:var(--sans);font-size:.68rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:var(--ink);padding:5px 9px;border-radius:var(--pill)}
.menu__row p{grid-column:1;font-size:.92rem;color:var(--muted);margin:0}
.menu__price{grid-row:1/3;grid-column:2;align-self:center;font-family:var(--serif);font-size:clamp(1.6rem,1.3rem + 1vw,2.2rem);color:var(--ink);white-space:nowrap}
.menu__price sup{font-size:.5em;vertical-align:.9em;margin-right:2px;opacity:.7}
.menu__row--pop{background:linear-gradient(90deg,rgba(148,99,76,.07),rgba(148,99,76,0));margin-inline:-16px;padding-inline:16px;border-radius:var(--r-sm)}
.menu-note{margin-top:1.2rem;font-size:.9rem;color:var(--muted)}
.menu-aside{display:grid;gap:14px;grid-template-columns:1fr 1fr}
.menu-aside .ph:first-child{grid-column:1/-1;aspect-ratio:16/11}
.menu-aside .ph{aspect-ratio:4/5}

/* ---------- from-price line (content pages point to /services/) ---------- */
.fromline{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:2rem;padding:22px 0;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}
.fromline__p{font-family:var(--serif);font-size:clamp(1.5rem,1.2rem + 1vw,2.1rem);color:var(--ink);line-height:1.1}
.fromline__p small{display:block;font-family:var(--sans);font-size:.8rem;color:var(--muted);margin-bottom:4px;letter-spacing:.02em}

/* ---------- steps (a real sequence, so numbered) ---------- */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(22px,3vw,44px);counter-reset:st}
.step{counter-increment:st;padding-top:22px;border-top:1px solid var(--line-strong)}
.step::before{content:counter(st,decimal-leading-zero);display:block;font-family:var(--serif);font-style:italic;font-size:2.4rem;line-height:1;color:var(--clay);margin-bottom:18px}
.step h3{font-size:1.35rem}
.step p{margin-top:.7rem;font-size:.95rem;color:var(--body)}
.bg-night .step{border-color:rgba(239,232,220,.2)}
.bg-night .step::before{color:var(--clay-soft)}
.bg-night .step p{color:var(--on-night-soft)}

/* ---------- proof strip ---------- */
.proofs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
.proof{display:flex;gap:14px;align-items:flex-start}
.proof svg{width:22px;height:22px;flex:none;stroke:var(--clay);fill:none;stroke-width:1.4;margin-top:3px}
.proof h4{font-family:var(--sans);font-size:.98rem;font-weight:500;letter-spacing:0;color:var(--ink)}
.proof p{margin-top:.25rem;font-size:.88rem;color:var(--muted);line-height:1.55}
.proof a{text-decoration:underline;text-underline-offset:3px}

/* ---------- SEO prose block ---------- */
.prose{max-width:68ch}
.prose.center{margin-inline:auto}
.prose h2{margin-bottom:1.4rem}
.prose h3{margin:2rem 0 .7rem}
.prose p{color:var(--body)}
.prose ul,.prose ol{padding-left:1.2em;margin:0 0 1em}
.prose li{margin:.35em 0}
.prose a:not(.btn){text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(148,99,76,.6)}

/* editorial SEO modules (location + service pages) */
.seo-lead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:start}
.seo-lead__title{font-size:var(--h2);max-width:14ch}
.seo-lead__body p:first-child{font-family:var(--serif);font-style:italic;font-size:1.3rem;line-height:1.45;color:var(--ink)}
.seo-two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);margin-top:clamp(48px,6vw,80px);padding-top:clamp(36px,4vw,56px);border-top:1px solid var(--line)}
.seo-two h3{margin-bottom:.9rem}
.seo-break{margin:clamp(48px,6vw,80px) 0;border-radius:var(--r);overflow:hidden;aspect-ratio:21/9}
.seo-break img{width:100%;height:100%;object-fit:cover}
.seo-close{max-width:820px;margin-inline:auto;text-align:center}
.seo-close h3,.seo-close h2{margin-bottom:1rem}
.seo-close p{margin-inline:auto}
.seo-tags,.seo-places{list-style:none;padding:0;margin:1.4rem auto 1.6rem;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.seo-tags li,.seo-places li{border:1px solid var(--line-strong);border-radius:var(--pill);padding:7px 14px;font-size:.88rem;color:var(--body);background:rgba(255,255,255,.35)}
.proc{list-style:none;padding:0;margin:1.4rem 0;counter-reset:pr;display:grid;gap:14px}
.proc li{counter-increment:pr;position:relative;padding-left:52px}
.proc li::before{content:counter(pr,decimal-leading-zero);position:absolute;left:0;top:-.1em;font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--clay)}

/* ---------- FAQ ---------- */
.faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px);align-items:start}
.faq-head p{margin-top:1rem;color:var(--muted)}
.faq-head a{text-decoration:underline;text-underline-offset:3px}
.faq-list{border-top:1px solid var(--line-strong)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-family:var(--serif);font-size:clamp(1.12rem,1rem + .4vw,1.3rem);color:var(--ink);line-height:1.3}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary .ic{flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--line-strong);display:grid;place-items:center;font-family:var(--sans);font-size:1rem;color:var(--clay);transition:transform .5s var(--ease),background .3s}
.faq-list details[open] summary .ic{transform:rotate(45deg);background:var(--ink);color:#fff;border-color:var(--ink)}
.faq-list .ans{padding:0 48px 24px 0;color:var(--body)}
.faq-list .ans a{text-decoration:underline;text-underline-offset:3px}

/* ---------- enquiry (form) ---------- */
.enquire{position:relative;overflow:hidden;color:var(--on-night-soft);background:var(--night)}
.enquire__bg{position:absolute;inset:0}
.enquire__bg img{width:100%;height:100%;object-fit:cover;opacity:.42}
.enquire::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(24,20,16,.92) 0%,rgba(24,20,16,.72) 45%,rgba(24,20,16,.5) 100%)}
.enquire .wrap{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:clamp(40px,6vw,96px);align-items:center}
.enquire h1,.enquire h2{color:var(--on-night)}
.enquire h1{font-size:var(--h2)}
.enquire--top{padding-top:clamp(150px,16vw,190px);min-height:100svh;display:flex;align-items:center}
.enquire--top .wrap{width:100%}
.enquire h1 em,.enquire h2 em{color:var(--clay-soft)}
.enquire .kicker{color:var(--clay-soft)}
.enquire__copy>p{margin-top:1.1rem;font-size:1.06rem;max-width:44ch}
.enquire__list{list-style:none;padding:0;margin:1.6rem 0 0;display:grid;gap:12px}
.enquire__list li{display:flex;gap:12px;align-items:center;color:var(--on-night)}
.enquire__list svg{width:18px;height:18px;flex:none;stroke:var(--clay-soft);fill:none;stroke-width:1.5}
.enquire__contact{margin-top:1.8rem;font-size:.9rem}
.enquire__contact a{color:var(--on-night);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(239,232,220,.4)}
.enquire__call{margin-top:.6rem;font-size:.9rem}
.enquire__call a{color:var(--on-night);text-decoration:underline;text-underline-offset:3px}

#enquiryForm{background:rgba(250,246,240,.97);color:var(--body);border-radius:16px;padding:clamp(24px,3vw,38px);box-shadow:0 40px 80px -30px rgba(0,0,0,.55);display:grid;grid-template-columns:1fr 1fr;gap:14px 14px}
#enquiryForm .form-title{grid-column:1/-1;font-family:var(--serif);font-size:1.55rem;color:var(--ink);margin:0 0 4px}
.field{display:flex;flex-direction:column;gap:6px;grid-column:1/-1}
.field.half{grid-column:auto}
.field label,.field>.flabel{font-size:.74rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.field input,.field textarea,.field select{font:inherit;font-size:1rem;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:10px;padding:13px 14px;width:100%;transition:border-color .3s,box-shadow .3s}
.field textarea{min-height:104px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:#7a7064;opacity:1}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--clay);box-shadow:0 0 0 3px rgba(148,99,76,.16)}
.field-hint{font-size:.78rem;color:var(--muted)}
.form-more{display:contents}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.field .chip{position:relative;cursor:pointer;text-transform:none;letter-spacing:0;font-size:inherit;font-weight:400;color:inherit}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-block;padding:9px 14px;border:1px solid var(--line-strong);border-radius:var(--pill);font-size:.9rem;color:var(--body);background:#fff;transition:background .25s,color .25s,border-color .25s}
.chip input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip input:focus-visible+span{outline:2px solid var(--clay);outline-offset:2px}
#enquiryForm button[type=submit]{grid-column:1/-1;width:100%;min-height:56px;margin-top:6px}
.form-progress-wrap{grid-column:1/-1;display:flex;align-items:center;gap:12px}
.form-progress{flex:1;height:3px;background:var(--line);border-radius:3px;overflow:hidden}
.form-progress__fill{display:block;height:100%;width:0;background:var(--clay);transition:width .6s var(--ease)}
.form-progress__note{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.form-note{grid-column:1/-1;font-size:.82rem;color:var(--muted);margin:0}
.form-success{grid-column:1/-1;display:none;font-family:var(--serif);font-size:1.35rem;line-height:1.4;color:var(--ink);padding:24px 0;text-align:center}
.form-success__h{font-size:clamp(1.6rem,1.4rem + .8vw,2.1rem);margin:0 0 .6rem}
.form-success__p{font-family:var(--sans);font-size:1rem;color:var(--body);margin:0 0 .4rem}
.form-success .btn{margin-top:1.2rem;display:inline-flex}

/* ---------- footer ---------- */
.foot{background:var(--night);color:var(--on-night-soft);padding:clamp(72px,8vw,112px) 0 32px;font-size:.92rem}
.foot__cta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:28px;padding-bottom:clamp(48px,6vw,72px);margin-bottom:clamp(40px,5vw,60px);border-bottom:1px solid rgba(239,232,220,.12)}
.foot__cta h2{color:var(--on-night);max-width:16ch}
.foot__cta h2 em{color:var(--clay-soft)}
.foot__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr;gap:clamp(24px,3.4vw,48px)}
.foot__brand img{height:40px;width:auto;margin-bottom:18px}
.foot__brand p{max-width:30ch;margin:0}
.foot h4{font-family:var(--sans);font-size:.74rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--on-night);margin-bottom:16px}
.foot__col a{display:block;padding:4px 0;color:var(--on-night-soft);transition:color .3s}
.foot__col a:hover{color:var(--on-night)}
.foot__areas{margin-top:clamp(40px,5vw,56px);font-size:.82rem;color:rgba(239,232,220,.5);max-width:70ch}
.foot__bottom{margin-top:24px;padding-top:20px;border-top:1px solid rgba(239,232,220,.1);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:.8rem;color:rgba(239,232,220,.5)}

/* ---------- sticky mobile CTA ---------- */
.sticky-cta{position:fixed;left:16px;right:16px;bottom:14px;z-index:var(--z-sticky);display:none;min-height:54px;align-items:center;justify-content:center;border-radius:var(--pill);background:var(--ink);color:#fff;font-weight:500;font-size:.95rem;box-shadow:0 14px 34px -10px rgba(0,0,0,.5);transform:translateY(140%);transition:transform .6s var(--ease)}
.sticky-cta.show{transform:none}

/* ---------- video facade ---------- */
.ytfacade{position:relative;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;cursor:pointer;background:#000}
.ytfacade img{width:100%;height:100%;object-fit:cover;opacity:.88;transition:opacity .5s,transform 1.2s var(--ease)}
.ytfacade:hover img{opacity:1;transform:scale(1.03)}
.ytfacade iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ytfacade .play{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;background:rgba(250,246,240,.94);display:grid;place-items:center;transition:transform .5s var(--ease)}
.ytfacade .play::after{content:"";margin-left:5px;border-left:16px solid var(--ink);border-top:10px solid transparent;border-bottom:10px solid transparent}
.ytfacade:hover .play{transform:scale(1.08)}
.vcap{margin-top:14px}
.vcap h3{font-size:1.3rem}
.vcap p{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:4px}

/* ---------- lightbox ---------- */
.lb{position:fixed;inset:0;z-index:var(--z-lightbox);background:rgba(16,13,11,.96);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
.lb.open{opacity:1;visibility:visible}
.lb__stage{position:absolute;inset:56px 72px;display:flex;align-items:center;justify-content:center}
.lb__img{max-width:100%;max-height:100%;object-fit:contain;opacity:0;transition:opacity .4s}
.lb__img.ready{opacity:1}
.lb__btn{position:absolute;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;font-size:1.5rem;cursor:pointer}
.lb__prev{left:14px;top:50%;margin-top:-24px}.lb__next{right:14px;top:50%;margin-top:-24px}.lb__close{right:14px;top:14px}
.lb__count{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:rgba(255,255,255,.7);font-size:.82rem;letter-spacing:.1em}
.lb-lock{overflow:hidden}

/* ---------- reveal (content visible by default; only enhanced when JS is on) ---------- */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity 1s var(--ease),transform 1.1s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal-img{clip-path:inset(8% 0 0 0 round var(--r));transition:clip-path 1.4s var(--ease)}
.js .reveal-img.in{clip-path:inset(0 0 0 0 round var(--r))}


/* =====================================================================
   PRICING COMPONENTS (Investment page + anywhere prices appear)
   ===================================================================== */
.toggle{display:flex;flex-direction:column;align-items:center;gap:10px;margin:0 auto clamp(28px,4vw,44px)}
.toggle__grp{display:inline-flex;gap:4px;padding:5px;border-radius:var(--pill);background:var(--paper);border:1px solid var(--line);box-shadow:0 8px 24px -14px rgba(28,24,20,.3)}
.toggle button{border:0;background:transparent;font:inherit;font-size:.92rem;font-weight:500;color:var(--body);padding:11px 20px;border-radius:var(--pill);cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .35s var(--ease),color .35s}
.toggle button[aria-pressed="true"]{background:var(--ink);color:#fbf8f3}
.toggle .save{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:var(--pill);border:1px solid currentColor;opacity:.75}
.toggle__hint{font-size:.8rem;color:var(--muted);margin:0}
.toggle.is-sticky{position:sticky;top:12px;z-index:5}

.cx{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.8vw,24px);align-items:stretch}
.cx-card{position:relative;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.cx-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.cx-card.pop{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.cx-tag{position:absolute;z-index:3;left:14px;top:14px;background:var(--ink);color:#fbf8f3;font-size:.68rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:6px 11px;border-radius:var(--pill)}
.cx-media{position:relative;aspect-ratio:4/3;background:var(--panel);overflow:hidden}
.cx-media>*,.cx-media img,.cx-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s}
.mode-photo .cx-media .m-photo,.mode-video .cx-media .m-video,.mode-both .cx-media .m-both{opacity:1}
.cx-body{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1}
.cx-body h3{font-size:1.6rem}
.cx-arc{margin:.45rem 0 0;font-size:.92rem;color:var(--muted);min-height:2.9em}
.cx-price{margin-top:1.1rem;font-family:var(--serif);font-size:clamp(2.6rem,2rem + 1.6vw,3.3rem);line-height:1;color:var(--ink);letter-spacing:-.02em}
.cx-price sup{font-size:.4em;vertical-align:1.2em;margin-right:3px;opacity:.65}
.cx-save{min-height:1.4em;margin-top:.5rem;font-size:.82rem;color:var(--clay)}
.cx-save s{color:var(--muted)}
.mode-photo .cx-save,.mode-video .cx-save{visibility:hidden}
.cx-hrs{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.74rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.cx-spec{margin:1rem 0 0;font-size:.92rem;color:var(--body)}
.cx-spec b{display:block;color:var(--ink);font-weight:500}
.cx-card .ticks{margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--line);gap:7px;font-size:.88rem}
.cx-card .ticks a{text-decoration:underline;text-underline-offset:3px}
.cx-fine{margin:1.4rem auto 0;text-align:center;font-size:.85rem;color:var(--muted);max-width:76ch}

.elope{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);background:var(--panel);border-radius:16px;overflow:hidden;margin-top:clamp(20px,2.5vw,32px)}
.elope__img{position:relative;min-height:380px}
.elope__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.elope__img img.on{opacity:1}
.elope__body{padding:clamp(28px,4vw,52px)}
.elope__body h3{font-size:clamp(2rem,1.6rem + 1.4vw,2.7rem)}
.elope__body .lede{margin-top:.9rem;font-size:1rem}

.rows{margin-top:1.4rem;border-top:1px solid var(--line-strong)}
.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}
.row__k{color:var(--ink);font-weight:500;font-size:.98rem;display:flex;flex-wrap:wrap;align-items:center;gap:0 8px}
.row__k small{display:block;flex-basis:100%;order:2;font-weight:400;font-size:.82rem;color:var(--muted);margin-top:2px;line-height:1.45}
.row__v{font-family:var(--serif);font-size:1.5rem;color:var(--ink);white-space:nowrap;text-align:right}
.row__v small{display:block;font-family:var(--sans);font-size:.74rem;color:var(--muted);text-align:right}
.row--pop .row__k::after{content:"Most popular";order:1;display:inline-block;font-size:.62rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--clay);padding:3px 7px;border-radius:var(--pill)}
a.row .row__k{transition:transform .5s var(--ease)}
a.row:hover .row__k{transform:translateX(6px)}
.bg-night .rows{border-color:rgba(239,232,220,.22)}
.bg-night .row{border-color:rgba(239,232,220,.12)}
.bg-night .row__k,.bg-night .row__v{color:var(--on-night)}
.bg-night .row__k small,.bg-night .row__v small{color:var(--on-night-soft)}
.bg-night .row--pop .row__k::after{background:var(--clay-soft);color:var(--night)}
.row-note{margin-top:1rem;font-size:.9rem;color:var(--muted)}

.who{margin-top:clamp(40px,5vw,64px);background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:clamp(28px,4.5vw,60px)}
.who__top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.who h3{font-size:clamp(1.7rem,1.4rem + 1.2vw,2.4rem);margin-top:16px}
.who .facepile{justify-content:flex-start}
.who__flow{list-style:none;padding:0;margin:clamp(28px,4vw,44px) 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,36px);counter-reset:wf}
.who__flow li{counter-increment:wf;border-top:1px solid var(--line-strong);padding-top:18px}
.who__flow li::before{content:counter(wf,decimal-leading-zero);display:block;font-family:var(--serif);font-style:italic;color:var(--clay);font-size:1.3rem;margin-bottom:10px}
.who__flow b{display:block;font-family:var(--serif);font-weight:400;font-size:1.2rem;color:var(--ink)}
.who__flow p{margin-top:.5rem;font-size:.9rem}
.who__never{margin-top:clamp(28px,4vw,40px);padding:22px 24px;border-radius:12px;background:var(--ink);color:var(--on-night-soft);display:grid;grid-template-columns:auto 1fr;gap:6px 22px;align-items:center}
.who__never b{font-family:var(--serif);font-weight:400;font-size:1.35rem;color:var(--on-night)}
.who__never p{margin:0;font-size:.92rem}

.popx{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:clamp(28px,4vw,44px)}
.popx a{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--paper);transition:border-color .3s,transform .5s var(--ease)}
.popx a:hover{border-color:var(--ink);transform:translateY(-2px)}
.popx .ph{aspect-ratio:1;border-radius:10px}
.popx b{display:block;font-family:var(--serif);font-weight:400;font-size:1.2rem;color:var(--ink)}
.popx small{display:block;font-size:.8rem;color:var(--muted);line-height:1.4;margin-top:2px}
.popx .p{display:block;margin-top:6px;font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--clay)}
.planline{margin:clamp(28px,4vw,40px) auto 0;max-width:64ch;text-align:center;color:var(--body)}
.planline b{color:var(--ink);font-weight:600}

/* timeline coverage estimator (ported from the guide; bars drawn by v3.js) */
.covhelp__eyebrow{margin:clamp(40px,5vw,64px) 0 14px;text-align:center}
.covhelp{--padL:236px;--padR:28px;--axisH:50px;--gold-band:color-mix(in srgb,var(--gold) 28%,transparent);background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:clamp(22px,3.4vw,44px)}
.covhelp__head{display:flex;align-items:baseline;gap:14px 20px;flex-wrap:wrap}
.covhelp__head h3{font-size:clamp(1.45rem,1.2rem + .9vw,1.9rem)}
.covhelp__picks{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.covhelp__picks select{font:inherit;font-size:.9rem;font-weight:500;color:var(--ink);background:var(--stone);border:1px solid var(--line-strong);border-radius:var(--pill);padding:9px 34px 9px 16px;cursor:pointer;-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 13px) 52%;background-size:5px 5px;background-repeat:no-repeat;transition:border-color .3s}
.covhelp__picks select:hover{border-color:var(--ink)}
.covhelp__sub{font-size:.95rem;color:var(--body);margin:.9rem 0 1.6rem;max-width:72ch}
.covhelp__sub b{color:var(--clay);font-weight:600}
.covhelp__plot{position:relative}
.covhelp__field{position:absolute;left:var(--padL);right:var(--padR);top:0;bottom:var(--axisH);pointer-events:none;z-index:0}
.covhelp__field .gold{position:absolute;top:0;bottom:0;background:var(--gold-band);border-left:1px dashed var(--gold)}
.covhelp__field .goldlbl{position:absolute;top:-2px;transform:translateX(-50%);font-size:.64rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--clay);white-space:nowrap;background:var(--paper);padding:0 8px;z-index:1}
.covhelp__field .ss{position:absolute;top:0;bottom:0;border-left:1.5px solid var(--clay)}
.covhelp__field .grband{position:absolute;height:6px;border-radius:var(--pill)}
.covhelp__field .grband--her{bottom:28px;background:color-mix(in srgb,var(--clay) 28%,transparent);border:1px solid color-mix(in srgb,var(--clay) 55%,transparent)}
.covhelp__field .grband--him{bottom:4px;background:color-mix(in srgb,var(--muted) 18%,transparent);border:1px solid color-mix(in srgb,var(--muted) 45%,transparent)}
.covhelp__field .grlbl{position:absolute;transform:translateX(-50%);font-size:.6rem;font-weight:500;line-height:1;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.covhelp__field .grlbl--her{bottom:38px;color:var(--clay)}
.covhelp__field .grlbl--him{bottom:14px;color:var(--muted)}
.covhelp__rows{position:relative;z-index:1;padding-top:22px;padding-bottom:58px}
.covhelp__row{display:grid;grid-template-columns:calc(var(--padL) - 14px) minmax(0,1fr) calc(var(--padR) - 14px);gap:14px;align-items:center;padding:6px 0}
.covhelp__nm{font-family:var(--serif);font-size:1.05rem;color:var(--ink);text-align:right;line-height:1.25}
.covhelp__nm small{display:block;font-family:var(--sans);font-size:.7rem;letter-spacing:.03em;color:var(--muted);font-variant-numeric:tabular-nums}
.covhelp__bar{position:relative;height:16px;background:color-mix(in srgb,var(--ink) 6%,transparent);border-radius:var(--pill)}
.covhelp__cover{position:absolute;top:2px;bottom:2px;border-radius:var(--pill);background:var(--ink);transition:left .5s var(--ease),width .5s var(--ease),background-color .5s}
.covhelp__row.is-best .covhelp__cover{background:var(--gold)}
.covhelp__star{font-size:.85rem;color:var(--gold);text-align:center}
.covhelp__axis{position:relative;height:var(--axisH);margin-left:var(--padL);margin-right:var(--padR);z-index:1}
.covhelp__axis .ln{position:absolute;left:0;right:0;top:0;height:1px;background:var(--line-strong)}
.covhelp__axis .evdot{position:absolute;top:-2.5px;transform:translateX(-50%);width:6px;height:6px;border-radius:50%;background:var(--muted)}
.covhelp__axis .ev{position:absolute;top:10px;white-space:nowrap;line-height:1.25}
.covhelp__axis .ev b{display:block;font-size:.72rem;font-weight:600;color:var(--ink)}
.covhelp__axis .ev span{display:block;font-size:.68rem;color:var(--muted);font-variant-numeric:tabular-nums}
.covhelp__disc{margin:1.2rem 0 0;padding-top:1rem;border-top:1px dashed var(--line-strong);font-size:.9rem;font-weight:500;color:var(--body)}
.covhelp__verdict{margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--line-strong);font-size:.9rem;color:var(--body)}
.covhelp__verdict b{color:var(--ink);font-weight:600}
.covhelp__verdict .st{color:var(--gold)}
.covhelp__vlead{margin:0}
.covhelp__benefits{margin-top:.8rem;gap:6px;font-size:.9rem}
.covhelp__vclose{margin:.9rem 0 0;font-size:.85rem;color:var(--muted)}
@media (max-width:700px){
  .covhelp{--padL:0px;--padR:22px;--axisH:62px;--gold-band:color-mix(in srgb,var(--gold) 20%,transparent)}
  .covhelp__picks{margin-left:0;width:100%}
  .covhelp__picks select{flex:1 1 0;min-width:0;font-size:.84rem;padding:9px 28px 9px 13px;background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%}
  .covhelp__picks #covhelpCer{flex-grow:1.45}
  .covhelp__row{grid-template-columns:minmax(0,1fr) calc(var(--padR) - 14px);row-gap:4px;padding:7px 0}
  /* names stack over the timeline: give them the card ground so the guides don't bleed through */
  .covhelp__nm{grid-column:1 / -1;text-align:left;display:flex;gap:9px;align-items:baseline;flex-wrap:wrap;position:relative;z-index:2;background:var(--paper);padding:2px 0;box-shadow:0 0 0 4px var(--paper)}
  .covhelp__nm small{display:inline}
  /* day beats alternate across two lines so they stay readable without colliding */
  .covhelp__axis .ev{top:9px}
  .covhelp__axis .ev--b{top:34px}
  .covhelp__axis .ev b{font-size:.62rem}
  .covhelp__axis .ev span{font-size:.6rem}
  /* drop the time ranges, pin each band name to its own end */
  .covhelp__field .lblt{display:none}
  .covhelp__field .grlbl{left:0!important;transform:none}
  .covhelp__field .goldlbl{left:auto!important;right:0;transform:none;text-align:right}
}

/* film boxes (dark) */
.filmboxes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.8vw,24px)}
.filmbox{background:var(--night-2);border:1px solid rgba(239,232,220,.1);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.filmbox .ph{aspect-ratio:16/10;border-radius:0}
.filmbox .offer__tag{background:rgba(0,0,0,.6)}
.filmbox__body{padding:24px;display:flex;flex-direction:column;flex:1}
.filmbox__cat{font-size:.72rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--clay-soft)}
.filmbox h3{margin-top:.5rem;font-size:1.6rem}
.filmbox p{font-size:.92rem;margin-top:.5rem}
.filmbox .rows{margin-top:auto;padding-top:0}
.filmbox .filmbox__desc{margin-bottom:1.3rem}
.clipwall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.clipwall .ph{aspect-ratio:4/3;background:#000}
.clipwall .ph:nth-child(1),.clipwall .ph:nth-child(6){grid-column:span 2;grid-row:span 2;aspect-ratio:auto}

/* product cards (albums, sessions, wall art) */
.pcs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.pcs--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pc{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden;position:relative}
.bg-paper .pc{background:var(--stone)}
.pc.pop{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.pc .ph{aspect-ratio:4/3;border-radius:0}
.pc__body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.pc__body h3{font-size:1.5rem}
.pc__meta{margin-top:.35rem;font-size:.8rem;letter-spacing:.06em;color:var(--muted)}
.pc__body p{margin-top:.7rem;font-size:.92rem}
.pc__body .ticks{margin-top:1rem;font-size:.9rem;gap:6px}
.pc__body .pc__price{margin-top:auto;padding-top:1.1rem;font-family:var(--serif);font-size:2rem;color:var(--ink);line-height:1}
.pc__body .pc__price sup{font-size:.45em;vertical-align:1em;opacity:.65;margin-right:2px}
.pc__body .pc__price small{font-family:var(--sans);font-size:.78rem;color:var(--muted);margin-right:6px}
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:clamp(28px,4vw,44px)}
.trio figure{margin:0}
.trio .ph{aspect-ratio:3/2}
.trio figcaption{margin-top:10px;font-family:var(--serif);font-style:italic;color:var(--ink)}
.inline-card{display:grid;grid-template-columns:140px 1fr;gap:20px;align-items:center;margin-top:20px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.inline-card .ph{aspect-ratio:3/2;border-radius:10px}
.inline-card b{display:block;font-family:var(--serif);font-weight:400;font-size:1.25rem;color:var(--ink)}
.sizes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line-strong);border-radius:14px;overflow:hidden;margin:clamp(24px,3vw,36px) 0}
.sizes>div{padding:20px;text-align:center}
.sizes>div+div{border-left:1px solid var(--line)}
.sizes b{display:block;font-family:var(--serif);font-weight:400;font-size:1.25rem;color:var(--ink)}
.sizes span{display:block;font-size:.84rem;color:var(--muted)}
.sizes i{display:block;margin-top:6px;font-family:var(--serif);font-style:normal;font-size:1.6rem;color:var(--ink)}
.band-img{position:relative;min-height:clamp(380px,56vh,620px);display:flex;align-items:flex-end;overflow:hidden;color:#fff}
.band-img>img,.band-img>picture>img,.band-img>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band-img::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,17,14,.75),rgba(20,17,14,.1) 60%)}
.band-img[style*="align-items:center"]::after{background:rgba(20,17,14,.5)}
.band-img .wrap{position:relative;z-index:2;padding-block:clamp(40px,6vw,72px)}
.band-img h2{color:#fff;max-width:16ch}
.band-img h2 em{color:#f0c9ae}
.band-img p{color:rgba(255,255,255,.86);max-width:52ch;margin-top:1rem}

@media (max-width:1100px){
  .who__flow{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:960px){
  .cx,.filmboxes,.pcs,.popx{grid-template-columns:1fr}
  .cx{max-width:560px;margin-inline:auto}
  .elope,.who__top{grid-template-columns:1fr}
  .elope__img{min-height:300px}
  .pcs--2{grid-template-columns:1fr}
  .clipwall{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .toggle button{padding:10px 13px;font-size:.86rem}
  .toggle .save{display:none}
  .who__flow{grid-template-columns:1fr}
  .who__never{grid-template-columns:1fr}
  .trio{grid-template-columns:1fr 1fr}
  .trio figure:nth-child(3){display:none}
  .sizes{grid-template-columns:1fr}
  .sizes>div+div{border-left:0;border-top:1px solid var(--line)}
  .inline-card{grid-template-columns:96px 1fr}
}


/* home: three verbatim live-site testimonials */
.trio-rev{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,24px)}
.trio-rev .loc-rev{background:var(--stone)}
.trio-rev .loc-rev h3{text-transform:none}
@media (max-width:960px){.trio-rev{grid-template-columns:1fr}}

/* ---------- location (city) pages ---------- */
.loc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.loc-grid figure{margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;background:var(--panel)}
.loc-grid figure.wide{grid-column:span 2;aspect-ratio:auto}
.loc-grid img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.loc-grid figure:hover img{transform:scale(1.035)}
.loc-revs{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,28px)}
.loc-rev{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:clamp(24px,3vw,36px)}
.loc-rev .stars{color:var(--gold);letter-spacing:.1em}
.loc-rev h3{margin:.7rem 0 .8rem;font-size:clamp(1.3rem,1.15rem + .6vw,1.65rem)}
.loc-rev p{font-size:.95rem}
.loc-rev cite{display:block;margin-top:1rem;font-style:normal;font-size:.8rem;color:var(--muted)}
.faq-head .faq-note{color:var(--muted)}
@media (max-width:760px){.loc-grid{grid-template-columns:1fr 1fr}.loc-revs{grid-template-columns:1fr}}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .team{grid-template-columns:repeat(4,minmax(0,1fr))}
  .proofs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot__grid{grid-template-columns:1fr 1fr}
  .foot__brand{grid-column:1/-1}
}
/* 7 menu items no longer fit a small laptop: burger menu below 1180px (2 Nov 2026) */
@media (max-width:1180px){
  .navlinks,.navbar .nav-cta{display:none}
  .menu-btn{display:block}
}
@media (max-width:960px){
  .navlinks,.navbar .nav-cta{display:none}
  .menu-btn{display:block}
  .split,.feature-rev,.tstory,.faq,.seo-lead,.enquire .wrap{grid-template-columns:1fr}
  .split--rev>:first-child,.tstory:nth-child(even) .tstory__imgs{order:0}
  .offer{grid-template-columns:1fr;gap:44px}
  .offer__item:nth-child(2){margin-top:0}
  .offer__item .ph{aspect-ratio:4/3.6}
  .seo-two{grid-template-columns:1fr}
  .sticky-cta{display:flex}
  .split>[style*="sticky"]{position:static!important}
  .cx-wrap .toggle{position:sticky;top:74px;z-index:5;margin-bottom:20px}
  .cx-wrap .toggle__hint{display:none}
  .js .cx-wrap .toggle.reveal{opacity:1;transform:none}
  .hero__grid{grid-template-columns:1fr}
  .hero__meta{flex-direction:row;align-items:center;justify-content:space-between;margin-top:8px}
  .hero__place{display:none}
  .head--split{grid-template-columns:1fr}
}
@media (max-width:640px){
  body{font-size:1rem}
  .proofbar{justify-content:flex-start;font-size:.74rem}
  .proofbar .hide-sm{display:none}
  .navbar .wrap{height:66px}
  .brand img{height:31px}
  .site-head.scrolled{transform:translateY(-38px)}
  .hero{min-height:max(600px,100svh)}
  .hero h1{font-size:clamp(2.55rem,10.5vw,3.3rem)}
  .hero .kicker::before,.phero .kicker::before{inset:-14px -16px;background:radial-gradient(60% 60% at 50% 50%,rgba(18,15,12,.62) 0%,rgba(18,15,12,.55) 70%,rgba(18,15,12,0) 100%)}
  .hero .btns .btn{flex:1 1 100%}
  .phero .btns .btn{flex:1 1 100%}
  .duo{padding-left:8%;padding-bottom:20%}
  .team{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps,.proofs{grid-template-columns:1fr}
  .jrow,.jrow--gal,.jrow--sig{--h:clamp(96px,27vw,128px);gap:6px}
  .jrow>figure,.jrow>a{border-radius:8px}
  .hero::after,.phero::after{background:linear-gradient(180deg,rgba(20,17,14,.55) 0%,rgba(20,17,14,.2) 30%,rgba(20,17,14,.45) 55%,rgba(20,17,14,.85) 100%)}
  .sigwall{columns:2;column-gap:8px}
  .sigwall figure{margin-bottom:8px}
  .sig-lead{aspect-ratio:4/3}
  #enquiryForm{grid-template-columns:1fr}
  .field.half{grid-column:1/-1}
  .menu-aside{display:none}
  .menu__row--pop{margin-inline:-10px;padding-inline:10px}
  .foot__grid{grid-template-columns:1fr 1fr}
  .tstory__imgs{--n:2!important}
  .tstory__imgs .ph:nth-child(3){display:none}
  .faq-list .ans{padding-right:0}
  .rail{padding-inline:20px;margin-inline:-20px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none}
  .js .reveal-img{clip-path:none}
  .marquee__track{animation:none}
  .hero__slide img{transform:none}
}

/* ===================== RESPONSIVE IMAGES (build wraps <img> in <picture>) ===================== */
picture{display:contents}

/* ===================== JOURNAL (index, posts, planning blocks) ===================== */
.phero__meta{margin-top:1.1rem;font-size:.86rem;color:rgba(255,255,255,.82);letter-spacing:.02em}
.phero__meta span+span::before{content:"·";margin:0 .6em;opacity:.7}
.article{max-width:70ch;margin-inline:auto}
.article>p:first-of-type{font-size:var(--fs-lg);color:var(--ink);line-height:1.6}
.article h2{font-size:var(--h3);margin:2.6rem 0 .9rem;max-width:none}
.article h3{font-size:var(--h4);margin:1.8rem 0 .6rem}
.article p,.article li{color:var(--body)}
.article ul,.article ol{padding-left:1.2em;margin:0 0 1.2em}
.article li{margin:.4em 0}
.article a:not(.btn){text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(148,99,76,.6)}
.article a:not(.btn):hover{text-decoration-color:var(--clay)}
.article figure{margin:2.2rem 0}
.article figure img{width:100%;height:auto;border-radius:var(--r)}
.article figcaption{font-size:.82rem;color:var(--muted);margin-top:.6rem}
.article .art-wide{width:min(100vw - var(--gut)*2,1000px);margin-left:50%;transform:translateX(-50%)}
.art-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,1.4vw,16px);margin:2.2rem 0}
.art-grid figure{margin:0}
.art-grid figure img{aspect-ratio:2/3;object-fit:cover}
.art-grid .wide{grid-column:1/-1}
.art-grid .wide img{aspect-ratio:3/2}
.article .fromline{margin:2rem 0}
.article .ytfacade{margin:2rem 0;border-radius:var(--r);overflow:hidden}
.art-note{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:20px 24px;margin:2rem 0}
.art-note p{margin:0}
.art-note p+p{margin-top:.6em}
.art-cta{margin-top:2.6rem;padding-top:2rem;border-top:1px solid var(--line-strong)}
.art-cta p{font-family:var(--serif);font-size:clamp(1.2rem,1.05rem + .5vw,1.5rem);color:var(--ink);line-height:1.35;margin-bottom:1.2rem}

.jcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.6vw,36px)}
.jcard{display:flex;flex-direction:column;color:inherit}
.jcard .ph{aspect-ratio:4/3}
.jcard__cat{display:block;margin-top:1rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--clay);font-weight:500}
.jcard h3{font-size:clamp(1.2rem,1.05rem + .5vw,1.45rem);margin:.45rem 0 .5rem;line-height:1.25}
.jcard p{color:var(--body);font-size:.95rem;margin:0}
.jcard:hover h3{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.jgroup+.jgroup{margin-top:clamp(56px,7vw,96px)}
.jgroup>.kicker{margin-bottom:1.2rem}

.guides{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,4vw,56px);border-top:1px solid var(--line-strong)}
.guides a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);color:var(--ink);font-family:var(--serif);font-size:clamp(1.05rem,.98rem + .3vw,1.22rem);line-height:1.3}
.guides a small{display:block;font-family:var(--sans);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.25rem}
.guides a .arr{color:var(--clay);flex:none;transition:transform .4s var(--ease)}
.guides a:hover .arr{transform:translateX(4px)}

.plan-block{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px);align-items:start}
.plan-block .near{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:1.4rem;font-size:.92rem}
.plan-block .near a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-strong)}

@media (max-width:900px){
  .jcards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .plan-block{grid-template-columns:1fr}
}
@media (max-width:640px){
  .jcards{grid-template-columns:1fr}
  .guides{grid-template-columns:1fr}
  .art-grid{grid-template-columns:1fr 1fr}
}
.guides--one{grid-template-columns:1fr}

/* =====================================================================
   HERO LEGIBILITY (19 Oct 2026, Ryan: "I can't read the big title most of the time").
   One extra shade layer behind the copy column + a soft text shadow on the type.
   Photos stay visible on the right; the left/bottom where the words sit is dimmed.
   ===================================================================== */
.hero__inner,.phero__inner{z-index:2}
.hero::before,.phero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse 72% 95% at 0% 60%,rgba(16,13,10,.8) 0%,rgba(16,13,10,.66) 38%,rgba(16,13,10,.3) 66%,rgba(16,13,10,0) 92%)}
/* lighter edge scrims than the original ones: keep the photo bright away from the words */
.hero::after,.phero::after{background:linear-gradient(180deg,rgba(16,13,10,.45) 0%,rgba(16,13,10,0) 20%),linear-gradient(0deg,rgba(16,13,10,.42) 0%,rgba(16,13,10,0) 28%)!important}
.hero h1,.phero h1{text-shadow:0 2px 36px rgba(10,8,6,.6),0 1px 4px rgba(10,8,6,.4)}
.hero__sub,.phero__sub,.hero__proof{text-shadow:0 1px 12px rgba(10,8,6,.55)}
@media (max-width:960px){
  .hero::before,.phero::before{background:linear-gradient(180deg,rgba(16,13,10,.38) 0%,rgba(16,13,10,.52) 30%,rgba(16,13,10,.56) 72%,rgba(16,13,10,.48) 100%)}
}

/* two-up video rows (Video + Wellington video pages); stacks with .offer at 960px */
.offer--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:960px){.offer--2{grid-template-columns:1fr}}

/* =====================================================================
   REVIEW WALL (2 Nov 2026). Every client Google review, verbatim, from
   _build/data/google-reviews.json via reviews.py. Long ones clamp with
   "Read more" (v3.js). Friends + associates are never shown.
   ===================================================================== */
.revwall{columns:3 300px;column-gap:clamp(14px,2vw,24px)}
.rw{break-inside:avoid;margin:0 0 clamp(14px,2vw,24px);background:var(--stone);border:1px solid var(--line);border-radius:16px;padding:clamp(22px,2.6vw,32px)}
.rw .stars{color:var(--gold);letter-spacing:.1em}
.rw h3{margin:.7rem 0 .8rem;font-size:clamp(1.2rem,1.08rem + .5vw,1.5rem);text-transform:none}
.rw p{font-size:.95rem}
.rw p+p{margin-top:.7em}
.rw cite{display:block;margin-top:1rem;font-style:normal;font-size:.8rem;color:var(--muted)}
.rw__body.is-clamped{max-height:15.5em;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent)}
.rw__more{margin-top:.6rem;padding:0;border:0;background:none;font:inherit;font-size:.84rem;font-weight:500;color:var(--clay);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.revwall.is-js{columns:auto;display:flex;align-items:flex-start;gap:clamp(14px,2vw,24px)}
.revwall__col{flex:1 1 0;min-width:0}
.revwall__foot{margin-top:clamp(18px,2.4vw,28px);text-align:center}


/* =====================================================================
   FILM REEL on home (2 Nov 2026, ported from the guide's "What real Super 8
   looks like" + "A little 35mm"). Super 8 clips are 16:9 film-gate scans.
   ===================================================================== */
.reel__k{font-family:var(--sans);font-size:.7rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:rgba(239,232,220,.62);margin:0 0 14px}
.reel__box{aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:#100d09}
.reel__box video,.reel__box img{width:100%;height:100%;object-fit:cover;display:block}
.reel__feat{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.reel__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.reel__mob{display:none}
.reel35{margin-top:clamp(48px,6vw,80px)}
.jrow--film{--h:clamp(150px,22vw,330px)}
.jrow--film{flex-wrap:nowrap}
.jrow--film::after{display:none}
.jrow--film+.jrow--film{margin-top:12px}
@media (max-width:760px){
  .reel__feat{grid-template-columns:1fr;gap:10px;margin-bottom:10px}
  .reel__grid{grid-template-columns:1fr 1fr;gap:10px}
  .reel__mob{display:block}.reel__desk{display:none}
  .jrow--film{--h:22vw;gap:6px}
  .jrow--film+.jrow--film{margin-top:6px}
  .reel__grid .reel__box:nth-child(8){display:none}
}

/* =====================================================================
   HOME HERO ON DESKTOP (2 Nov 2026, Ryan on a 2560 monitor: the copy sat at
   the bottom with a big empty gap under the nav). From 1200px wide the copy
   is centred in the space below the header instead of pinned to the bottom,
   and the hero stops growing past 920px tall (subpage heroes 780px).
   ===================================================================== */
@media (min-width:1200px){
  .hero{align-items:center;min-height:min(100svh,920px);max-height:none}
  .hero__inner{padding-top:116px;padding-bottom:clamp(40px,5vh,64px)}
  .phero{align-items:center;min-height:clamp(560px,82svh,780px)}
  .phero__inner{padding-top:136px;padding-bottom:clamp(40px,5vh,64px)}
  .phero--short{min-height:clamp(460px,64svh,620px)}
}

/* =====================================================================
   HERO DATE BOX (2 Nov 2026 funnel): "When's your wedding?" -> the form.
   ===================================================================== */
.datehook{margin-top:1.9rem;max-width:520px}
.datehook label{display:block;font-size:.76rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.88);margin-bottom:.7rem;text-shadow:0 1px 12px rgba(0,0,0,.45)}
.datehook__row{display:flex;gap:8px;padding:6px;border-radius:var(--pill);background:rgba(20,17,14,.38);border:1px solid rgba(255,255,255,.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.datehook__row input{flex:1 1 auto;min-width:0;border:0;background:transparent;color:#fff;font:inherit;font-size:1.02rem;padding:0 14px 0 18px;outline:none}
.datehook__row input::placeholder{color:rgba(255,255,255,.62)}
.datehook__row .btn{flex:none}
.datehook__row:focus-within{border-color:rgba(255,255,255,.7)}
.datehook__alt{display:inline-block;margin-top:.9rem;font-size:.9rem;color:rgba(255,255,255,.86);text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(255,255,255,.4);text-shadow:0 1px 10px rgba(0,0,0,.5)}
.datehook__alt:hover{color:#fff}
@media (max-width:640px){
  .datehook__row{flex-direction:column;border-radius:18px;padding:8px}
  .datehook__row input{height:48px;text-align:center;padding:0 12px}
  .datehook__row .btn{width:100%;justify-content:center}
}

/* pricing page: the full-menu bar (2 Nov 2026 funnel) */
.menubar{display:flex;align-items:center;justify-content:space-between;gap:24px 40px;flex-wrap:wrap}
.menubar h2{font-size:clamp(1.8rem,1.4rem + 1.4vw,2.6rem)}
.menubar p{margin-top:.5rem;color:var(--muted)}
.fullmenu[hidden]{display:none}

/* /apply: associate shooter application (3 Nov 2026) */
.applywrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:clamp(32px,5vw,80px);align-items:start}
.applywrap__copy{position:sticky;top:120px}
.applywrap__copy p{margin-top:1rem}
.applywrap__contact a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-strong)}
.formcard{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:clamp(22px,3vw,38px);display:grid;grid-template-columns:1fr 1fr;gap:16px 14px}
.formcard button[type=submit]{grid-column:1/-1;width:100%;min-height:56px;margin-top:6px}
.formcard .chips+input{margin-top:8px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
@media (max-width:860px){.applywrap{grid-template-columns:1fr}.applywrap__copy{position:static}.formcard{grid-template-columns:1fr}.formcard .field.half{grid-column:1/-1}}

/* ===== PUNCH LIST 3 Nov 2026 (Ryan) ===== */
/* home Signature moments: white, editorial (the guide's layout: lake frame across, then two columns) */
.bg-white{background:#fff}
.sig .head{margin-bottom:clamp(40px,5.5vw,76px)}
.sig .head h2{font-size:clamp(2.6rem,1.8rem + 3vw,4.4rem);letter-spacing:-.02em}
.sigx{max-width:1100px;margin-inline:auto;columns:2;column-gap:clamp(10px,1.5vw,20px)}
.sigx figure{margin:0 0 clamp(10px,1.5vw,20px);break-inside:avoid;border-radius:var(--r-sm);overflow:hidden;background:#f3efe8}
.sigx figure:first-child{column-span:all;margin-bottom:clamp(10px,1.5vw,20px)}
.sigx img{width:100%;height:auto;display:block;transition:transform 1.2s var(--ease)}
.sigx figure:hover img{transform:scale(1.03)}
@media (max-width:640px){.sigx{column-gap:8px}.sigx figure{margin-bottom:8px}.sigx figure:first-child{margin-bottom:8px}}
#work{scroll-margin-top:60px}
/* home Palmy SEO note: kept for ranking, read as a quiet sign-off */
.seo-note.sec{padding-block:clamp(56px,6vw,88px)}
.seo-note__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:clamp(24px,5vw,80px);align-items:start}
.seo-note h2{font-size:clamp(1.5rem,1.2rem + 1vw,2.1rem);max-width:18ch}
.seo-note p{font-size:.95rem;color:var(--muted);line-height:1.7}
.seo-note p+p{margin-top:1rem}
.seo-note a{color:var(--body);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-strong)}
@media (max-width:860px){.seo-note__grid{grid-template-columns:1fr}}
/* stacked section head: the long ranking H2 runs across the top, copy in two columns under it (was a 5-line H2 squeezed beside the copy) */
.head--stack h2{max-width:22ch}
.head--stack__copy{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(20px,4vw,64px);margin-top:clamp(22px,2.6vw,34px);align-items:start}
.head--stack__copy .lede{margin:0}
.head--stack__copy p{margin:0}
@media (max-width:860px){.head--stack__copy{grid-template-columns:1fr}}
/* Super 8 clip wall, all 15 discover clips: big tiles at 1 (left), 10 (right), 11 (left) */
.clipwall--15 .ph:nth-child(6){grid-column:auto;grid-row:auto;aspect-ratio:4/3}
.clipwall--15 .ph:nth-child(1),.clipwall--15 .ph:nth-child(11){grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.clipwall--15 .ph:nth-child(10){grid-column:3/5;grid-row:3/5;aspect-ratio:auto}
.clipwall .ph img{width:100%;height:100%;object-fit:cover}
@media (max-width:960px){.clipwall--15 .ph:nth-child(10){grid-column:span 2;grid-row:span 2}}
/* the guide's full-width "Shot on real Super 8 film" band */
.s8band{position:relative;height:min(56.25vw,82vh);overflow:hidden;background:#0d0b09}
.s8band video{width:100%;height:100%;object-fit:cover;display:block}
.s8band::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,16,12,.55),transparent 45%);pointer-events:none}
.s8band__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding-bottom:clamp(22px,4vw,56px)}
.s8band__cap span{font-size:.76rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:rgba(239,232,220,.85)}
/* Investment: the estimator, collapsed under the collections */
.covwrap{max-width:980px;margin:clamp(40px,5vw,64px) auto 0;border:1px solid var(--line);border-radius:var(--r);background:var(--paper)}
.covwrap>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:clamp(18px,2.4vw,28px) clamp(20px,3vw,36px)}
.covwrap>summary::-webkit-details-marker{display:none}
.covwrap>summary .kicker{display:block;margin-bottom:.35rem}
.covwrap>summary b{font-family:var(--serif);font-weight:400;font-size:clamp(1.25rem,1.1rem + .6vw,1.6rem);color:var(--ink)}
.covwrap>summary b em{font-style:italic}
.covwrap__ic{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-strong);display:grid;place-items:center;font-size:1.3rem;color:var(--ink);transition:transform .4s var(--ease)}
.covwrap[open] .covwrap__ic{transform:rotate(45deg)}
.covwrap .covhelp{margin:0 clamp(12px,2vw,24px) clamp(12px,2vw,24px)}
/* Investment: albums + wall art on enquiry */
.enqlist{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,24px);max-width:980px;margin:clamp(28px,3.5vw,44px) auto 0}
.enqlist>div{border:1px solid var(--line);border-radius:var(--r);padding:clamp(18px,2.2vw,26px);background:var(--paper)}
.enqlist b{display:block;font-family:var(--serif);font-weight:400;font-size:1.3rem;color:var(--ink);margin-bottom:.4rem}
.enqlist span{color:var(--body);font-size:.95rem}
.cx-fine.center{text-align:center}
@media (max-width:760px){.enqlist{grid-template-columns:1fr}}
#who{scroll-margin-top:90px}
[data-sec="who"] .who{margin-top:0}
/* inside the collapsed wrapper the summary already carries the heading */
.covwrap .covhelp{border:0;background:transparent;padding-top:0;margin:0}
.covwrap .covhelp__head h3{display:none}
.covwrap .covhelp__head{justify-content:flex-start}
.menu-open .menu-sheet nav a:nth-child(8){transition-delay:.28s}
/* payment plan card (3 Nov 2026: the one-line version read clunky) */
.plan{margin-top:clamp(40px,5vw,64px);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px clamp(28px,5vw,72px);align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:clamp(24px,3.2vw,40px) clamp(24px,3.6vw,48px)}
.plan h3{font-size:clamp(1.45rem,1.2rem + .9vw,1.9rem)}
.plan h3 em{font-style:italic}
.plan__copy p{margin-top:.6rem;color:var(--body);max-width:40ch}
.plan__nums{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,32px)}
.plan__nums>div{border-left:1px solid var(--line-strong);padding-left:clamp(14px,1.6vw,22px)}
.plan__nums b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(2rem,1.6rem + 1.4vw,2.8rem);line-height:1;color:var(--ink)}
.plan__nums span{display:block;margin-top:.5rem;font-size:.84rem;line-height:1.45;color:var(--muted)}
.plan__fine{grid-column:1/-1;margin:0;font-size:.78rem;color:var(--muted);text-align:right}
@media (max-width:760px){.plan{grid-template-columns:1fr}.plan__fine{text-align:left}}

/* ===== DEEP AUDIT (4 Nov 2026) ===== */
/* Same-colour neighbours read as one hole when both paddings stack (~260px of nothing). Keep one gap. */
.sec:not([class*="bg-"]):not(.enquire) + .sec:not([class*="bg-"]):not(.enquire):not(.sec--flush-top),
.bg-paper + .bg-paper:not(.sec--flush-top), .bg-panel + .bg-panel, .bg-night + .bg-night{padding-top:calc(var(--sec) * .3)}
/* phone numbers and emails never break mid-number */
a[href^="tel:"], a[href^="mailto:"]{white-space:nowrap}
.nw{white-space:nowrap}
/* small fixed photo sets: last row fills the width instead of stopping short */
.jrow--fill::after{display:none}
.seo-two h2{margin-bottom:.7em}
@media (min-width:900px){.seo-two h2{min-height:2.3em}}
.filmboxes--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:860px){.filmboxes--2{grid-template-columns:1fr}}
.enquire__contact .sep{margin:0 .7em;opacity:.6}
@media (max-width:480px){.enquire__contact a{display:table}.enquire__contact a+a{margin-top:6px}.enquire__contact .sep{display:none}}
/* phones: the 7th crew member sits centred under the others instead of alone on the left */
@media (max-width:640px){.team>:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:calc(50% - 7px)}}
/* hero kickers: no blurred dark patch behind them (4 Nov, Ryan: "the shadow looks tacky"); a soft text shadow only.
   The hero shade + per-slide dimming already carry the legibility. */
.hero .kicker::before,.phero .kicker::before{display:none!important}
.hero .kicker,.phero .kicker{text-shadow:0 1px 2px rgba(10,8,6,.3),0 0 16px rgba(10,8,6,.3)}

/* 14 Nov 2026: ported from selah-website-v3 (Ryan 12 Nov: "i dont like the drop shadow on the hero text") */
.hero h1,.phero h1,.hero__sub,.phero__sub,.hero__proof,.hero .kicker,.phero .kicker,.hero__meta,.hero__place,.phero__meta,.datehook label,.datehook__alt{text-shadow:none!important}
