/* Caivan-inspired palette: black frame, olive panels, sage accents */
:root{
  --black:#0a0a0a;--olive:#556d3e;--olive-2:#4a5f36;--olive-3:#5c7044;--sage:#bccca7;--sage-2:#dfe7d4;
  --white:#fff;--dim:rgba(255,255,255,.72);--line:rgba(255,255,255,.35);--ink:#0a0a0a;
  --mono:'DM Mono',ui-monospace,monospace;--sans:'Inter Tight','Helvetica Neue',Arial,sans-serif;--display:'Space Grotesk','Helvetica Neue',sans-serif;
}
*{box-sizing:border-box}
html{overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:100px}
body{overflow-x:clip;margin:0;background:var(--black);color:var(--white);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.01em;line-height:1.05;margin:0}
p{margin:0}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px}
.frame{padding:0 41px}
.mono,.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.eyebrow{opacity:.85;margin-bottom:14px;display:block}
.wordmark{font-family:'Archivo Black',var(--sans);text-transform:none;letter-spacing:-.02em;line-height:.9}

/* buttons: square, mono, uppercase */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 28px;border:1px solid transparent;border-radius:0;font:500 13px var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:.2s}
.btn-black{background:var(--black);color:#fff}.btn-black:hover{background:#262626}
.btn-line{background:transparent;color:#fff;border-color:#fff}.btn-line:hover{background:#fff;color:var(--black)}
.btn-sage{background:var(--sage);color:var(--black)}.btn-sage:hover{background:#fff}
.btn-dark-line{background:transparent;color:var(--black);border-color:var(--black)}.btn-dark-line:hover{background:var(--black);color:#fff}

/* header */
header.nav{position:sticky;top:0;z-index:40;background:var(--black)}
.nav-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:88px;padding:0 41px}
.nav-links,.nav-right{display:flex;gap:22px;align-items:center;font:500 13px var(--mono);letter-spacing:.06em;text-transform:uppercase}
.nav-right{justify-content:flex-end}
.nav-links a,.nav-right a:not(.btn){text-decoration:none}
.nav-links a:hover,.nav-right a:not(.btn):hover{color:var(--sage)}
.logo{font-family:'Cormorant Garamond',serif;font-size:34px;letter-spacing:.14em;text-decoration:none;font-weight:500}


/* olive form panel */
.form-card{background:var(--olive);color:#fff;padding:32px;width:100%;max-width:470px;box-shadow:0 30px 60px -25px rgba(0,0,0,.6)}
.form-card h2{font-size:30px;text-align:center}
.form-card .sub{text-align:center;margin:8px 0 22px;color:var(--dim);font-size:15px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label,.legend{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase}
.field input,.field select{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:0;background:transparent;color:#fff;font:15px var(--sans);-webkit-appearance:none;appearance:none}
.field select{background-image:linear-gradient(45deg,transparent 50%,#fff 50%),linear-gradient(135deg,#fff 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:34px}
.field select option{color:var(--black)}
.field input::placeholder{color:rgba(255,255,255,.55)}
.field input:focus,.field select:focus{outline:none;border-color:#fff;background:rgba(255,255,255,.06)}
.seg{display:flex;gap:10px}
.seg label{flex:1;cursor:pointer}
.seg input{position:absolute;opacity:0}
.seg span{display:block;text-align:center;padding:11px;border:1px solid var(--line);font:500 12px var(--mono);letter-spacing:.1em;text-transform:uppercase}
.seg input:checked+span{background:#fff;color:var(--black);border-color:#fff}
.seg input:focus-visible+span{outline:2px solid var(--sage)}
.consent{display:flex;gap:10px;font-size:12.5px;color:var(--dim);margin:4px 0 10px;line-height:1.45;cursor:pointer}
.consent b{color:#fff}
.consent input{margin-top:2px;accent-color:var(--black);flex:none;width:16px;height:16px}
.form-card .btn{width:100%;margin-top:6px}
.err{color:#ffd6cc;font-size:13px;min-height:18px}

/* panels */
.panel{margin:0 41px 100px;padding:88px 0}
.panel.olive{background:var(--olive)}
.panel.sage{background:var(--sage);color:var(--ink)}
.panel.white{background:#f4f3ee;color:var(--ink)}
.panel.bare{padding:0}
.sec-head{max-width:760px;margin:0 auto 48px;text-align:center}
.sec-head h2{font-size:clamp(32px,4vw,52px);margin-bottom:14px}
.sec-head p{font-size:18px;opacity:.85}

/* intro (Caivan style) */
.intro{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:0 24px}
.intro .wordmark{font-size:clamp(60px,7vw,96px);text-align:center}
.intro p{font-size:19px;margin-bottom:24px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-top:64px}
.stats div{padding:28px 16px 0;text-align:center;border-right:1px solid var(--line)}
.stats div:last-child{border-right:0}
.stats b{display:block;font:400 42px var(--display);line-height:1}
.stats span{font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;opacity:.8}

/* overview */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split img{width:100%;aspect-ratio:4/3;object-fit:cover}
.split h2{font-size:clamp(30px,3.6vw,46px);margin-bottom:18px}
.split p{font-size:17px;opacity:.85}
.checks{list-style:none;padding:0;margin:26px 0 30px;display:grid;grid-template-columns:1fr 1fr;gap:0}
.checks li{padding:12px 0;border-top:1px solid currentColor;border-color:rgba(10,10,10,.2);font:500 12px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.olive .checks li,.dark .checks li{border-color:var(--line)}

/* collections */
.tabs{display:flex;justify-content:center;gap:0;margin-bottom:40px;flex-wrap:wrap}
.tabs button{padding:13px 24px;border:1px solid var(--black);margin-left:-1px;background:transparent;color:var(--black);font:500 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.tabs button.on{background:var(--black);color:#fff}
.cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:24px}
.col{background:#fff;color:var(--ink);display:flex;flex-direction:column}
.col .ph{position:relative;aspect-ratio:16/10;overflow:hidden;background:#ddd}
.col .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.col:hover .ph img{transform:scale(1.04)}
.tag{position:absolute;top:0;left:0;background:var(--black);color:#fff;padding:7px 12px;font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase}
.tag.new{left:auto;right:0;background:var(--olive)}
.col .body{padding:24px;display:flex;flex-direction:column;flex:1}
.col h3{font-size:26px}
.col .meta{display:grid;grid-template-columns:repeat(3,1fr);margin:16px 0 18px;border-top:1px solid #e3e3e3;border-bottom:1px solid #e3e3e3}
.col .meta span{padding:10px 0;font:500 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#666}
.col .meta b{display:block;font:500 16px var(--sans);color:var(--ink);letter-spacing:0;text-transform:none}
.models{display:flex;flex-direction:column;margin-bottom:14px}
.model{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid #eee;font-size:14.5px;text-decoration:none;color:var(--ink)}
.model:hover{color:var(--olive)}
.model .lock{display:inline-flex;align-items:center;gap:6px;font:500 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--olive)}
.more-old{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#777;margin:0 0 16px}
.col .btn{margin-top:auto}

/* locked plans */
.locked{position:relative;overflow:hidden}
.locked img{filter:blur(10px) saturate(.6);transform:scale(1.08);aspect-ratio:21/9;object-fit:cover;width:100%}
.locked .ov{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:rgba(10,10,10,.55);padding:24px}
.locked .ov h3{font-size:clamp(26px,3.4vw,44px);margin:18px 0 10px}
.locked .ov p{max-width:500px;margin:0 0 24px;color:var(--dim)}
.lock-ic{width:62px;height:62px;border:1px solid #fff;display:grid;place-items:center}

/* gallery */
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:280px 280px;gap:12px}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery img:first-child{grid-row:span 2}

/* community */
.amen{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(10,10,10,.25)}
.amen div{padding:26px 22px 26px 0}
.amen b{display:block;font:400 22px var(--display);text-transform:uppercase;margin-bottom:6px}
.amen span{font-size:14.5px;opacity:.8}
.loc{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start;margin-top:56px}
.loc img{background:#fff}
.times{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(10,10,10,.25)}
.times div{display:flex;justify-content:space-between;align-items:baseline;padding:16px 14px 16px 0;border-bottom:1px solid rgba(10,10,10,.25);font:500 12px var(--mono);letter-spacing:.06em;text-transform:uppercase}
.times b{font:400 26px var(--display)}

/* booking */
.calendly-inline-widget{min-width:300px;height:700px;background:#fff}

/* register band */
.reg-band{text-align:center}
.reg-band h2{font-size:clamp(34px,4.5vw,56px)}
.reg-band p{font-size:19px;margin:12px 0 28px;opacity:.9}

/* footer */
footer{padding:20px 41px 30px;font-size:14px;color:var(--dim)}
.foot-top{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.3fr;gap:40px;border-top:1px solid #2a2a2a;padding-top:56px}
footer h4{color:#fff;font:500 12px var(--mono);letter-spacing:.14em;text-transform:uppercase;margin:0 0 18px}
footer a{text-decoration:none}footer a:hover{color:var(--sage)}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:11px}
footer .wordmark{font-size:44px;color:#fff}
.legal{border-top:1px solid #2a2a2a;margin-top:48px;padding-top:22px;font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#777;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

.sticky-m{display:none}

@media (max-width:1080px){
  .nav-links{display:none}
  .nav-row{grid-template-columns:auto 1fr;padding:0 20px}
  .logo{font-size:26px}
}
@media (max-width:980px){
  .frame,.panel{margin-left:16px;margin-right:16px}
  .panel{margin-bottom:56px;padding:64px 0}
  .intro,.split,.loc{grid-template-columns:1fr;gap:36px}
  .stats{grid-template-columns:1fr 1fr}
  .stats div:nth-child(2){border-right:0}
  .amen{grid-template-columns:1fr 1fr}
  .foot-top{grid-template-columns:1fr 1fr}
  .gallery{grid-template-columns:1fr 1fr;grid-template-rows:200px 200px 200px}
  .gallery img:first-child{grid-column:span 2;grid-row:auto}
  footer{padding:20px 16px 30px}
}
@media (max-width:620px){
  .wrap{padding:0 18px}
  .nav-right a:not(.btn){display:none}
  .nav-right .btn{padding:11px 16px}
  .grid2,.checks,.times,.amen,.foot-top{grid-template-columns:1fr}
  .cols{grid-template-columns:1fr}
  .form-card{padding:24px 18px}
  .locked img{aspect-ratio:4/5}
  .sticky-m{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50}
  .sticky-m .btn{flex:1;padding:17px}
  body{padding-bottom:54px}
}

/* ============ HERO (form sits lower, overlapping the image edge) ============ */
.hero{position:relative;padding:0 0 60px}
.hero-bg{position:relative;height:calc(100vh - 88px);min-height:600px;max-height:880px;overflow:hidden;display:flex;align-items:flex-end}
.hero-img{position:absolute;inset:-6% 0;background:url(img/hero.jpg) center/cover no-repeat;transform:translateY(var(--py,0)) scale(1.06);animation:kb 18s ease-in-out infinite alternate;will-change:transform}
@keyframes kb{from{scale:1}to{scale:1.08}}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,0) 35%,rgba(10,10,10,.8) 100%),linear-gradient(90deg,rgba(10,10,10,.45),rgba(10,10,10,0) 55%)}
.hero-copy-wrap{position:relative;z-index:2;width:100%;padding-bottom:70px}
.hero-copy-wrap .hero-copy{max-width:calc(100% - 520px)}
.hero-grid{position:relative;z-index:3;display:flex;justify-content:flex-end;margin-top:calc(-1 * min(100vh - 88px, 880px) + 150px)}
.hero-grid .form-card{width:460px}
.hero-copy{animation:rise 1s cubic-bezier(.2,.8,.2,1) both}
.hero-copy h2{font-size:clamp(40px,5vw,72px);margin:16px 0 12px;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.hero-copy p{font-size:18px;opacity:.9}
.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid rgba(255,255,255,.6);border-radius:999px;font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;background:rgba(10,10,10,.25);backdrop-filter:blur(6px)}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--sage);animation:pulse 1.8s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(188,204,167,.8)}100%{box-shadow:0 0 0 10px rgba(188,204,167,0)}}
.form-card{max-width:none;position:relative;border-top:4px solid var(--sage);animation:rise .9s cubic-bezier(.2,.8,.2,1) both .2s}
@keyframes rise{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}

/* decorative leaf shapes */
.shape{position:absolute;z-index:1;pointer-events:none}
.leaf path{fill:var(--sage);opacity:.9}.leaf .vein{fill:none;stroke:var(--olive);stroke-width:2}
.l1{width:70px;left:3%;top:18%;animation:float 7s ease-in-out infinite}
.l2{width:44px;left:40%;top:10%;opacity:.7;animation:float 9s ease-in-out infinite reverse}
@keyframes float{0%,100%{transform:translateY(0) rotate(-12deg)}50%{transform:translateY(-18px) rotate(10deg)}}

/* marquee */
.marquee{overflow:hidden;border-top:1px solid #222;border-bottom:1px solid #222;padding:18px 0;margin-bottom:80px}
.marquee .track{display:flex;gap:28px;width:max-content;animation:scroll 38s linear infinite;font:400 22px var(--display);text-transform:uppercase;white-space:nowrap}
.marquee i{color:var(--sage);font-style:normal}
@keyframes scroll{to{transform:translateX(-50%)}}

/* arch image + rotating ring */
.arch-wrap{position:relative}
.split img.arch{border-radius:320px 320px 0 0;aspect-ratio:4/4.4}
.ring{position:absolute;width:150px;right:-30px;bottom:-30px;animation:spin 18s linear infinite;background:var(--olive);border-radius:50%}
.ring text{fill:#fff;font:500 13.5px var(--mono);letter-spacing:.2em}
@keyframes spin{to{transform:rotate(360deg)}}

/* collection cards: see-more + balanced grid */
.cols{display:flex;flex-wrap:wrap;justify-content:center;gap:24px}
.col{flex:0 1 calc((100% - 48px)/3);min-width:300px;transition:transform .35s,box-shadow .35s}
.col:hover{transform:translateY(-6px);box-shadow:0 24px 50px -20px rgba(10,10,10,.45)}
.model.extra{display:none}
.col.open .model.extra{display:flex;animation:rise .35s both}
.see-more{align-self:flex-start;background:none;border:0;border-bottom:1px solid var(--olive);padding:4px 0;margin:0 0 18px;font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--olive);cursor:pointer}
.see-more:hover{color:var(--black);border-color:var(--black)}

/* grouped locked floor plans */
.plan-groups{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-top:40px}
.pg{border:1px solid var(--line);padding:22px;background:rgba(10,10,10,.12)}
.pg.extra{display:none}
.plan-groups.open .pg.extra{display:block}
.pg-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}
.pg-head h4{margin:0;font:400 22px var(--display);text-transform:uppercase}
.pg-head span{font:500 10.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;opacity:.75}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips a{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;font-size:13px;text-decoration:none;transition:.2s}
.chips a:hover{background:#fff;color:var(--black);border-color:#fff}
.center-btn{text-align:center;margin-top:32px}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.8,.2,1) var(--d,0ms),transform .8s cubic-bezier(.2,.8,.2,1) var(--d,0ms)}
.reveal.in{opacity:1;transform:none}
.gallery img{transition:transform .6s,filter .6s}
.gallery img:hover{transform:scale(1.02);filter:brightness(1.08)}
.btn{position:relative;overflow:hidden}
.btn-black::after,.btn-line::after{content:"→";margin-left:2px;transition:transform .25s}
.btn:hover::after{transform:translateX(4px)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

@media (max-width:1080px){
  .hero-grid .form-card{width:420px}
  .hero-copy-wrap .hero-copy{max-width:calc(100% - 460px)}
  .plan-groups{grid-template-columns:1fr 1fr}
  .col{flex-basis:calc((100% - 24px)/2)}
}

/* ============ MOBILE: hero + top half of form in the first screen ============ */
@media (max-width:820px){
  .nav-row{height:60px}
  html{scroll-padding-top:70px}
  .hero{padding-bottom:30px}
  .hero-bg{height:46svh;min-height:280px;max-height:440px}
  .hero-copy-wrap{padding-bottom:64px}
  .hero-copy-wrap .hero-copy{max-width:none}
  .hero-grid{display:block;margin-top:-48px}
  .hero-grid .form-card{width:100%}
  .hero-copy h2{font-size:32px;margin:10px 0 4px}
  .hero-copy p{display:none}
  .pill{font-size:10px;padding:6px 11px}
  .l1{width:40px;top:10%;left:auto;right:6%}.l2{display:none}
  .form-card{padding:20px 16px}
  .form-card h2{font-size:22px}
  .form-card .sub{margin:4px 0 14px;font-size:13.5px}
  .form-card .grid2{grid-template-columns:1fr 1fr;gap:10px}
  .field{margin-bottom:10px;gap:4px}
  .field label,.legend{font-size:10px}
  .field input,.field select{padding:11px 10px;font-size:16px}
  .seg span{padding:10px}
  .marquee{margin-bottom:48px;padding:12px 0}.marquee .track{font-size:17px}
  .plan-groups{grid-template-columns:1fr}
  .col{flex-basis:100%;min-width:0}
  .ring{width:100px;right:-6px;bottom:-20px}
  .split img.arch{aspect-ratio:1}
}

/* ============ MOTION LAYER ============ */
.progress{position:fixed;top:0;left:0;right:0;height:3px;background:var(--sage);transform-origin:0 50%;transform:scaleX(0);z-index:60}
header.nav{transition:background .3s}
.nav-row{transition:height .3s}
header.nav.shrunk .nav-row{height:64px}
header.nav.shrunk .logo{font-size:28px}
.logo{transition:font-size .3s}
header.nav.shrunk{background:rgba(10,10,10,.88);backdrop-filter:blur(10px)}
/* word stagger */
.words .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em}
.words .w>span{display:inline-block;transform:translateY(105%);transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.words.in .w>span,.hero-copy .words .w>span{transform:none}
.hero-copy h2 .w>span{animation:wordup 1s cubic-bezier(.2,.8,.2,1) both}
@keyframes wordup{from{transform:translateY(105%)}to{transform:none}}
.sec-head.reveal h2{opacity:1}
.arch-wrap .ring{z-index:2}
/* parallax */
.arch,.gallery img,.locked img{transform:translateY(var(--py,0)) scale(1.1)}
.locked img{transform:translateY(var(--py,0)) scale(1.15)}
.gallery{overflow:hidden}
.gallery img{transition:filter .6s}
.gallery img:hover{transform:translateY(var(--py,0)) scale(1.14);filter:brightness(1.08)}
.gallery>img{overflow:hidden}
/* tilt */
.col.tilt{transition:transform .12s linear,box-shadow .35s}
/* sage blob behind stats */
#overview{position:relative;overflow:hidden}
#overview::before{content:"";position:absolute;width:520px;height:520px;right:-160px;top:-200px;border-radius:42% 58% 63% 37%/45% 38% 62% 55%;background:radial-gradient(circle at 30% 30%,rgba(188,204,167,.35),rgba(188,204,167,0) 70%);animation:blob 14s ease-in-out infinite alternate}
@keyframes blob{to{border-radius:60% 40% 35% 65%/55% 60% 40% 45%;transform:translate(-60px,50px) rotate(40deg)}}
#overview .wrap{position:relative}
/* lock icon wiggle */
.lock-ic{animation:wiggle 3.5s ease-in-out infinite}
@keyframes wiggle{0%,86%,100%{transform:rotate(0)}89%{transform:rotate(-10deg)}92%{transform:rotate(10deg)}95%{transform:rotate(-6deg)}}
.chips a svg,.model .lock svg{transition:transform .25s}
.chips a:hover svg,.model:hover .lock svg{transform:translateY(-2px) rotate(-12deg)}
@media (prefers-reduced-motion:reduce){.words .w>span{transform:none}}
.logo{white-space:nowrap}
@media (max-width:820px){.logo,header.nav.shrunk .logo{font-size:21px;letter-spacing:.1em}}
@media (max-width:360px){.logo,header.nav.shrunk .logo{font-size:17px}.nav-right .btn{padding:9px 10px;font-size:11px}}

/* home cards: 6 on desktop, 3 on mobile, then "See more" */
.col.hide{display:none}
.cols-more{text-align:center;margin-top:36px}
.btn-dark-line::after{content:"↓";margin-left:4px;transition:transform .25s}
.cols-more .btn.open::after{content:"↑"}

/* full register section above footer (Caivan style) */
.reg-full .wrap{max-width:760px}
.reg-full .sec-head{margin-bottom:28px}
.reg-full .intro-line{text-align:center;margin-bottom:22px;opacity:.9}
.reg-full form{background:none;box-shadow:none;padding:0;border:0;animation:none}
.reg-full .grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.reg-full .btn{max-width:320px;margin:10px auto 0;display:flex}
.reg-full .consent{max-width:620px;margin:8px auto 10px}
@media (max-width:820px){.reg-full .grid3{grid-template-columns:1fr}}

/* ============ Caivan multi-shade palette ============ */
:root{--forest:#34462a;--teal:#3e7f93;--teal-2:#356d7e;--mist:#bdc8d9;--navy:#09274a;--butter:#ffd250;--peach:#ff9970;--mauve:#bba1b3}
.panel.forest{background:var(--forest)}
.panel.teal{background:var(--teal)}
.panel.forest .pg{background:rgba(255,255,255,.04)}
.panel.forest .btn-sage{background:var(--butter)}
.panel.teal .contact-card{background:var(--navy)}
.panel.teal .checks li{border-color:rgba(255,255,255,.35)}
.panel.sage .tabs button.on{background:var(--forest);border-color:var(--forest)}
.reg-full{background:linear-gradient(135deg,var(--olive) 0%,#4b6136 100%)!important}
.panel.white{background:#f4f1ea}
.panel.white .eyebrow{color:var(--teal-2)}
.tag.new{background:var(--butter);color:var(--black)}
.stats b{color:var(--butter)}
.progress{background:linear-gradient(90deg,var(--butter),var(--peach))}
.ring{background:var(--teal)}
.leaf path{fill:var(--butter)}.l2 path{fill:var(--peach)}

/* ============ HERO: clean full-bleed image (Caivan) ============ */
.hero{padding:0}
.hero-bg{height:calc(100vh - 88px);min-height:560px;max-height:900px}
.hero-copy-wrap{padding-bottom:80px}
.hero-copy-wrap .hero-copy{max-width:760px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.scroll-cue{position:absolute;left:50%;bottom:26px;z-index:3;width:26px;height:42px;border:1.5px solid rgba(255,255,255,.8);border-radius:20px;transform:translateX(-50%)}
.scroll-cue span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#fff;animation:cue 1.6s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}40%{opacity:1}100%{opacity:0;transform:translateY(14px)}}

/* ============ Intro + register (section right after hero) ============ */
.intro-reg{margin-top:0}
.intro-grid{display:grid;grid-template-columns:1fr 480px;gap:64px;align-items:start}
.intro-left .wordmark{font-size:clamp(64px,7vw,110px);margin-bottom:26px}
.intro-lead{font:400 26px var(--display);text-transform:uppercase;margin-bottom:14px}
.intro-body{font-size:17px;opacity:.88;max-width:520px}
.perks{list-style:none;padding:0;margin:30px 0 0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.perks li{padding:16px 12px 16px 0;border-bottom:1px solid var(--line);font-size:15px}
.perks b{display:block;font:500 11px var(--mono);letter-spacing:.12em;color:var(--butter);margin-bottom:4px}
.intro-reg .form-card{background:var(--forest);border-top:4px solid var(--butter);width:auto}
.intro-reg .stats{margin-top:72px}

/* ============ Community fill ============ */
.loc{align-items:stretch}
.map-box{position:relative;min-height:520px;height:100%;background:#dfe3d6}
.map-box iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.35) contrast(1.05)}
.map-tag{position:absolute;left:16px;top:16px;background:var(--black);color:#fff;padding:8px 12px;font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.near{margin-top:34px}
.near ul{list-style:none;padding:0;margin:0;border-top:1px solid rgba(10,10,10,.25)}
.near li{padding:14px 0;border-bottom:1px solid rgba(10,10,10,.25);font-size:15px;display:grid;grid-template-columns:120px 1fr;gap:12px}
.near li b{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;padding-top:3px}

/* ============ Booking fill ============ */
.book-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:8px 0 22px}
.book-steps div{background:rgba(255,255,255,.1);padding:18px 16px;border-top:3px solid var(--butter)}
.book-steps i{font:400 30px var(--display);font-style:normal;color:var(--butter);display:block}
.book-steps b{display:block;font:500 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;margin:6px 0 4px}
.book-steps span{font-size:13.5px;opacity:.85}
.contact-card{display:grid;gap:10px;padding:24px;margin-bottom:24px;font-size:15px}
.contact-card a{text-decoration:none}.contact-card a:hover{color:var(--butter)}
#book .calendly-inline-widget{height:760px}

@media (max-width:1080px){.intro-grid{grid-template-columns:1fr 420px;gap:40px}}
@media (max-width:820px){
  .hero-bg{height:56svh;min-height:340px;max-height:520px}
  .hero-copy-wrap{padding-bottom:28px}
  .hero-cta{display:none}
  .scroll-cue{display:none}
  .intro-reg{padding-top:0!important;margin-top:0}
  .intro-grid{grid-template-columns:1fr;gap:0}
  .intro-grid .form-card{order:-1;margin:0 -16px}
  .intro-left{padding-top:44px}
  .perks{grid-template-columns:1fr}
  .book-steps{grid-template-columns:1fr}
  .map-box{min-height:340px}
  .near li{grid-template-columns:1fr;gap:2px}
}

.intro-img{position:relative;margin-top:30px;overflow:hidden}
.intro-img img{width:100%;height:230px;object-fit:cover;transition:transform .8s}
.intro-img:hover img{transform:scale(1.05)}
.intro-img span{position:absolute;left:0;bottom:0;background:var(--butter);color:var(--black);padding:8px 12px;font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase}
@media (max-width:820px){.intro-img img{height:200px}}

/* Booking: lighter version of the site green instead of teal */
.panel.teal{background:#6b8452}
.panel.teal .contact-card{background:var(--forest)}
.panel.teal .book-steps div{background:rgba(10,10,10,.12)}
.panel.teal .eyebrow{color:#fff}
.ring{background:var(--olive)}
.panel.white .eyebrow{color:var(--olive)}

/* ===== Mobile polish ===== */
@media (max-width:820px){
  /* stats: clean 2x2 grid */
  .stats{grid-template-columns:1fr 1fr;margin-top:40px}
  .stats div{border-right:0;border-bottom:1px solid var(--line);padding:22px 8px}
  .stats div:nth-child(odd){border-right:1px solid var(--line)}
  .stats div:nth-child(n+3){border-bottom:0}
  .stats b{font-size:34px;white-space:nowrap}
  .stats span{font-size:10px}
  /* tabs on a single line */
  .tabs{flex-wrap:nowrap}
  .tabs button{flex:1;padding:12px 6px;font-size:10px;letter-spacing:.04em;white-space:nowrap}
  /* floor-plan chips: 2 per row */
  .chips{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .chips a{border-radius:12px;padding:9px 10px;font-size:12.5px;line-height:1.25;align-items:flex-start}
  .chips a svg{flex:none;margin-top:2px}
  .pg{padding:18px 14px}
  .pg-head h4{font-size:19px}
}
@media (max-width:820px){.col{max-width:100%;min-width:0!important;flex-basis:100%!important}.cols{gap:18px}}
@media (max-width:620px){
  .reg-full .grid2{grid-template-columns:1fr;gap:0}
  .reg-full .consent{margin:6px 0 12px}
  .reg-full .btn{max-width:none;width:100%}
  .reg-full .sec-head h2{font-size:30px}
}

/* ===== Logos ===== */
.logo img{height:44px;width:auto;display:block;transition:height .3s}
header.nav.shrunk .logo img{height:34px}
.by-caivan{height:13px;width:auto;opacity:.9;margin-right:4px}
.op-logo{width:min(360px,80%);height:auto;filter:brightness(0) invert(1);margin-bottom:24px}
.op-logo.foot{filter:none;width:200px;margin:0}
.built-by{display:flex;align-items:center;gap:12px;margin-top:22px;font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase}
.built-by img{height:16px;width:auto}
.hero-prices{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:16px}
.hero-prices b{color:var(--butter);font-weight:600}
.map-open{position:absolute;right:16px;bottom:16px;background:#fff;color:var(--black);padding:9px 14px;font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;box-shadow:0 6px 20px rgba(0,0,0,.2)}
.map-open:hover{background:var(--butter)}

/* ===== Incentives ===== */
.inc-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:auto auto;gap:14px}
.inc{background:#fff;border:1px solid rgba(10,10,10,.12);padding:26px;transition:transform .3s,box-shadow .3s}
.inc:hover{transform:translateY(-4px);box-shadow:0 18px 40px -22px rgba(10,10,10,.4)}
.inc span{font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--olive)}
.inc b{display:block;font:400 54px var(--display);line-height:1;margin:12px 0 8px}
.inc p{font-size:14.5px;opacity:.75}
.inc.big{grid-row:span 2;background:var(--olive);color:#fff;border:0;display:flex;flex-direction:column;justify-content:flex-end}
.inc.big span{color:var(--butter)}
.inc.big b{font-size:clamp(72px,9vw,120px);color:var(--butter)}
.inc.big p{opacity:.9}
.fine{font-size:12px;opacity:.6;margin-top:18px}

/* ===== Builder + market ===== */
.builder-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.caivan-big{width:min(340px,80%);height:auto;margin:6px 0 24px}
.builder p{opacity:.85;font-size:16.5px}
.b-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #2a2a2a;margin-top:30px}
.b-stats div{padding:20px 10px 0 0}
.b-stats b{display:block;font:400 38px var(--display);color:var(--butter)}
.b-stats span{font:500 10.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;opacity:.75}
.market{background:#151a12;border:1px solid #26301f;padding:32px}
.market h3{font-size:28px;margin-bottom:18px}
.m-rows div{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;border-bottom:1px solid #2a2a2a}
.m-rows span{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;opacity:.8}
.m-rows b{font:400 28px var(--display);color:var(--sage)}

@media (max-width:980px){
  .inc-grid{grid-template-columns:1fr 1fr}
  .inc.big{grid-column:span 2;grid-row:auto}
  .builder-grid{grid-template-columns:1fr;gap:40px}
}
@media (max-width:820px){
  .logo img{height:32px}header.nav.shrunk .logo img{height:28px}
  .by-caivan{display:none}
  .hero-prices{font-size:13.5px;gap:4px 14px}
  .inc b{font-size:40px}
  .inc{padding:20px}
  .market{padding:22px}
  .b-stats b{font-size:28px}
}
@media (max-width:820px){.hero-copy p.hero-prices{display:flex}}
.b-feats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px}
.b-feats div{border:1px solid #2a2a2a;padding:18px;transition:border-color .3s}
.b-feats div:hover{border-color:var(--butter)}
.b-feats b{display:block;font:400 18px var(--display);text-transform:uppercase;margin-bottom:4px}
.b-feats span{font-size:13.5px;opacity:.7}
@media (max-width:620px){.b-feats{grid-template-columns:1fr}}

/* 4 collections: 2 x 2 */
.col{flex-basis:calc((100% - 24px)/2)}
.col .blurb{font-size:14.5px;opacity:.7;margin-top:6px}
.plan-groups{grid-template-columns:1fr 1fr}
@media (max-width:820px){.plan-groups{grid-template-columns:1fr}}

/* FAQ */
.faq-list{max-width:860px;margin:0 auto;border-top:1px solid rgba(10,10,10,.25)}
.faq details{border-bottom:1px solid rgba(10,10,10,.25)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;padding:22px 0;font:400 20px var(--display);text-transform:uppercase}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 26px var(--display);transition:transform .3s;flex:none}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 22px;max-width:720px;font-size:16px;opacity:.85;animation:rise .4s both}
.faq details p a{font-weight:600}
@media (max-width:620px){.faq summary{font-size:16px;padding:18px 0}}

/* ===== Validation UI ===== */
.phone-wrap{display:flex;align-items:stretch}
.phone-wrap .cc{display:flex;align-items:center;gap:6px;padding:0 12px;border:1px solid var(--line);border-right:0;font:500 14px var(--mono);white-space:nowrap;background:rgba(255,255,255,.06)}
.phone-wrap input{flex:1;min-width:0}
.f-err{display:block;min-height:0;font-size:12px;color:#ffd6cc;margin-top:2px;line-height:1.3}
.f-err:empty{display:none}
.field.invalid input,.field.invalid select,.field.invalid .cc{border-color:#ff9a86!important;background-color:rgba(255,120,100,.08)}
.field.valid input,.field.valid select{border-color:var(--sage)}
.consent{flex-wrap:wrap}
.consent .f-err{flex-basis:100%;padding-left:26px}
.consent.invalid input{outline:2px solid #ff9a86;outline-offset:2px}
.err{font-weight:500}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
