/* ================================
   FIVE OAKS — OAKVILLE
   Premium pre-construction microsite
   ================================ */

:root{
  --ink:#12140f;
  --ink-soft:#22261f;
  --charcoal:#1b1d19;
  --green-950:#0e1f19;
  --green-900:#15342a;
  --green-800:#1d4437;
  --green-700:#26543f;
  --green-600:#33684f;
  --cream:#f6f4ee;
  --cream-dim:#eae6db;
  --paper:#fbfaf6;
  --gold:#b8975a;
  --line:rgba(18,20,15,.12);
  --line-on-dark:rgba(255,255,255,.16);
  --white:#ffffff;

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --ease-out: cubic-bezier(.16,.8,.24,1);
  --ease-soft: cubic-bezier(.25,.1,.25,1);

  --container: 1280px;
  --gutter: clamp(20px, 5vw, 64px);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer;}
.container{max-width:var(--container); margin:0 auto; padding:0 var(--gutter);}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:500;
  line-height:1.08;
  margin:0;
  letter-spacing:-.01em;
}

.eyebrow{
  font-family:var(--font-body);
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--green-700);
  display:inline-flex;
  align-items:center;
  gap:.6em;
}
.eyebrow::before{
  content:'';
  width:28px; height:1px;
  background:var(--green-700);
  display:inline-block;
}
.eyebrow.on-dark{color:var(--cream);}
.eyebrow.on-dark::before{background:var(--gold);}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.6em;
  padding:1.05em 2.1em;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  border-radius:2px;
  border:1px solid transparent;
  transition:transform .5s var(--ease-out), background .35s, color .35s, border-color .35s, box-shadow .35s;
  white-space:nowrap;
}
.btn-primary{
  background:var(--green-800);
  color:var(--white);
  box-shadow:0 8px 24px -10px rgba(14,31,25,.55);
}
.btn-primary:hover{background:var(--green-700); transform:translateY(-2px);}
.btn-ghost{
  background:transparent;
  color:var(--white);
  border-color:rgba(255,255,255,.55);
}
.btn-ghost:hover{border-color:#fff; background:rgba(255,255,255,.08); transform:translateY(-2px);}
.btn-dark{
  background:var(--ink);
  color:var(--cream);
}
.btn-dark:hover{background:var(--green-900); transform:translateY(-2px);}
.btn-outline-dark{
  background:transparent;
  border-color:var(--line);
  color:var(--ink);
}
.btn-outline-dark:hover{border-color:var(--ink); background:var(--ink); color:var(--white); transform:translateY(-2px);}
.btn-block{width:100%;}

/* ---------- reveal-on-scroll ---------- */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease-out), transform .7s var(--ease-out);}
.reveal.is-visible{opacity:1; transform:translateY(0);}
.reveal-scale{opacity:0; transform:scale(1.045); transition:opacity .8s var(--ease-out), transform 1s var(--ease-out);}
.reveal-scale.is-visible{opacity:1; transform:scale(1);}
.stagger > * {transition-delay:calc(var(--i,0) * 70ms);}

/* ================= NAV ================= */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:500;
  padding:22px 0;
  transition:padding .45s var(--ease-out), background .45s var(--ease-out), box-shadow .45s var(--ease-out), border-color .45s;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  padding:12px 0;
  background:rgba(251,250,246,.86);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid var(--line);
  box-shadow:0 10px 30px -22px rgba(0,0,0,.3);
}
.nav-inner{display:flex; align-items:center; justify-content:space-between; gap:24px;}
.nav-logo{height:76px; transition:height .4s var(--ease-out), filter .4s;}
.nav.scrolled .nav-logo{height:60px;}
@media(max-width:640px){
  .nav-logo{height:58px;}
  .nav.scrolled .nav-logo{height:50px;}
}
.nav-logo img{height:100%; width:auto; display:block;}
.nav-logo .lg-white{display:block;}
.nav-logo .lg-dark{display:none;}
.nav.scrolled .nav-logo .lg-white{display:none;}
.nav.scrolled .nav-logo .lg-dark{display:block;}

.nav-links{display:flex; gap:34px; list-style:none; margin:0; padding:0;}
.nav-links a{
  font-size:.76rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--white); position:relative; padding-bottom:4px;
  transition:color .35s, opacity .35s;
  opacity:.88;
}
.nav.scrolled .nav-links a{color:var(--ink);}
.nav-links a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:currentColor;
  transition:width .4s var(--ease-out);
}
.nav-links a:hover{opacity:1;}
.nav-links a:hover::after{width:100%;}

.nav-cta{display:flex; align-items:center; gap:18px;}
.nav-cta .btn{padding:.85em 1.6em; font-size:.7rem;}
.nav-cta .btn-primary{display:none;}
@media(min-width:900px){.nav-cta .btn-primary{display:inline-flex;}}

.nav-burger{
  display:flex; flex-direction:column; gap:5px; background:none; border:0; padding:8px;
}
.nav-burger span{width:22px; height:1.5px; background:var(--white); transition:background .35s;}
.nav.scrolled .nav-burger span{background:var(--ink);}
@media(min-width:900px){.nav-burger{display:none;}}
@media(max-width:899px){.nav-links{display:none;}}

.mobile-menu{
  position:fixed; inset:0; z-index:600; background:var(--green-950);
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  padding:32px var(--gutter);
  transform:translateY(-100%); transition:transform .55s var(--ease-out);
}
.mobile-menu.open{transform:translateY(0);}
.mobile-menu a{
  color:var(--cream); font-family:var(--font-display); font-size:2rem; padding:14px 0;
  border-bottom:1px solid var(--line-on-dark); width:100%;
}
.mobile-menu .btn{margin-top:28px;}
.mobile-close{position:absolute; top:26px; right:var(--gutter); background:none; border:0; color:var(--cream); font-size:1.8rem; line-height:1;}

/* ================= HERO ================= */
.hero{
  position:relative;
  width:100vw; height:100svh; min-height:560px;
  overflow:hidden;
  background:var(--green-950);
  isolation:isolate;
}
.hero-media{
  position:absolute; inset:-4%;
  will-change:transform;
}
.hero-media img{
  width:100%; height:100%; object-fit:cover; object-position:50% 62%;
  transform:scale(1.1);
  animation:heroKenBurns 26s var(--ease-soft) infinite alternate;
  animation-play-state:running;
}
.hero.is-interacting .hero-media img{animation-play-state:paused;}
.hero-media video{
  width:100%; height:100%; object-fit:cover; object-position:50% 62%;
  display:block;
}
@keyframes heroKenBurns{
  0%{transform:scale(1.1) translate3d(0,0,0);}
  100%{transform:scale(1.22) translate3d(-1.2%,-1.6%,0);}
}
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(9,15,12,.62) 0%, rgba(9,15,12,.08) 28%, rgba(9,15,12,.12) 55%, rgba(8,13,10,.72) 100%);
  pointer-events:none;
}
.hero-vignette{
  position:absolute; inset:0;
  box-shadow:inset 0 0 180px 40px rgba(4,8,6,.45);
  pointer-events:none;
}
.hero-content{
  position:relative; z-index:3;
  height:100%;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:0 var(--gutter) clamp(64px,9vh,110px);
  will-change:transform;
}
.hero-eyebrow{
  color:var(--cream); opacity:.92;
  font-size:.72rem; letter-spacing:.32em; text-transform:uppercase; font-weight:600;
  margin-bottom:18px;
}
.hero-title{
  color:var(--white);
  font-size:clamp(3rem, 9vw, 7.5rem);
  line-height:.94;
  text-shadow:0 10px 40px rgba(0,0,0,.25);
}
.hero-title small{
  display:block;
  font-size:.32em;
  letter-spacing:.28em;
  text-transform:uppercase;
  font-family:var(--font-body);
  font-weight:600;
  color:var(--cream);
  margin-top:14px;
}
.hero-tagline{
  color:var(--cream); opacity:.94;
  font-family:var(--font-display); font-style:italic; font-weight:400;
  font-size:clamp(1.15rem, 2.4vw, 1.7rem);
  margin:22px 0 8px;
  max-width:640px;
}
.hero-sub{
  color:var(--cream); opacity:.78;
  font-size:.95rem; letter-spacing:.03em;
  margin-bottom:38px;
  max-width:520px;
}
.hero-actions{display:flex; flex-wrap:wrap; gap:16px; align-items:center;}
.hero-explore{
  display:inline-flex; align-items:center; gap:.6em;
  color:var(--cream); font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600;
  padding:1.05em .4em; opacity:.9;
}
.hero-explore svg{transition:transform .4s var(--ease-out);}
.hero-explore:hover svg{transform:translateY(3px);}

.hero-hint{
  position:absolute; z-index:3; right:var(--gutter); top:50%; transform:translateY(-50%);
  color:var(--cream); opacity:0; transition:opacity .6s var(--ease-out);
  writing-mode:vertical-rl; letter-spacing:.28em; text-transform:uppercase; font-size:.68rem; font-weight:600;
  display:flex; align-items:center; gap:10px;
}
.hero.is-ready .hero-hint{opacity:.7;}
.hero-hint .dot{width:6px; height:6px; border-radius:50%; background:var(--gold); writing-mode:horizontal-tb; animation:pulseDot 2.4s ease-in-out infinite;}
@keyframes pulseDot{0%,100%{opacity:.4; transform:scale(.85);} 50%{opacity:1; transform:scale(1.15);}}
@media(max-width:899px){.hero-hint{display:none;}}

.hero-scrollline{
  position:absolute; left:var(--gutter); bottom:26px; z-index:3;
  display:flex; align-items:center; gap:12px; color:var(--cream); opacity:.7;
  font-size:.68rem; letter-spacing:.18em; text-transform:uppercase;
}
.hero-scrollline .stem{width:1px; height:34px; background:rgba(255,255,255,.4); position:relative; overflow:hidden;}
.hero-scrollline .stem::after{
  content:''; position:absolute; left:0; top:-100%; width:100%; height:100%; background:var(--gold);
  animation:scrollStem 2.6s var(--ease-soft) infinite;
}
@keyframes scrollStem{0%{top:-100%;} 60%{top:100%;} 100%{top:100%;}}
@media(max-width:640px){.hero-scrollline{display:none;}}

/* ================= SECTION SHELLS ================= */
section{position:relative;}
.section-pad{padding:clamp(80px,12vw,160px) 0;}
.section-pad-sm{padding:clamp(56px,8vw,100px) 0;}
.bg-dark{background:var(--green-950); color:var(--cream);}
.bg-dark .eyebrow{color:var(--cream);}
.bg-dark .eyebrow::before{background:var(--gold);}
.bg-charcoal{background:var(--ink);}
.bg-cream{background:var(--cream);}
.bg-paper{background:var(--paper);}

.kicker-row{display:flex; align-items:flex-end; justify-content:space-between; gap:40px; flex-wrap:wrap; margin-bottom:clamp(36px,6vw,64px);}
.kicker-row h2{max-width:640px;}
.kicker-note{max-width:340px; font-size:.95rem; color:var(--ink-soft); opacity:.72;}
.bg-dark .kicker-note{color:var(--cream); opacity:.66;}

/* ================= INTRO ================= */
.intro{overflow:hidden;}
.intro-grid{display:grid; grid-template-columns:1fr; gap:0;}
.intro-media{position:relative; aspect-ratio:16/10; overflow:hidden;}
.intro-media img{width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease-out);}
.intro-media:hover img{transform:scale(1.045);}
.intro-copy{padding:clamp(40px,6vw,80px) 0 0;}
.intro-copy h2{font-size:clamp(2.1rem,4.4vw,3.4rem); margin:18px 0 24px;}
.intro-copy p{font-size:1.08rem; color:var(--ink-soft); max-width:60ch; margin:0 0 18px;}
.intro-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:40px; padding-top:32px; border-top:1px solid var(--line);}
.intro-stat b{display:block; font-family:var(--font-display); font-size:clamp(1.7rem,3vw,2.3rem); color:var(--green-800); font-weight:500;}
.intro-stat span{font-size:.78rem; letter-spacing:.04em; color:var(--ink-soft); opacity:.75;}
@media(min-width:960px){
  .intro-grid{grid-template-columns:1.1fr 1fr; align-items:stretch; gap:0;}
  .intro-media{aspect-ratio:auto;}
  .intro-copy{padding:clamp(40px,6vw,90px) 0 clamp(40px,6vw,90px) clamp(40px,6vw,80px);}
}

/* ================= WHY GRID ================= */
.why-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--line-on-dark); border:1px solid var(--line-on-dark); margin-top:8px;}
@media(min-width:700px){.why-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1100px){.why-grid{grid-template-columns:repeat(3,1fr);}}
.why-item{background:var(--green-950); padding:36px 32px; transition:background .4s;}
.why-item:hover{background:var(--green-900);}
.why-item .num{font-family:var(--font-display); font-size:.85rem; color:var(--gold); letter-spacing:.05em;}
.why-item h3{font-size:1.18rem; color:var(--white); margin:18px 0 10px; font-weight:500;}
.why-item p{font-size:.92rem; color:var(--cream); opacity:.7; margin:0; line-height:1.55;}

/* ================= STORY / FULL BLEED ================= */
.bleed{position:relative; height:78vh; min-height:460px; max-height:840px; overflow:hidden;}
.bleed img{width:100%; height:100%; object-fit:cover; transform:scale(1.04); transition:transform 1.8s var(--ease-out);}
.bleed.reveal-scale.is-visible img{transform:scale(1);}
.bleed-caption{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:clamp(28px,5vw,56px) var(--gutter);
  background:linear-gradient(0deg, rgba(8,12,10,.7), transparent);
  color:var(--white);
}
.bleed-caption h3{font-size:clamp(1.5rem,3vw,2.2rem); font-weight:500; max-width:760px;}
.bleed-caption p{max-width:560px; opacity:.85; margin-top:10px; font-size:.98rem;}

/* ================= HOMES ================= */
.homes-tabs{display:flex; gap:10px; margin-bottom:44px; flex-wrap:wrap;}
.homes-tab{
  padding:.9em 1.7em; font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600;
  border:1px solid var(--line); border-radius:2px; background:transparent; color:var(--ink-soft);
  transition:all .35s var(--ease-out);
}
.homes-tab.active, .homes-tab:hover{background:var(--green-800); border-color:var(--green-800); color:var(--white);}

.home-collection{display:none;}
.home-collection.active{display:block;}
.home-meta-row{display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-bottom:48px; max-width:640px;}
@media(min-width:640px){.home-meta-row{grid-template-columns:repeat(4,1fr); max-width:none;}}
.home-meta-row div{border-left:2px solid var(--green-700); padding-left:16px;}
.home-meta-row b{display:block; font-family:var(--font-display); font-size:1.35rem;}
.home-meta-row span{font-size:.76rem; color:var(--ink-soft); opacity:.7; letter-spacing:.02em;}

.model-scroll{
  display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:14px; margin:0 calc(var(--gutter) * -1); padding-left:var(--gutter); padding-right:var(--gutter);
  scrollbar-width:none;
}
.model-scroll::-webkit-scrollbar{display:none;}
.model-card{
  scroll-snap-align:start; flex:0 0 auto; width:min(78vw,480px);
  position:relative; overflow:hidden; border-radius:2px;
  background:var(--charcoal);
}
.model-card .frame{aspect-ratio:4/5; overflow:hidden;}
.model-card img{width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease-out);}
.model-card:hover img{transform:scale(1.07);}
.model-card-label{
  position:absolute; left:0; right:0; bottom:0; padding:26px 26px 24px;
  background:linear-gradient(0deg, rgba(6,10,8,.88), rgba(6,10,8,.05) 75%);
  color:var(--white);
}
.model-card-label .tag{font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); font-weight:600;}
.model-card-label h4{font-size:1.4rem; margin-top:6px; font-weight:500;}
.model-card-label p{font-size:.82rem; opacity:.75; margin-top:4px;}

.homes-cta{margin-top:56px; display:flex; align-items:center; gap:26px; flex-wrap:wrap;}
.homes-cta p{font-size:.92rem; color:var(--ink-soft); opacity:.75; max-width:420px; margin:0;}

/* ================= GALLERY ================= */
.gallery-grid{
  display:grid; gap:14px;
  grid-template-columns:repeat(2,1fr);
}
@media(min-width:720px){
  .gallery-grid{grid-template-columns:repeat(4,1fr); grid-auto-rows:200px;}
  .g-tall{grid-row:span 2;}
  .g-wide{grid-column:span 2;}
}
.gallery-item{position:relative; overflow:hidden; border-radius:2px; cursor:zoom-in; background:#0d0f0c;}
.gallery-grid > a.gallery-item{aspect-ratio:4/5;}
@media(min-width:720px){.gallery-grid > a.gallery-item{aspect-ratio:auto; height:100%;}}
.gallery-item img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease-out), filter .5s;}
.gallery-item:hover img{transform:scale(1.08);}
.gallery-item .g-label{
  position:absolute; left:0; right:0; bottom:0; padding:16px;
  background:linear-gradient(0deg, rgba(0,0,0,.65), transparent);
  color:#fff; font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600;
  opacity:0; transform:translateY(8px); transition:opacity .4s, transform .4s;
}
.gallery-item:hover .g-label{opacity:1; transform:translateY(0);}
.gallery-item .zoom-icon{
  position:absolute; top:14px; right:14px; width:34px; height:34px; border-radius:50%;
  background:rgba(0,0,0,.35); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; color:#fff;
  opacity:0; transform:scale(.8); transition:opacity .35s, transform .35s;
}
.gallery-item:hover .zoom-icon{opacity:1; transform:scale(1);}

/* lightbox */
.lightbox{
  position:fixed; inset:0; z-index:900; background:rgba(6,8,7,.96);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .4s var(--ease-out);
}
.lightbox.open{opacity:1; visibility:visible;}
.lightbox img{max-width:min(92vw,1400px); max-height:86vh; object-fit:contain; box-shadow:0 30px 80px rgba(0,0,0,.5);}
.lightbox-close, .lightbox-prev, .lightbox-next{
  position:absolute; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); color:#fff;
  width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  transition:background .3s;
}
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover{background:rgba(255,255,255,.2);}
.lightbox-close{top:22px; right:22px;}
.lightbox-prev{left:22px; top:50%; transform:translateY(-50%);}
.lightbox-next{right:22px; top:50%; transform:translateY(-50%);}
.lightbox-caption{position:absolute; left:0; right:0; bottom:26px; text-align:center; color:#fff; opacity:.72; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase;}
@media(max-width:640px){.lightbox-prev,.lightbox-next{width:40px;height:40px;} .lightbox-close{width:40px;height:40px;}}

/* ================= LOCATION ================= */
.location-layout{display:grid; grid-template-columns:1fr; gap:56px;}
@media(min-width:1000px){.location-layout{grid-template-columns:1fr 1fr; align-items:center; gap:64px;}}
.location-map{position:relative; border-radius:2px; overflow:hidden; box-shadow:0 30px 60px -30px rgba(0,0,0,.5);}
.location-map img{width:100%; display:block;}
.loc-list{list-style:none; margin:0; padding:0; display:grid; gap:0;}
.loc-list li{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding:18px 0; border-bottom:1px solid var(--line-on-dark);
}
.loc-list li span:first-child{font-size:.98rem; color:var(--cream);}
.loc-list li b{font-family:var(--font-display); color:var(--gold); font-size:1.1rem; white-space:nowrap;}
.loc-tags{display:flex; flex-wrap:wrap; gap:10px; margin-top:30px;}
.loc-tag{
  padding:.6em 1.1em; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
  border:1px solid var(--line-on-dark); color:var(--cream); opacity:.85; border-radius:2px;
}

/* ================= BUILDER ================= */
.builder{display:grid; grid-template-columns:1fr; gap:48px; align-items:center;}
@media(min-width:960px){.builder{grid-template-columns:.9fr 1.1fr;}}
.builder-logo{height:34px; margin-bottom:26px;}
.builder p{color:var(--ink-soft); font-size:1.02rem; max-width:58ch; margin:0 0 16px;}
.builder-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:32px 0;}
.builder-stats div{padding:18px 0; border-top:1px solid var(--line);}
.builder-stats b{display:block; font-family:var(--font-display); font-size:1.5rem;}
.builder-stats span{font-size:.74rem; color:var(--ink-soft); opacity:.7;}
.builder-media{position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:2px;}
.builder-media img{width:100%; height:100%; object-fit:cover;}

/* ================= VIP FORM ================= */
.vip{position:relative; overflow:hidden;}
.vip-layout{display:grid; grid-template-columns:1fr; gap:0; border:1px solid var(--line-on-dark);}
@media(min-width:960px){.vip-layout{grid-template-columns:.85fr 1.15fr;}}
.vip-media{position:relative; min-height:280px;}
.vip-media img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;}
.vip-media .overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(9,15,12,.15), rgba(9,15,12,.85)); display:flex; flex-direction:column; justify-content:flex-end; padding:36px;}
.vip-media .overlay p{color:var(--cream); font-family:var(--font-display); font-style:italic; font-size:1.3rem; max-width:340px;}
.vip-form-wrap{background:var(--green-950); padding:clamp(28px,4vw,56px);}
.vip-form-wrap h2{color:var(--white); font-size:clamp(1.8rem,3.4vw,2.6rem);}
.vip-form-wrap > p.lede{color:var(--cream); opacity:.75; max-width:52ch; margin:14px 0 34px; font-size:.98rem;}

.form-grid{display:grid; grid-template-columns:1fr; gap:18px;}
@media(min-width:600px){.form-grid{grid-template-columns:1fr 1fr;}}
.field{display:flex; flex-direction:column; gap:8px;}
.field.full{grid-column:1/-1;}
.field label{font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--cream); opacity:.65;}
.field input, .field select{
  background:rgba(255,255,255,.06); border:1px solid var(--line-on-dark); color:var(--white);
  padding:.95em 1em; font-size:.95rem; border-radius:2px; font-family:var(--font-body);
  transition:border-color .3s, background .3s;
}
.field input::placeholder{color:rgba(246,244,238,.35);}
.field input:focus, .field select:focus{outline:none; border-color:var(--gold); background:rgba(255,255,255,.1);}
.field select{appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23f6f4ee' stroke-width='1.4' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1em center;}
.field select option{color:#111;}
.field.error input, .field.error select{border-color:#d9765a;}
.field-error{font-size:.72rem; color:#e39a80; min-height:1em;}

.radio-row{display:flex; flex-wrap:wrap; gap:10px;}
.radio-row input{position:absolute; opacity:0; width:0; height:0;}
.radio-row label{
  padding:.75em 1.15em; border:1px solid var(--line-on-dark); border-radius:2px; font-size:.84rem; color:var(--cream); opacity:.75;
  transition:all .3s;
}
.radio-row input:checked + label{background:var(--gold); border-color:var(--gold); color:var(--green-950); opacity:1; font-weight:600;}

.consent-row{display:flex; align-items:flex-start; gap:12px; margin:26px 0 6px;}
.consent-row input{margin-top:4px;}
.consent-row label{font-size:.8rem; color:var(--cream); opacity:.65; line-height:1.5;}
.hp-field{position:absolute; left:-9999px; opacity:0;}

.vip-submit{margin-top:24px;}
.form-status{margin-top:16px; font-size:.85rem; color:var(--cream); opacity:.8;}
.form-success{display:none; text-align:center; padding:40px 10px;}
.form-success.show{display:block;}
.form-success .check{
  width:64px; height:64px; border-radius:50%; border:1.5px solid var(--gold); margin:0 auto 22px;
  display:flex; align-items:center; justify-content:center; color:var(--gold);
}
.form-success h3{color:var(--white); font-size:1.5rem;}
.form-success p{color:var(--cream); opacity:.75; max-width:44ch; margin:12px auto 0;}

/* ================= REALTOR ================= */
.realtor{display:grid; grid-template-columns:1fr; gap:40px; align-items:center;}
@media(min-width:860px){.realtor{grid-template-columns:auto 1fr; gap:52px;}}
.realtor-avatar{
  width:132px; height:132px; border-radius:50%; flex-shrink:0;
  background:var(--green-800); color:var(--cream);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:2.6rem;
  border:1px solid var(--line);
}
.realtor h3{font-size:1.7rem; margin-bottom:6px;}
.realtor .role{font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; color:var(--green-700); font-weight:600; margin-bottom:14px;}
.realtor p{color:var(--ink-soft); max-width:60ch; font-size:.98rem; margin:0 0 18px;}
.realtor-contact{display:flex; flex-wrap:wrap; gap:22px; font-size:.9rem;}
.realtor-contact a{border-bottom:1px solid var(--line); padding-bottom:2px; transition:border-color .3s, color .3s;}
.realtor-contact a:hover{border-color:var(--green-800); color:var(--green-800);}
.realtor-brokerage{margin-top:18px; font-size:.78rem; opacity:.6;}

/* ================= FINAL CTA ================= */
.final-cta{position:relative; min-height:70vh; display:flex; align-items:center; overflow:hidden;}
.final-cta img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.05);}
.final-cta .overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,13,10,.55), rgba(6,10,8,.86));}
.final-cta-content{position:relative; z-index:2; text-align:center; width:100%; padding:80px var(--gutter);}
.final-cta-content h2{color:var(--white); font-size:clamp(2.2rem,5.5vw,4.2rem); max-width:900px; margin:0 auto;}
.final-cta-content p{color:var(--cream); opacity:.85; max-width:520px; margin:20px auto 36px; font-size:1.05rem;}

/* ================= FOOTER ================= */
footer{background:var(--ink); color:var(--cream); padding:64px 0 28px;}
.footer-top{display:grid; grid-template-columns:1fr; gap:40px; padding-bottom:44px; border-bottom:1px solid var(--line-on-dark);}
@media(min-width:800px){.footer-top{grid-template-columns:1.3fr 1fr 1fr 1fr;}}
.footer-logo{height:28px; margin-bottom:18px;}
.footer-top p{opacity:.6; font-size:.88rem; max-width:38ch; line-height:1.6;}
.footer-col h4{font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--cream); opacity:.55; margin-bottom:16px; font-family:var(--font-body); font-weight:600;}
.footer-col ul{list-style:none; margin:0; padding:0; display:grid; gap:11px;}
.footer-col a{font-size:.88rem; opacity:.75; transition:opacity .3s;}
.footer-col a:hover{opacity:1;}
.footer-bottom{padding-top:26px; display:flex; flex-wrap:wrap; gap:16px; justify-content:space-between; font-size:.76rem; opacity:.5;}
.footer-disclaimer{max-width:900px; opacity:.45; font-size:.72rem; line-height:1.6; margin-top:20px;}

/* ================= STICKY MOBILE CTA ================= */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:400;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:rgba(14,31,25,.92); backdrop-filter:blur(10px);
  border-top:1px solid rgba(255,255,255,.12);
  transform:translateY(120%); transition:transform .45s var(--ease-out);
  display:flex; gap:10px; align-items:center;
}
.sticky-cta.show{transform:translateY(0);}
.sticky-cta p{margin:0; color:var(--cream); font-size:.78rem; flex:1; line-height:1.3;}
.sticky-cta .btn{flex-shrink:0; padding:.85em 1.4em; font-size:.72rem;}
@media(min-width:900px){.sticky-cta{display:none;}}

/* ================= FLOATING CONTACT ================= */
.contact-fab{
  position:fixed; right:20px; bottom:28px; z-index:450;
  display:flex; flex-direction:column; align-items:flex-end; gap:14px;
}
.contact-fab-toggle{
  width:58px; height:58px; border-radius:50%; border:0;
  background:var(--green-800); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 30px -8px rgba(14,31,25,.6);
  transition:background .3s, transform .3s;
  position:relative;
}
.contact-fab-toggle:hover{background:var(--green-700); transform:scale(1.05);}
.contact-fab-toggle .ico-close{display:none; position:absolute;}
.contact-fab.open .contact-fab-toggle .ico-chat{display:none;}
.contact-fab.open .contact-fab-toggle .ico-close{display:block;}
.contact-fab-menu{
  display:flex; flex-direction:column; gap:10px;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .3s var(--ease-out), transform .3s var(--ease-out), visibility .3s;
}
.contact-fab.open .contact-fab-menu{opacity:1; visibility:visible; transform:translateY(0);}
.contact-fab-item{
  display:flex; align-items:center; gap:10px;
  background:var(--white); color:var(--ink);
  padding:.75em 1.1em .75em .8em; border-radius:40px;
  font-size:.82rem; font-weight:600; letter-spacing:.02em;
  box-shadow:0 10px 26px -10px rgba(0,0,0,.35);
  transition:transform .3s var(--ease-out), background .3s;
  white-space:nowrap;
}
.contact-fab-item:hover{transform:translateX(-3px); background:var(--cream);}
.contact-fab-icon{
  width:32px; height:32px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; color:#fff;
}
.contact-fab-icon.wa{background:#25D366;}
.contact-fab-icon.call{background:var(--green-800);}
@media(max-width:899px){
  .contact-fab{right:16px; bottom:98px;}
  .contact-fab-toggle{width:52px; height:52px;}
}

/* ================= CUSTOM CURSOR ================= */
.cursor-dot, .cursor-ring{
  position:fixed; top:0; left:0; z-index:9999;
  pointer-events:none; transform:translate(-50%,-50%);
  opacity:0; transition:opacity .25s ease;
}
.cursor-dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--gold, #c8a35a);
}
.cursor-ring{
  width:34px; height:34px; border-radius:50%;
  border:1px solid rgba(255,255,255,.6);
  transition:opacity .25s ease, transform .18s ease, width .18s ease, height .18s ease, background-color .18s ease, border-color .18s ease;
}
body.cursor-ready .cursor-dot, body.cursor-ready .cursor-ring{opacity:1;}
body.cursor-hover .cursor-ring{
  width:54px; height:54px;
  background:rgba(200,163,90,.16);
  border-color:var(--gold, #c8a35a);
}
body.cursor-hover .cursor-dot{opacity:0;}
@media(hover:hover) and (pointer:fine){
  body.cursor-ready, body.cursor-ready a, body.cursor-ready button{cursor:none;}
  body.cursor-ready input, body.cursor-ready textarea, body.cursor-ready select{cursor:auto;}
}
@media(hover:none), (pointer:coarse){
  .cursor-dot, .cursor-ring{display:none;}
}

/* ================= FAQ ================= */
.faq-list{max-width:820px; margin:0 auto;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{
  list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between;
  gap:24px; padding:26px 4px; font-family:var(--font-display); font-size:1.08rem; color:var(--ink);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary h3{font:inherit; margin:0; font-weight:500;}
.faq-icon{flex:none; width:22px; height:22px; position:relative;}
.faq-icon::before, .faq-icon::after{
  content:""; position:absolute; top:50%; left:50%; background:var(--green-800);
  transform:translate(-50%,-50%); transition:transform .3s ease, opacity .3s ease;
}
.faq-icon::before{width:14px; height:1.5px;}
.faq-icon::after{width:1.5px; height:14px;}
.faq-item[open] .faq-icon::after{transform:translate(-50%,-50%) rotate(90deg); opacity:0;}
.faq-item[open] summary{color:var(--green-800);}
.faq-answer{padding:0 4px 26px; max-width:64ch; font-size:.98rem; line-height:1.6; color:var(--ink-soft); opacity:.85;}

/* ================= UTIL ================= */
.skip-link{position:absolute; left:-9999px; top:0; background:var(--green-800); color:#fff; padding:12px 20px; z-index:1000;}
.skip-link:focus{left:12px; top:12px;}
.visually-hidden{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0);}
