
:root{
  --linen:#F5F1EB; --paper:#FBFAF7; --oak:#D9C6AE; --oak-deep:#A8865F;
  --ink:#2A2521; --stone:#6E655D; --line:#E4DCD1;
  --clay:#C9664A; --clay-deep:#A9513A; --clay-wash:#F3E4DC; --fjord:#E3EAEE;
  --display:'Albert Sans','Helvetica Neue',Arial,sans-serif;
  --body:'Nunito Sans','Nunito',system-ui,sans-serif;
  --r:10px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--linen);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
.wrap{max-width:1180px;margin:0 auto;padding-inline:24px}
h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:-.02em;line-height:1.08;text-wrap:balance;margin:0}
p{margin:0}
a{color:inherit}
.eyebrow{font-family:var(--display);font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--oak-deep)}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-weight:600;font-size:15.5px;padding:14px 24px;border-radius:999px;text-decoration:none;transition:background .2s,color .2s,border-color .2s}
.btn-primary{background:var(--clay);color:#fff}
.btn-primary:hover{background:var(--clay-deep)}
.btn-ghost{border:1px solid var(--ink);color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
a:focus-visible,summary:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* nav */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:rgba(245,241,235,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:72px;gap:16px}
.logo{color:var(--clay);display:block;width:108px}
.logo svg{display:block;width:100%;height:auto}
.nav-links{display:flex;gap:32px;font-family:var(--display);font-size:15px;font-weight:500}
.nav-links a{text-decoration:none;color:var(--stone)}
.nav-links a:hover{color:var(--ink)}
.nav .btn{padding:10px 18px;font-size:14.5px}


/* hero */
.hero{padding-block:72px 88px}
.hero .wrap{display:grid;grid-template-columns:1fr 1.08fr;gap:64px;align-items:center}
.hero h1{font-size:clamp(42px,5.6vw,72px);margin-top:18px}
.hero h1 em{font-style:normal;color:var(--clay)}
.hero .lede{font-size:19px;color:var(--stone);max-width:30em;margin-top:24px}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.hero-img{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/4.3;max-width:100%}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:62% center;display:block}
.hero-note{position:absolute;left:20px;bottom:20px;right:20px;max-width:320px;background:var(--paper);border-radius:8px;padding:14px 18px;font-size:14px;line-height:1.45;display:flex;gap:14px;align-items:center}
.hero-note b{white-space:nowrap;font-family:var(--display);font-size:26px;font-weight:600;color:var(--clay);letter-spacing:-.02em}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:40px}.hero{padding-block:44px 64px}.hero-img{aspect-ratio:4/3.4}}

/* standards strip */
.strip{border-block:1px solid var(--line);background:var(--paper)}
.strip ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr)}
.strip li{padding:24px 20px;font-size:15px;color:var(--stone);display:flex;flex-direction:column;gap:2px}
.strip li+li{border-left:1px solid var(--line)}
.strip strong{font-family:var(--display);font-weight:600;color:var(--ink);font-size:16px}
@media (max-width:820px){.strip ul{grid-template-columns:1fr 1fr}.strip li:nth-child(3){border-left:0}.strip li:nth-child(n+3){border-top:1px solid var(--line)}}

section{padding-block:104px}
.head{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end;margin-bottom:56px}
.head h2{font-size:clamp(34px,4vw,50px);margin-top:14px}
.head p{color:var(--stone);max-width:32em}
@media (max-width:820px){.head{grid-template-columns:1fr;gap:18px;margin-bottom:40px}section{padding-block:72px}}

/* gates */
.gates{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.gate{display:flex;flex-direction:column}
.gate figure{margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3.6;background:var(--paper)}
.gate figure img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.gate:hover figure img{transform:scale(1.03)}
.gate .meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:22px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.gate h3{font-size:23px}
.price{font-family:var(--display);font-size:15px;color:var(--stone);white-space:nowrap;font-variant-numeric:tabular-nums}
.price b{color:var(--ink);font-weight:600}
.gate p{color:var(--stone);font-size:15.5px;margin-top:14px}
.gate ul{list-style:none;padding:0;margin:16px 0 22px;display:flex;flex-wrap:wrap;gap:8px}
.gate li{font-size:13px;font-family:var(--display);font-weight:500;padding:5px 11px;border-radius:999px;background:var(--paper);border:1px solid var(--line)}
.gate .more{margin-top:auto;font-family:var(--display);font-weight:600;font-size:15px;color:var(--clay-deep);text-decoration:none}
.gate .more:hover{text-decoration:underline;text-underline-offset:4px}
.tag{font-family:var(--display);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--clay-deep);margin-top:22px}
.tag+.meta{margin-top:6px}
@media (max-width:900px){.gates{grid-template-columns:1fr;gap:48px}}

/* standard */
.standard{background:var(--paper)}
.standard .wrap{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.standard figure{margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:4/4.2;max-width:100%}
.standard figure img{width:100%;height:100%;object-fit:cover;display:block}
.standard h2{font-size:clamp(34px,4vw,50px);margin:14px 0 22px}
.standard .intro{color:var(--stone)}
.points{display:grid;grid-template-columns:1fr 1fr;gap:28px 36px;margin-top:40px}
.points div{border-top:1px solid var(--oak);padding-top:16px}
.points h3{font-size:17px;margin-bottom:6px}
.points p{font-size:15px;color:var(--stone);line-height:1.55}
@media (max-width:900px){.standard .wrap{grid-template-columns:1fr;gap:40px}.points{grid-template-columns:1fr}}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;counter-reset:s;border-top:1px solid var(--ink)}
.step{padding:28px 32px 8px 0}
.step+.step{padding-left:32px;border-left:1px solid var(--line)}
.step .n{font-family:var(--display);font-size:14px;font-weight:600;color:var(--clay)}
.step h3{font-size:24px;margin:10px 0 10px}
.step p{color:var(--stone);font-size:15.5px}
@media (max-width:820px){.steps{grid-template-columns:1fr}.step,.step+.step{padding:24px 0;border-left:0;border-bottom:1px solid var(--line)}}

/* milestones */
.growth{background:var(--fjord)}
.timeline{display:grid;grid-template-columns:repeat(4,1fr);position:relative;margin-top:8px}
.timeline::before{content:"";position:absolute;left:0;right:0;top:9px;height:1px;background:rgba(42,37,33,.25)}
.mile{position:relative;padding-right:20px}
.mile .dot{width:19px;height:19px;border-radius:50%;background:var(--fjord);border:1px solid rgba(42,37,33,.45);display:block}
.mile.now .dot{background:var(--clay);border-color:var(--clay)}
.mile .age{font-family:var(--display);font-weight:600;font-size:28px;letter-spacing:-.02em;margin-top:18px;font-variant-numeric:tabular-nums}
.mile p{color:var(--stone);font-size:15px}
.mile.now .age{color:var(--clay-deep)}
.growth .foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-top:56px;padding-top:28px;border-top:1px solid rgba(42,37,33,.15)}
.growth .foot p{max-width:40em;color:var(--ink)}
@media (max-width:820px){.timeline{grid-template-columns:1fr 1fr;gap:32px 0}.timeline::before{display:none}}

/* reviews */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.review{margin:0;background:var(--paper);border-radius:var(--r);padding:32px;display:flex;flex-direction:column;gap:22px}
.review blockquote{margin:0;font-size:17px;line-height:1.6}
.review footer{margin-top:auto;font-family:var(--display);font-size:14px;color:var(--stone);display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:16px}
.review footer b{color:var(--ink);font-weight:600}
.stars{color:var(--oak-deep);letter-spacing:3px;font-size:13px}
@media (max-width:900px){.reviews{grid-template-columns:1fr}}

/* faq */
.faq .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:72px}
.faq h2{font-size:clamp(34px,4vw,50px);margin-top:14px}
.faq .side p{color:var(--stone);margin-top:18px}
details{border-bottom:1px solid var(--line)}
details:first-child{border-top:1px solid var(--line)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:22px 0;font-family:var(--display);font-weight:600;font-size:18px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-weight:400;font-size:24px;line-height:1;color:var(--oak-deep);transition:transform .2s}
details[open] summary::after{transform:rotate(45deg)}
details p{padding:0 40px 24px 0;color:var(--stone)}
@media (max-width:900px){.faq .wrap{grid-template-columns:1fr;gap:32px}}

/* cta */
.cta{padding-block:0 104px}
.cta-box{background:var(--ink);color:var(--paper);border-radius:14px;padding:72px 64px;display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:end}
.cta-box h2{font-size:clamp(34px,4.2vw,54px)}
.cta-box p{color:#CFC6BB;margin-top:16px;max-width:30em}
.cta-box .actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}
.cta-box .btn-ghost{border-color:#8C8278;color:var(--paper)}
.cta-box .btn-ghost:hover{background:var(--paper);color:var(--ink)}
@media (max-width:820px){.cta-box{grid-template-columns:1fr;padding:44px 28px}.cta-box .actions{justify-content:flex-start}}


/* relationship + stats */
.bond{background:var(--ink);color:var(--paper)}
.bond .eyebrow{color:var(--oak)}
.bond .head p{color:#CFC6BB}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #4A423C;border-bottom:1px solid #4A423C}
.stat{padding:36px 28px 32px 0}
.stat+.stat{padding-left:28px;border-left:1px solid #4A423C}
.stat .num{font-family:var(--display);font-weight:600;font-size:clamp(40px,4.6vw,60px);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.stat .num.tbc{color:var(--oak)}
.stat p{color:#CFC6BB;font-size:15px;margin-top:12px;max-width:16em}
.journey-title{font-family:var(--display);font-size:22px;font-weight:600;margin-top:80px}
.journey{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:24px}
.journey div{border-top:2px solid var(--clay);padding-top:18px}
.journey .when{font-family:var(--display);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--oak)}
.journey h3{font-size:21px;margin:10px 0 8px}
.journey p{color:#CFC6BB;font-size:15px}
.tbc-note{font-size:13px;color:var(--oak);margin-top:14px}
@media (max-width:900px){.stats{grid-template-columns:1fr 1fr}.stat:nth-child(3){border-left:0;padding-left:0}.stat:nth-child(n+3){border-top:1px solid #4A423C}.journey{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.journey{grid-template-columns:1fr}}


/* grow with us */
.grow{background:var(--clay-wash)}
.grow .wrap{display:grid;grid-template-columns:1fr 1.05fr;gap:72px;align-items:start}
.grow h2{font-size:clamp(34px,4vw,50px);margin:14px 0 20px}
.grow .intro{color:var(--stone);max-width:30em}
.checkins{list-style:none;margin:36px 0 0;padding:0;border-top:1px solid rgba(169,81,58,.25)}
.checkins li{display:grid;grid-template-columns:96px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid rgba(169,81,58,.25)}
.checkins .age{font-family:var(--display);font-weight:600;color:var(--clay-deep);font-variant-numeric:tabular-nums}
.checkins b{font-family:var(--display);font-weight:600;display:block}
.checkins span{color:var(--stone);font-size:15px}
.perks{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.perks span{font-family:var(--display);font-size:13px;font-weight:500;padding:6px 12px;border-radius:999px;background:var(--paper);border:1px solid rgba(169,81,58,.2)}
.form{background:var(--paper);border-radius:14px;padding:40px}
.form h3{font-size:26px}
.form .sub{color:var(--stone);font-size:15px;margin:8px 0 28px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label,.field legend{font-family:var(--display);font-size:13.5px;font-weight:600}
.field input,.field select{font:inherit;font-size:16px;color:var(--ink);background:var(--linen);border:1px solid var(--line);border-radius:8px;padding:12px 14px;width:100%}
.field input:focus,.field select:focus{outline:2px solid var(--clay);outline-offset:1px;border-color:transparent}
fieldset.field{border:0;padding:0;margin:0}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opts label{font-family:var(--body);font-weight:400;font-size:14.5px;display:inline-flex;gap:8px;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--linen);cursor:pointer}
.opts input{accent-color:var(--clay);width:auto;margin:0}
.consent{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--stone)}
.consent input{accent-color:var(--clay);margin-top:4px}
.form .btn{margin-top:26px;border:0;cursor:pointer;width:100%;justify-content:center}
.thanks{text-align:left}
.thanks h3{font-size:28px;margin-bottom:10px}
.thanks p{color:var(--stone)}
@media (max-width:900px){.grow .wrap{grid-template-columns:1fr;gap:40px}.form{padding:28px 20px}}
@media (max-width:520px){.fields{grid-template-columns:1fr}.checkins li{grid-template-columns:80px 1fr}}


.statement{padding-block:112px;text-align:left}
.statement p.big{font-family:var(--display);font-weight:500;font-size:clamp(30px,3.8vw,48px);line-height:1.18;letter-spacing:-.02em;max-width:22em;text-wrap:balance}
.statement p.big span{color:var(--oak-deep)}
.statement p.small{color:var(--stone);max-width:36em;margin-top:28px}
.stats{grid-template-columns:repeat(3,1fr)!important}
.kids{display:flex;flex-direction:column;gap:10px}
.kid{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}
.kid-remove{font:inherit;font-size:14px;background:none;border:0;color:var(--stone);cursor:pointer;padding:8px;text-decoration:underline;text-underline-offset:3px}
.add-kid{font-family:var(--display);font-weight:600;font-size:14.5px;background:none;border:1px dashed var(--oak-deep);color:var(--ink);border-radius:8px;padding:11px 14px;cursor:pointer;text-align:left}
.add-kid:hover{background:var(--linen)}
.hint{font-size:13px;color:var(--stone)}
@media (max-width:900px){.stats{grid-template-columns:1fr!important}.stat,.stat+.stat{padding:28px 0;border-left:0!important}.stat+.stat{border-top:1px solid #4A423C}}


.start{margin-top:64px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;padding-top:32px;border-top:1px solid #4A423C}
.start p{font-family:var(--display);font-size:clamp(22px,2.4vw,30px);font-weight:500;letter-spacing:-.01em;max-width:24em}
.start p span{color:var(--oak)}
@media (max-width:900px){.start{margin-top:40px}}
.growth .foot{margin-top:36px}
.points{margin-top:28px}
.checkins{margin-top:24px}
.hero .actions{margin-top:28px}
@media (max-width:820px){section{padding-block:48px}.hero{padding-block:32px 44px}.statement{padding-block:48px}.book{padding-block:48px 24px}.cta{padding-block:0 48px}}


/* collapse gaps where neighbouring sections share a background */
.statement{padding-bottom:8px}
.faq+.book{padding-top:24px}
@media (max-width:820px){.statement{padding-bottom:0}}


/* check-in calendar */
.calendar{list-style:none;margin:0;padding:0;counter-reset:c;border-top:1px solid rgba(42,37,33,.18)}
.calendar li{display:grid;grid-template-columns:230px 1fr;gap:32px;padding:20px 0;border-bottom:1px solid rgba(42,37,33,.18);align-items:baseline}
.c-when{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.c-age{font-family:var(--display);font-weight:600;font-size:18px;letter-spacing:-.01em}
.c-who{font-family:var(--display);font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.65);color:var(--stone)}
.calendar li:nth-child(2) .c-who,.calendar li:nth-child(3) .c-who,.calendar li:nth-child(4) .c-who,.calendar li:nth-child(6) .c-who{background:var(--clay);color:#fff}
.c-what b{font-family:var(--display);font-weight:600;font-size:18px;display:block;margin-bottom:2px}
.c-what p{color:var(--stone);font-size:15.5px}
@media (max-width:760px){.calendar li{grid-template-columns:1fr;gap:8px}}
/* quiet proof */
.proof{border-top:1px solid #4A423C;border-bottom:1px solid #4A423C;padding-block:36px}
.proof-line{font-family:var(--display);font-size:clamp(22px,2.6vw,32px);font-weight:500;line-height:1.3;letter-spacing:-.01em;max-width:24em}
.proof-line b{font-weight:600;color:var(--oak)}
.proof-list{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px 28px}
.proof-list li{color:#CFC6BB;font-size:15px;padding-top:14px;border-top:1px solid #4A423C}
@media (max-width:900px){.proof-list{grid-template-columns:1fr}}


/* community bubbles */
.bubbles{list-style:none;margin:0;padding:6px 0;display:flex;flex-wrap:wrap;gap:10px 10px;align-items:center}
.bubble{font-family:var(--display);font-weight:500;font-size:14.5px;padding:10px 16px;border-radius:999px;background:var(--linen);border:1px solid var(--line);color:var(--stone);will-change:transform;animation:float var(--d,10s) ease-in-out var(--dl,0s) infinite}
.bubble.big{font-size:17px;font-weight:600;color:var(--ink);padding:14px 22px;background:var(--clay-wash);border-color:rgba(169,81,58,.22)}
.bubble small{display:block;font-family:var(--body);font-size:12.5px;font-weight:400;color:var(--stone)}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(calc(var(--amp,8px) * -1))}}
@media (prefers-reduced-motion:reduce){.bubble{animation:none}}


/* swipeable gallery */
.gallery{position:relative;border-radius:var(--r);overflow:hidden;background:var(--paper)}
.gallery .frames{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;aspect-ratio:4/3.6}
.gallery .frames::-webkit-scrollbar{display:none}
.gallery .frames img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:center;display:block}
.g-nav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:rgba(251,250,247,.92);color:var(--ink);font-size:20px;line-height:1;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0 0 3px}
.g-nav:hover{background:var(--paper)}
.g-prev{left:12px}.g-next{right:12px}
.gallery.multi .g-nav{display:flex}
.g-dots{position:absolute;left:0;right:0;bottom:12px;display:none;justify-content:center;gap:6px}
.gallery.multi .g-dots{display:flex}
.g-dots i{width:6px;height:6px;border-radius:50%;background:rgba(251,250,247,.6);box-shadow:0 0 0 1px rgba(42,37,33,.12);display:block;transition:width .2s,background .2s}
.g-dots i.on{width:18px;border-radius:999px;background:var(--paper)}
.detail .gallery .frames{aspect-ratio:4/3.7}
@media (hover:none){.g-nav{display:none!important}}


.btn-wa{background:#25D366;color:#fff;border:0}
.btn-wa:hover{background:#1EBE5A;color:#fff}
.btn-wa .wa-ico{display:inline-flex;align-items:center}
.nav .btn-wa{padding:10px 16px}
@media (max-width:1240px){.nav .btn-wa .wa-label{display:none}.nav .btn-wa{padding:10px 12px}}
@media (max-width:1100px){.nav .btn-wa{display:inline-flex}}


.nav .btn-primary{white-space:nowrap}
@media (max-width:640px){.nav .nav-long{display:none}}
@media (max-width:430px){.nav .nav-mid{display:none}.nav .btn-primary::after{content:" now"}}


.bubble.extra{display:none}
.bubbles.all .bubble.extra{display:block;animation:pop .45s ease-out var(--rd,0ms) both, float var(--d,10s) ease-in-out var(--dl,0s) infinite .5s}
@keyframes pop{from{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:none}}
.more-bubbles{margin-top:20px;font-family:var(--display);font-weight:600;font-size:14.5px;background:none;border:1px dashed var(--oak-deep);color:var(--ink);border-radius:999px;padding:11px 18px;cursor:pointer}
.more-bubbles:hover{background:var(--linen)}
@media (prefers-reduced-motion:reduce){.bubbles.all .bubble.extra{animation:none}}


.values{background:var(--paper);border-block:1px solid var(--line)}
.values .sig{font-family:var(--display);font-size:clamp(30px,4vw,52px);font-weight:600;letter-spacing:-.02em;line-height:1.1;margin-top:14px}
.values .sig span{color:var(--clay)}
.values .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:44px}
.values .grid div{border-top:2px solid var(--clay);padding-top:16px}
.values h3{font-size:20px;margin-bottom:8px}
.values p{color:var(--stone);font-size:15.5px}
@media (max-width:900px){.values .grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.values .grid{grid-template-columns:1fr}}



.book{padding-block:104px 56px}
.book .wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;align-items:start}
.book h2{font-size:clamp(34px,4vw,50px);margin:14px 0 20px}
.book .intro{color:var(--stone);max-width:28em}
.book .expect{list-style:none;margin:32px 0 0;padding:0;border-top:1px solid var(--line)}
.book .expect li{padding:14px 0;border-bottom:1px solid var(--line);font-size:15.5px;color:var(--stone)}
.book .expect b{font-family:var(--display);color:var(--ink);font-weight:600;display:block;font-size:16px}
.book .form{border:1px solid var(--line)}
.gate-pick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.gate-pick label{position:relative;display:flex;flex-direction:column;gap:2px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--linen);cursor:pointer;font-family:var(--display);font-weight:600;font-size:15px}
.gate-pick label small{font-family:var(--body);font-weight:400;font-size:13px;color:var(--stone)}
.gate-pick input{position:absolute;opacity:0;pointer-events:none}
.gate-pick label:has(input:checked){border-color:var(--clay);background:var(--clay-wash)}
.gate-pick label:has(input:focus-visible){outline:2px solid var(--clay);outline-offset:2px}
.stepper{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--linen);width:max-content}
.stepper button{font:inherit;font-size:20px;width:44px;height:46px;border:0;background:none;cursor:pointer;color:var(--ink)}
.stepper input{width:52px!important;text-align:center;border:0!important;background:none!important;padding:0!important;font-variant-numeric:tabular-nums;-moz-appearance:textfield}
.stepper input::-webkit-inner-spin-button{-webkit-appearance:none}
.field textarea{font:inherit;font-size:16px;color:var(--ink);background:var(--linen);border:1px solid var(--line);border-radius:8px;padding:12px 14px;width:100%;min-height:92px;resize:vertical}
.field textarea:focus{outline:2px solid var(--clay);outline-offset:1px;border-color:transparent}
.custom-note{grid-column:1/-1;font-size:14px;background:var(--fjord);border-radius:8px;padding:12px 14px}
.opt{font-weight:400;color:var(--stone)}
@media (max-width:900px){.book .wrap{grid-template-columns:1fr;gap:40px}}
@media (max-width:520px){.gate-pick{grid-template-columns:1fr}}


/* nav v2 */
.nav-links{align-items:center;gap:28px}
.dd{position:relative}
.dd-btn{font:inherit;font-family:var(--display);font-size:15px;font-weight:500;color:var(--stone);background:none;border:0;padding:8px 0;cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.dd-btn:hover,.dd.open .dd-btn{color:var(--ink)}
.dd-btn span{font-size:11px;transition:transform .2s}
.dd.open .dd-btn span{transform:rotate(180deg)}
.dd-menu{position:absolute;top:calc(100% + 10px);left:-18px;min-width:260px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 18px 40px -20px rgba(42,37,33,.25);display:none}
.dd.open .dd-menu{display:block}
@media (hover:hover) and (min-width:1101px){.dd:hover .dd-menu,.dd:focus-within .dd-menu{display:block}.dd-menu::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}}
.dd-menu a{display:flex;flex-direction:column;padding:12px 14px;border-radius:8px;color:var(--ink)!important}
.dd-menu a:hover{background:var(--linen)}
.dd-menu b{font-weight:600;font-size:15px;display:flex;gap:8px;align-items:center}
.dd-menu em{font-style:normal;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;background:var(--clay-wash);color:var(--clay-deep);padding:2px 7px;border-radius:999px}
.dd-menu small{font-family:var(--body);font-size:13px;color:var(--stone);font-weight:400}
.nav-actions{display:flex;align-items:center;gap:10px}
.burger{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:999px;background:var(--paper);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.burger span{display:block;width:16px;height:1.5px;background:var(--ink)}
@media (max-width:1100px){
  .nav .wrap{position:relative}
  .burger{display:flex}
  .nav-links{display:none;position:absolute;top:72px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);border-bottom:1px solid var(--line);padding:8px 24px 20px}
  .nav-links.open{display:flex}
  .nav-links>a,.dd-btn{padding:14px 0;border-bottom:1px solid var(--line);width:100%;text-align:left;font-size:17px}
  .dd-menu{position:static;box-shadow:none;border:0;background:none;padding:4px 0 8px 12px;min-width:0}
}
@media (max-width:520px){.nav .btn{padding:9px 14px;font-size:13.5px}.logo{width:88px}}


.estimate{margin-top:26px;display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0 4px;border-top:1px solid var(--line)}
.estimate span{font-size:14.5px;color:var(--stone)}
.estimate b{font-family:var(--display);font-weight:600;font-size:26px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.estimate b small{font-family:var(--body);font-size:14px;font-weight:400;color:var(--stone);letter-spacing:0;margin-right:4px}
.pay-note{display:flex;gap:10px;align-items:center;justify-content:center;font-size:13.5px;color:var(--stone);margin-top:12px;text-align:center}
.form .estimate+.btn{margin-top:16px}

/* equal-size nav buttons */
.nav-actions .btn{width:222px;height:44px;justify-content:center;padding:0 14px;font-size:14.5px;line-height:1}
.nav-actions .btn-primary{gap:0;white-space:pre}
@media (max-width:1180px){.nav-actions .btn-wa{width:44px;padding:0}}
@media (max-width:1100px){.nav-actions .btn{width:auto;height:42px;padding:0 16px}.nav-actions .btn-wa{width:42px;padding:0}}

footer.site{border-top:1px solid var(--line);padding-block:40px;font-size:14px;color:var(--stone)}
footer.site .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;align-items:center}
footer.site .logo{width:84px}
footer.site nav{display:flex;flex-wrap:wrap;gap:24px}
footer.site a{text-decoration:none}
footer.site a:hover{color:var(--ink)}

/* ---- multi-page additions ---- */
.skip{position:absolute;left:-9999px;top:0;background:var(--paper);color:var(--ink);padding:12px 18px;border-radius:0 0 8px 0;font-family:var(--display);font-weight:600;z-index:100}
.skip:focus{left:0}
.nav-links a.active,.dd-btn.active{color:var(--ink);font-weight:600}
.foot-brand{display:flex;flex-direction:column;gap:10px}.foot-brand p{font-size:14px;color:var(--stone);max-width:22em}
.soon-grid.four{grid-template-columns:repeat(4,1fr)}.soon-grid.four .soon{aspect-ratio:3/4.2}
@media (max-width:1000px){.soon-grid.four{grid-template-columns:1fr 1fr}}@media (max-width:560px){.soon-grid.four{grid-template-columns:1fr}}
.pagehead{padding-block:56px 40px;border-bottom:1px solid var(--line)}
.pagehead .crumb{font-size:14px;color:var(--stone);margin-bottom:18px}
.pagehead .crumb a{text-decoration:none}.pagehead .crumb a:hover{color:var(--ink)}
.pagehead h1{font-size:clamp(40px,5vw,64px);max-width:15em}
.pagehead p{color:var(--stone);font-size:19px;max-width:36em;margin-top:18px}
.pagehead .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
/* gate detail */
.detail .wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.detail.flip figure{order:2}
.detail figure{margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3.7;max-width:100%}
.detail figure img{width:100%;height:100%;object-fit:cover;display:block}
.detail h2{font-size:clamp(32px,3.6vw,46px);margin:12px 0 10px}
.detail .pr{font-family:var(--display);font-size:20px;color:var(--stone);font-variant-numeric:tabular-nums}.detail .pr b{color:var(--ink);font-weight:600}
.detail p.d{color:var(--stone);margin-top:18px}
.specs{list-style:none;margin:24px 0 28px;padding:0;border-top:1px solid var(--line)}
.specs li{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.specs li span:first-child{font-family:var(--display);font-weight:600}
.specs li span:last-child{color:var(--stone)}
.detail+.detail{padding-top:0}
@media (max-width:900px){.detail .wrap{grid-template-columns:1fr;gap:28px}.detail.flip figure{order:0}.specs li{grid-template-columns:120px 1fr}}
.compare-wrap{overflow-x:auto;background:var(--paper);border:1px solid var(--line);border-radius:12px}
table.compare{width:100%;border-collapse:collapse;min-width:640px;font-size:15.5px}
.compare th,.compare td{padding:16px 20px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.compare thead th{font-family:var(--display);font-weight:600;font-size:17px;background:var(--linen)}
.compare tbody th{font-family:var(--display);font-weight:600;color:var(--stone);width:22%}
.compare tr:last-child td,.compare tr:last-child th{border-bottom:0}
/* coming soon */
.soon-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.soon{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/4.6;background:var(--paper);border:1px solid var(--line);display:flex;flex-direction:column;justify-content:flex-end;padding:24px}
.soon .blur{position:absolute;inset:0;filter:blur(18px) saturate(.8);transform:scale(1.2);opacity:.75}
.soon .blur.a{background:radial-gradient(circle at 30% 35%,#E8D3BF 0 30%,transparent 55%),radial-gradient(circle at 70% 70%,#DCE3DA 0 25%,transparent 55%),var(--linen)}
.soon .blur.b{background:radial-gradient(circle at 60% 30%,#E3EAEE 0 30%,transparent 58%),radial-gradient(circle at 30% 75%,#F3E4DC 0 28%,transparent 55%),var(--linen)}
.soon .blur.c{background:radial-gradient(circle at 40% 55%,#D9C6AE 0 26%,transparent 55%),radial-gradient(circle at 75% 25%,#F3E4DC 0 22%,transparent 50%),var(--linen)}
.soon>*{position:relative}
.soon .n{font-family:var(--display);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--oak-deep)}
.soon h3{font-size:26px;margin:8px 0 6px}
.soon p{color:var(--stone);font-size:15px}
.soon .lock{position:absolute;top:20px;right:20px;font-family:var(--display);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;background:var(--paper);padding:5px 10px;border-radius:999px;color:var(--clay-deep)}
.soon.live{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.soon.live p{color:#CFC6BB}.soon.live .n{color:var(--oak)}
.soon.live .lock{background:var(--clay);color:#fff}
@media (max-width:900px){.soon-grid{grid-template-columns:1fr}.soon{aspect-ratio:auto;min-height:220px}}
/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:start}
.ways{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.ways li{padding:22px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:150px 1fr;gap:16px}
.ways .k{font-family:var(--display);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--oak-deep);padding-top:4px}
.ways a,.ways strong{font-family:var(--display);font-size:20px;font-weight:600;text-decoration:none;letter-spacing:-.01em}
.ways a:hover{color:var(--clay-deep)}
.ways small{display:block;color:var(--stone);font-size:14.5px;margin-top:2px;font-family:var(--body)}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr;gap:40px}.ways li{grid-template-columns:1fr;gap:4px}}
/* legal pages */
.legal .wrap{max-width:820px}
.legal h2{font-size:clamp(26px,3vw,34px);margin:56px 0 8px;scroll-margin-top:96px}
.legal h3{font-size:20px;margin:32px 0 6px}
.legal p,.legal li{color:var(--stone)}
.legal p{margin-top:14px}
.legal ul{margin:14px 0 0;padding-left:20px}
.legal li{margin-bottom:8px}
.legal .updated{font-family:var(--display);font-size:13.5px;color:var(--stone);padding:14px 18px;background:var(--paper);border:1px solid var(--line);border-radius:10px;margin-top:8px}
.legal table{width:100%;border-collapse:collapse;margin-top:18px;font-size:15.5px}
.legal th,.legal td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.legal thead th{font-family:var(--display);font-weight:600;background:var(--paper)}
.legal td{color:var(--stone)}
.legal .toc{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.legal .toc li{margin:0}
.legal .toc a{font-family:var(--display);font-size:14px;font-weight:500;text-decoration:none;padding:8px 14px;border-radius:999px;background:var(--paper);border:1px solid var(--line);color:var(--stone)}
.legal .toc a:hover{color:var(--ink);border-color:var(--oak)}
/* warm variant of the milestone band — terracotta instead of blue-grey */
.growth.warm{background:var(--clay-wash)}
.growth.warm .timeline::before{background:rgba(169,81,58,.3)}
.growth.warm .mile .dot{background:var(--clay-wash);border-color:rgba(169,81,58,.45)}
.growth.warm .mile.now .dot{background:var(--clay);border-color:var(--clay)}
.growth.warm .foot{border-top-color:rgba(169,81,58,.2)}
.growth.warm .head p{color:var(--stone)}
/* founder's note — a quiet aside, deliberately not a headline */
.founder{background:var(--paper);border-block:1px solid var(--line);padding-block:72px}
.founder .wrap{max-width:820px}
.founder .wrap>div{border-left:2px solid var(--oak);padding-left:30px;max-width:640px}
.founder .lead{font-size:18.5px;color:var(--ink);margin-top:12px}
.founder p+p{margin-top:15px;color:var(--stone);font-size:16.5px}
.founder .sign{font-family:var(--display);font-weight:600;font-size:16px;color:var(--ink);margin-top:26px}
.founder .sign small{display:block;font-family:var(--body);font-weight:400;font-size:14px;color:var(--stone);margin-top:1px}
@media (max-width:560px){.founder{padding-block:52px}.founder .wrap>div{padding-left:20px}}
/* ---- vertical rhythm -----------------------------------------------------
   Every section carried 104px top AND bottom, so the gap between any two was
   ~208px of nothing. Cut hard on plain sections — the ones sitting on the same
   linen background as their neighbour, where the space reads as dead rather
   than as breathing room. Coloured bands keep more internal padding so their
   content isn't jammed against the colour edge. */
section{padding-block:58px}
.values,.standard,.bond,.growth,.grow,.founder{padding-block:76px}
.hero{padding-block:48px 62px}
.statement{padding-block:62px 8px}
.cta{padding-block:0 62px}
.book{padding-block:62px 40px}
.head{margin-bottom:40px}
.growth .foot{margin-top:30px}
.values .grid{margin-top:34px}
.points{margin-top:24px}
.checkins{margin-top:22px}
@media (max-width:820px){
  section{padding-block:36px}
  .values,.standard,.bond,.growth,.grow,.founder{padding-block:48px}
  .hero{padding-block:22px 34px}
  .statement{padding-block:34px 0}
  .book{padding-block:34px 22px}
  .cta{padding-block:0 36px}
  .head{margin-bottom:26px}
}
/* honeypot — must never be visible or focusable */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form-error{grid-column:1/-1;background:var(--clay-wash);border:1px solid rgba(169,81,58,.35);color:var(--clay-deep);border-radius:8px;padding:12px 14px;font-size:14.5px}
[hidden]{display:none!important}
