/* self-hosted fonts (were Google Fonts; render-blocking) */
@font-face {
  font-family: 'Albert Sans';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/AlbertSans-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Albert Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/AlbertSans-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Albert Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/AlbertSans-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Libre Caslon Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/LibreCaslonDisplay-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Libre Caslon Text';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/LibreCaslonText-400i.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Libre Caslon Text';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/LibreCaslonText-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Beachy Photo and Film · blue mist + Libre Caslon */
:root{--bg:#edf0f1;--bg2:#e1e6e9;--ink:#1d2328;--soft:#596067;--rule:#cbd2d7;--deep:#1f2830;--ondeep:#edf0f1;--ondeep2:#9ba6ae;--acc:#5d7385;
--disp:'Libre Caslon Display',Georgia,serif;--it:'Libre Caslon Text',Georgia,serif;--sans:'Albert Sans',system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:300 15px/1.8 var(--sans)}
img,video{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.lab{font:500 10px/1.5 var(--sans);letter-spacing:.3em;text-transform:uppercase}
.soft{color:var(--soft)}.dim{color:var(--ondeep2)}
.disp{font-family:var(--disp);font-weight:400;letter-spacing:-.015em}
.it{font-family:var(--it);font-style:italic;letter-spacing:0;text-transform:none}
.acc{color:var(--acc)}
.wrap{max-width:1360px;margin:0 auto;padding-inline:clamp(16px,4vw,60px)}
.body{color:var(--soft);font-size:16px;max-width:560px}
.center{text-align:center;margin-top:44px}
.link{border-bottom:1px solid currentColor;padding-bottom:4px}
.btn{display:inline-block;font:500 10px/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;border:1px solid currentColor;padding:19px 34px;transition:background .5s ease,color .5s ease}
.btn:hover{background:var(--ink);color:var(--bg)}
.invest .btn:hover,.band .btn:hover,.faith .btn:hover{background:var(--ondeep);color:var(--deep)}
.btn.ghost{border-color:transparent;text-decoration:underline;text-underline-offset:6px}

/* nav */
#nav{position:fixed;inset:0 0 auto;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:22px clamp(16px,4vw,60px);color:var(--ink);background:color-mix(in srgb,var(--bg) 94%,transparent);border-bottom:1px solid var(--rule);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .6s ease,color .6s ease,border-color .6s ease,padding .6s ease}
#nav .l,#nav .r{display:flex;gap:30px;align-items:center}
#nav .r{justify-content:flex-end}
#nav a[aria-current]{border-bottom:1px solid currentColor}
#nav .cta{border-bottom:1px solid currentColor;padding-bottom:3px}
.mark{text-align:center;font:400 21px/1 var(--disp);letter-spacing:.32em;text-transform:uppercase;padding-left:.32em;transition:opacity .6s ease}
.mark small{display:block;font:italic 11px/1 var(--it);letter-spacing:.06em;text-transform:none;margin-top:6px;padding-right:.32em}
body.over #nav:not(.solid){background:transparent;border-color:transparent;color:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}
body.over #nav:not(.solid) .mark{opacity:0}
.burger{display:none}
.sheet{position:fixed;inset:0;z-index:19;background:var(--bg);display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .5s ease}
.sheet .in{display:flex;flex-direction:column;gap:22px;text-align:center;font:400 34px/1.1 var(--disp)}
body.menu .sheet{opacity:1;pointer-events:auto}
body.menu #nav{color:var(--ink)!important}
body.menu #nav .mark{opacity:1!important}
@media(max-width:860px){#nav{grid-template-columns:1fr auto 1fr}#nav .l,#nav .ig{display:none}#nav .r{display:none}.burger{display:block;justify-self:end;grid-column:3}#nav .mark{grid-column:2}}
body.plain{padding-top:84px}

/* hero (home) */
.hero{position:relative;height:100svh;min-height:600px;background:#111;overflow:hidden}
.hero video{opacity:0;animation:in 2.6s ease .2s forwards}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.28),rgba(0,0,0,0) 30%,rgba(0,0,0,0) 60%,rgba(0,0,0,.35))}
.heromark{position:absolute;inset:auto 0 clamp(38px,7vh,80px);z-index:2;text-align:center;color:#fff;padding-inline:16px}
.heromark h1{font:400 clamp(66px,12.5vw,196px)/.82 var(--disp);letter-spacing:.04em;text-transform:uppercase;opacity:0;animation:in 2.4s ease 1s forwards}
.heromark .sub{display:block;font:italic clamp(20px,2.4vw,34px)/1 var(--it);margin-top:clamp(10px,1.4vw,18px);opacity:0;animation:in 2.2s ease 1.4s forwards}
.heromark p{margin-top:26px;opacity:0;animation:in 2s ease 1.9s forwards}
.credit{position:absolute;right:clamp(16px,4vw,60px);top:50%;z-index:2;color:#fff;writing-mode:vertical-rl;transform:translateY(-50%);opacity:.8}
@keyframes in{to{opacity:1}}
@media(max-width:860px){.heromark h1{font-size:23vw}.credit{display:none}}

/* home sections */
.statement{padding-block:clamp(110px,15vw,210px) clamp(90px,11vw,150px)}
.statement .grid{display:grid;grid-template-columns:3fr 7fr 2fr;gap:24px}
.statement h2{font-size:clamp(38px,5.4vw,82px);line-height:1.04}
.statement .body{margin-top:44px}
.statement .side{border-top:1px solid var(--rule);padding-top:14px;color:var(--soft);align-self:start}
.verse{margin-top:56px;padding-top:22px;border-top:1px solid var(--rule);max-width:520px;color:var(--soft)}
.verse span{font:italic 19px/1.5 var(--it);color:var(--ink);display:block;margin-bottom:8px}
@media(max-width:860px){.statement .grid{grid-template-columns:1fr}}
.duo{display:grid;grid-template-columns:repeat(12,1fr);gap:20px;padding-bottom:clamp(110px,13vw,180px)}
.duo .a{grid-column:2/6}.duo .a .frame{aspect-ratio:3/4;overflow:hidden}
.duo .b{grid-column:7/12;margin-top:12%}.duo .b .frame{aspect-ratio:4/5;overflow:hidden}
.duo h3,.duo2 h3{font-size:30px;line-height:1.15;margin:22px 0 6px}
.duo p,.duo2 p{color:var(--soft);max-width:380px}
@media(max-width:860px){.duo .a{grid-column:1/11}.duo .b{grid-column:3/13;margin-top:48px}}
.feature{background:var(--bg2);padding-block:clamp(100px,12vw,170px)}
.feature .head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--rule);padding-bottom:18px;margin-bottom:52px;gap:16px;flex-wrap:wrap}
.feature h2{font-size:clamp(42px,6vw,96px);line-height:.95}
.fpair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,1.6vw,24px);margin:clamp(40px,5vw,72px) auto 0;max-width:980px}
.fpair figure{aspect-ratio:4/5;overflow:hidden;position:relative}
.fpair figcaption{position:absolute;left:14px;bottom:12px;color:#fff}
.index{padding-block:clamp(100px,12vw,170px)}
.index h2{font-size:clamp(40px,5vw,78px);line-height:1;margin:18px 0 56px}
.row{display:grid;grid-template-columns:70px 1.4fr 1fr 1fr 120px;gap:20px;align-items:center;border-top:1px solid var(--rule);padding:22px 0}
.row:last-of-type{border-bottom:1px solid var(--rule)}
.row .name{font-size:clamp(24px,2.6vw,38px);line-height:1.1;transition:color .8s ease}
.row:hover .name{color:var(--acc)}
.row .lab{color:var(--soft)}.row .go{text-align:right}
.index .more{margin-top:40px}
@media(max-width:860px){.row{grid-template-columns:40px 1fr;gap:4px 14px}.row>span:nth-child(3),.row>span:nth-child(4){grid-column:2}.row .go{display:none}}
.words{padding-block:clamp(90px,12vw,170px)}
.words blockquote{font-size:clamp(30px,4.2vw,62px);line-height:1.12;max-width:1050px;margin-top:34px}
.words cite{display:block;margin-top:30px;font-style:normal;color:var(--soft)}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:clamp(70px,9vw,120px);border-top:1px solid var(--rule);padding-top:28px}
.three p{font:400 18px/1.5 var(--it)}
.three span{display:block;margin-top:14px;color:var(--soft)}
@media(max-width:860px){.three{grid-template-columns:1fr}}

/* dark investment band */
.invest{background:var(--deep);color:var(--ondeep);padding-block:clamp(110px,13vw,190px)}
.invest .grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,96px);align-items:end}
.invest .grid2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:end}
.invest .img{aspect-ratio:3/4;overflow:hidden}
.invest h2{font-size:clamp(36px,4.6vw,70px);line-height:1.04;margin-top:24px}
.invest .body{color:var(--ondeep2)}
.invest dl{display:grid;grid-template-columns:auto 1fr;gap:16px 40px;margin:40px 0 44px;border-top:1px solid rgba(255,255,255,.14);padding-top:28px}
.invest dt{color:var(--ondeep2);font:500 10px/2.4 var(--sans);letter-spacing:.3em;text-transform:uppercase}
.invest dd{font:400 20px/1.35 var(--it)}
@media(max-width:860px){.invest .grid,.invest .grid2{grid-template-columns:1fr}.invest dl{grid-template-columns:1fr;gap:4px}.invest dd{margin-bottom:14px}}

/* closing band */
.band{background:var(--deep);color:var(--ondeep);padding-block:clamp(90px,11vw,150px);text-align:center}
.band h2{font-size:clamp(34px,4.4vw,66px);line-height:1.08;margin:22px auto 26px;max-width:900px}
.band .lab{color:var(--ondeep2)}
.dots{display:flex;gap:8px;justify-content:center;margin-bottom:40px}
.dots i{width:11px;height:11px;border-radius:50%;border:1px solid var(--ondeep2)}
.dots i.t{background:var(--ondeep2)}

/* film block */
.film{margin-top:0}
.film .frame{aspect-ratio:2.39/1;overflow:hidden;position:relative;background:#000}
.film .cap{margin-top:14px;display:flex;justify-content:space-between;gap:16px;color:var(--soft)}
.bigplay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:rgba(0,0,0,.14);color:#fff;transition:background .8s ease}
.bigplay:hover{background:rgba(0,0,0,.26)}
.bigplay i{width:76px;height:76px;border:1px solid rgba(255,255,255,.85);border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:13px;padding-left:4px}
@media(max-width:860px){.film .frame{aspect-ratio:16/9}}

/* page heads */
.pagehead{padding-block:clamp(70px,9vw,130px) clamp(50px,6vw,80px)}
.pagehead h1{font-size:clamp(44px,6.4vw,104px);line-height:1;margin-top:18px;max-width:1100px}
.intro{color:var(--soft);font-size:17px;max-width:560px;margin-top:28px}

/* portfolio */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,5vw,72px) clamp(16px,2.4vw,36px);padding-bottom:clamp(90px,11vw,150px)}
.card .frame{aspect-ratio:4/5;overflow:hidden}
.card.wide{grid-column:1/-1}
.card.wide .frame{aspect-ratio:16/9}
.card img{transition:transform 1.6s ease}
.card:hover img{transform:scale(1.02)}
.card .meta{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:18px;flex-wrap:wrap}
.card h3{font-size:clamp(28px,3vw,44px);line-height:1.05}
@media(max-width:860px){.cards{grid-template-columns:1fr}.card.wide .frame{aspect-ratio:4/5}}
.fos{padding-bottom:clamp(90px,11vw,150px);border-top:1px solid var(--rule);padding-top:40px}
.forow{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}
.fo .frame{aspect-ratio:16/9;overflow:hidden;position:relative;background:#000}
.fo .pl,.vr .pl{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:15px}
.fo span.disp{display:block;font-size:26px;margin-top:14px}
@media(max-width:860px){.forow{grid-template-columns:1fr}}

/* wedding page */
.whead{padding-block:clamp(60px,8vw,120px) clamp(40px,5vw,64px);text-align:center}
.whead h1{font-size:clamp(56px,9vw,150px);line-height:.95;margin-top:18px}
.wline{font-size:clamp(18px,1.8vw,24px);color:var(--soft);margin:24px auto 0;max-width:640px}
.wcover{aspect-ratio:3/2;overflow:hidden;max-width:1240px;margin-inline:auto;padding:0}
.wcover img{object-position:50% 35%}
@media(max-width:860px){.wcover{aspect-ratio:4/5;margin-inline:16px}}
.wstory{display:grid;grid-template-columns:3fr 7fr;gap:24px;padding-block:clamp(80px,10vw,140px)}
.wstory .body{font-size:18px;line-height:1.75;max-width:640px}
@media(max-width:860px){.wstory{grid-template-columns:1fr}}
.gallery{padding-block:clamp(90px,11vw,150px) clamp(40px,6vw,80px);display:flex;flex-direction:column;gap:clamp(14px,2vw,28px)}
.gallery .gl{margin-bottom:20px}
.g-wide{aspect-ratio:3/2;overflow:hidden}
.g-pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,28px)}
.g-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,28px)}
.g-pair figure,.g-trio figure{aspect-ratio:2/3;overflow:hidden}
.g-solo{width:min(560px,70%);margin:clamp(30px,5vw,70px) auto}
.g-solo.r{margin-left:auto;margin-right:8%}
.g-solo figure{aspect-ratio:2/3;overflow:hidden}
@media(max-width:860px){.g-trio{grid-template-columns:1fr 1fr}.g-trio figure:nth-child(3){grid-column:1/-1;aspect-ratio:4/5}.g-solo,.g-solo.r{width:86%;margin:20px auto}}
.credits{padding-block:20px 60px}
.credits dl{display:grid;grid-template-columns:repeat(3,auto 1fr);gap:10px 24px;border-top:1px solid var(--rule);padding-top:24px;max-width:900px}
.credits dt{color:var(--soft);padding-top:5px}
.credits dd{font:italic 17px/1.4 var(--it)}
@media(max-width:860px){.credits dl{grid-template-columns:auto 1fr}}
.next{padding-block:40px clamp(90px,11vw,140px);text-align:center}
.next a{display:inline-flex;flex-direction:column;gap:14px}
.next .disp{font-size:clamp(40px,5.6vw,84px);line-height:1}
.next a:hover .disp{color:var(--acc);transition:color .8s ease}

/* sales page */
.phero{padding-block:clamp(50px,6vw,90px) clamp(90px,11vw,150px)}
.pgrid{display:grid;grid-template-columns:6fr 5fr;gap:clamp(32px,6vw,96px);align-items:center}
.ptext h1{font-size:clamp(44px,5.8vw,92px);line-height:1.02;margin-top:18px}
.ptext .btn{margin-top:40px}
.pimg{aspect-ratio:4/5;overflow:hidden}
@media(max-width:860px){.pgrid{grid-template-columns:1fr}.pimg{width:86%;margin-left:auto}}
.incl{padding-block:clamp(100px,13vw,180px)}
.incl h2,.vreviews h2,.steps h2,.adds h2,.faq h2{font-size:clamp(38px,4.8vw,74px);line-height:1.04;margin:18px 0 clamp(50px,6vw,80px);max-width:1000px}
.igrid{display:grid;grid-template-columns:repeat(4,1fr);gap:48px 32px}
.igrid>div{border-top:1px solid var(--rule);padding-top:20px}
.igrid h3{font-size:24px;line-height:1.15;margin:12px 0 8px}
.igrid p{color:var(--soft)}
@media(max-width:1000px){.igrid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.igrid{grid-template-columns:1fr}}
.guar{background:var(--bg2);padding-block:clamp(100px,12vw,170px)}
.ggrid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,96px);align-items:center}
.ggrid h2{font-size:clamp(36px,4.6vw,70px);line-height:1.04;margin:18px 0 28px}
.gimg{aspect-ratio:4/5;overflow:hidden}
@media(max-width:860px){.ggrid{grid-template-columns:1fr}.gimg{width:80%}}
.vreviews{padding-block:clamp(100px,12vw,170px)}
.vgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.vr{text-align:left;display:block}
.vr .frame{aspect-ratio:9/16;overflow:hidden;position:relative;background:var(--deep)}
.vr .frame iframe{width:100%;height:100%;border:0}
.vr span.disp{display:block;font-size:18px;line-height:1.3;margin:16px 0 8px}
@media(max-width:1000px){.vgrid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.vgrid{grid-template-columns:1fr 1fr}}
.steps{padding-block:clamp(40px,6vw,80px) clamp(100px,12vw,170px)}
.steps ol{list-style:none;max-width:900px}
.steps li{display:grid;grid-template-columns:90px 1fr;gap:20px;border-top:1px solid var(--rule);padding:28px 0}
.steps li:last-child{border-bottom:1px solid var(--rule)}
.steps .n{font-size:40px;line-height:1;color:var(--acc)}
.steps h3{font-size:26px;line-height:1.15;margin-bottom:6px}
.steps p{color:var(--soft)}
.adds{background:var(--bg2);padding-block:clamp(100px,12vw,170px)}
.agrid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,96px);align-items:start}
.aimg{aspect-ratio:4/5;overflow:hidden}
.ai{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--rule);padding:26px 0}
.ai:last-child{border-bottom:1px solid var(--rule)}
.ai h3{font-size:26px;line-height:1.15;margin-bottom:8px}
.ai p{color:var(--soft);max-width:460px}
.ai .lab{white-space:nowrap;padding-top:8px}
@media(max-width:860px){.agrid{grid-template-columns:1fr}.aimg{width:80%}}
.faq{padding-block:clamp(40px,6vw,80px) clamp(100px,12vw,170px);max-width:1000px}
.faq details{border-top:1px solid var(--rule);padding:22px 0}
.faq details:last-of-type{border-bottom:1px solid var(--rule)}
.faq summary{font-size:clamp(20px,2vw,26px);line-height:1.3;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px}
.faq summary::after{content:"+";font-family:var(--sans);font-weight:300;color:var(--soft)}
.faq details[open] summary::after{content:"\2212"}
.faq details p{color:var(--soft);margin-top:12px;max-width:720px}

/* about */
.astory{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);padding-block:clamp(40px,6vw,80px) clamp(100px,12vw,170px)}
.astory .body{margin-top:14px}
@media(max-width:860px){.astory{grid-template-columns:1fr}}
.faith{background:var(--deep);color:var(--ondeep);padding-block:clamp(100px,12vw,170px)}
.faith .fgrid{display:grid;grid-template-columns:7fr 5fr;gap:clamp(32px,6vw,96px);align-items:center}
.faith h2{font-size:clamp(36px,4.6vw,70px);line-height:1.06;margin:18px 0 28px}
.faith .body{color:var(--ondeep2)}
.faith .img{aspect-ratio:3/4;overflow:hidden}
@media(max-width:860px){.faith .fgrid{grid-template-columns:1fr}}
.duo2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,64px);padding-block:clamp(100px,12vw,170px);max-width:1100px}
.duo2 .frame{aspect-ratio:3/4;overflow:hidden}
.duo2>div:nth-child(2){margin-top:12%}
@media(max-width:600px){.duo2{grid-template-columns:1fr}.duo2>div:nth-child(2){margin-top:0}}
.aphil{padding-block:clamp(40px,6vw,80px) clamp(100px,12vw,170px)}
.aphil h2{font-size:clamp(32px,4vw,60px);line-height:1.12;max-width:1050px;margin:18px 0 32px}
.fav{display:grid;grid-template-columns:7fr 4fr;gap:clamp(32px,6vw,96px);align-items:end;padding-bottom:clamp(60px,8vw,110px)}
.fav .img{aspect-ratio:3/4;overflow:hidden}
.fav .body{margin-top:14px}
@media(max-width:860px){.fav{grid-template-columns:1fr}.fav .img{width:70%;margin-left:auto}}

/* inquire */
.mini{list-style:none;margin-top:36px;display:flex;flex-direction:column;gap:12px;color:var(--soft)}
.mini b{display:inline-block;width:28px;font:400 20px/1 var(--disp);color:var(--acc)}
.form{display:flex;flex-direction:column;gap:22px;background:var(--bg2);padding:clamp(24px,3.5vw,48px)}
.form .two{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.form label{display:flex;flex-direction:column;gap:8px;font:500 10px/1.4 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--soft)}
.form label span{letter-spacing:.1em;text-transform:none;font-weight:300;font-style:italic}
.form input,.form select,.form textarea{font:300 16px/1.5 var(--sans);color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--rule);padding:8px 0;border-radius:0;outline:none;letter-spacing:0;text-transform:none}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--ink)}
.form fieldset{border:0;display:flex;flex-direction:column;gap:10px}
.form legend{font:italic 17px/1.4 var(--it);margin-bottom:10px}
.form label.r{flex-direction:row;align-items:center;gap:10px;letter-spacing:.06em;text-transform:none;font:300 15px/1.4 var(--sans);color:var(--ink)}
.form .btn{align-self:flex-start;margin-top:8px}
.form .fine{color:var(--soft);font-size:13px}
.form .done{display:none;font-size:26px}
.form.sent>*:not(.done){display:none}.form.sent .done{display:block}
@media(max-width:600px){.form .two{grid-template-columns:1fr}}

/* footer */
.foot{border-top:1px solid var(--rule);padding-block:60px 44px;color:var(--soft)}
.foot .wrap{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px}
.fmark{display:inline-block;text-align:center;font:400 22px/1 var(--disp);letter-spacing:.32em;text-transform:uppercase;color:var(--ink)}
.fmark small{display:block;font:italic 11px/1 var(--it);letter-spacing:.06em;text-transform:none;margin-top:6px}
.f1 p{margin-top:18px;max-width:360px}
.f2,.f3{display:flex;flex-direction:column;gap:12px}
@media(max-width:860px){.foot .wrap{grid-template-columns:1fr}}

.rv{opacity:0;transform:translateY(16px);transition:opacity 1.6s ease,transform 1.6s ease}
.rv.on{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.hero video,.heromark h1,.heromark .sub,.heromark p,.rv{opacity:1;transform:none}}

/* nav alignment: every link sits on the same baseline */
#nav .l a,#nav .r a{padding-bottom:3px;border-bottom:1px solid transparent;line-height:1.5}
#nav a[aria-current],#nav .cta{border-bottom-color:currentColor}

/* sales chapters */
.pagehead.small{padding-block:clamp(110px,13vw,180px) clamp(30px,4vw,50px)}
.pagehead.small h2{font-size:clamp(40px,5.2vw,82px);line-height:1.02;margin-top:18px;max-width:1100px}
.chap{padding-block:clamp(70px,9vw,130px)}
.cgrid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,100px);align-items:center}
.chap.flip .cgrid{grid-template-columns:7fr 5fr}
.chap.flip .ctext{order:2}
.ctext h2{font-size:clamp(34px,4.2vw,64px);line-height:1.06;margin:18px 0 26px}
.cimgs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(12px,1.6vw,22px);align-items:start}
.cimgs figure{aspect-ratio:3/4;overflow:hidden}
.cimgs figure:nth-child(2){margin-top:22%}
.filmch .ctext{max-width:760px}
.tri{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,36px);margin-top:48px}
.tri .frame.tall{aspect-ratio:4/5}
.tri .bigplay i{width:58px;height:58px}
.tri h3{font-size:26px;line-height:1.15;margin:20px 0 8px}
.tri p{color:var(--soft);margin-bottom:10px}
@media(max-width:860px){.cgrid,.chap.flip .cgrid{grid-template-columns:minmax(0,1fr)}.chap.flip .ctext{order:0}.tri{grid-template-columns:1fr}.tri .frame.tall{aspect-ratio:16/10}}

/* reviews with photos */
.rgrid-wrap{padding-block:clamp(100px,12vw,170px)}
.rgrid-wrap h2{font-size:clamp(38px,4.8vw,74px);line-height:1.04;margin:18px 0 clamp(50px,6vw,80px)}
.rgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2.6vw,40px);align-items:start}
.rcard .frame{aspect-ratio:4/5;overflow:hidden;margin-bottom:22px}
.rcard:nth-child(even){margin-top:14%}
.rcard blockquote{font-size:19px;line-height:1.4;margin-bottom:16px}
.rcard .lab{display:block;margin-bottom:12px}
.rgrid-wrap .more{margin-top:50px}
@media(max-width:1000px){.rgrid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.rgrid{grid-template-columns:1fr}.rcard:nth-child(even){margin-top:0}}

/* steps with image */
.sgrid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,100px);align-items:start}
.simg{aspect-ratio:3/4;overflow:hidden;position:sticky;top:110px}
@media(max-width:860px){.sgrid{grid-template-columns:1fr}.simg{position:static;width:80%}}

/* inquire */
.ihero{padding-block:clamp(50px,6vw,90px) clamp(70px,8vw,120px)}
.igrid2{display:grid;grid-template-columns:6fr 5fr;gap:clamp(32px,6vw,96px);align-items:center}
.ihero h1{font-size:clamp(46px,6vw,96px);line-height:1;margin-top:18px}
.icollage{position:relative;aspect-ratio:1/1}
.icollage figure{position:absolute;overflow:hidden}
.icollage .c1{left:0;top:0;width:64%;aspect-ratio:2/3}
.icollage .c2{right:0;bottom:0;width:46%;aspect-ratio:3/4}
@media(max-width:860px){.igrid2{grid-template-columns:1fr}.icollage{aspect-ratio:1/1.05}}
.iform{display:grid;grid-template-columns:4fr 7fr;gap:clamp(32px,6vw,96px);align-items:start;padding-bottom:clamp(90px,11vw,150px)}
.inext ol{list-style:none;margin:20px 0 50px;border-top:1px solid var(--rule)}
.inext li{display:grid;grid-template-columns:44px 1fr;gap:12px;border-bottom:1px solid var(--rule);padding:18px 0}
.inext b{font-size:28px;line-height:1;color:var(--acc);font-weight:400}
.inext h3{font-size:21px;line-height:1.2}
.inext p{color:var(--soft);font-size:14px}
.inext blockquote{font-size:22px;line-height:1.35;margin-bottom:12px}
.ftitle{font-size:clamp(28px,3vw,40px);line-height:1.1;margin-bottom:6px}
@media(max-width:860px){.iform{grid-template-columns:1fr}.inext{order:2}}
.istrip{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.istrip figure{aspect-ratio:3/4;overflow:hidden}
@media(max-width:600px){.istrip{grid-template-columns:repeat(3,1fr)}.istrip figure:nth-child(n+4){display:none}}

/* vimeo boxes */
.vbox .frame{display:block;width:100%;aspect-ratio:9/16;overflow:hidden;position:relative;background:var(--deep)}
.vbox.land .frame{aspect-ratio:16/9}
.vbox .frame iframe{width:100%;height:100%;border:0}
.vbox .lab{display:block;margin-top:12px}
.pl{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:15px;background:rgba(0,0,0,.08);transition:background .6s ease}
.frame:hover .pl{background:rgba(0,0,0,.22)}
.vrow{display:grid;grid-template-columns:minmax(0,360px) 1fr;gap:clamp(32px,6vw,100px);align-items:center;padding-block:clamp(40px,6vw,90px)}
.vtext h3{font-size:clamp(30px,3.6vw,54px);line-height:1.08;margin:16px 0 22px}
@media(max-width:860px){.vrow{grid-template-columns:1fr}.vrow .vbox{width:72%}}
.gvid{margin-top:clamp(50px,6vw,90px);max-width:980px}
.sside{display:flex;flex-direction:column;gap:28px;position:sticky;top:110px}
.sside .simg{position:static}
@media(max-width:860px){.sside{position:static}}
.icollage .c3{position:absolute;left:30%;top:46%;width:30%;aspect-ratio:9/16;overflow:hidden;z-index:2;background:var(--deep);box-shadow:0 0 0 8px var(--bg)}
.icollage .c3 img{width:100%;height:100%;object-fit:cover}
/* hover loops on the three films */
.tri .frame .hov{position:absolute;inset:0;opacity:0;transition:opacity .9s ease}
.tri .frame:hover .hov{opacity:1}
/* reviews on wedding pages + portfolio cards */
.wquote{padding-block:clamp(90px,11vw,150px) 0;max-width:1100px}
.wquote blockquote{font-size:clamp(28px,3.6vw,52px);line-height:1.15;margin:20px 0 22px}
.cq{margin-top:12px;color:var(--soft);font-size:16px;max-width:520px}
.cq .lab{margin-left:8px}
.ffr{padding-block:clamp(90px,11vw,150px) clamp(30px,4vw,60px)}
.ffgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.8vw,26px);margin-top:20px}
.ffgrid figure{aspect-ratio:16/9;overflow:hidden}
.ffgrid figure:nth-child(3n+1){grid-column:1/-1;aspect-ratio:2.39/1}
@media(max-width:600px){.ffgrid{grid-template-columns:1fr}.ffgrid figure:nth-child(3n+1){grid-column:auto;aspect-ratio:16/9}}
/* punchy reviews */
.pq{font-size:clamp(30px,4vw,58px);line-height:1.12;margin:20px 0 18px}
.pqs{font-size:clamp(22px,2vw,28px);line-height:1.25;margin-bottom:14px}
details.full{margin-top:14px}
details.full summary{cursor:pointer;list-style:none;color:var(--acc);display:inline-block;border-bottom:1px solid currentColor;padding-bottom:3px}
details.full summary::-webkit-details-marker{display:none}
details.full[open] summary{margin-bottom:12px}
details.full p{color:var(--soft);max-width:640px;font-size:15px}
.ftag{position:absolute;left:14px;top:14px;color:#fff;background:rgba(0,0,0,.28);padding:6px 10px}
.card .frame{position:relative}
.g-film{aspect-ratio:2.39/1;overflow:hidden;position:relative;background:#000;margin-block:clamp(16px,3vw,44px)}
.g-film figcaption{position:absolute;left:14px;bottom:12px;color:#fff;opacity:.85}
@media(max-width:860px){.g-film{aspect-ratio:16/9}}
.inext li{align-items:center}
/* ceremony / vows / speeches: one player, three tabs, one moment at a time */
.story{margin-top:48px}
.sframe{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--deep)}
.sframe video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}
.sframe video.on{opacity:1}
.scap{position:absolute;left:20px;bottom:16px;color:#fff;opacity:.85}
.stabs{display:grid;align-items:start;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,36px);margin-top:28px}
.stab{all:unset;cursor:pointer;display:block;opacity:.5;transition:opacity .5s ease}
.stab.on,.stab:hover{opacity:1}
.stab h3{font-size:26px;line-height:1.15;margin:8px 0 8px}
.stab p{color:var(--soft);font-size:15px}
.sbar{display:block;height:1px;background:var(--rule);margin-top:16px;position:relative}
.sbar b{position:absolute;left:0;top:0;height:1px;width:0;background:currentColor}
.stab.on .sbar b{width:100%;transition:width var(--dur,12s) linear}
@media(max-width:860px){.sframe{aspect-ratio:4/5}.stabs{grid-template-columns:1fr;gap:18px}.stab p{display:none}.stab h3{font-size:22px;margin:4px 0 0}}
/* conversion: phone nav CTA, hero date line, venues, steps, mid-page prompt, fit list */
.mcta{display:none}
@media(max-width:860px){.mcta{display:block;grid-column:1;grid-row:1;justify-self:start;font-size:8.5px;letter-spacing:.12em;border-bottom:1px solid currentColor;padding-bottom:3px;white-space:nowrap}}
body.over #nav:not(.solid) .mcta{color:#fff}
.heromark .herocta{display:inline-block;margin-top:22px;color:#fff;border-bottom:1px solid rgba(255,255,255,.6);padding-bottom:4px;opacity:0;animation:in 2s ease 2.3s forwards}
.venues{padding-block:clamp(90px,11vw,150px) 0}
.venues h2{font-size:clamp(34px,4.2vw,64px);line-height:1.06;margin:18px 0 40px;max-width:900px}
.vlist{border-top:1px solid var(--rule)}
.vrow{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:22px 0;border-bottom:1px solid var(--rule);transition:padding .6s ease}
.vrow .disp{font-size:clamp(24px,2.6vw,38px);line-height:1.1}
.vrow:hover{padding-left:12px}
.vnote{margin-top:26px;color:var(--soft)}
@media(max-width:860px){.vrow{flex-direction:column;gap:6px}}
.three-steps{list-style:none;margin:30px 0 36px;padding:0;display:grid;gap:12px}
.three-steps li{display:flex;gap:16px;align-items:baseline;color:var(--ondeep2)}
.three-steps b{font-weight:400;font-size:22px;color:var(--ondeep);min-width:16px}
.pnudge{display:flex;justify-content:space-between;align-items:center;gap:24px;border-block:1px solid var(--rule);padding-block:28px;margin-top:clamp(60px,8vw,110px)}
.pnudge p{font:clamp(20px,2vw,28px)/1.3 var(--disp)}
@media(max-width:860px){.pnudge{flex-direction:column;align-items:flex-start}}
.fit{padding-block:clamp(90px,11vw,150px) clamp(30px,4vw,60px);max-width:1000px}
.fit h2{font-size:clamp(34px,4.2vw,64px);line-height:1.06;margin:18px 0 30px}
.fitl{list-style:none;padding:0;margin:0 0 40px;counter-reset:f}
.fitl li{counter-increment:f;font:clamp(20px,2vw,28px)/1.35 var(--disp);padding:20px 0;border-bottom:1px solid var(--rule);display:flex;gap:22px}
.fitl li::before{content:"0" counter(f);font:500 10px/2.6 var(--sans);letter-spacing:.3em;color:var(--soft)}
/* flow: home -> weddings -> inquire */
.bsub{margin-top:22px}
.plinks{display:flex;gap:28px;flex-wrap:wrap}
.incl{padding-block:clamp(90px,11vw,150px)}
.incl h2{font-size:clamp(34px,4.2vw,64px);line-height:1.06;margin:18px 0 40px;max-width:900px}
.ilist{list-style:none;padding:0;margin:0 0 44px;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(16px,2vw,30px);border-top:1px solid var(--rule)}
.ilist li{padding-top:22px}
.ilist h3{font-size:22px;line-height:1.15;margin:12px 0 10px}
.ilist p{color:var(--soft);font-size:14px;line-height:1.7}
@media(max-width:860px){.ilist{grid-template-columns:1fr;gap:0}.ilist li{padding:18px 0;border-bottom:1px solid var(--rule)}.ilist p{font-size:14px}}
/* nav: Check your date as an outlined box, filled on hover */
#nav .r .cta{border:1px solid currentColor;padding:11px 18px 10px;transition:background .5s ease,color .5s ease,border-color .5s ease}
#nav .r .cta:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
body.over #nav:not(.solid) .r .cta:hover{background:#fff;color:var(--ink);border-color:#fff}
@media(max-width:860px){.mcta{border:1px solid currentColor!important;padding:7px 7px 6px!important;font-size:8px!important;letter-spacing:.08em!important}}
/* nav date button: filled blue, smaller, text on the same baseline as the other links */
#nav .r{align-items:baseline}
#nav .r .cta,body.over #nav:not(.solid) .r .cta{background:var(--acc);color:#fff;border:0;border-bottom:1px solid transparent;padding:5px 13px 5px;line-height:1.5;margin-block:-5px}
#nav .r .cta:hover,body.over #nav:not(.solid) .r .cta:hover{background:var(--deep);color:#fff}
@media(max-width:860px){.mcta,body.over #nav:not(.solid) .mcta{background:var(--acc);color:#fff!important;border:0!important;padding:6px 8px 5px!important}}
/* film-only portfolio cards: the whole cinematic frame, never cropped */
.card.film{grid-column:1/-1}
.card.film .frame{aspect-ratio:2.39/1}
@media(max-width:860px){.card.film .frame{aspect-ratio:2.39/1}}
/* homepage reviews: staggered photo cards */
.rwall{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:clamp(18px,3vw,48px);margin-top:clamp(60px,8vw,110px);align-items:start}
.rw .rimg{overflow:hidden;margin-bottom:22px}
.rw img{width:100%;height:100%;object-fit:cover}
.rw0 .rimg{aspect-ratio:4/5}
.rw1{margin-top:clamp(40px,7vw,120px)}
.rw1 .rimg{aspect-ratio:4/5}
.rw2 .rimg{aspect-ratio:16/10}
.rw2{margin-top:clamp(0px,2vw,24px)}
.rw blockquote{font-size:clamp(20px,1.8vw,26px);line-height:1.3;margin-bottom:14px}
.rw figcaption .link{margin-left:4px}
@media(max-width:860px){.rwall{grid-template-columns:1fr;gap:56px}.rw1,.rw2{margin-top:0}.rw0 .rimg,.rw1 .rimg{aspect-ratio:4/5}.rw0{width:78%}.rw1{width:86%;margin-left:auto}}
/* couples' words woven through the galleries */
.g-quote{max-width:920px;margin:clamp(40px,7vw,110px) 0;padding-left:clamp(0px,6vw,90px)}
.g-quote.r{margin-left:auto;text-align:right;padding-left:0;padding-right:clamp(0px,6vw,90px)}
.g-quote blockquote{font:italic clamp(26px,3.2vw,48px)/1.2 var(--it);color:var(--ink);letter-spacing:-.01em}
.g-quote figcaption{margin-top:18px}
.ffgrid .g-quote{grid-column:1/-1;aspect-ratio:auto!important;overflow:visible;max-width:none;margin:clamp(30px,5vw,80px) 0}
@media(max-width:860px){.g-quote,.g-quote.r{padding:0;text-align:left;margin-block:44px}}
/* HoneyBook inquiry form embed */
.hbform{min-height:600px}
.hbform .hbalt{margin-top:22px;font-size:13px;color:var(--soft)}

/* ===== funnel pages: step 2 + price guide ===== */
.funnel #nav{grid-template-columns:1fr auto 1fr}
.fnav .mark{cursor:default}
.fnav .l{display:flex;gap:30px}
@media(max-width:860px){.fnav .l{display:none}.fnav .r{display:none}.fnav .mark{grid-column:2}}
.stars{color:var(--acc);letter-spacing:.18em;font-size:13px}
.small{font-size:13px}
.soft{color:var(--soft)}
.sticky{display:none}
@media(max-width:860px){.sticky{display:block;position:fixed;left:16px;right:16px;bottom:14px;z-index:30;background:var(--acc);color:#fff;text-align:center;padding:16px;font-size:10px;letter-spacing:.24em}.funnel .foot{padding-bottom:90px}}
.ffoot .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
/* step 2 */
.s2hero{display:grid;grid-template-columns:7fr 5fr;gap:clamp(30px,6vw,90px);align-items:center;padding-block:clamp(120px,13vw,170px) clamp(50px,6vw,80px)}
.s2hero h1{font-size:clamp(40px,5vw,76px);line-height:1.02;margin:16px 0 22px}
.s2hero .intro{max-width:560px;margin-bottom:30px}
.s2hero .det{margin-top:18px}
.s2hero .small{margin-top:6px}
.track{list-style:none;padding:0;margin:0 0 28px;display:flex;gap:26px;flex-wrap:wrap}
.track li{display:flex;align-items:center;gap:10px}
.track b{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--acc);font-weight:500;font-size:11px}
.track .done b{background:var(--acc);color:#fff}
.track .now{color:var(--ink)}
.s2img{position:relative;aspect-ratio:4/5;overflow:hidden}
.s2img img{width:100%;height:100%;object-fit:cover}
.s2img .cap{position:absolute;left:16px;bottom:14px;color:#fff}
.frev.mini{margin-top:34px;border-top:1px solid var(--rule);padding-top:22px;max-width:560px}
.frev.mini blockquote{font-size:20px;line-height:1.35;margin:8px 0}
.s2note p{border:1px solid var(--rule);padding:22px 26px;display:flex;gap:16px;align-items:baseline;max-width:900px}
.s2note .cal{color:var(--acc);font-size:20px}
@media(max-width:860px){.s2hero{grid-template-columns:1fr;padding-top:110px}.s2img{order:-1;aspect-ratio:4/3}}
.s2steps,.s2revs,.s2about,.ffaq,.gletter,.gpk,.galways,.gadd,.gtl,.gmore{padding-block:clamp(70px,9vw,120px) 0}
.s2steps h2,.s2revs h2,.ffaq h2,.gpk h2,.gadd h2,.gtl h2,.ghow h2,.s2day h2{font-size:clamp(32px,4vw,58px);line-height:1.06;margin:16px 0 36px;max-width:900px}
.fsteps{list-style:none;padding:0;margin:0 0 36px;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,44px)}
.fsteps li{border-top:1px solid var(--rule);padding-top:20px}
.fsteps .n{font-size:30px;color:var(--acc)}
.fsteps h3{font-size:24px;margin:10px 0 8px}
.fsteps p{color:var(--soft)}
.fsteps.dark{grid-template-columns:repeat(3,1fr)}
.fsteps.dark li{border-color:rgba(255,255,255,.18)}
.fsteps.dark p{color:var(--ondeep2)}
.fsteps.dark .n{color:var(--ondeep2)}
@media(max-width:860px){.fsteps,.fsteps.dark{grid-template-columns:1fr}}
.frevs{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,40px);margin-top:26px;align-items:start}
.frev .rimg{aspect-ratio:4/3;overflow:hidden;margin-bottom:18px}
.frev .rimg img{width:100%;height:100%;object-fit:cover}
.frev blockquote{font-size:clamp(19px,1.6vw,23px);line-height:1.35;margin:10px 0 12px}
@media(max-width:860px){.frevs{grid-template-columns:1fr}}
.s2day,.ghow{background:var(--deep);color:var(--ondeep);padding-block:clamp(80px,10vw,140px);margin-top:clamp(70px,9vw,120px)}
.s2strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0 40px}
.s2strip figure{aspect-ratio:4/5;overflow:hidden}
.s2strip img{width:100%;height:100%;object-fit:cover}
.s2day .btn:hover,.ghow .btn:hover,.gclose .btn:hover{background:var(--ondeep);color:var(--deep)}
@media(max-width:860px){.s2strip{grid-template-columns:1fr 1fr}}
.s2about{display:grid;grid-template-columns:5fr 7fr;gap:clamp(30px,6vw,90px);align-items:center}
.s2about img,.gletter img{width:100%;aspect-ratio:4/5;object-fit:cover}
.s2about h2,.gletter h2{font-size:clamp(34px,4vw,58px);margin:14px 0 20px}
.s2about .body,.gletter .body{margin-bottom:22px;max-width:600px}
@media(max-width:860px){.s2about,.gletter{grid-template-columns:1fr}}
.ffaq{max-width:980px}
.ffaq details{border-top:1px solid var(--rule);padding:22px 0}
.ffaq details:last-of-type{border-bottom:1px solid var(--rule)}
.ffaq summary{font-size:clamp(20px,1.9vw,26px);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px}
.ffaq summary::after{content:"+";color:var(--acc)}
.ffaq details[open] summary::after{content:"–"}
.ffaq details p{margin-top:12px;color:var(--soft);max-width:760px}
/* price guide */
.ghero{padding-block:clamp(120px,13vw,170px) clamp(60px,7vw,100px)}
.ggrid{display:grid;grid-template-columns:7fr 5fr;gap:clamp(30px,6vw,90px);align-items:center}
.ghero h1{font-size:clamp(42px,5.4vw,84px);line-height:1.02;margin:16px 0 24px}
.ghero .intro{max-width:600px;margin-bottom:26px}
.pframe{font-size:clamp(22px,2.2vw,32px);line-height:1.25;margin-bottom:10px;max-width:640px}
.gbtns{margin-top:30px;display:flex;gap:12px;flex-wrap:wrap}
.gimg{position:relative}
.gimg>img{width:100%;aspect-ratio:4/5;object-fit:cover}
.gimg .pol{position:absolute;left:-14%;bottom:-8%;width:44%;aspect-ratio:4/5;overflow:hidden;background:var(--bg);padding:10px}
.gimg .pol img{width:100%;height:100%;object-fit:cover}
@media(max-width:860px){.ggrid{grid-template-columns:1fr}.gimg{order:-1;margin-bottom:30px}.gimg .pol{left:auto;right:-6px;bottom:-24px;width:38%}}
.gletter{display:grid;grid-template-columns:5fr 7fr;gap:clamp(30px,6vw,90px);align-items:center}
.sig{font-size:32px;color:var(--acc)}
.frev.wide{padding-block:clamp(70px,9vw,120px) 0;max-width:1000px}
.frev.wide blockquote,.band2 blockquote{font-size:clamp(26px,3.2vw,46px);line-height:1.18}
.gstrip{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:clamp(70px,9vw,120px)}
.gstrip figure{aspect-ratio:3/4;overflow:hidden}
.gstrip img{width:100%;height:100%;object-fit:cover}
@media(max-width:860px){.gstrip{grid-template-columns:repeat(2,1fr)}.gstrip figure:nth-child(5){display:none}}
.pkgs{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px);align-items:start}
.pkg{border:1px solid var(--rule);padding:clamp(24px,2.6vw,38px);display:flex;flex-direction:column;gap:6px}
.pkg.feat{background:var(--deep);color:var(--ondeep);border-color:var(--deep)}
.pkg.feat .soft,.pkg.feat li{color:var(--ondeep2)}
.phead{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.flag{border:1px solid currentColor;padding:6px 10px;font-size:9px}
.pkg.feat .flag{background:var(--acc);border-color:var(--acc);color:#fff}
.pkg h3{font-size:clamp(30px,2.8vw,42px);margin-top:16px}
.ptag{color:var(--soft);font-family:var(--it);font-style:italic}
.pkg.feat .ptag{color:var(--ondeep2)}
.price{font-size:clamp(34px,3.2vw,48px);margin-top:16px}
.pkg ul{list-style:none;padding:0;margin:20px 0 24px;border-top:1px solid var(--rule)}
.pkg.feat ul{border-color:rgba(255,255,255,.18)}
.pkg li{padding:10px 0;border-bottom:1px solid var(--rule);font-size:14px;line-height:1.5;color:var(--soft)}
.pkg.feat li{border-color:rgba(255,255,255,.12)}
.math{background:rgba(255,255,255,.06);padding:16px 18px;margin-bottom:22px}
.math p:last-child{font-size:14px;line-height:1.6;color:var(--ondeep2);margin-top:6px}
.pkg .btn{text-align:center;margin-top:auto}
.pkg.feat .btn{background:var(--ondeep);color:var(--deep);border-color:var(--ondeep)}
.pkg .btn.ghost{border:1px solid currentColor;text-decoration:none}
@media(max-width:960px){.pkgs{grid-template-columns:1fr}.pkg.feat{order:-1}}
.acards{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px);margin-top:22px}
.acards div{background:var(--bg2);padding:26px}
.acards h3{font-size:22px;margin-bottom:10px}
.acards p{color:var(--soft);font-size:14px}
@media(max-width:860px){.acards{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.acards{grid-template-columns:1fr}}
.gband{background:var(--bg2);padding-block:clamp(70px,9vw,120px);margin-top:clamp(70px,9vw,120px)}
.band2{display:grid;grid-template-columns:5fr 7fr;gap:clamp(30px,5vw,70px);align-items:center}
.band2 .rimg{aspect-ratio:16/10;margin:0}
@media(max-width:860px){.band2{grid-template-columns:1fr}}
.addon{display:grid;grid-template-columns:6fr 5fr;gap:clamp(30px,5vw,80px);align-items:center;padding-block:clamp(40px,5vw,70px);border-top:1px solid var(--rule)}
.addon.flip .amedia{order:2}
.amedia{aspect-ratio:16/10;overflow:hidden;background:var(--deep)}
.amedia video,.amedia img{width:100%;height:100%;object-fit:cover}
.addon h3{font-size:clamp(28px,2.8vw,42px);margin:12px 0 4px}
.aprice{font-family:var(--sans);font-size:14px;letter-spacing:.1em;color:var(--acc);margin-left:10px;white-space:nowrap}
.addon .sub{font-family:var(--it);margin-bottom:14px}
.addon .body{margin-bottom:16px}
.perfect{color:var(--ink);margin-bottom:16px}
@media(max-width:860px){.addon{grid-template-columns:1fr}.addon.flip .amedia{order:0}}
.tls{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px)}
.tls h3{font-size:26px;margin-bottom:14px}
.tls dl{display:grid;grid-template-columns:110px 1fr;border-top:1px solid var(--rule)}
.tls dt,.tls dd{padding:11px 0;border-bottom:1px solid var(--rule)}
.tls dt{color:var(--acc);padding-top:15px}
.tls dd{color:var(--soft);font-size:14px}
@media(max-width:860px){.tls{grid-template-columns:1fr}}
.pay{margin:10px 0 44px;border-top:1px solid rgba(255,255,255,.18);padding-top:28px}
.pays{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,44px);margin-top:18px}
.pays h3{font-size:22px;margin-bottom:8px}
.pays p{color:var(--ondeep2);font-size:14px}
@media(max-width:860px){.pays{grid-template-columns:1fr}}
.center{text-align:center}
.mrevs{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,60px);margin-top:26px}
.mrevs blockquote{font-size:clamp(20px,1.9vw,27px);line-height:1.3;margin-bottom:12px}
@media(max-width:860px){.mrevs{grid-template-columns:1fr}}
.gclose{position:relative;margin-top:clamp(80px,10vw,140px);min-height:70vh;display:grid;align-items:end;color:#fff;overflow:hidden}
.gclose img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.62)}
.gclose .wrap{position:relative;padding-block:clamp(60px,8vw,110px)}
.gclose h2{font-size:clamp(40px,5vw,78px);line-height:1.02;margin:16px 0 30px;max-width:900px}
.gclose .btn{color:#fff}
.gclose{min-height:clamp(520px,72vh,820px)}
.s2hero .btn,.gbtns .btn:first-child,.s2steps .btn,.s2about .btn,.ffaq .btn{background:var(--acc);border-color:var(--acc);color:#fff}
.s2hero .btn:hover,.gbtns .btn:first-child:hover,.s2steps .btn:hover,.s2about .btn:hover,.ffaq .btn:hover{background:var(--deep);border-color:var(--deep);color:#fff}
@media(max-width:860px){.s2img{order:0;aspect-ratio:4/3;margin-top:10px}.gimg{order:0;margin:34px 0 20px}}
/* reviews: pull line + readable full quote */
.frev .pull{font-size:clamp(26px,2.6vw,38px);line-height:1.12;margin:12px 0 14px;color:var(--ink)}
.frev blockquote{font:300 15px/1.75 var(--sans);color:var(--soft);margin:0 0 12px}
.frev mark{background:none;color:var(--acc);font-family:var(--it);font-style:italic;font-size:1.08em}
.frev.mini blockquote{font:italic 19px/1.4 var(--it);color:var(--ink)}
.frev.mini mark{font-size:1em}
.frev.wide .pull,.band2 .pull{font-size:clamp(34px,4vw,60px);line-height:1.06}
.frev.wide blockquote,.band2 blockquote{font:300 16px/1.75 var(--sans);max-width:640px}
.mrevs .frev{border-top:1px solid var(--rule);padding-top:22px}
/* add-ons: one label, serif title + price, plain body */
.aprice{font-size:22px;color:var(--acc);margin:4px 0 14px;letter-spacing:0;font-family:var(--disp);margin-left:0}
.addon h3{margin:12px 0 0}
/* payment plan as one quiet line */
.pay{border-top:1px solid rgba(255,255,255,.18);padding-top:26px;margin:6px 0 44px}
.payline{font-size:clamp(20px,2vw,28px);line-height:1.5;margin-top:10px}
.payline i{font-style:normal;color:var(--ondeep2);margin:0 10px}
.payline .it{color:var(--ondeep2)}
.paynote{color:var(--ondeep2);font-size:13px;margin-top:8px}
/* reviews subline + tighter hand-off to the steps on phones */
.rgrid-wrap h2:has(+.rsub){margin-bottom:14px}
.rgrid-wrap .rsub{margin-bottom:clamp(44px,5.5vw,72px)}
@media(max-width:600px){.rgrid-wrap{padding-bottom:56px}.steps{padding-top:0}.sgrid{gap:36px}}
.cimgs figure img{width:100%;height:100%;object-fit:cover}
/* journal + legal */
.jhead{padding-block:clamp(70px,9vw,130px) clamp(30px,4vw,50px);max-width:900px}
.jhead h1{font-size:clamp(40px,5.6vw,84px);line-height:1.02;margin-top:18px}
.pcover{max-width:1200px}.pcover img{aspect-ratio:3/2;height:auto}
.pbody{max-width:760px;padding-block:clamp(40px,6vw,80px) clamp(90px,11vw,150px)}
.pbody p,.pbody li{font-size:18px;line-height:1.75;color:var(--soft);margin-bottom:1.1em}
.pbody h2{font-size:clamp(28px,3vw,40px);line-height:1.1;margin:1.8em 0 .6em;color:var(--ink)}
.pbody a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.pbody ul,.pbody ol{padding-left:1.2em;margin-bottom:1.2em}
.pbody .yt{aspect-ratio:16/9;margin:2em 0}.pbody .yt iframe{width:100%;height:100%;border:0}
.pbody .ptembed{margin:2em 0}
.legal h2{font-size:26px}
.jgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,44px);padding-bottom:clamp(100px,12vw,170px)}
.jcard .frame{aspect-ratio:4/5;overflow:hidden;margin-bottom:16px}.jcard h2{font-size:24px;line-height:1.2;margin-top:8px}
@media(max-width:860px){.jgrid{grid-template-columns:minmax(0,1fr)}}
.lnk .lbtns{display:grid;gap:14px;max-width:420px;margin-top:40px}.lnk .btn{text-align:center}
.vguide{padding-block:clamp(30px,4vw,50px) 0;font-size:17px}.vguide .lab{margin-right:10px}
.pbody .vreal{border-top:1px solid var(--rule);padding-top:24px;margin-top:3em}.pbody .vreal .lab{margin-right:10px}
.pbody .yt button{position:relative;display:block;width:100%;height:100%;border:0;padding:0;background:#000;cursor:pointer}
.pbody .yt button img{opacity:.92}.pbody .yt i{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-style:normal;font-size:30px}
.pkg .phead{flex-direction:column-reverse;align-items:flex-start;gap:12px}
