:root{
  --forest-deep:#0e1a10;
  --forest:#16241a;
  --forest-mid:#1c2e20;
  --sage:#a9bfa0;
  --sage-dim:#7c9074;
  --cream:#f4f1e4;
  --gold:#c9a24a;
  --gold-bright:#e0c179;
  --line:rgba(244,241,228,0.12);
  --maxw:1180px;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--forest);
  color:var(--cream);
  font-family:'Manrope', sans-serif;
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer;}

h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  font-weight:500;
  letter-spacing:-0.01em;
  color:var(--cream);
}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}

.eyebrow{
  display:block;
  text-align:center;
  font-family:'Manrope', sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:14px;
}
.section-head{text-align:center; max-width:720px; margin:0 auto 56px;}
.section-head h2{font-size:clamp(28px,4vw,42px); line-height:1.15;}
.section-head p{color:var(--sage); margin-top:14px; font-size:16.5px;}

section{padding:104px 0; position:relative;}
.section-alt{background:var(--forest-deep);}
.hairline{border-top:1px solid var(--line);}

/* ---------- NAV ---------- */
header.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:linear-gradient(to bottom, rgba(14,26,16,0.92), rgba(14,26,16,0));
  padding:22px 0;
  transition:background .3s ease, padding .3s ease, box-shadow .3s ease;
}
header.nav.scrolled{
  background:rgba(14,26,16,0.94);
  backdrop-filter:blur(10px);
  padding:14px 0;
  box-shadow:0 1px 0 var(--line);
}
.nav-inner{display:flex; align-items:center; justify-content:space-between;}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{height:34px; width:auto;}
.brand-text{font-family:'Fraunces', serif; font-size:19px; letter-spacing:0.02em;}
.brand-text span{display:block; font-family:'Manrope',sans-serif; font-size:10px; letter-spacing:0.24em; color:var(--gold); text-transform:uppercase; margin-top:2px;}
.nav-links{display:flex; align-items:center; gap:38px; font-size:14.5px;}
.nav-links a{color:var(--sage); transition:color .2s;}
.nav-links a:hover{color:var(--cream);}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:13px 26px; border-radius:2px;
  background:var(--gold); color:var(--forest-deep);
  font-weight:700; font-size:14px; letter-spacing:0.03em;
  border:1px solid var(--gold);
  transition:background .2s, transform .15s, box-shadow .2s;
  white-space:nowrap;
}
.btn:hover{background:var(--gold-bright); box-shadow:0 6px 22px rgba(201,162,74,0.25); transform:translateY(-1px);}
.btn-outline{background:transparent; color:var(--gold-bright); border:1px solid var(--gold);}
.btn-outline:hover{background:rgba(201,162,74,0.1);}
.nav-cta{display:none;}
@media(min-width:880px){.nav-cta{display:inline-flex;}}
.menu-toggle{display:flex; background:none; border:none; color:var(--cream); font-size:22px;}
@media(min-width:880px){.menu-toggle{display:none;}}
.nav-links{display:none;}
@media(min-width:880px){.nav-links{display:flex;}}
@media(max-width:879px){
  .nav-links.mobile-open{
    display:flex; flex-direction:column; gap:0;
    position:absolute; top:100%; left:0; right:0;
    background:var(--forest-deep); border-top:1px solid var(--line);
    padding:8px 32px 20px;
  }
  .nav-links.mobile-open a{padding:14px 0; border-top:1px solid var(--line); width:100%;}
  .nav-links.mobile-open a:first-child{border-top:none;}
}

/* ---------- HERO ---------- */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:flex-end;
  padding-bottom:0;
}
.hero-bg{
  position:absolute; inset:0; z-index:0;
}
.hero-bg img{width:100%; height:100%; object-fit:cover;}
.hero-bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(10,18,11,0.75) 0%, rgba(10,18,11,0.12) 46%, rgba(10,18,11,0.25) 100%);
}
.hero-content{
  position:relative; z-index:2; width:100%;
  padding:0 32px 90px; max-width:var(--maxw); margin:0 auto;
}
.hero-eyebrow{
  color:var(--gold-bright); font-size:12.5px; letter-spacing:0.28em; text-transform:uppercase;
  font-weight:700; margin-bottom:20px; display:block;
  opacity:0; animation:riseIn .8s ease 0.15s forwards;
}
.hero h1{
  font-size:clamp(40px,7.4vw,84px); line-height:1.02; color:var(--cream);
  max-width:900px;
  opacity:0; animation:riseIn .9s ease 0.3s forwards;
}
.hero-sub{
  margin-top:22px; max-width:520px; color:var(--sage); font-size:17.5px;
  opacity:0; animation:riseIn .9s ease 0.5s forwards;
}
.hero-cta{margin-top:38px; display:flex; gap:16px; flex-wrap:wrap;
  opacity:0; animation:riseIn .9s ease 0.7s forwards;
}
@keyframes riseIn{from{opacity:0; transform:translateY(22px);} to{opacity:1; transform:translateY(0);}}

.scroll-cue{
  position:absolute; right:32px; bottom:34px; z-index:2;
  writing-mode:vertical-rl; color:var(--sage-dim); font-size:11px; letter-spacing:0.2em;
  text-transform:uppercase; display:flex; align-items:center; gap:10px;
}
.scroll-cue .line{width:1px; height:48px; background:var(--sage-dim); position:relative; overflow:hidden;}
.scroll-cue .line::after{content:''; position:absolute; top:-100%; left:0; width:100%; height:100%; background:var(--gold); animation:scrollLine 2.2s ease-in-out infinite;}
@keyframes scrollLine{0%{top:-100%;} 60%{top:100%;} 100%{top:100%;}}
@media(max-width:700px){.scroll-cue{display:none;}}

/* ---------- REVEAL ---------- */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-stagger > *{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
.reveal-stagger.in > *{opacity:1; transform:translateY(0);}
.reveal-stagger.in > *:nth-child(1){transition-delay:.05s;}
.reveal-stagger.in > *:nth-child(2){transition-delay:.15s;}
.reveal-stagger.in > *:nth-child(3){transition-delay:.25s;}
.reveal-stagger.in > *:nth-child(4){transition-delay:.35s;}

/* ---------- COMING BACK TO (4 pillars) ---------- */
.pillars{display:grid; grid-template-columns:repeat(2,1fr); gap:28px;}
@media(min-width:820px){.pillars{grid-template-columns:repeat(4,1fr);}}
.pillar-card{background:var(--forest-mid); border:1px solid var(--line);}
.pillar-img{aspect-ratio:4/3; overflow:hidden;}
.pillar-img img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
.pillar-card:hover .pillar-img img{transform:scale(1.06);}
.pillar-text{padding:22px 20px 26px;}
.pillar-text h3{font-size:17px; line-height:1.3; margin-bottom:8px;}
.pillar-text p{font-size:13.5px; color:var(--sage-dim); line-height:1.55;}

/* ---------- GROWTH / CORRIDOR SIGNATURE ---------- */
.growth-layout{display:grid; grid-template-columns:1fr; gap:36px;}
@media(min-width:920px){.growth-layout{grid-template-columns:1.55fr 1fr;}}
.corridor-panel{background:var(--forest-deep); border:1px solid var(--line); padding:28px; overflow:hidden;}
.corridor-panel svg{width:100%; height:auto; display:block;}
.corridor-caption{margin-top:16px; font-size:12.5px; color:var(--sage-dim); text-align:center; letter-spacing:0.04em;}
.gold-card{background:var(--gold); color:var(--forest-deep); padding:36px 32px;}
.gold-card h4{color:var(--forest-deep); font-size:15px; text-transform:uppercase; letter-spacing:0.14em; font-weight:700; margin-bottom:22px; font-family:'Manrope',sans-serif;}
.check-list{list-style:none;}
.check-list li{
  display:flex; align-items:flex-start; gap:12px; padding:12px 0;
  border-top:1px solid rgba(14,26,16,0.15); font-size:15.5px; font-weight:600;
}
.check-list li:first-child{border-top:none;}
.check-list li svg{flex-shrink:0; margin-top:3px;}

/* corridor node pulse */
.node-dot{animation:pulseDot 2.6s ease-in-out infinite;}
@keyframes pulseDot{0%,100%{opacity:1;} 50%{opacity:.55;}}
.corridor-dash{stroke-dasharray:8 7; animation:dashMove 22s linear infinite;}
@keyframes dashMove{to{stroke-dashoffset:-600;}}

/* ---------- WHY SHANKARPALLY ---------- */
.why-layout{display:grid; grid-template-columns:1fr; gap:40px; align-items:start;}
@media(min-width:920px){.why-layout{grid-template-columns:1fr 1fr;}}
.distance-groups{display:flex; flex-direction:column; gap:28px;}
.dist-group h5{font-size:11.5px; text-transform:uppercase; letter-spacing:0.18em; color:var(--gold); margin-bottom:14px; font-weight:700;}
.dist-row{display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-top:1px solid var(--line); font-size:14.5px;}
.dist-row:first-of-type{border-top:none;}
.dist-row span:last-child{color:var(--gold-bright); font-weight:700; white-space:nowrap; margin-left:16px;}
.map-frame{position:relative; border:1px solid var(--line); background:var(--forest-deep); padding:10px;}
.map-frame img{width:100%; filter:sepia(12%) saturate(75%) brightness(.94);}
.map-tag{position:absolute; top:24px; left:24px; background:var(--forest-deep); border:1px solid var(--gold); padding:8px 14px; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-bright);}

/* ---------- SPACE / MASTERPLAN ---------- */
.space-layout{display:grid; grid-template-columns:1fr; gap:32px;}
@media(min-width:920px){.space-layout{grid-template-columns:1.3fr 0.8fr;}}
.space-img{border:1px solid var(--line); overflow:hidden;}
.space-img img{width:100%; display:block;}
.stat-strip{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); margin-top:1px; border:1px solid var(--line); border-top:none;}
.stat-cell{background:var(--forest-mid); padding:20px; text-align:center;}
.stat-cell b{display:block; font-family:'Fraunces',serif; font-size:22px; color:var(--gold-bright);}
.stat-cell span{font-size:11.5px; color:var(--sage-dim); letter-spacing:0.04em;}

/* ---------- AMENITIES CAROUSEL ---------- */
.tag-row{display:flex; justify-content:center; gap:12px; flex-wrap:wrap; margin-bottom:44px;}
.tag-pill{
  padding:8px 18px; border:1px solid var(--gold); border-radius:999px;
  font-size:11.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-bright);
}
.carousel{position:relative; overflow:hidden; border:1px solid var(--line);}
.carousel-track{display:flex; transition:transform .6s cubic-bezier(.65,0,.35,1);}
.carousel-slide{min-width:100%; position:relative; aspect-ratio:16/8;}
.carousel-slide img{width:100%; height:100%; object-fit:cover;}
.carousel-caption{
  position:absolute; left:0; right:0; bottom:0; padding:28px 34px;
  background:linear-gradient(to top, rgba(10,18,11,0.92), transparent);
}
.carousel-caption h4{font-size:20px; margin-bottom:4px;}
.carousel-caption p{font-size:13.5px; color:var(--sage);}
.carousel-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:44px; height:44px; border-radius:50%; border:1px solid var(--gold);
  background:rgba(14,26,16,0.7); color:var(--gold-bright); display:flex; align-items:center; justify-content:center;
  font-size:18px; transition:background .2s;
}
.carousel-nav:hover{background:rgba(201,162,74,0.2);}
.carousel-prev{left:18px;} .carousel-next{right:18px;}
.carousel-dots{display:flex; justify-content:center; gap:9px; margin-top:22px;}
.carousel-dots button{width:8px; height:8px; border-radius:50%; border:none; background:var(--line); padding:0;}
.carousel-dots button.active{background:var(--gold);}

/* ---------- CLUBHOUSE ---------- */
.clubhouse-media{position:relative; border:1px solid var(--line); overflow:hidden;}
.clubhouse-media img{width:100%; display:block;}
.clubhouse-figure{
  position:absolute; right:0; bottom:0; background:var(--gold); color:var(--forest-deep);
  padding:26px 34px; text-align:right;
}
.clubhouse-figure b{display:block; font-family:'Fraunces',serif; font-size:34px; line-height:1;}
.clubhouse-figure span{font-size:11px; letter-spacing:0.1em; text-transform:uppercase;}

/* ---------- UNIT PLANS ---------- */
.plan-tabs{display:flex; justify-content:center; gap:14px; margin-bottom:44px;}
.plan-tab{
  padding:12px 28px; border:1px solid var(--line); background:transparent; color:var(--sage);
  font-size:14px; font-weight:700; letter-spacing:0.03em;
}
.plan-tab.active{border-color:var(--gold); color:var(--gold-bright); background:rgba(201,162,74,0.08);}
.plan-body{display:none; grid-template-columns:1fr; gap:32px;}
.plan-body.active{display:grid;}
@media(min-width:920px){.plan-body{grid-template-columns:1fr 1fr;}}
.plan-media{border:1px solid var(--line); overflow:hidden;}
.plan-media img{width:100%; display:block;}
.plan-info{background:var(--forest-deep); border:1px solid var(--line); padding:32px;}
.plan-info h3{font-size:24px; margin-bottom:18px;}
.plan-specs{list-style:none; margin-bottom:26px;}
.plan-specs li{display:flex; justify-content:space-between; padding:11px 0; border-top:1px solid var(--line); font-size:14.5px;}
.plan-specs li:first-child{border-top:none;}
.plan-specs li span:last-child{color:var(--gold-bright); font-weight:700;}

/* ---------- CONTACT ---------- */
.contact-wrap{display:grid; grid-template-columns:1fr; gap:0; border:1px solid var(--line);}
@media(min-width:920px){.contact-wrap{grid-template-columns:0.9fr 1.1fr;}}
.contact-side{background:var(--forest-deep); padding:48px 40px; display:flex; flex-direction:column; justify-content:center;}
.contact-side h2{font-size:clamp(26px,3.4vw,36px); margin-bottom:16px;}
.contact-side p{color:var(--sage); font-size:15.5px; margin-bottom:28px;}
.contact-meta{display:flex; flex-direction:column; gap:12px; font-size:14px; color:var(--sage-dim);}
.contact-meta b{color:var(--cream);}
.contact-form{background:var(--forest-mid); padding:48px 40px;}
.form-row{display:grid; grid-template-columns:1fr; gap:18px; margin-bottom:18px;}
@media(min-width:560px){.form-row.two{grid-template-columns:1fr 1fr;}}
.field label{display:block; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--sage-dim); margin-bottom:8px;}
.field input, .field textarea{
  width:100%; background:transparent; border:none; border-bottom:1px solid var(--line);
  color:var(--cream); font-family:inherit; font-size:15px; padding:10px 2px; outline:none;
  transition:border-color .2s;
}
.field input:focus, .field textarea:focus{border-color:var(--gold);}
.field textarea{resize:vertical; min-height:70px;}
.form-status{margin-top:16px; font-size:13.5px; color:var(--gold-bright); display:none;}
.form-status.show{display:block;}

/* ---------- FOOTER ---------- */
footer{padding:52px 0 34px; border-top:1px solid var(--line);}
.footer-inner{display:flex; flex-direction:column; gap:22px; align-items:center; text-align:center;}
@media(min-width:760px){.footer-inner{flex-direction:row; justify-content:space-between; text-align:left;}}
.footer-brand{display:flex; align-items:center; gap:12px;}
.footer-brand img{height:26px;}
.footer-legal{font-size:12.5px; color:var(--sage-dim); max-width:480px;}
.footer-links{display:flex; gap:22px; font-size:13px; color:var(--sage);}

@media(max-width:700px){
  section{padding:72px 0;}
  .wrap{padding:0 20px;}
}
