:root{
  --bg:#0E0E0E; --bg2:#151515; --ivory:#F5F1E8; --white:#FFFFFF;
  --gold:#B89B5E; --beige:#D8D0C2; --grey:#8D8A84;
  --serif:'Cormorant Garamond', serif; --sans:'Inter', sans-serif;
}
*{margin:0; padding:0; box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--bg); color:var(--ivory); font-family:var(--sans); font-weight:300; line-height:1.6; overflow-x:hidden;}
img{display:block; max-width:100%; height:auto;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit;}
.wrap{max-width:1320px; margin:0 auto; padding:0 6vw;}
.eyebrow{font-family:var(--sans); font-size:.72rem; letter-spacing:.32em; color:var(--gold); font-weight:500; display:block; margin-bottom:1.4rem;}
h1,h2,h3{font-family:var(--serif); font-weight:400; letter-spacing:.01em; line-height:1.08; color:var(--white);}
h2{font-size:clamp(2.1rem,4.4vw,3.6rem); font-weight:300;}
p{color:var(--beige); font-weight:300;}
.btn{display:inline-flex; align-items:center; gap:.6rem; font-size:.74rem; letter-spacing:.22em; font-weight:500; padding:1.1rem 2.2rem; border:1px solid var(--gold); color:var(--white); background:transparent; cursor:pointer; transition:background .5s ease, color .5s ease, letter-spacing .5s ease;}
.btn:hover{background:var(--gold); color:var(--bg); letter-spacing:.26em;}
.btn-ghost{border-color:rgba(255,255,255,.65); color:#FFFFFF; text-shadow:0 2px 8px rgba(0,0,0,.7);}
.btn-ghost:hover{background:var(--ivory); color:var(--bg); border-color:var(--ivory);}
.btn-gold{background:var(--gold); color:var(--bg); border-color:var(--gold);}
.btn-gold:hover{letter-spacing:.26em; background:transparent; color:var(--gold);}
section{position:relative;}
.pad{padding:8.5rem 0;}
.center{text-align:center;}
.reveal{opacity:0; transform:translateY(36px); transition:opacity 1s cubic-bezier(.2,.6,.2,1), transform 1s cubic-bezier(.2,.6,.2,1);}
.reveal.in{opacity:1; transform:translateY(0);}

/* Header */
header{position:fixed; top:0; left:0; right:0; z-index:1000; padding:1.6rem 0; transition:background .5s ease, padding .5s ease, border-color .5s ease; border-bottom:1px solid transparent; background:linear-gradient(180deg, rgba(6,6,6,.62) 0%, rgba(6,6,6,0) 100%);}
header.scrolled{background:rgba(14,14,14,.92); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); padding:1.05rem 0; border-color:rgba(184,155,94,.18);}
.nav{max-width:1400px; margin:0 auto; padding:0 5vw; display:flex; align-items:center; justify-content:space-between;}
.brand{font-family:var(--serif); font-size:1.34rem; letter-spacing:.1em; color:var(--white); font-weight:500; text-shadow:0 2px 10px rgba(0,0,0,.7);}
.brand em{font-style:italic; color:var(--gold);}
.nav-links{display:flex; gap:2.2rem; list-style:none;}
.nav-links a{font-size:.72rem; letter-spacing:.14em; color:var(--white); position:relative; padding-bottom:6px; white-space:nowrap; text-shadow:0 2px 8px rgba(0,0,0,.75); font-weight:500;}
.nav-links a::after{content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold); transition:width .4s ease;}
.nav-links a:hover::after{width:100%;}
.nav-cta{font-size:.68rem; letter-spacing:.16em; padding:.8rem 1.5rem;}
.hamburger{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; z-index:1200;}
.hamburger span{width:26px; height:1px; background:var(--ivory);}
.mobile-menu{position:fixed; inset:0; background:var(--bg); z-index:1100; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2rem; transform:translateY(-100%); transition:transform .5s cubic-bezier(.7,0,.2,1);}
.mobile-menu.open{transform:translateY(0);}
.mobile-menu a{font-family:var(--serif); font-size:1.6rem; color:var(--ivory);}
.mobile-menu .btn{margin-top:.6rem;}
.mobile-menu .close-x{position:absolute; top:1.8rem; right:6vw; font-size:1.6rem; color:var(--ivory); background:none; border:none;}

/* Hero */
.hero{position:relative; height:100svh; min-height:640px; width:100%; display:flex; align-items:flex-end; overflow:hidden;}
.hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.08); animation:heroZoom 18s ease-out forwards;}
@keyframes heroZoom{ to{ transform:scale(1);} }
.hero::before{content:''; position:absolute; inset:0; background:
  linear-gradient(180deg, rgba(6,6,6,.78) 0%, rgba(6,6,6,.4) 34%, rgba(6,6,6,.58) 62%, rgba(6,6,6,.97) 100%),
  linear-gradient(90deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.2) 58%, rgba(0,0,0,.05) 100%);}
.hero-content{position:relative; z-index:2; padding:0 6vw 5rem; width:100%;}
.hero-content .eyebrow{opacity:0; animation:fadeUp .9s .3s ease forwards; text-shadow:0 2px 10px rgba(0,0,0,.85); color:var(--gold); font-weight:700; font-size:.8rem;}
.hero-content h1{font-size:clamp(2.6rem,7vw,6rem); color:var(--white); font-weight:300; max-width:17ch; opacity:0; animation:fadeUp 1s .5s ease forwards; text-shadow:0 4px 24px rgba(0,0,0,.65);}
.hero-content .sub{max-width:40ch; margin:1.5rem 0 2.2rem; font-size:1.05rem; color:#FFFFFF; font-weight:400; opacity:0; animation:fadeUp 1s .8s ease forwards; text-shadow:0 2px 14px rgba(0,0,0,.85);}
.hero-ctas{display:flex; gap:1.1rem; flex-wrap:wrap; opacity:0; animation:fadeUp 1s 1.05s ease forwards;}
@keyframes fadeUp{ from{opacity:0; transform:translateY(22px);} to{opacity:1; transform:translateY(0);} }
.hero-facts{display:flex; gap:0; margin-top:2.6rem; flex-wrap:wrap; border-top:1px solid rgba(184,155,94,.4); padding-top:1.6rem; opacity:0; animation:fadeUp 1s 1.3s ease forwards;}
.hero-facts div{padding:0 2.2rem 0 0; margin-right:2.2rem; border-right:1px solid rgba(245,241,232,.22);}
.hero-facts div:last-child{border-right:none;}
.hero-facts .n{font-family:var(--serif); font-size:1.5rem; color:var(--white); display:block; text-shadow:0 2px 10px rgba(0,0,0,.8);}
.hero-facts .l{font-size:.7rem; letter-spacing:.1em; color:#F5F1E8; opacity:.9; margin-top:.3rem; display:block; text-shadow:0 2px 8px rgba(0,0,0,.8);}
.scroll-cue{position:absolute; right:6vw; bottom:2.2rem; z-index:2; writing-mode:vertical-rl; font-size:.68rem; letter-spacing:.24em; color:var(--beige); display:flex; align-items:center; gap:.8rem;}
.scroll-cue .line{width:1px; height:46px; background:linear-gradient(var(--gold), transparent);}

/* Intro */
.intro{background:var(--bg);}
.intro h2{max-width:18ch; margin:0 auto 1.6rem;}
.intro p.lead{max-width:46ch; margin:0 auto 3rem; font-size:1.05rem;}
.triad{display:flex; justify-content:center; gap:5vw; flex-wrap:wrap;}
.triad-item{font-family:var(--serif); font-size:clamp(1.3rem,2.4vw,1.9rem); color:var(--grey); letter-spacing:.03em; padding-bottom:1.1rem; border-bottom:1px solid rgba(184,155,94,.25); transition:color .6s ease, border-color .6s ease;}
.triad-item:hover{color:var(--gold); border-color:var(--gold);}

/* Split (overview) */
.split{display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:0; background:var(--bg2);}
.split .imgcol{position:relative; height:640px; overflow:hidden;}
.split .imgcol img{width:100%; height:100%; object-fit:cover; transition:transform 1.4s cubic-bezier(.2,.6,.2,1);}
.split .imgcol:hover img{transform:scale(1.05);}
.split .txtcol{padding:5rem 6vw;}
.split h2{margin-bottom:1.6rem; max-width:14ch;}
.split p.body{max-width:44ch; font-size:1rem;}
.split ul{list-style:none; margin-top:2rem; display:grid; gap:.9rem;}
.split li{display:flex; align-items:baseline; gap:.9rem; color:var(--ivory); font-size:.96rem; padding-bottom:.9rem; border-bottom:1px solid rgba(216,208,194,.12);}
.split li::before{content:''; width:6px; height:6px; border-radius:50%; background:var(--gold); flex:none; transform:translateY(-2px);}

/* Why different — stat cards */
.stats-sec{background:var(--bg);}
.stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1.5px; background:rgba(184,155,94,.15); margin-top:4rem;}
.stat-card{background:var(--bg); padding:2.6rem 1.8rem; transition:background .4s ease;}
.stat-card:hover{background:var(--bg2);}
.stat-card .n{font-family:var(--serif); font-size:clamp(1.5rem,2vw,2rem); color:var(--gold); display:block; line-height:1.1;}
.stat-card .l{font-size:.85rem; color:var(--beige); margin-top:.9rem; display:block;}

/* Residences */
.residences{background:var(--bg2); padding:3rem 0 !important;}
.residences h2{font-size:clamp(1.5rem,2.4vw,2rem) !important; margin-bottom:0;}
.res-grid{display:grid; grid-template-columns:1fr 1fr; gap:1.5px; background:rgba(184,155,94,.15); margin-top:1.6rem;}
.res-card{background:var(--bg2); padding:1.5rem 1.8rem;}
.res-card .cfg{font-family:var(--serif); font-size:1.6rem; color:var(--white);}
.res-card .sz{font-size:.64rem; letter-spacing:.14em; color:var(--gold); margin:.3rem 0 .6rem; display:block;}
.res-card p{font-size:.82rem; max-width:34ch; margin-bottom:.9rem;}
.res-card .btn{padding:.65rem 1.4rem; font-size:.64rem;}

/* Price list — starting price only */
.price-sec{background:var(--bg); text-align:center;}
.price-sec .wrap{max-width:640px;}
.price-start{font-family:var(--serif); font-size:clamp(2.2rem,4vw,3.2rem); color:var(--gold); margin:1.6rem 0 1rem;}
.price-note{font-size:.85rem; color:var(--grey); margin:1.4rem auto 2.6rem; max-width:44ch; font-style:italic;}

/* Amenities interactive switcher */
.amenities{background:var(--bg2);}
.amen-head{max-width:56ch; margin-bottom:5rem;}
.amen-head p{font-size:1.05rem; margin-top:1.2rem;}
.amen-stage{display:grid; grid-template-columns:1.3fr .9fr; gap:0; border-top:1px solid rgba(184,155,94,.2);}
.amen-visual{position:relative; height:620px; overflow:hidden;}
.amen-visual img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0; opacity:0; transition:opacity .9s ease, transform 6s ease;}
.amen-visual img.active{opacity:1; transform:scale(1.04);}
.amen-visual::after{content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.6), transparent 46%); pointer-events:none;}
.amen-caption{position:absolute; left:2.5rem; bottom:2.2rem; z-index:2;}
.amen-caption .num{color:var(--gold); font-size:.75rem; letter-spacing:.2em;}
.amen-caption h3{font-size:1.9rem; color:var(--white); margin-top:.4rem;}
.amen-list{border-left:1px solid rgba(184,155,94,.2); max-height:620px; overflow-y:auto;}
.amen-row{padding:1.5rem 2.2rem; border-bottom:1px solid rgba(184,155,94,.14); cursor:pointer; display:flex; align-items:center; gap:1.2rem; transition:background .4s ease, padding-left .4s ease;}
.amen-row:hover, .amen-row.active{background:rgba(184,155,94,.06); padding-left:2.8rem;}
.amen-row .idx{font-family:var(--serif); font-size:1rem; color:var(--grey);}
.amen-row.active .idx{color:var(--gold);}
.amen-row .titles{flex:1;}
.amen-row .titles .t{font-size:1rem; letter-spacing:.04em; color:var(--ivory); font-weight:400;}
.amen-row.active .titles .t{color:var(--gold);}
.amen-row .titles .d{font-size:.82rem; color:var(--grey); margin-top:.2rem;}

/* Full-bleed banner (clubhouse) */
.arch{position:relative; height:88vh; overflow:hidden; display:flex; align-items:center; justify-content:center;}
.arch img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.arch-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.75));}
.arch-content{position:relative; z-index:2; text-align:center; max-width:48ch;}
.arch-content .huge{font-family:var(--serif); font-size:clamp(2.6rem,5.4vw,4.4rem); color:var(--gold); margin:1rem 0 1.6rem;}
.arch-content ul{list-style:none; display:flex; justify-content:center; flex-wrap:wrap; gap:0 2.2rem; margin-bottom:2.4rem;}
.arch-content li{font-size:.9rem; padding:.5rem 0; color:var(--ivory);}

/* Master plan / floor plan with bg image */
.plans-sec{position:relative; padding:8.5rem 0; overflow:hidden;}
.plans-sec .bgimg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.plans-sec .bgoverlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,8,8,.82), rgba(8,8,8,.92));}
.plans-sec .wrap{position:relative; z-index:2;}
.plan-grid{display:grid; grid-template-columns:1fr 1fr; gap:1.5px; margin-top:4rem; background:rgba(184,155,94,.25);}
.plan-card{background:rgba(20,18,14,.72); backdrop-filter:blur(6px); padding:3.4rem 2.6rem; text-align:center;}
.plan-card h3{font-size:1.7rem; margin-bottom:.5rem;}
.plan-card .sz{font-size:.72rem; letter-spacing:.14em; color:var(--gold); display:block; margin-bottom:1.6rem;}
.plan-card p{font-size:.92rem; max-width:32ch; margin:0 auto 2rem;}
.plan-art{width:100%; max-width:260px; margin:0 auto 1.8rem; border:1px solid rgba(184,155,94,.2); padding:14px; background:rgba(255,255,255,.02);}
.plan-caveat{font-size:.68rem !important; color:var(--grey) !important; font-style:italic; margin-top:1rem !important;}

/* Gallery */
.gallery{background:var(--bg);}
.gal-grid{display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:150px; gap:1rem; margin-top:4rem; grid-auto-flow:dense;}
.gal-item{overflow:hidden; position:relative; cursor:pointer;}
.gal-item img{width:100%; height:100%; object-fit:cover; transition:transform .8s ease;}
.gal-item:hover img{transform:scale(1.08);}
.g1{grid-column:span 2; grid-row:span 2;}
.g2{grid-column:span 2; grid-row:span 2;}
.g3{grid-column:span 2; grid-row:span 2;}
.g4{grid-column:span 3; grid-row:span 3;}
.g5{grid-column:span 3; grid-row:span 3;}
.g6{grid-column:span 2; grid-row:span 2;}
.g7{grid-column:span 2; grid-row:span 2;}
.g8{grid-column:span 2; grid-row:span 2;}
.gal-cta{margin-top:3.2rem; text-align:center;}
.video-sec{background:var(--bg2);}
.video-thumb{position:relative; margin-top:3.4rem; cursor:pointer; overflow:hidden; border:1px solid rgba(184,155,94,.25); max-width:920px; margin-left:auto; margin-right:auto;}
.video-thumb img{width:100%; height:460px; object-fit:cover; filter:brightness(.5); transition:transform 1.2s ease, filter .5s ease;}
.video-thumb:hover img{transform:scale(1.04); filter:brightness(.38);}
.video-overlay{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.2rem;}
.play-btn{width:84px; height:84px; border:1px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.5rem; color:var(--gold); background:rgba(20,18,14,.45); transition:transform .4s ease, background .4s ease, color .4s ease;}
.video-thumb:hover .play-btn{transform:scale(1.1); background:var(--gold); color:var(--bg);}
.video-overlay span{font-size:.76rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ivory);}
.lightbox{position:fixed; inset:0; background:rgba(6,6,6,.96); z-index:2000; display:none; align-items:center; justify-content:center; padding:4vw;}
.lightbox.open{display:flex;}
.lightbox img{max-width:88vw; max-height:82vh; object-fit:contain;}
.lightbox .close{position:absolute; top:2rem; right:2.5rem; font-size:.8rem; letter-spacing:.2em; color:var(--ivory); cursor:pointer; background:none; border:1px solid rgba(255,255,255,.25); padding:.7rem 1.2rem;}

/* Location — abstract radar + landmark list */
.golfroad{background:var(--bg2);}
.map-frame{margin-top:3.4rem; border:1px solid rgba(184,155,94,.35); padding:10px; background:#0a0a0a;}
.map-frame img{width:100%; height:auto; display:block;}
.landmark-list{list-style:none;}
.landmark-list.landmark-row{display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:3rem; border-top:1px solid rgba(184,155,94,.2); border-left:1px solid rgba(184,155,94,.2);}
.landmark-list.landmark-row li{display:flex; flex-direction:column; gap:.4rem; padding:1.6rem 1.8rem; border-bottom:1px solid rgba(184,155,94,.2); border-right:1px solid rgba(184,155,94,.2); font-family:var(--serif); font-size:1.1rem; color:var(--ivory);}
.landmark-list li span{font-family:var(--sans); font-size:.66rem; letter-spacing:.12em; color:var(--gold);}

/* CTA banners (virtual tour / brochure / consultation / site visit) */
.cta-sec{background:var(--bg);}
.cta-sec.alt{background:var(--bg2);}
.cta-inner{display:grid; grid-template-columns:1.2fr .8fr; gap:5vw; align-items:center;}
.cta-inner.center-only{grid-template-columns:1fr; text-align:center; max-width:640px; margin:0 auto;}
.cta-inner img{width:100%; height:360px; object-fit:cover;}
.cta-inner h2{max-width:16ch;}
.cta-inner p.body{max-width:40ch; margin:1.2rem 0 2rem; font-size:1rem;}
.cta-inner.center-only p.body{margin-left:auto; margin-right:auto;}

/* Footer */
footer{background:#080808; padding:5rem 0 2.2rem; border-top:1px solid rgba(184,155,94,.15);}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:3rem;}
.foot-brand{font-family:var(--serif); font-size:1.4rem; color:var(--white); letter-spacing:.08em;}
.foot-grid p, .foot-grid a{font-size:.85rem; color:var(--grey);}
.foot-col h4{font-size:.7rem; letter-spacing:.18em; color:var(--beige); margin-bottom:1.2rem;}
.foot-col a{display:block; margin-bottom:.8rem;}
.foot-col a:hover{color:var(--gold);}
.foot-phone{font-family:var(--serif); font-size:1.3rem; color:var(--gold); display:block; margin-top:1.4rem;}
.foot-bottom{margin-top:3.6rem; padding-top:2rem; border-top:1px solid rgba(255,255,255,.06); font-size:.74rem; color:var(--grey); line-height:1.8;}

/* Sticky bottom bar — phone shown only here */
.mobile-sticky{position:fixed; bottom:0; left:0; right:0; z-index:900; display:flex; background:rgba(14,14,14,.97); backdrop-filter:blur(10px); border-top:1px solid rgba(184,155,94,.25);}
.mobile-sticky a, .mobile-sticky button{flex:1; text-align:center; padding:1rem .6rem; font-size:.68rem; letter-spacing:.1em; font-weight:500; color:var(--ivory); border-right:1px solid rgba(184,155,94,.18); display:flex; flex-direction:column; align-items:center; gap:3px;}
.mobile-sticky > *:last-child{border-right:none;}
.mobile-sticky .call{background:var(--gold); color:var(--bg);}
.mobile-sticky .book-consult{background:#F5F1E8; color:#000000; font-weight:700;}

/* Modal (lead form) */
.modal-overlay{position:fixed; inset:0; background:rgba(6,6,6,.85); z-index:2100; display:none; align-items:center; justify-content:center; padding:20px;}
.modal-overlay.open{display:flex;}
.modal-box{background:var(--bg2); max-width:460px; width:100%; padding:3rem 2.6rem; border:1px solid rgba(184,155,94,.3); position:relative; max-height:92vh; overflow-y:auto;}
.modal-close{position:absolute; top:1.2rem; right:1.4rem; color:var(--ivory); font-size:1.4rem; opacity:.7; background:none; border:none;}
.modal-close:hover{opacity:1;}
.modal-box h3{font-size:1.7rem; margin-bottom:.4rem;}
.modal-box .sub{font-size:.86rem; color:var(--grey); margin-bottom:1.8rem;}
.field{margin-bottom:1.4rem;}
.field label{display:block; font-size:.68rem; letter-spacing:.16em; color:var(--grey); margin-bottom:.5rem;}
.field input, .field select{width:100%; background:transparent; border:none; border-bottom:1px solid rgba(216,208,194,.28); padding:.65rem 0; color:var(--ivory); font-family:var(--sans); font-size:.94rem; font-weight:300; outline:none; transition:border-color .4s ease;}
.field select option{background:#151515; color:var(--ivory);}
.field input:focus, .field select:focus{border-color:var(--gold);}
.field input::placeholder{color:rgba(216,208,194,.35);}
.field .err{color:#d99b8f; font-size:.72rem; margin-top:.4rem; display:none;}
.modal-box .btn{width:100%; justify-content:center; margin-top:.6rem;}
.form-status{font-size:.82rem; margin-top:1rem; display:none; line-height:1.6; color:var(--gold);}

/* Responsive */
@media(max-width:980px){
  .nav-links, .nav-cta{display:none;}
  .hamburger{display:flex;}
  .split{grid-template-columns:1fr;}
  .split .imgcol{height:380px;}
  .split .txtcol{padding:3.2rem 6vw;}
  .amen-stage{grid-template-columns:1fr;}
  .amen-visual{height:380px;}
  .res-grid{grid-template-columns:1fr;}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .plan-grid{grid-template-columns:1fr;}
  .landmark-list.landmark-row{grid-template-columns:1fr 1fr;}
  .cta-inner{grid-template-columns:1fr;}
  .cta-inner img{height:260px;}
  .gal-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:180px;}
  .g1,.g2,.g3,.g4,.g5,.g6,.g7,.g8{grid-column:span 2; grid-row:span 2;}
  .g3, .g6{grid-column:span 1;}
  .foot-grid{grid-template-columns:1fr; gap:2.2rem;}
  .pad{padding:5.5rem 0;}
  .hero-facts div{margin-right:1.4rem; padding-right:1.4rem;}
  body{padding-bottom:60px;}
}
@media(max-width:600px){
  .wrap{padding:0 6vw;}
  h2{font-size:2rem;}
  .hero-facts{gap:.6rem 0;}
  .res-card{padding:2.4rem 1.8rem;}
  .landmark-list.landmark-row{grid-template-columns:1fr;}
  .video-thumb img{height:280px;}
  .play-btn{width:64px; height:64px; font-size:1.2rem;}
}