/* inner-page components */
.phero{position:relative;height:78vh;min-height:520px;color:var(--ivory);overflow:hidden;background:var(--ink)}
.phero .bg{position:absolute;inset:0}.phero .bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 6s var(--ease)}
.loaded .phero .bg img,.capture .phero .bg img{transform:none}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,26,62,.5) 0%,rgba(8,26,62,.05) 35%,rgba(8,26,62,.75) 100%)}
.phero .in{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:0 var(--pad) clamp(3rem,7vh,5rem);max-width:1400px;margin:0 auto}
.phero h1{color:var(--ivory);font-size:clamp(3rem,8vw,7.5rem);line-height:.92}.phero h1 em{color:#93CDF6}
.phero p.sub{max-width:36rem;margin:1.4rem 0 0;color:rgba(245,249,253,.9);font-size:clamp(1rem,1.2vw,1.12rem)}
.phero .kicker{color:var(--ivory)}
.crumb{font:500 .62rem var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(245,249,253,.75);margin-bottom:1.4rem}.crumb a:hover{color:#93CDF6}
.ptitle{padding:clamp(9rem,16vw,12rem) 0 clamp(3rem,6vw,5rem);background:var(--sand)}
.ptitle h1{font-size:clamp(3rem,7.5vw,7rem);line-height:.95}.ptitle p.sub{max-width:40rem;margin-top:1.6rem;color:var(--muted)}
.sec{padding:clamp(4.5rem,9vw,8rem) 0}.sec.alt{background:var(--sand)}
.two{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(2rem,7vw,7rem);align-items:start}
.two .lh{position:sticky;top:7rem}
.prose p{color:var(--muted)}.prose .lede{color:var(--navy)}
.prose h3{font-size:clamp(1.6rem,2.2vw,2.1rem);margin:2.4rem 0 .8rem}
.facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);margin-top:1rem}
.facts div{padding:1.6rem 1.4rem 1.6rem 0;border-bottom:1px solid var(--rule)}
.facts div+div{padding-left:1.4rem;border-left:1px solid var(--rule)}
.facts span{display:block;font:600 .6rem var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--royal);margin-bottom:.5rem}
.facts strong{font:400 1.3rem/1.3 var(--serif);color:var(--navy)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,2rem)}
.card{border-top:1px solid var(--navy);padding-top:1.4rem}
.card i{font:italic 400 1.1rem var(--serif);color:var(--royal)}
.card h3{font-size:clamp(1.5rem,2vw,1.9rem);margin:.6rem 0 .7rem}.card p{color:var(--muted);font-size:.95rem;margin:0}
.notice{border-left:2px solid var(--blue);background:var(--ivory);padding:1.6rem 1.8rem;margin:2rem 0;color:var(--text);font-size:.95rem}
.notice strong{display:block;font:400 1.3rem var(--serif);color:var(--navy);margin-bottom:.4rem}
.pair{display:grid;grid-template-columns:1fr 1fr;min-height:70vh}.pair .ph{min-height:420px}
.pair .txt{padding:clamp(3rem,7vw,7rem) clamp(1.5rem,6vw,6rem);display:flex;flex-direction:column;justify-content:center;background:var(--navy);color:rgba(245,249,253,.85)}
.pair .txt h2{color:var(--ivory)}.pair .txt h2 em{color:#93CDF6}.pair .txt .kicker{color:var(--ivory)}
.cta{padding:clamp(5rem,10vw,8rem) 0;text-align:center}
.cta h2{margin-bottom:1.6rem}.cta p{max-width:34rem;margin:0 auto 2.4rem;color:var(--muted)}
.cta .btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.dgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.4vw,2.4rem) clamp(1rem,2vw,2rem)}
.dgrid .dc{display:block}.dgrid .ph{aspect-ratio:4/5}.dgrid .ph img{transition:transform 1.6s var(--ease)}.dgrid .dc:hover img{transform:scale(1.05)}
.dgrid h3{margin:1.1rem 0 .3rem;font-size:clamp(1.8rem,2.3vw,2.3rem)}.dgrid p{margin:0;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.sgrid3{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,4rem)}
.sgrid3 .ph{aspect-ratio:4/3}.sgrid3 h3{font-size:clamp(1.9rem,2.6vw,2.6rem);margin:1.3rem 0 .6rem}.sgrid3 p{color:var(--muted)}
.tl{list-style:none;margin:0;padding:0;position:relative}
.tl::before{content:"";position:absolute;left:2.4rem;top:.5rem;height:calc(100% - 4.8rem);width:1px;background:var(--stone)}
.tl li{position:relative;display:grid;grid-template-columns:4.8rem 1fr;gap:1.4rem;padding-bottom:3.4rem}
.tl .k{position:relative;z-index:1;width:4.8rem;height:4.8rem;border:1px solid var(--blue);border-radius:50%;background:var(--ivory);display:grid;place-items:center;font:italic 300 1.9rem var(--serif);color:var(--royal)}
.tl h3{font-size:clamp(1.7rem,2.4vw,2.3rem);margin:.9rem 0 .6rem}.tl p{color:var(--muted);margin:0;max-width:36rem}
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(2rem,7vw,7rem)}
.cinfo dt{font:600 .6rem var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--royal);margin-top:1.6rem}
.cinfo dd{margin:.4rem 0 0;font:400 1.5rem var(--serif);color:var(--navy)}
textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--stone);padding:.6rem 0;font:300 1.3rem/1.4 var(--serif);color:var(--navy);outline:none;resize:vertical;min-height:110px;border-radius:0}
textarea:focus{border-color:var(--royal)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:0 2rem}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin:.2rem 0 1.8rem}
.chips label{position:relative}.chips input{position:absolute;opacity:0}
.chips span{display:inline-block;padding:.7rem 1.1rem;border:1px solid var(--stone);font:500 .82rem var(--sans);color:var(--navy);cursor:pointer;transition:background .3s,border-color .3s,color .3s}
.chips input:checked+span{background:var(--navy);border-color:var(--navy);color:var(--ivory)}
.chips input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}
.glabel{display:block;font:600 .6rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--navy);margin-bottom:.8rem}
/* plan wizard */
.wiz{max-width:860px;margin:0 auto}
.wbar{display:flex;gap:.4rem;margin-bottom:3rem}.wbar i{flex:1;height:2px;background:var(--stone);transition:background .4s}.wbar i.on{background:var(--royal)}
.wstep h2{font-size:clamp(2.2rem,4.5vw,3.6rem);margin-bottom:.6rem}.wstep .hint{color:var(--muted);margin-bottom:2.4rem}
.wstep .n{font:italic 400 1.1rem var(--serif);color:var(--royal);display:block;margin-bottom:.6rem}
.js .wstep{display:none}.js .wstep.on{display:block;animation:wfade .6s var(--ease)}
@keyframes wfade{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.no-js .wstep{margin-bottom:4rem}.no-js .wnav .prev,.no-js .wnav .next{display:none}
.wnav{display:flex;justify-content:space-between;align-items:center;margin-top:2.4rem;gap:1rem}
.wnav .prev{background:none;border:0;font:600 .66rem var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--navy);cursor:pointer;padding:1rem 0}
.wnav .prev[hidden]{visibility:hidden;display:block}
.err{color:#B3261E;font-size:.82rem;margin-top:-1rem;margin-bottom:1rem;display:none}.err.on{display:block}
.legal{max-width:820px}.legal h2{font-size:2rem;margin:2.6rem 0 .8rem}.legal p,.legal li{color:var(--muted)}
.soon{border:1px solid var(--rule);padding:clamp(2rem,5vw,4rem);text-align:center;background:var(--ivory)}
@media (max-width:1000px){.two,.contact-grid{grid-template-columns:1fr}.two .lh{position:static}.cards,.dgrid{grid-template-columns:1fr 1fr}.pair{grid-template-columns:1fr}.pair .ph{aspect-ratio:4/3;min-height:0}.facts{grid-template-columns:1fr}.facts div+div{padding-left:0;border-left:0}}
@media (max-width:600px){.cards,.dgrid,.sgrid3,.row2{grid-template-columns:1fr}.phero{height:70svh}.tl::before{left:1.6rem}.tl li{grid-template-columns:3.2rem 1fr;gap:1rem}.tl .k{width:3.2rem;height:3.2rem;font-size:1.35rem}.wnav .btn{width:auto}.cta .btn{width:100%}}

.js .hi{opacity:0;transform:translateY(24px)}.loaded .hi{opacity:1;transform:none;transition:opacity 1.3s ease,transform 1.3s var(--ease)}.capture .hi{opacity:1;transform:none}
.wiz{scroll-margin-top:7rem}.crumb{color:rgba(245,249,253,.92)}
.pair.solo{grid-template-columns:1fr;min-height:0}.pair.solo .txt{padding:clamp(4rem,8vw,7rem) max(var(--pad),calc((100vw - 1400px)/2 + var(--pad)))}.pair.solo .txt p{max-width:40rem}
.mood{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(1rem,2vw,2rem);align-items:start}.mood .ph:first-child{aspect-ratio:4/3.4}.mood .ph{aspect-ratio:3/4.4}
@media (max-width:600px){.mood{grid-template-columns:1fr 1fr}.mood .ph:first-child{grid-column:1/-1}}
.legal a{color:var(--royal);text-decoration:underline}
.phero::after{background:linear-gradient(180deg,rgba(8,26,62,.55) 0%,rgba(8,26,62,.2) 30%,rgba(8,26,62,.55) 60%,rgba(8,26,62,.88) 100%)}.phero h1,.phero p{text-shadow:0 2px 20px rgba(8,26,62,.5)}

/* features v3 */
.calc{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.calc-out{background:var(--navy);color:var(--ivory);padding:clamp(1.8rem,4vw,3rem);position:sticky;top:7rem}
.calc-out h2{color:var(--ivory);font:400 clamp(2.2rem,4vw,3.4rem)/1.05 var(--serif);margin:.6rem 0 1rem}
.calc-out .tag{display:inline-block;font:600 .6rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;background:#54A6EE;color:var(--navy);padding:.5rem .8rem}
.calc-out dl{display:grid;grid-template-columns:1fr auto;gap:.7rem 1rem;margin:1.6rem 0;font-size:.92rem}.calc-out dt{opacity:.8}.calc-out dd{margin:0;text-align:right}
.calc-out .note{font-size:.8rem;opacity:.75;line-height:1.55}
.range{width:100%;accent-color:#2B66AB}
.pk{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.4rem,3vw,2.6rem)}
.pk article{background:#fff;border:1px solid #E4EFF8;display:flex;flex-direction:column}
.pk .ph img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.pk .ph.none{aspect-ratio:3/2;background:linear-gradient(135deg,#102858,#2B66AB);display:flex;align-items:center;justify-content:center;color:#F5F9FD;font:italic 400 2rem var(--serif)}
.pk .bd{padding:1.6rem;display:flex;flex-direction:column;gap:.7rem;flex:1}.pk h3{margin:0}.pk p{margin:0;color:var(--muted);font-size:.95rem}
.pk .pr{font:400 1.7rem var(--serif);color:var(--navy)}.pk .pr small{display:block;font:600 .58rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--royal)}
.pk .src{font-size:.75rem!important}.pk .btn{margin-top:auto;align-self:flex-start}
.mainsite{background:#E4EFF8;padding:clamp(2rem,5vw,4rem);display:grid;grid-template-columns:2fr 1fr;gap:2rem;align-items:center}
@media (max-width:900px){.calc,.pk,.mainsite{grid-template-columns:1fr}.calc-out{position:static}}
.calc-act{display:flex;flex-wrap:wrap;gap:.7rem;margin:.4rem 0 1.4rem}.calc-act .btn{flex:1 1 auto}
