/* =========================================================
   The Westin Residences — Landing Page
   ========================================================= */

:root{
  --green-900:#1d3328;
  --green-800:#243d2f;
  --green-700:#2c4a39;
  --green-600:#365a45;
  --gold:#c8a96a;
  --gold-light:#d9c08c;
  --gold-dark:#b6975a;
  /* --gold-dark:#8a6a37; */
  --cream-light:#f9f6f0;
  --cream:#f3efe6;
  --cream-deep:#d5c9b4;
  /* --cream-deep:#efe7da; */
  --ink:#1b1b18;
  --muted:#6f6f66;
  --line:rgba(0,0,0,.12);
  --line-white:rgba(255,255,255,.3);
  --serif:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans:'Jost','Helvetica Neue',Arial,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:#fff;
  line-height:1.6;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{width:min(1200px,92%);margin-inline:auto}
.serif{font-family:var(--serif)}

/* placeholder background for missing images */
.ph{background:linear-gradient(135deg,#2c4a39,#1d3328);background-size:cover;background-position:center}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  font-family:var(--sans);
  font-size:.8rem;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  padding:.85rem 1.6rem;
  border-radius:2px;
  border:1.5px solid var(--gold-dark);
  color:var(--gold);
  background:transparent;
  cursor:pointer;
  transition:.25s;
}
.btn:hover{background:var(--gold);color:#fff}
.btn-solid{background:var(--gold-dark);color:#fff;border-color:var(--gold-dark)}
.btn-solid:hover{background:var(--gold);border-color:var(--gold)}
.btn-dark{border-color:#fff;color:#fff}
.btn-dark:hover{background:#fff;color:var(--green-800)}

/* ---------- Section eyebrow / heading ---------- */
.eyebrow{
  font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--gold-dark);margin-bottom:1rem;font-weight:500;
}
.section-title{
  font-family:var(--serif);
  font-size:clamp(1.7rem,3vw,2.6rem);
  font-weight:500;
  line-height:1.2;
  color:var(--green-900);
}
.section{padding:5rem 0}

/* =========================================================
   HEADER
   ========================================================= */
.topbar{
  position:absolute;top:0;left:0;width:100%;z-index:30;
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem 0;
}
.brand{display:flex;align-items:center;gap:.7rem;color:#fff}
.brand-logo{height:48px;width:auto;object-fit:contain}
.brand .logo-box{
  width:42px;height:42px;border:1px solid rgba(255,255,255,.6);
  display:grid;place-items:center;font-family:var(--serif);font-size:1rem
}
.brand .brand-txt{font-family:var(--serif);font-size:1.05rem;letter-spacing:.05em;line-height:1.1}
.brand .brand-txt small{display:block;font-size:.55rem;letter-spacing:.3em;font-family:var(--sans);opacity:.8}
.menu{display:flex;gap:2rem;list-style:none}
.menu a{color:#fff;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;opacity:.9}
.menu a:hover{opacity:1;color:var(--gold-light)}
.menu a.active{opacity:1;color:var(--gold-light)}
.nav-cta{display:flex;align-items:center;gap:1.2rem}
.nav-cta .icon{color:#fff;font-size:1rem}
.menu-toggle{display:none}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.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(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.1) 35%,rgba(0,0,0,.65) 100%)}
.hero-inner{position:relative;z-index:5;width:100%;padding-bottom:0}

.hero-titlebar{
  background:var(--green-800);
  padding:1rem 0;
}
.hero-eyebrow{
  font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold);margin-bottom:.5rem;font-weight:400;
}
.hero-titlebar h1{
  font-family:var(--serif);font-weight:500;
  /* font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.15; */
  font-size:clamp(1.4rem,2.6vw,2.1rem); line-height:1.15;
}
.hero-tagline{
  font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;
  color:#d9d4c6;margin-top:.6rem;
}
.hero-sub{
  background:rgba(20,33,26,.85);
  border-top:1px solid rgba(255,255,255,.12);
  padding:.9rem 0;
}
.hero-sub .container{display:flex;flex-wrap:wrap;gap:2.5rem;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#d9d4c6}
.hero-sub span{display:flex;align-items:center;gap:.5rem}
.hero-sub span::before{content:"";width:5px;height:5px;background:var(--gold);border-radius:50%}

/* Quick enquiry floating form */
.quick-enquiry{
  position:absolute;right:0;top:50%;transform:translateY(-50%);
  z-index:20;width:300px;background:rgba(41,63,50,.92);
  border:1px solid rgba(200,169,106,.4);
  padding:1.6rem 1.4rem;color:#fff;
}
.quick-enquiry h4{font-family:var(--serif);font-size:1.2rem;font-weight:500;margin-bottom:1rem;text-align:center}
.quick-enquiry input{
  width:100%;background:transparent;border:1px solid rgba(255,255,255,.3);
  padding:.7rem .8rem;margin-bottom:.7rem;color:#fff;font-size:.78rem;font-family:var(--sans)
}
.quick-enquiry input::placeholder{color:rgba(255,255,255,.6)}
.quick-enquiry .btn{width:100%;margin-top:.3rem}

/* =========================================================
   WELCOME
   ========================================================= */
.welcome{text-align:center;padding:5rem 0 3rem}
.welcome .section-title{max-width:760px;margin:.4rem auto 1.4rem}
.welcome p{max-width:620px;margin:0 auto 1.6rem;color:var(--muted)}
.overview-tagline{
  font-size:clamp(1.2rem,2vw,1.5rem);color:var(--gold-dark);
  font-style:italic;margin:0 auto 1.8rem;
}

/* =========================================================
   VIDEO
   ========================================================= */
.video{position:relative;height:80vh;min-height:450px;overflow:hidden}
.video img,
.video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top}
.video video{z-index:1}
.video::after{content:"";position:absolute;inset:0;background:rgba(20,33,26,.25)}
.play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;
  width:84px;height:84px;border-radius:50%;border:1px solid #fff;
  display:grid;place-items:center;color:#fff;background:rgba(0,0,0,.25);cursor:pointer;transition:.3s
}
.play:hover{background:var(--gold);border-color:var(--gold)}
.play::after{content:"";border-style:solid;border-width:11px 0 11px 18px;border-color:transparent transparent transparent #fff;margin-left:5px}

/* =========================================================
   AMENITIES
   ========================================================= */
.amenities{background:var(--cream);color:#fff}
/* .amenities{background:var(--green-800);color:#fff} */
.amenities .section-head{text-align:center;max-width:760px;margin:0 auto 3rem}
.amenities .section-head .section-title{color:#000}
.amenities .section-head .eyebrow{color:var(--gold)}
.amen-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;align-items:stretch}
.amen-img{height:230px;overflow:hidden}
.amen-img img{width:100%;height:100%;object-fit:cover}
.clubhouse{
  grid-column:1/2;background:var(--green-900);
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  padding:2rem;text-align:center
}
.clubhouse h3{font-family:var(--serif);font-size:1.8rem;font-weight:500;margin-bottom:.4rem}
.amen-list{
  grid-column:2/4;background:var(--green-700);
  display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem 1.5rem;
  padding:2rem;font-size:.8rem;color:#d9d4c6;align-content:center
}
.amen-col{display:flex;flex-direction:column}
.amen-col__title{
  font-family:var(--serif);font-weight:500;font-size:1.1rem;
  color:var(--gold-light);margin:0 0 .6rem;padding-bottom:.4rem;
  border-bottom:1px solid rgba(255,255,255,.18)
}
.amen-list span{position:relative;padding:.15rem 0 .15rem 1.4rem}
.amen-list span::before{content:"\2014";position:absolute;left:0;color:var(--gold)}
.amenities .cta-row{text-align:center;margin-top:2.5rem}

/* =========================================================
   SANCTUARY BANNER
   ========================================================= */
.sanctuary{position:relative;height:70vh;min-height:380px;display:flex;align-items:center;color:#fff;overflow:hidden}
.sanctuary img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sanctuary::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,33,26,.7),rgba(20,33,26,.15))}
.sanctuary .container{position:relative;z-index:3}
.sanctuary h2{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:500;max-width:640px}

/* =========================================================
   HIGHLIGHTS
   ========================================================= */
.highlights{text-align:center}
.highlights .section-title{max-width:680px;margin:.4rem auto 3rem}
.hl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.hl-card{text-align:left}
.hl-card .hl-img{height:170px;overflow:hidden;margin-bottom:1rem}
.hl-card .hl-img img{width:100%;height:100%;object-fit:cover}
.hl-card h4{font-family:var(--serif);font-size:1.15rem;font-weight:500;margin-bottom:.5rem;color:var(--green-900)}
.hl-card p{font-size:.82rem;color:var(--muted)}
.hl-dots{display:flex;gap:.5rem;justify-content:center;margin:2.5rem 0 1.5rem}
.hl-dots i{width:7px;height:7px;border-radius:50%;background:var(--line)}
.hl-dots i.active{background:var(--gold);width:22px;border-radius:4px}
.highlights .cta-row{text-align:center}

/* =========================================================
   PRICING
   ========================================================= */
.pricing{position:relative;background:var(--green-800);color:#fff;overflow:hidden}
.pricing .silk{position:absolute;inset:0;opacity:.35;object-fit:cover;width:100%;height:100%}
.pricing .container{position:relative;z-index:3}
.pricing .section-title{color:#fff;max-width:620px;margin-bottom:2.5rem}
.price-table{width:100%;border-collapse:collapse;font-size:.85rem}
.price-table thead th{
  text-align:left;text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;
  color:var(--gold-light);font-weight:500;padding:.9rem 1rem;border-bottom:1px solid rgba(255,255,255,.2)
}
.price-table td{padding:1.1rem 1rem;border-bottom:1px solid rgba(255,255,255,.12)}
.price-table .avail{color:#9fd6a8}

/* =========================================================
   FLOOR PLANS
   ========================================================= */
.floorplans{text-align:center}
.floorplans .section-title{max-width:680px;margin:.4rem auto 2.5rem}
.fp-lead{position:relative;height:45vh;min-height:300px;overflow:hidden;margin-bottom:3rem}
.fp-lead img{width:100%;height:100%;object-fit:cover; align-items: center;}
.fp-lead::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,33,26,.55),rgba(20,33,26,.2))}
.fp-lead-overlay{
  position:absolute;inset:0;z-index:3;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;color:#fff;padding:1.5rem;
}
.fp-lead-overlay .eyebrow{color:var(--gold-light)}
.fp-lead-overlay h3{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(1.5rem,2.8vw,2.2rem);line-height:1.25;
  max-width:720px;margin-bottom:1rem;
}
.fp-lead-sub{max-width:560px;font-size:.9rem;color:rgba(255,255,255,.85);margin-bottom:1.6rem}
.fp-tabs-wrap{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;max-width:900px;margin:0 auto 3rem}
.fp-block{border:1px solid var(--line-white);padding:1.6rem}
.fp-block .fp-head{
  /* font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green-800); */
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;
  border:1px solid var(--line-white);padding:.6rem;margin-bottom:1.2rem;display:inline-block;width:100%
}
.fp-mini{display:flex;justify-content:center;gap:1.5rem;margin-bottom:1.2rem}
.fp-mini button{
  background:none;border:none;font-family:var(--sans);font-size:.72rem;letter-spacing:.1em;
  text-transform:uppercase;color:#fff;cursor:pointer;padding-bottom:.4rem;border-bottom:2px solid transparent
  /* text-transform:uppercase;color:var(--muted);cursor:pointer;padding-bottom:.4rem;border-bottom:2px solid transparent */
}
.fp-mini button.active{color:#fff;border-color:var(--gold)}
/* .fp-mini button.active{color:var(--green-900);border-color:var(--gold)} */
.masterplan{height:75vh;min-height:380px;overflow:hidden}
.masterplan img{width:100%;height:100%;object-fit:cover}

/* =========================================================
   LOCATION
   ========================================================= */
.location .section-title{max-width:680px;margin-bottom:2.5rem}
.loc-tabs{display:flex;gap:2rem;border-bottom:1px solid var(--line);margin-bottom:2rem;flex-wrap:wrap}
.loc-tabs button{
  background:none;border:none;font-family:var(--sans);font-size:.74rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);cursor:pointer;padding:0 0 1rem;border-bottom:2px solid transparent
}
.loc-tabs button.active{color:var(--green-900);border-color:var(--gold)}
.loc-body{display:grid;grid-template-columns:1.4fr 1fr;gap:2.5rem;align-items:start}
.loc-map{height:360px;overflow:hidden;border:1px solid var(--line)}
.loc-map img{width:100%;height:100%;object-fit:cover}
.loc-list{list-style:none}
.loc-list li{display:flex;justify-content:space-between;padding:.85rem .2rem;border-bottom:1px solid var(--line);font-size:.85rem}
.loc-list li span:last-child{color:var(--gold);font-weight:500}
.location .cta-row{margin-top:2rem}

/* =========================================================
   GALLERY
   ========================================================= */
.gallery .gallery-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:2rem}
.gallery .count{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);background:none;border:none;cursor:pointer;font-family:var(--sans);transition:.25s}
.gallery .count:hover{color:var(--gold)}
.gal-grid figure{cursor:pointer}
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:1rem}
.gal-grid figure{overflow:hidden}
.gal-grid img{width:100%;height:100%;object-fit:cover;transition:.4s}
.gal-grid figure:hover img{transform:scale(1.06)}
.gal-grid .wide{grid-column:span 2}
.gal-grid .tall{grid-row:span 2}

/* Fullscreen lightbox */
.lightbox{
  position:fixed;inset:0;z-index:1000;background:rgba(10,16,13,.95);
  display:none;align-items:center;justify-content:center;
}
.lightbox.open{display:flex}
.lb-stage{max-width:90vw;max-height:88vh;display:flex;align-items:center;justify-content:center}
.lb-stage img{max-width:90vw;max-height:88vh;width:auto;height:auto;object-fit:contain;display:block}
.lb-close{
  position:absolute;top:1.4rem;right:1.8rem;z-index:5;
  background:none;border:none;color:#fff;font-size:2.4rem;line-height:1;cursor:pointer;transition:.25s
}
.lb-close:hover{color:var(--gold)}
.lb-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:54px;height:54px;border:1px solid rgba(255,255,255,.6);background:rgba(0,0,0,.3);
  color:#fff;font-size:1.3rem;cursor:pointer;display:grid;place-items:center;transition:.25s
}
.lb-nav:hover{background:var(--gold);border-color:var(--gold)}
.lb-prev{left:1.6rem}
.lb-next{right:1.6rem}
.lb-counter{position:absolute;bottom:1.4rem;left:50%;transform:translateX(-50%);color:#d9d4c6;font-size:.78rem;letter-spacing:.18em}
@media(max-width:600px){
  .lb-nav{width:42px;height:42px}
  .lb-prev{left:.6rem}.lb-next{right:.6rem}
}

/* =========================================================
   DEVELOPER
   ========================================================= */
.developer{background:var(--cream)}
.dev-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.developer .section-title{margin:.4rem 0 1.2rem}
.developer p{color:var(--muted);margin-bottom:1.2rem;font-size:.92rem}
.whiteland-logo{font-family:var(--serif);font-size:1.8rem;letter-spacing:.05em;color:var(--green-900)}

/* =========================================================
   FOOTER CTA
   ========================================================= */
.footer-cta{position:relative;background:var(--green-900);color:#fff;overflow:hidden;padding:4.5rem 0}
.footer-cta .silk{position:absolute;inset:0;opacity:.3;object-fit:cover;width:100%;height:100%}
.footer-cta .container{position:relative;z-index:3}
.footer-cta h2{font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2.2rem);font-weight:500;max-width:760px;margin-bottom:2rem}
.cta-form{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;align-items:end}
.cta-form .full{grid-column:1/-1}
.cta-form input,.cta-form textarea{
  width:100%;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.35);
  padding:.7rem .2rem;color:#fff;font-family:var(--sans);font-size:.85rem
}
.cta-form input::placeholder,.cta-form textarea::placeholder{color:rgba(255,255,255,.6)}
.cta-form .btn{justify-self:start}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{background:var(--green-900);color:#cfc9ba;border-top:1px solid rgba(255,255,255,.12);padding:2rem 0;font-size:.72rem}
.site-footer .container{display:block;opacity:.8}
.footer-disclaimer{font-size:.7rem;line-height:1.7;color:#a9a497;margin-bottom:1.4rem;text-align:justify}
.footer-disclaimer strong{color:#cfc9ba}
.footer-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.1)}

/* =========================================================
   ENQUIRY MODAL
   ========================================================= */
.modal-overlay{
  position:fixed;inset:0;z-index:100;
  background:rgba(15,25,19,.72);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:1.2rem;
  opacity:0;visibility:hidden;transition:.25s;
}
.modal-overlay.open{opacity:1;visibility:visible}
.modal{
  position:relative;width:min(440px,100%);
  background:#fff;color:var(--ink);
  border:1px solid rgba(54,90,69,.25);
  border-top:2px solid var(--green-700);
  box-shadow:0 24px 60px rgba(15,25,19,.4);
  padding:0;
  transform:translateY(14px);transition:.25s;
  max-height:92vh;overflow-y:auto;
}
.modal-overlay.open .modal{transform:translateY(0)}
.modal-head{
  background:var(--green-800);color:#fff;
  padding:1.8rem 2rem 1.5rem;text-align:center;
  border-bottom:2px solid var(--gold);
}
.modal-body{padding:1.6rem 2rem 2.2rem;background:linear-gradient(180deg,rgba(54,90,69,.05),#fff 60%)}
.modal-close{
  position:absolute;top:.7rem;right:1rem;
  background:none;border:none;color:#fff;font-size:1.7rem;line-height:1;
  cursor:pointer;opacity:.8;transition:.2s;z-index:2;
}
.modal-close:hover{opacity:1;color:var(--gold-light)}
.modal .eyebrow{color:var(--gold-light)}
.modal h3{font-family:var(--serif);font-size:1.8rem;font-weight:500;color:#fff}
.modal-sub{font-size:.85rem;color:var(--muted);margin-bottom:1.4rem;text-align:center}
.modal-form{display:flex;flex-direction:column;gap:.8rem}
.modal-form input,.modal-form textarea{
  width:100%;background:#fff;border:1px solid rgba(54,90,69,.3);
  padding:.75rem .85rem;color:var(--ink);font-family:var(--sans);font-size:.85rem;
}
.modal-form input:focus,.modal-form textarea:focus{outline:none;border-color:var(--green-600);box-shadow:0 0 0 2px rgba(54,90,69,.12)}
.modal-form input::placeholder,.modal-form textarea::placeholder{color:var(--muted)}
.modal-form .btn{margin-top:.4rem;background:var(--green-700);border-color:var(--green-700);color:#fff}
.modal-form .btn:hover{background:var(--green-900);border-color:var(--green-900)}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media(max-width:768px){
  .brand-logo {
    height: 30px;
  }
  .menu{
    display:none;flex-direction:column;gap:0;
    position:absolute;top:100%;left:0;width:100%;
    background:var(--green-900);
    border-top:1px solid rgba(255,255,255,.12);
    padding:.5rem 0;
  }
  .menu.open{display:flex}
  .menu li{width:100%}
  .menu a{display:block;padding:.9rem 6%;border-bottom:1px solid rgba(255,255,255,.08);font-size:.8rem}
  .menu-toggle{display:grid;place-items:center;background:none;border:none;cursor:pointer}
  /* .quick-enquiry{position:static;transform:none;width:100%;margin-top:-1px} */
  .amen-grid{grid-template-columns:1fr}
  .clubhouse,.amen-list{grid-column:auto}
  .amen-list{grid-template-columns:1fr 1fr}
  .hl-grid{grid-template-columns:1fr 1fr}
  .fp-tabs-wrap,.loc-body,.dev-grid,.gal-grid{grid-template-columns:1fr}
  .gal-grid{grid-auto-rows:220px}
  .gal-grid .wide,.gal-grid .tall{grid-column:auto;grid-row:auto}
  .cta-form{grid-template-columns:1fr 1fr}
  .video {
    position: relative;
    height: 220px;
    min-height: 250px;
    overflow: hidden;
  }
  .sanctuary {
    height:auto;
  }
  .fp-lead {
    min-height: 530px;
  }
  .masterplan {
    height: auto;
  }
}
@media(max-width:560px){
  .hl-grid,.amen-list,.cta-form{grid-template-columns:1fr}
}

/* ---------- FAQ ---------- */
.faq details{
  border-bottom:1px solid var(--line);
  padding:1rem 0;
}
.faq summary{
  font-family:var(--serif);font-size:1.15rem;color:var(--green-900);
  cursor:pointer;list-style:none;position:relative;padding-right:2rem;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:0;top:-2px;font-size:1.4rem;color:var(--gold-dark);
}
.faq details[open] summary::after{content:"\2013"}
.faq details p{margin-top:.7rem;color:var(--muted);font-size:.95rem;line-height:1.7}
