/* Ashgrove Estate Pools — subpagina's. Bouwt voort op site.css (tokens, header, footer, index, paper, velden).
   Boven de vouw nooit vanuit opacity 0; alles wat beweegt staat er zonder JS gewoon. */

.wrap-n{max-width:1120px}
.h1p{margin:0;font-size:clamp(64px,9.4vw,148px);line-height:.86;font-weight:200;color:var(--paper)}
.h1p em{color:var(--champ-l)}
.lede{margin:0;font-size:19px;line-height:1.65;max-width:470px}
.sec{padding-top:150px}
.sec-dk{background:var(--ink);color:var(--paper)}
.sec-sand{background:var(--sand)}
.k-sl{color:var(--slate)}
.btn-row{display:flex;flex-wrap:wrap;gap:14px 26px;align-items:center;margin-top:36px}
.btn-l{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.btn-l:hover{background:var(--ink);color:var(--paper)}
.tel-l{color:inherit;font-weight:600;text-decoration:none;font-variant-numeric:tabular-nums;letter-spacing:.04em;padding:10px 0;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:background-size .5s var(--settle)}
.tel-l:hover{background-size:0 1px;background-position:100% 100%}
.cap{display:flex;align-items:center;gap:12px;margin:14px 0 0;font-size:13px;color:var(--slate)}
.cap::before{content:"";width:24px;height:1px;background:currentColor;flex:none}
.dk .cap{color:var(--mist)}

/* breadcrumbs */
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px 0;margin:0;padding:0;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.crumbs li{display:flex;align-items:center}
.crumbs li + li::before{content:"";width:18px;height:1px;background:currentColor;opacity:.5;margin:0 12px}
.crumbs a{color:inherit;text-decoration:none;padding:10px 0;opacity:.78;transition:opacity .16s,color .16s}
.crumbs a:hover{opacity:1;color:var(--champ)}
.crumbs [aria-current]{color:var(--champ)}
.dk .crumbs{color:var(--mist)}

/* ---------- page hero: a photographic plate (services, away, areas) ---------- */
.ph{position:relative;min-height:clamp(620px,calc(100svh - 34px),860px);display:flex;flex-direction:column;justify-content:flex-end;background:var(--night);color:var(--paper);overflow:hidden}
.ph-media{position:absolute;inset:0}
.ph-media img{width:100%;height:100%;object-fit:cover;animation:settle 2.4s var(--slow) both}
.ph-shade{position:absolute;inset:0;background:linear-gradient(rgba(18,29,40,.66),rgba(18,29,40,.18) 28%,rgba(18,29,40,.3) 42%,rgba(18,29,40,.8) 66%,rgba(18,29,40,.95))}
.ph-in{position:relative;flex:1;display:flex;flex-direction:column;justify-content:flex-end;padding-top:calc(var(--hdr) + 6px);padding-bottom:54px}
.ph-in > *{flex:none}
.ph-in .crumbs{margin-bottom:auto;padding-bottom:30px}
.ph .k{margin-bottom:26px}
.ph .k,.ph .crumbs,.ph .lede,.ph .h1p{text-shadow:0 1px 18px rgba(18,29,40,.75)}
.ph .k{color:var(--champ-l)}
.ph-foot{display:flex;justify-content:space-between;align-items:end;gap:28px 48px;flex-wrap:wrap;margin-top:40px}
.ph-foot .lede{color:var(--sand)}
.ph-foot .btn-row{margin-top:0}
.ph .edge{margin-top:30px;animation:draw 2.6s var(--slow) .5s both}
.ph-sub{display:block;margin:0 0 22px;font:italic 250 30px/1.2 var(--serif);color:var(--champ-l);letter-spacing:-.01em}

/* ---------- page hero: split monograph (services, about, record, contact) ---------- */
.pm{position:relative;background:var(--night);color:var(--paper);padding-top:calc(var(--hdr) + 26px);overflow:hidden}
.pm-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:70px;align-items:end;min-height:clamp(560px,calc(100svh - 160px),780px)}
.pm-copy{padding-bottom:70px;align-self:stretch;display:flex;flex-direction:column}
.pm-copy .crumbs{margin-bottom:auto;padding-bottom:40px}
.pm-copy .k{margin-bottom:24px}
.pm-copy .lede{color:var(--sand);margin-top:34px}
.pm-fig{margin:0;position:relative;align-self:stretch;min-height:520px}
.pm-fig .pm-img{position:absolute;inset:0 0 0 0;overflow:hidden}
.pm-fig img{width:100%;height:100%;object-fit:cover;animation:settle 2.4s var(--slow) both}
.pm-fig figcaption{position:absolute;left:0;bottom:-34px;transform:translateY(100%)}
.pm-folio{position:absolute;right:calc(100% + 22px);bottom:70px;font:italic 200 120px/.8 var(--serif);color:var(--champ);opacity:.9;pointer-events:none}
.pm + .edge-band{background:var(--night);padding:0 0 70px}

/* hero base line under a monograph hero */
.pm-base .edge{margin:70px 0 0;animation:draw 2.6s var(--slow) .5s both}
.pm-base .cap{margin:14px 0 0;padding-bottom:56px}
.js .edge[data-in]{transition:clip-path 2.2s var(--slow)}
.js .edge[data-in].pre{clip-path:inset(0 100% 0 0)}
.toc-intro{margin:24px 0 46px;max-width:440px;line-height:1.7}
.prop-grid .price-line{margin-top:46px}
.check-out.on{animation:fadeUp .9s var(--slow) both}

/* ---------- page hero: text only (faq, legal) ---------- */
.pt{background:var(--night);color:var(--paper);padding:calc(var(--hdr) + 26px) 0 96px;position:relative;overflow:hidden}
.pt .crumbs{margin-bottom:96px}
.pt .k{margin-bottom:26px}
.pt-row{display:grid;grid-template-columns:1.3fr 1fr;gap:60px;align-items:end}
.pt .lede{color:var(--sand)}
.pt .edge{margin-top:56px;animation:draw 2.6s var(--slow) .4s both}
.pt-meta{margin:22px 0 0;color:var(--mist);font-size:14px;letter-spacing:.04em}

/* ---------- "what we attend to": a two-sided editorial index ---------- */
.att-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:start}
.att-head{position:sticky;top:110px}
.att-head .h2{font-size:84px;line-height:.95}
.att-head p.slate{margin:26px 0 0;max-width:340px;line-height:1.7}
.att-list{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--line);counter-reset:a}
.att-list li{position:relative;display:grid;grid-template-columns:70px 1fr;gap:24px;align-items:baseline;padding:34px 0;counter-increment:a}
.att-list li::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line);transform-origin:left;transition:transform 1.4s var(--slow)}
.js .att-list li.pre:not(.is-in)::before{transform:scaleX(0)}
.js .att-list li.pre{opacity:1;transform:none}
.js .att-list li > *{transition:opacity 1s var(--slow),transform 1s var(--slow)}
.js .att-list li.pre:not(.is-in) > *{opacity:0;transform:translate3d(0,16px,0)}
.att-list .n{font:italic 200 44px/.9 var(--serif);color:var(--bronze)}
.att-list p{margin:0;font:300 30px/1.28 var(--serif);letter-spacing:-.015em}
.att-foot{margin-top:28px}

/* ---------- closing band ---------- */
.close{padding-block:150px 140px;position:relative}
.close-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:end}
.close .h2{font-size:96px;line-height:.92}
.close .lead{max-width:470px}
.close .edge{--c:var(--bronze);margin:56px 0 0}
.rel{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--line)}
.rel li{border-top:1px solid var(--line)}
.rel a{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;min-height:64px;text-decoration:none;font:300 26px/1.2 var(--serif);letter-spacing:-.015em;transition:color .3s,padding .6s var(--settle)}
.rel a svg{width:22px;height:10px;fill:none;stroke:currentColor;stroke-width:1.3;flex:none;opacity:.35;transition:transform .5s var(--settle),opacity .3s}
.rel a:hover{padding-left:12px;color:var(--bronze)}
.rel a:hover svg,.rel a:focus-visible svg{opacity:1;transform:translateX(4px)}
.rel-k{margin:0 0 18px}

/* ---------- ledger: in the proposal / not assumed ---------- */
.ledger{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink)}
.ledger > div{padding:40px 48px 46px 0}
.ledger > div + div{padding:40px 0 46px 48px;border-left:1px solid var(--line)}
.ledger h3{margin:14px 0 0;font:300 40px/1.05 var(--serif);letter-spacing:-.02em}
.ledger p{margin:18px 0 0;color:var(--slate);line-height:1.7;max-width:460px}
.ledger ul{list-style:none;margin:22px 0 0;padding:0}
.ledger li{padding:12px 0;border-top:1px solid var(--line);font-size:16px;line-height:1.5}
.ledger li:last-child{border-bottom:1px solid var(--line)}
.ledger .out li{color:var(--slate)}
.ledger .out li span{background:linear-gradient(var(--bronze),var(--bronze)) 0 55%/0 1px no-repeat;transition:background-size 1.2s var(--slow)}
.ledger.is-in .out li span{background-size:100% 1px}
.price-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 22px;margin:0 0 54px}
.price-line .amt{font:200 112px/.8 var(--serif);letter-spacing:-.04em;font-variant-numeric:lining-nums}
.price-line .amt sup{font-size:.36em;vertical-align:top;position:relative;top:.2em;margin-right:4px;font-weight:300}
.price-line .per{font:italic 300 30px/1 var(--serif);color:var(--bronze)}
.price-line .from{width:100%;margin:0}
.price-note{margin:0;max-width:520px;color:var(--slate);line-height:1.7}

/* ---------- services: table of contents with a swapping plate ---------- */
.toc-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:start}
.toc-plate{position:sticky;top:110px;margin:0}
.toc-plate .tp{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--sand)}
.toc-plate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .9s var(--settle),transform 1.6s var(--slow)}
.toc-plate img.cur{opacity:1;transform:none}
.toc-plate figcaption{display:flex;justify-content:space-between;margin-top:16px}
.toc-plate .tp-n{font:italic 200 34px/1 var(--serif);color:var(--bronze)}
.toc{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--line)}
.toc li{border-top:1px solid var(--line)}
.toc a{display:grid;grid-template-columns:56px 1fr 26px;gap:8px 18px;align-items:baseline;padding:30px 0;text-decoration:none}
.toc a > :not(svg){transition:transform .7s var(--settle),color .3s}
.toc a:hover > :not(svg),.toc a.on > :not(svg){transform:translateX(14px)}
.toc .n{font:italic 200 34px/1 var(--serif);color:var(--bronze);transition:color .3s}
.toc .t{font:250 46px/1.02 var(--serif);letter-spacing:-.025em;transition:color .3s}
.toc .d{grid-column:2;color:var(--slate);line-height:1.6;max-width:430px}
.toc svg{grid-row:1;grid-column:3;width:22px;height:10px;fill:none;stroke:currentColor;stroke-width:1.3;opacity:0;transform:translateX(-8px);transition:opacity .4s,transform .6s var(--settle)}
.toc a:hover svg,.toc a.on svg,.toc a:focus-visible svg{opacity:1;transform:none}
.toc a.on .n{color:var(--ink)}
.toc .thumb{display:none}

/* ---------- services: the proposal sheet unfolds ---------- */
.prop-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:center}
.sheet{position:relative;background:var(--sheet);color:var(--ink);padding:52px 54px 46px;box-shadow:0 50px 90px -46px rgba(18,29,40,.45);transform-origin:50% 0;transition:transform 1.6s var(--slow),opacity 1s var(--slow)}
.js .sheet.pre{transform:perspective(1400px) rotateX(-58deg) translate3d(0,40px,0);opacity:0}
.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.sheet-head img{height:34px;width:auto}
.sheet-title{margin:34px 0 4px;font:250 48px/1.05 var(--serif);letter-spacing:-.025em}
.sheet-meta{margin:0 0 30px;color:var(--slate);font-size:14px}
.sheet dl{margin:0;display:grid;grid-template-columns:200px 1fr;border-top:1px solid var(--line)}
.sheet dt,.sheet dd{margin:0;padding:16px 0;border-bottom:1px solid var(--line)}
.sheet dt{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--slate);padding-top:20px}
.sheet dd{font:300 21px/1.4 var(--serif)}
.sheet .edge{--c:var(--bronze);margin-top:30px}
.sheet-note{margin:14px 0 0;font-size:13px;color:var(--slate)}

/* ---------- services: storm ---------- */
.storm{position:relative;margin-top:150px;background:var(--night);color:var(--paper);overflow:hidden}
.storm-media{position:absolute;inset:0}
.storm-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.7)}
.storm-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,29,40,.94) 0,rgba(18,29,40,.82) 38%,rgba(18,29,40,.2) 75%)}
.storm-in{position:relative;padding-block:150px 140px}
.storm .h2{font-size:96px;line-height:.92;max-width:640px}
.storm .lead{color:var(--sand)}
.storm-ba{display:grid;grid-template-columns:1fr 1fr;max-width:640px;margin-top:50px;border-top:1px solid rgba(201,168,106,.4)}
.storm-ba div{padding:24px 28px 0 0}
.storm-ba div + div{padding-left:28px;border-left:1px solid rgba(201,168,106,.4)}
.storm-ba h3{margin:0;font:italic 250 34px/1 var(--serif);color:var(--champ-l)}
.storm-ba p{margin:12px 0 0;color:var(--mist);line-height:1.65;font-size:15px}

/* ---------- weekly: the week ---------- */
.week-wrap{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.week{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:46px}
.week li{list-style:none;position:relative;padding:22px 0 120px;text-align:center;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--slate)}
.week li + li{border-left:1px solid var(--line)}
.week li .bar{position:absolute;left:50%;bottom:22px;width:1px;height:70px;background:var(--line);transform-origin:bottom}
.week li.on{color:var(--ink)}
.week li.on .bar{width:1px;background:var(--bronze);height:76px}
.week li.on::after{content:"Your day";position:absolute;left:50%;bottom:104px;transform:translateX(-50%);font:italic 300 18px/1 var(--serif);letter-spacing:0;text-transform:none;color:var(--bronze);white-space:nowrap}
.js .week.pre li .bar{transform:scaleY(0)}
.week li .bar{transition:transform 1.2s var(--slow)}
.js .week.pre li.on::after{opacity:0}
.week li.on::after{transition:opacity 1s var(--slow) 1.2s}
.week-note{margin:18px 0 0;font-size:13px;color:var(--slate)}
.week-fig{margin:0}
.week-fig img{width:100%;aspect-ratio:4/5;height:auto;object-fit:cover}

/* ---------- water balance: finishes (tabs) ---------- */
.fin-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:80px;align-items:start}
.fin-tabs{display:flex;flex-direction:column;margin-top:44px;border-bottom:1px solid var(--line)}
.fin-tabs button{display:flex;justify-content:space-between;align-items:baseline;gap:16px;background:none;border:0;border-top:1px solid var(--line);padding:22px 0;min-height:64px;cursor:pointer;text-align:left;font:250 34px/1.1 var(--serif);letter-spacing:-.02em;color:var(--slate);transition:color .3s,padding .6s var(--settle)}
.fin-tabs button .k{color:var(--slate);transition:color .3s}
.fin-tabs button[aria-selected="true"]{color:var(--ink);padding-left:14px}
.fin-tabs button[aria-selected="true"] .k{color:var(--bronze)}
.fin-tabs button:hover{color:var(--ink)}
.fin-panels{position:relative}
.fin-panel{margin:0}
.fin-panel[hidden]{display:none}
.fin-img{overflow:hidden;aspect-ratio:5/4;background:var(--sand)}
.fin-img img{width:100%;height:100%;object-fit:cover}
.fin-panel.show .fin-img img{animation:finIn 1.2s var(--slow) both}
.fin-panel.show p{animation:fadeUp .9s var(--slow) .15s both}
@keyframes finIn{from{clip-path:inset(0 0 0 100%);transform:scale(1.06)}to{clip-path:inset(0);transform:none}}
.fin-panel p{margin:24px 0 0;font:300 26px/1.35 var(--serif);letter-spacing:-.01em;max-width:560px}

/* ---------- equipment: hotspots ---------- */
.hs-wrap{display:grid;grid-template-columns:1.35fr .65fr;gap:60px;align-items:start}
.hs{position:relative;margin:0}
.hs img{width:100%;height:auto}
.hs-dot{position:absolute;width:44px;height:44px;margin:-22px 0 0 -22px;border:0;background:none;cursor:pointer;padding:0}
.hs-dot::before{content:"";position:absolute;inset:14px;border:1px solid var(--paper);background:rgba(18,29,40,.55);transition:transform .5s var(--settle),background-color .3s}
.hs-dot::after{content:"";position:absolute;inset:6px;border:1px solid rgba(244,239,230,.5);animation:pulse 2.8s var(--slow) infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:1}70%,100%{transform:scale(1.15);opacity:0}}
.hs-dot[aria-pressed="true"]::before{background:var(--champ);transform:rotate(45deg)}
.hs-dot:focus-visible{outline-color:var(--champ)}
.hs-list{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--line)}
.hs-list li{border-top:1px solid var(--line);padding:20px 0}
.hs-list h3{transition:color .4s}
.hs-list h3{margin:0;font:250 30px/1.1 var(--serif);letter-spacing:-.02em;display:flex;gap:14px;align-items:baseline}
.hs-list h3 .n{font-style:italic;color:var(--bronze);font-size:22px;width:24px}
.hs-list p{margin:8px 0 0 38px;color:var(--slate);line-height:1.6;font-size:15px}
.hs-list.focus li:not(.on) h3{color:var(--slate)}
.hs-list li.on h3{color:var(--bronze)}
.chain{display:flex;flex-wrap:wrap;align-items:center;gap:14px 0;margin:70px 0 0;padding:0;list-style:none;font:250 34px/1.1 var(--serif);letter-spacing:-.02em}
.chain li{display:flex;align-items:center}
.chain li + li::before{content:"";width:64px;height:8px;margin:0 22px;flex:none;background:linear-gradient(var(--bronze),var(--bronze)) 0 0/86% 1px no-repeat,linear-gradient(var(--bronze),var(--bronze)) 86% 0/1px 8px no-repeat,linear-gradient(var(--bronze),var(--bronze)) 100% 100%/14% 1px no-repeat}
.chain em{color:var(--bronze)}

/* ---------- tile & stone: loupe ---------- */
.lp-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:center}
.loupe{position:relative;margin:0;overflow:hidden;cursor:crosshair}
.loupe img{width:100%;height:auto}
.loupe-lens{position:absolute;left:0;top:0;width:220px;height:220px;pointer-events:none;box-shadow:0 0 0 1px var(--paper),0 30px 60px -20px rgba(0,0,0,.6);background-repeat:no-repeat;opacity:0;transform:scale(.8);transition:opacity .4s var(--settle),transform .5s var(--settle)}
.loupe.on .loupe-lens{opacity:1;transform:none}
.mats{list-style:none;margin:40px 0 0;padding:0}
.mats li{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:20px 0;border-top:1px solid var(--line)}
.mats li:last-child{border-bottom:1px solid var(--line)}
.mats b{font:300 24px/1.2 var(--serif);letter-spacing:-.01em}
.mats span{color:var(--slate);line-height:1.6;font-size:15px}
.hint-fine-only{display:inline}
@media (hover:none),(pointer:coarse){.hint-fine-only{display:none}}

/* ---------- edges: follow the water ---------- */
.flow{position:relative;height:240vh;background:var(--night);color:var(--paper)}
.flow-stick{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
.flow-media{position:absolute;inset:0}
.flow-media img{width:100%;height:100%;object-fit:cover;transform:scale(calc(1.12 - var(--p,0) * .12));transform-origin:50% 40%}
.flow-media::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(18,29,40,.55),rgba(18,29,40,.15) 40%,rgba(18,29,40,.9))}
.flow-in{position:relative;padding-bottom:80px}
.flow .h2{font-size:84px;line-height:.95;max-width:760px}
.flow-line{position:relative;height:8px;margin:44px 0 0;--c:var(--champ)}
.flow-line::before,.flow-line::after,.flow-line i{content:"";position:absolute;background:var(--c)}
.flow-line::before{left:0;top:0;width:86%;height:1px;transform-origin:left;transform:scaleX(min(1,calc(var(--p,0) * 1.6)))}
.flow-line i{left:86%;top:0;width:1px;height:8px;transform-origin:top;transform:scaleY(clamp(0,calc(var(--p,0) * 10 - 5.6),1))}
.flow-line::after{left:86%;right:0;bottom:0;height:1px;transform-origin:left;transform:scaleX(clamp(0,calc(var(--p,0) * 5 - 3),1))}
.flow-steps{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.flow-steps li{transition:transform .8s var(--settle);transform:translate3d(0,10px,0)}
.flow-steps li.lit{transform:none}
.flow-steps h3,.flow-steps p{transition:color .8s var(--settle)}
.flow-steps li:not(.lit) h3,.flow-steps li:not(.lit) p{color:var(--mist)}
.flow-steps h3{margin:0;font:italic 250 32px/1.1 var(--serif);color:var(--champ-l)}
.flow-steps p{margin:10px 0 0;color:var(--sand);line-height:1.6;max-width:320px;font-size:15px}
.flow-cap{margin:14px 0 0;color:var(--mist);font-size:15px;max-width:520px;line-height:1.65}

/* ---------- away: the season ---------- */
.season-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.season{margin-top:46px}
.season-months{display:grid;grid-template-columns:repeat(6,1fr);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--slate);border-bottom:1px solid var(--line);padding-bottom:10px}
.season-weeks{list-style:none;margin:0;padding:18px 0 0;display:grid;grid-template-columns:repeat(26,1fr);gap:4px;align-items:end}
.season-weeks li{height:46px;position:relative;background:linear-gradient(var(--line),var(--line)) 50% 100%/1px 100% no-repeat}
.season-weeks li::after{content:"";position:absolute;left:50%;bottom:0;width:7px;height:7px;margin-left:-3.5px;background:var(--bronze);transform:scale(0) rotate(45deg);transition:transform .6s var(--slow)}
.season-weeks li.tick::after{transform:scale(1) rotate(45deg)}
.season-weeks li.arr{height:80px;background:linear-gradient(var(--champ),var(--champ)) 50% 100%/1px 100% no-repeat}
.season-weeks li.arr::after{background:var(--champ);width:11px;height:11px;margin-left:-5.5px}
.season-legend{display:flex;justify-content:space-between;gap:20px;margin-top:16px;font-size:13px;color:var(--slate)}
.season-legend b{font:italic 300 20px/1 var(--serif);color:var(--bronze);font-weight:300}
.season-fig{margin:0}
.season-fig img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}

.arrive{background:var(--deep);color:var(--paper);padding:150px 0}
.arrive .k{color:var(--champ-l)}
.arrive-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:end}
.arrive .h2{font-size:96px;line-height:.92}
.confirm{list-style:none;margin:0;padding:0;border-bottom:1px solid rgba(201,168,106,.4)}
.confirm li{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:22px 0;border-top:1px solid rgba(201,168,106,.4)}
.confirm b{font:300 32px/1.1 var(--serif);letter-spacing:-.02em}
.confirm span{color:var(--mist);font-size:14px;text-align:right}
.arrive .lead{color:var(--sand)}

.contact-line{position:relative;margin-top:70px}
.cl-track{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.cl-track::before{content:"";position:absolute;left:0;right:0;top:9px;height:1px;background:var(--ink);transform-origin:left;transition:transform 2s var(--slow)}
.js .contact-line.pre .cl-track::before{transform:scaleX(0)}
.cl-node{position:relative;padding:44px 30px 0 0}
.cl-node::before{content:"";position:absolute;left:0;top:4px;width:11px;height:11px;background:var(--paper);border:1px solid var(--ink);transform:rotate(45deg);transition:background-color .6s}
.cl-node.me::before{background:var(--bronze);border-color:var(--bronze)}
.cl-node h3{margin:0;font:250 40px/1 var(--serif);letter-spacing:-.025em}
.cl-node p{margin:12px 0 0;color:var(--slate);line-height:1.6;max-width:300px}
.js .contact-line.pre .cl-node{opacity:0;transform:translate3d(0,14px,0)}
.cl-node{transition:opacity 1s var(--slow),transform 1s var(--slow)}

/* ---------- pool record page ---------- */
.rec-hero .pm-fig img{object-position:50% 70%}
.sample{background:var(--sand);padding:150px 0 140px}
.sample-head{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end;margin-bottom:60px}
.sample-head .h2{font-size:84px;line-height:.95}
.paper-xl{transform:rotate(-.6deg)}
.js .paper-xl.pre{transform:translate3d(0,120px,0) rotate(1.4deg)}
.rec-xl th:nth-child(n+2):nth-child(-n+5),.rec-xl td:nth-child(n+2):nth-child(-n+5){text-align:right}
.rec-xl td:nth-child(-n+5){white-space:nowrap}
.rec-xl td:nth-child(6){min-width:180px}
.rec-xl td:first-child{font-family:var(--serif);font-size:18px}
.rec-xl td,.rec-xl th{transition:background-color .4s var(--settle),clip-path .9s cubic-bezier(.45,0,.2,1),opacity .9s var(--settle)}
.rec-xl .hl{background:rgba(201,168,106,.16)}
.paper-foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:18px;font-size:13px;color:var(--slate)}
.anat{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink);margin-top:10px}
.anat button{display:block;text-align:left;background:none;border:0;border-right:1px solid var(--line);padding:30px 34px 34px 0;cursor:pointer;color:var(--ink);transition:background-color .4s}
.anat button + button{padding-left:34px}
.anat button:last-child{border-right:0}
.anat .k{display:block;margin-bottom:16px}
.anat b{display:block;font:250 36px/1.05 var(--serif);letter-spacing:-.02em}
.anat span.d{display:block;margin-top:14px;color:var(--slate);line-height:1.65}
.anat button[aria-pressed="true"] b{color:var(--bronze)}
.anat button:hover b{color:var(--bronze)}
.deliv{display:grid;grid-template-columns:1.1fr .9fr;gap:0;align-items:center}
.deliv-fig{margin:0}
.deliv-fig img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.copy-sheet{position:relative;z-index:1;margin-left:-120px;background:var(--sheet);padding:44px 46px 40px;box-shadow:0 50px 90px -40px rgba(18,29,40,.5);transition:transform 1.6s var(--slow),opacity 1.2s var(--slow)}
.js .copy-sheet.pre{transform:translate3d(60px,40px,0) rotate(2deg);opacity:0}
.copy-sheet .k{margin-bottom:18px}
.copy-sheet h3{margin:0;font:250 36px/1.1 var(--serif);letter-spacing:-.02em}
.copy-sheet dl{margin:22px 0 0;display:grid;grid-template-columns:110px 1fr;font-size:15px}
.copy-sheet dt,.copy-sheet dd{margin:0;padding:10px 0;border-top:1px solid var(--line)}
.copy-sheet dt{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--slate);padding-top:13px}
.copy-sheet .photos{display:flex;gap:8px;margin-top:18px}
.copy-sheet .photos img{width:84px;height:64px;object-fit:cover}

/* ---------- about ---------- */
.owner-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:start}
.owner-fig{margin:0;position:sticky;top:110px}
.owner-fig img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}
.sig{margin:0;font:250 64px/1 var(--serif);letter-spacing:-.03em}
.sig + .k{margin-top:14px}
.story{margin-top:44px}
.story p{margin:0 0 22px;font-size:18px;line-height:1.75;max-width:600px}
.story p:first-child{font:300 32px/1.35 var(--serif);letter-spacing:-.01em}
.story p:first-child::first-letter{float:left;font-size:3.1em;line-height:.82;margin:.06em .1em 0 0;color:var(--bronze);font-weight:200}
.tech{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--night);color:var(--paper)}
.tech-fig{margin:0;position:relative;min-height:640px}
.tech-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tech-copy{padding:120px 80px 110px}
.tech-name{margin:30px 0 0;font:200 132px/.8 var(--serif);letter-spacing:-.04em;color:var(--paper)}
.tech-name em{color:var(--champ-l)}
.tech-tag{display:flex;gap:10px 26px;flex-wrap:wrap;margin:28px 0 0;padding:16px 0;border-top:1px solid rgba(201,168,106,.35);border-bottom:1px solid rgba(201,168,106,.35);font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--champ)}
.tech-copy p.mist{margin:28px 0 0;line-height:1.75;max-width:460px}
.bounds{display:grid;grid-template-columns:1.25fr .75fr;gap:80px;align-items:end}
.bounds-fig{margin:0}
.bounds-fig img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.check-doc{border:1px solid var(--line);background:var(--sheet);padding:56px 60px}
.check-doc dl{margin:30px 0 0}
.check-doc .row{display:grid;grid-template-columns:220px 1fr;gap:24px;padding:24px 0;border-top:1px solid var(--line)}
.check-doc .row:last-child{border-bottom:1px solid var(--line)}
.check-doc dt{font:300 28px/1.15 var(--serif);letter-spacing:-.015em}
.check-doc dd{margin:0;color:var(--slate);line-height:1.7}
.cred-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:start}

/* ---------- service area ---------- */
.panels{display:flex;gap:10px;height:640px;margin-top:10px}
.panel{position:relative;flex:1 1 0;overflow:hidden;background:var(--night);color:var(--paper);text-decoration:none;transition:flex-grow 1.1s var(--slow)}
.panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.05);transition:transform 1.6s var(--slow),filter .8s var(--settle);filter:saturate(.75) brightness(.8)}
.panel::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(18,29,40,0) 40%,rgba(18,29,40,.85))}
.panel-in{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:28px 26px}
.panel .n{display:block;font:italic 200 30px/1 var(--serif);color:var(--champ-l)}
.panel h3{margin:10px 0 0;font:250 34px/1.02 var(--serif);letter-spacing:-.02em}
.panel p{margin:12px 0 0;max-width:340px;color:var(--sand);font-size:15px;line-height:1.55;opacity:0;transform:translate3d(0,10px,0);transition:opacity .6s var(--settle),transform .8s var(--settle)}
.panel .go{display:inline-flex;margin-top:14px;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--champ);opacity:0;transition:opacity .6s var(--settle) .1s}
.panels .panel:hover,.panels .panel:focus-visible,.panels .panel.open{flex-grow:3}
.panel:hover img,.panel:focus-visible img,.panel.open img{transform:none;filter:none}
.panel:hover p,.panel:focus-visible p,.panel.open p,.panel:hover .go,.panel:focus-visible .go,.panel.open .go{opacity:1;transform:none}
.panel:focus-visible{outline-offset:-4px;outline-color:var(--champ)}
.ns-axis{display:flex;justify-content:space-between;margin-top:16px;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--slate)}
.ns-axis span{display:flex;align-items:center;gap:14px}
.ns-axis span:first-child::after,.ns-axis span:last-child::before{content:"";width:40px;height:1px;background:currentColor}
.checker{background:var(--sand);padding:130px 0}
.checker-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:90px;align-items:end}
.check-form{display:flex;align-items:end;gap:20px}
.check-form .field{flex:1}
.check-out{min-height:5.2em;margin:26px 0 0;font:300 26px/1.35 var(--serif);letter-spacing:-.01em}
.check-out .ok{color:var(--ink)}
.check-out a{color:inherit}
.setting{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:24px;align-items:start;margin-top:60px}
.setting figure{margin:0}
.setting img{width:100%;height:auto;object-fit:cover}
.setting .s1 img{aspect-ratio:4/3}
.setting .s2{margin-top:120px}
.setting .s2 img{aspect-ratio:3/4}
.setting .s3{margin-top:40px}
.setting .s3 img{aspect-ratio:1/1}
.setting figcaption{margin-top:16px}
.setting figcaption b{display:block;font:300 26px/1.15 var(--serif);letter-spacing:-.015em}
.setting figcaption span{display:block;margin-top:6px;color:var(--slate);font-size:15px;line-height:1.55;max-width:360px}
.js .setting figure.pre{opacity:1;transform:none}
.setting figure img{transition:clip-path 1.5s cubic-bezier(.7,0,.2,1),transform 2s var(--slow)}
.js .setting figure.pre:not(.is-in) img{clip-path:inset(100% 0 0 0);transform:scale(1.06)}

/* ---------- area pages ---------- */
.notes-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:start}
.notes{background:var(--sheet);border-top:1px solid var(--ink);padding:44px 48px 40px;box-shadow:0 40px 80px -50px rgba(18,29,40,.35)}
.notes-top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.notes-top h3{margin:0;font:250 34px/1.1 var(--serif);letter-spacing:-.02em}
.notes ol{list-style:none;margin:0;padding:0}
.notes li{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:22px 0;border-bottom:1px solid var(--line);font:300 23px/1.4 var(--serif);letter-spacing:-.01em}
.notes li .n{font-style:italic;color:var(--bronze);font-size:22px}
.notes li span:last-child{background:linear-gradient(rgba(201,168,106,.28),rgba(201,168,106,.28)) 0 88%/0 .38em no-repeat;transition:background-size 1.4s var(--slow)}
.notes.is-in li span:last-child{background-size:100% .38em}
.notes.is-in li:nth-child(2) span:last-child{transition-delay:.35s}
.notes.is-in li:nth-child(3) span:last-child{transition-delay:.7s}
.notes-note{margin:16px 0 0;font-size:13px;color:var(--slate)}
.notes-side .h2{font-size:72px;line-height:.95}
.notes-side p.slate{margin:24px 0 0;line-height:1.7;max-width:420px}
.notes-fig{margin:44px 0 0}
.notes-fig img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.ask{text-align:left}
.ask-in{display:grid;grid-template-columns:auto 1fr;gap:60px;align-items:start}
.ask-q{margin:0;font:italic 200 104px/.95 var(--serif);letter-spacing:-.035em;max-width:900px}
.ask-mark{font:200 260px/.7 var(--serif);color:var(--champ);margin-top:-10px}
.ask p.slate{margin:36px 0 0;font-size:18px;line-height:1.7;max-width:540px}
.factors{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);margin:60px 0 0;padding:0;border-top:1px solid var(--ink)}
.factors li{padding:26px 24px 0 0;font:250 40px/1 var(--serif);letter-spacing:-.025em}
.factors li + li{padding-left:24px;border-left:1px solid var(--line)}
.factors li span{display:block;margin-top:14px;font:400 14px/1.6 var(--sans);letter-spacing:0;color:var(--slate)}
.scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end}

/* ---------- faq ---------- */
.faq-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:90px;align-items:start}
.faq-nav{position:sticky;top:110px}
.faq-nav ol{list-style:none;margin:22px 0 0;padding:0;border-bottom:1px solid var(--line)}
.faq-nav li{border-top:1px solid var(--line)}
.faq-nav a{display:flex;gap:16px;align-items:baseline;padding:14px 0;min-height:48px;text-decoration:none;color:var(--slate);transition:color .3s,transform .5s var(--settle)}
.faq-nav a .n{font:italic 300 20px/1 var(--serif);color:var(--bronze);width:28px}
.faq-nav a.on,.faq-nav a:hover{color:var(--ink);transform:translateX(8px)}
.qa{border-bottom:1px solid var(--line)}
.qa details{border-top:1px solid var(--line);scroll-margin-top:100px}
.qa summary{list-style:none;display:grid;grid-template-columns:52px 1fr 30px;gap:16px;align-items:baseline;padding:32px 0;cursor:pointer;min-height:48px}
.qa summary::-webkit-details-marker{display:none}
.qa summary .n{font:italic 200 34px/1 var(--serif);color:var(--bronze)}
.qa summary h2{margin:0;font:250 44px/1.05 var(--serif);letter-spacing:-.025em;transition:color .3s}
.qa summary:hover h2{color:var(--bronze)}
.qa .pm-ico{position:relative;width:22px;height:22px;align-self:center}
.qa .pm-ico::before,.qa .pm-ico::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--ink);transition:transform .6s var(--settle)}
.qa .pm-ico::after{transform:rotate(90deg)}
.qa details[open] .pm-ico::after{transform:rotate(0)}
.qa .ans{padding:0 0 40px 68px;overflow:hidden}
.qa .ans p{margin:0 0 16px;font-size:18px;line-height:1.75;max-width:640px;color:var(--ink)}
.qa .ans .more{margin-top:8px}

/* ---------- contact ---------- */
.form-sec{position:relative;background:var(--sand);padding:130px 0 140px;overflow:hidden}
.form-sec .tv{position:absolute;inset:0;background:url("../img/travertine-field.svg") 0 0/480px 240px;opacity:.7;pointer-events:none}
.form-grid{position:relative;display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;align-items:start}
.form-side{position:sticky;top:110px}
.form-side .h2{font-size:72px;line-height:.95}
.form-side p.slate{margin:24px 0 0;line-height:1.7;max-width:380px}
.full{display:grid;grid-template-columns:1fr 1fr;gap:42px 32px;background:var(--sheet);padding:56px 56px 50px;box-shadow:0 50px 90px -60px rgba(18,29,40,.4)}
.full .wide{grid-column:1/-1}
.full .help{display:block;margin-top:8px;font-size:13px;color:var(--slate);line-height:1.5}
.field textarea{width:100%;min-height:120px;border:0;border-radius:0;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);font:300 22px/1.4 var(--serif);padding:8px 0;outline:none;resize:vertical}
.field .err{display:none;margin-top:8px;font-size:13px;color:#8E3B2E;font-weight:600}
.field.bad .err{display:flex;gap:8px;align-items:center}
.field.bad .err::before{content:"!";display:inline-grid;place-items:center;width:16px;height:16px;border:1px solid currentColor;font-size:11px}
.field.bad input,.field.bad textarea{border-bottom-color:#8E3B2E}
.radios{border:0;margin:0;padding:0;min-width:0}
.radios legend{padding:0;font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--slate);margin-bottom:12px}
.radios .opts{display:flex;flex-wrap:wrap;gap:10px}
.radios label{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid var(--line);font-size:15px;cursor:pointer;transition:border-color .24s,background-color .24s,color .24s}
.radios input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.radios label:hover{border-color:var(--ink)}
.radios label:has(input:checked){background:var(--ink);color:var(--paper);border-color:var(--ink)}
.radios label:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:3px}
.ctx{display:none;align-items:center;gap:14px;margin:30px 0 0;max-width:380px;padding:12px 16px;border:1px dashed var(--slate);font-size:14px}
.ctx.on{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.ctx b{font-weight:600}
.ctx button{background:none;border:0;padding:8px 0;text-decoration:underline;text-underline-offset:4px;min-height:44px;font:600 12px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--slate);cursor:pointer}
.ctx button:hover{color:var(--ink)}
.err-sum{display:none;margin:0;padding:14px 18px;border-left:2px solid #8E3B2E;background:rgba(142,59,46,.06);font-size:15px}
.err-sum.on{display:block}
.err-sum a{color:#8E3B2E;font-weight:600}
.next3{display:grid;grid-template-columns:repeat(3,1fr);margin-top:56px;position:relative}
.next3::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:linear-gradient(var(--bronze),var(--bronze)) 0 0/86% 1px no-repeat,linear-gradient(var(--bronze),var(--bronze)) 86% 0/1px 8px no-repeat,linear-gradient(var(--bronze),var(--bronze)) 100% 100%/14% 1px no-repeat;transform-origin:left;transition:clip-path 2.2s var(--slow)}
.js .next3.pre::before{clip-path:inset(0 100% 0 0)}
.next3::before{clip-path:inset(0)}
.next3 li{list-style:none;padding:44px 40px 0 0}
.next3 li + li{padding-left:40px}
.next3 .w{display:block;font:italic 250 26px/1 var(--serif);color:var(--bronze)}
.next3 p{margin:16px 0 0;font:300 26px/1.35 var(--serif);letter-spacing:-.01em;max-width:340px}
.next3-wrap{padding-block:150px}
.contact-hero .pm-fig img{object-position:30% 50%}
.big-tel{display:inline-block;margin-top:36px;font:200 64px/1 var(--serif);letter-spacing:-.03em;color:var(--paper);text-decoration:none;font-variant-numeric:tabular-nums;background:linear-gradient(var(--champ),var(--champ)) 0 100%/0 1px no-repeat;padding-bottom:8px;transition:background-size .8s var(--settle)}
.big-tel:hover{background-size:100% 1px}
.hours{margin:14px 0 0;color:var(--mist);font-size:14px;letter-spacing:.04em}

/* ---------- legal ---------- */
.legal{display:grid;grid-template-columns:.62fr 1.38fr;gap:90px;align-items:start;padding-top:120px;padding-bottom:140px}
.legal-toc{position:sticky;top:110px}
.legal-toc ol{list-style:none;margin:22px 0 0;padding:0;border-bottom:1px solid var(--line)}
.legal-toc li{border-top:1px solid var(--line)}
.legal-toc a{display:flex;gap:16px;padding:13px 0;min-height:48px;align-items:baseline;text-decoration:none;color:var(--slate);transition:color .3s}
.legal-toc a .n{font:italic 300 20px/1 var(--serif);color:var(--bronze);width:26px}
.legal-toc a.on,.legal-toc a:hover{color:var(--ink)}
.lsec{display:grid;grid-template-columns:90px 1fr;gap:20px;padding:44px 0 50px;border-top:1px solid var(--line);scroll-margin-top:100px}
.lsec:last-child{border-bottom:1px solid var(--line)}
.lsec .n{font:italic 200 64px/.8 var(--serif);color:var(--bronze)}
.lsec h2{margin:0;font:250 46px/1.02 var(--serif);letter-spacing:-.025em}
.lsec p{margin:20px 0 0;font-size:17px;line-height:1.8;max-width:640px}
.fields-t{width:100%;margin-top:26px;border-collapse:collapse;font-size:15px}
.fields-t th,.fields-t td{text-align:left;padding:14px 16px 14px 0;border-top:1px solid var(--line);vertical-align:top;line-height:1.55}
.fields-t th{font:300 21px/1.3 var(--serif);letter-spacing:-.01em;width:42%}
.fields-t td{color:var(--slate)}
.fields-t tr:last-child th,.fields-t tr:last-child td{border-bottom:1px solid var(--line)}
.note-box{margin-top:26px;padding:22px 26px;border:1px dashed var(--slate);font-size:15px;line-height:1.7;max-width:640px;color:var(--slate)}

/* ---------- thank you + 404 ---------- */
.quiet{position:relative;min-height:calc(100svh - 34px);display:flex;align-items:flex-end;background:var(--night);color:var(--paper);overflow:hidden}
.quiet-media{position:absolute;inset:0}
.quiet-media img{width:100%;height:100%;object-fit:cover;animation:settle 2.4s var(--slow) both}
.quiet-media::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(18,29,40,.62),rgba(18,29,40,.2) 34%,rgba(18,29,40,.82) 76%,rgba(18,29,40,.95))}
.quiet-in{position:relative;padding-top:calc(var(--hdr) + 60px);padding-bottom:80px;width:100%}
.quiet .h1p{font-size:clamp(60px,8.6vw,136px)}
.quiet .lede{color:var(--sand);margin-top:34px}
.quiet .edge{margin-top:44px;animation:draw 2.6s var(--slow) .4s both}
.quiet-row{display:flex;justify-content:space-between;align-items:end;gap:30px 60px;flex-wrap:wrap}
.quiet-note{margin:26px 0 0;padding:14px 18px;border:1px dashed rgba(174,183,191,.6);color:var(--mist);font-size:14px;max-width:520px;line-height:1.6}
.ripple-img{filter:url(#still)}


/* ---------- shared spacing + small helpers ---------- */
.sec-gap{margin-top:150px}
.pl-gap{margin-top:50px}
.price-line.pl-end{margin:0;justify-content:flex-end}
.ledger-1{grid-template-columns:1fr}
.ledger-1 > div{padding:30px 0 34px}
.ledger-h{font-size:56px;line-height:1;margin-top:14px}
.hs-wrap{margin-top:56px}
.deliv{margin-top:60px}
.sh-note{max-width:360px;margin:0;line-height:1.7}
.hint-touch-only{display:none}
@media (hover:none),(pointer:coarse){.hint-touch-only{display:inline}}
.close-thin{padding-block:110px 120px}
.rel-sm{margin-top:40px}
.rel-sm a{font-size:21px;min-height:56px;padding:14px 0}
.ph-cap{margin-top:26px}
.pm-fig-tall img{object-position:50% 30%}
.check-form .btn{flex:none;min-height:56px}
.form-side p.slate + p.slate{margin-top:14px}
.full .form-end{gap:14px}
.full .form-end .btn{min-height:60px;padding:0 40px}
.ask{padding-block:170px 150px}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .h1p{font-size:clamp(60px,9vw,120px)}
  .att-head .h2,.sample-head .h2{font-size:68px}
  .close .h2,.storm .h2,.arrive .h2{font-size:80px}
  .toc .t{font-size:38px}
  .tech-copy{padding:100px 54px}
  .tech-name{font-size:104px}
  .ask-q{font-size:84px}
  .panels{height:560px}
  .panel h3{font-size:28px}
  .qa summary h2{font-size:38px}
}
@media (max-width:900px){
  .sec{padding-top:110px}
  .sec-gap{margin-top:110px}
  .ledger-h{font-size:40px}
  .price-line.pl-end{justify-content:flex-start}
  .deliv{margin-top:40px}
  .hs-wrap{margin-top:36px}
  .lede{font-size:17px}
  .h1p{font-size:clamp(52px,14.5vw,84px);line-height:.9}
  .ph{min-height:clamp(560px,calc(100svh - 50px),720px)}
  .ph-in{padding-bottom:36px}
  .ph-foot{margin-top:28px}
  .ph-sub{font-size:22px;margin-bottom:16px}
  .ph .k{margin-bottom:18px}
  .crumbs ol{font-size:11px;letter-spacing:.14em}
  .crumbs li + li::before{width:12px;margin:0 8px}
  .pm-grid{grid-template-columns:1fr;gap:34px;min-height:0}
  .pm-copy{padding-bottom:0}
  .pm-copy .crumbs{padding-bottom:44px}
  .pm-fig{min-height:0;aspect-ratio:4/3;margin:0 calc(-1 * var(--gut))}
  .pm-fig figcaption{position:static;transform:none;padding:0 var(--gut)}
  .pm{padding-bottom:40px}
  .pm-folio{display:none}
  .pm-base .edge{margin-top:44px}
  .pm-base .cap{padding-bottom:20px}
  .pt{padding-bottom:70px}
  .pt .crumbs{margin-bottom:64px}
  .pt-row{grid-template-columns:1fr;gap:28px}
  .pt .edge{margin-top:40px}
  .att-grid,.toc-grid,.prop-grid,.week-wrap,.fin-grid,.hs-wrap,.lp-grid,.season-grid,.arrive-grid,.sample-head,.owner-grid,.bounds,.cred-grid,.checker-grid,.notes-grid,.scope-grid,.faq-grid,.form-grid,.legal,.close-grid{grid-template-columns:1fr;gap:44px}
  .att-head,.toc-plate,.owner-fig,.faq-nav,.form-side,.legal-toc{position:static}
  .att-head .h2,.sample-head .h2,.notes-side .h2,.form-side .h2{font-size:50px}
  .att-list li{grid-template-columns:44px 1fr;gap:14px;padding:24px 0}
  .att-list .n{font-size:30px}
  .att-list p{font-size:23px}
  .close{padding-block:110px 100px}
  .close .h2,.storm .h2,.arrive .h2,.flow .h2{font-size:50px}
  .ledger{grid-template-columns:1fr}
  .ledger > div,.ledger > div + div{padding:30px 0 34px;border-left:0}
  .ledger > div + div{border-top:1px solid var(--line)}
  .ledger h3{font-size:32px}
  .price-line .amt{font-size:84px}
  .price-line{margin-bottom:40px}
  .toc-plate{display:none}
  .toc a{grid-template-columns:40px 1fr;padding:22px 0}
  .toc .n{font-size:26px}
  .toc .t{font-size:30px}
  .toc svg{display:none}
  .toc .d{grid-column:2;font-size:15px}
  .toc .thumb{display:block;grid-column:2;margin-top:10px;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
  .sheet{padding:34px 24px 30px}
  .sheet-title{font-size:36px}
  .sheet dl{grid-template-columns:1fr}
  .sheet dt{border-bottom:0;padding:16px 0 0}
  .sheet dd{font-size:19px;padding-top:6px}
  .storm{margin-top:110px}
  .storm-in{padding-block:110px 100px}
  .storm-media::after{background:linear-gradient(rgba(18,29,40,.7),rgba(18,29,40,.94) 55%)}
  .storm-ba{grid-template-columns:1fr}
  .storm-ba div + div{padding-left:0;border-left:0;border-top:1px solid rgba(201,168,106,.4);margin-top:24px}
  .storm-ba div{padding-right:0}
  .week{margin-top:34px}
  .week li{padding-bottom:100px;font-size:11px;letter-spacing:.1em}
  .week li.on::after{font-size:15px;bottom:92px}
  .week li .bar{height:56px}
  .week li.on .bar{height:62px}
  .fin-tabs button{font-size:28px;padding:18px 0}
  .fin-panel p{font-size:21px}
  .hs-dot{width:44px;height:44px}
  .chain{font-size:26px;flex-direction:column;align-items:flex-start;gap:0}
  .chain li + li::before{display:none}
  .chain li{padding:12px 0;border-top:1px solid var(--line);width:100%}
  .chain li:last-child{border-bottom:1px solid var(--line)}
  .mats li{grid-template-columns:1fr;gap:4px}
  .loupe{cursor:auto}
  .loupe-lens{display:none}
  .flow{height:auto}
  .flow-stick{position:relative;height:auto;min-height:640px}
  .flow-media img{transform:none}
  .flow-line::before,.flow-line::after,.flow-line i{transform:none}
  .flow-steps{grid-template-columns:1fr;gap:24px}
  .flow-steps li{transform:none}
  .flow-in{padding-top:120px;padding-bottom:60px}
  .season-weeks{gap:2px}
  .season-weeks li{height:34px}
  .season-weeks li.arr{height:58px}
  .season-legend{flex-direction:column;gap:6px}
  .arrive{padding:110px 0}
  .confirm b{font-size:26px}
  .cl-track{grid-template-columns:1fr}
  .cl-track::before{left:5px;right:auto;top:0;bottom:0;width:1px;height:auto;transform-origin:top}
  .js .contact-line.pre .cl-track::before{transform:scaleY(0)}
  .cl-node{padding:0 0 40px 40px}
  .cl-node::before{left:0;top:10px}
  .cl-node h3{font-size:32px}
  .sample{padding:110px 0 100px}
  .rec-xl td:nth-child(n+2):nth-child(-n+5){text-align:left}
  .rec-xl tr{grid-template-columns:repeat(4,1fr)!important}
  .rec-xl td:nth-child(n+6){grid-column:1/-1!important}
  .rec-xl td:nth-child(6){min-width:0}
  .anat{grid-template-columns:1fr}
  .anat button,.anat button + button{padding:24px 0;border-right:0;border-bottom:1px solid var(--line)}
  .anat b{font-size:28px}
  .deliv{grid-template-columns:1fr}
  .copy-sheet{margin:-60px 12px 0;padding:30px 24px}
  .tech{grid-template-columns:1fr}
  .tech-fig{min-height:0;aspect-ratio:4/5}
  .tech-copy{padding:70px var(--gut) 80px}
  .tech-name{font-size:84px}
  .sig{font-size:46px}
  .story p:first-child{font-size:25px}
  .owner-fig img{aspect-ratio:4/3}
  .check-doc{padding:34px 22px}
  .check-doc .row{grid-template-columns:1fr;gap:8px}
  .check-doc dt{font-size:24px}
  .panels{flex-direction:column;height:auto;gap:8px}
  .panel{flex:none;height:230px}
  .panel p,.panel .go{opacity:1;transform:none}
  .panel img{filter:saturate(.85) brightness(.85)}
  .ns-axis{display:none}
  .checker{padding:96px 0}
  .check-form{flex-direction:column;align-items:stretch}
  .check-out{font-size:22px}
  .setting{grid-template-columns:1fr 1fr;gap:16px}
  .setting .s1{grid-column:1/-1}
  .setting .s2{margin-top:0}
  .setting .s3{margin-top:60px}
  .setting figcaption b{font-size:21px}
  .notes{padding:30px 22px 26px}
  .notes li{font-size:20px;grid-template-columns:34px 1fr}
  .ask{padding-block:110px}
  .ask-in{grid-template-columns:1fr;gap:0}
  .ask-mark{font-size:140px;margin-bottom:10px}
  .ask-q{font-size:50px}
  .factors{grid-template-columns:1fr 1fr}
  .factors li{font-size:30px;padding:22px 16px 22px 0!important;border-left:0!important;border-bottom:1px solid var(--line)}
  .factors li:nth-child(even){padding-left:16px!important;border-left:1px solid var(--line)!important}
  .qa summary{grid-template-columns:36px 1fr 24px;padding:24px 0}
  .qa summary .n{font-size:26px}
  .qa summary h2{font-size:28px}
  .qa .ans{padding:0 0 30px 0}
  .qa .ans p{font-size:17px}
  .faq-nav{display:none}
  .form-sec{padding:96px 0 100px}
  .full{grid-template-columns:1fr;padding:34px 22px 30px;gap:34px;margin:0 calc(-1 * var(--gut) + 8px)}
  .next3{grid-template-columns:1fr}
  .next3 li,.next3 li + li{padding:34px 0 0}
  .next3 p{font-size:22px}
  .next3-wrap{padding-block:110px}
  .big-tel{font-size:44px}
  .legal{padding-top:80px;padding-bottom:100px}
  .legal-toc{display:none}
  .lsec{grid-template-columns:1fr;gap:6px;padding:34px 0 38px}
  .lsec .n{font-size:44px}
  .lsec h2{font-size:34px}
  .fields-t th{width:auto;font-size:18px}
  .fields-t,.fields-t tbody,.fields-t tr,.fields-t th,.fields-t td{display:block}
  .fields-t td{border-top:0;padding-top:0}
  .quiet-in{padding-bottom:56px}
}
@media (max-width:420px){
  .h1p{font-size:clamp(46px,13.6vw,60px)}
  .price-line .amt{font-size:70px}
  .tech-name{font-size:68px}
  .factors li{font-size:24px}
}
@media (prefers-reduced-motion:reduce){
  .ph-media img,.pm-fig img,.quiet-media img,.ph .edge,.pt .edge,.quiet .edge{animation:none}
  .hs-dot::after{animation:none;opacity:0}
  .flow{height:auto}
  .flow-stick{position:relative;height:auto;min-height:100vh}
  .flow-media img{transform:none}
  .flow-line::before,.flow-line::after,.flow-line i{transform:none}
  .flow-steps li{transform:none}
  .loupe-lens{display:none}
  .ripple-img{filter:none}
}
