/* ==========================================================================
   AURUM ESTATES — Luxury Real Estate & Construction
   Design tokens: Navy #0A0E1A / #0F1729, Gold #C9A34E / #E8CD8A,
   White #FFFFFF, Light Gray #F5F4F1, Ink #12141C
   Display: 'Fraunces' — Body: 'Manrope' — Utility/Data: 'JetBrains Mono'
   Signature motif: "Au · 79" gold periodic-table mark (gold, the metal,
   literalized as the brand's chemical signature)
   ========================================================================== */

:root{
  --navy:#0A0E1A;
  --navy-2:#0F1729;
  --navy-soft:#141c30;
  --gold:#C9A34E;
  --gold-light:#E8CD8A;
  --gold-dim:#8a7239;
  --white:#FFFFFF;
  --gray:#F5F4F1;
  --gray-2:#EDEAE3;
  --ink:#12141C;
  --ink-soft:#4b4f5c;

  --bg:#FFFFFF;
  --bg-alt:#F5F4F1;
  --surface:#FFFFFF;
  --text:#12141C;
  --text-soft:#5a5f6d;
  --line: rgba(18,20,28,0.10);
  --glass-bg: rgba(255,255,255,0.55);
  --glass-border: rgba(255,255,255,0.35);
  --shadow-sm: 0 2px 10px rgba(18,20,28,0.06);
  --shadow-md: 0 12px 40px rgba(18,20,28,0.10);
  --shadow-lg: 0 30px 80px rgba(10,14,26,0.18);
  --shadow-gold: 0 10px 30px rgba(201,163,78,0.25);

  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --radius-xl: 40px;

  --container: 1320px;
  --pad: clamp(20px, 5vw, 80px);

  --ease: cubic-bezier(.22,1,.36,1);
  --dur: .6s;

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Manrope', -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
}

[data-theme="dark"]{
  --bg:#0A0E1A;
  --bg-alt:#0F1729;
  --surface:#111826;
  --text:#F3F1EA;
  --text-soft:#a9adba;
  --line: rgba(255,255,255,0.10);
  --glass-bg: rgba(15,23,41,0.55);
  --glass-border: rgba(255,255,255,0.10);
  --shadow-sm: 0 2px 10px rgba(0,0,0,0.3);
  --shadow-md: 0 12px 40px rgba(0,0,0,0.4);
  --shadow-lg: 0 30px 80px rgba(0,0,0,0.55);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  overflow-x:hidden;
  transition:background .5s var(--ease), color .5s var(--ease);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input,select,textarea{font-family:inherit;}
::selection{background:var(--gold); color:var(--navy);}

.container{max-width:var(--container); margin:0 auto; padding:0 var(--pad);}
.eyebrow{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold-dim);
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
}
[data-theme="dark"] .eyebrow{color:var(--gold-light);}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--gold);}

h1,h2,h3,h4{font-family:var(--font-display); font-weight:600; line-height:1.08; letter-spacing:-.01em;}
.section-title{font-size:clamp(32px,4.4vw,56px); margin-bottom:18px; font-weight:500;}
.section-sub{max-width:560px; color:var(--text-soft); font-size:17px; line-height:1.7;}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:64px; flex-wrap:wrap;}
.section-head.center{flex-direction:column; align-items:center; text-align:center; margin-left:auto; margin-right:auto;}
.section-head.center .section-sub{margin:0 auto;}

section{position:relative; padding:120px 0;}
.section-alt{background:var(--bg-alt);}

/* ---------- brand logo (Aavesham) ---------- */
.brand-logo{
  height:50px;
   width:auto;
    border-radius:10px;
     object-fit:cover;
  /* box-shadow:0 4px 14px rgba(0,0,0,.35); flex-shrink:0; */
  transition:transform .4s var(--ease);
}
.logo:hover .brand-logo{transform:scale(1.04);}
.loader-logo{
  height:76px; width:auto; border-radius:16px; box-shadow:0 10px 30px rgba(0,0,0,.4);
}

/* ---------- gold mark / signature ---------- */
.au-mark{
  width:46px;height:46px;border:1px solid var(--gold);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-family:var(--font-mono); color:var(--gold); border-radius:6px; position:relative; flex-shrink:0;
}
.au-mark span.sym{font-size:16px; font-weight:700; line-height:1;}
.au-mark span.num{font-size:7px; position:absolute; top:4px; left:5px;}
.divider-au{display:flex; align-items:center; justify-content:center; gap:18px; margin:0 0 60px;}
.divider-au .line{width:80px; height:1px; background:linear-gradient(90deg, transparent, var(--gold), transparent);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 34px; border-radius:100px; font-size:14px; font-weight:700;
  letter-spacing:.03em; text-transform:uppercase; position:relative; overflow:hidden;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
  white-space:nowrap;
}
.btn-gold{
  background:linear-gradient(120deg, var(--gold-light), var(--gold) 55%, var(--gold-dim));
  background-size:220% 100%;
  color:var(--navy);
  box-shadow:var(--shadow-gold);
}
.btn-gold:hover{background-position:100% 0; transform:translateY(-3px); box-shadow:0 16px 40px rgba(201,163,78,.4);}
.btn-outline{
  border:1px solid rgba(255,255,255,.5); color:#fff; backdrop-filter:blur(6px); background:rgba(255,255,255,.06);
}
.btn-outline:hover{background:rgba(255,255,255,.16); transform:translateY(-3px);}
.btn-dark{background:var(--ink); color:#fff;}
.btn-dark:hover{transform:translateY(-3px); box-shadow:var(--shadow-md);}
.btn-sm{padding:10px 20px; font-size:12px;}
.btn-ghost-line{border:1px solid var(--line); color:var(--text);}
.btn-ghost-line:hover{border-color:var(--gold); color:var(--gold-dim);}

/* ---------- loader ---------- */
#preloader{
  position:fixed; inset:0; z-index:9999; background:var(--navy);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:22px;
  transition:opacity .8s var(--ease), visibility .8s var(--ease);
}
#preloader.done{opacity:0; visibility:hidden; pointer-events:none;}
.loader-mark{font-family:var(--font-display); font-size:42px; color:var(--gold-light); letter-spacing:.05em;}
.loader-bar{width:220px; height:1px; background:rgba(255,255,255,.15); position:relative; overflow:hidden;}
.loader-bar::after{content:""; position:absolute; left:-40%; top:0; bottom:0; width:40%; background:var(--gold); animation:loaderSweep 1.1s ease-in-out infinite;}
@keyframes loaderSweep{0%{left:-40%;}50%{left:60%;}100%{left:100%;}}
.loader-pct{font-family:var(--font-mono); font-size:11px; letter-spacing:.2em; color:rgba(255,255,255,.5);}

/* ---------- cursor ---------- */
.cursor-dot, .cursor-ring{position:fixed; top:0; left:0; pointer-events:none; z-index:9998; border-radius:50%; transform:translate(-50%,-50%);}
.cursor-dot{width:6px;height:6px;background:var(--gold);}
.cursor-ring{width:34px;height:34px;border:1px solid rgba(201,163,78,.6); transition:width .25s, height .25s, border-color .25s, background .25s;}
.cursor-ring.hovered{width:60px;height:60px;background:rgba(201,163,78,.12);}
@media (hover:none), (pointer:coarse){.cursor-dot,.cursor-ring{display:none;}}

/* ---------- particles ---------- */
#particles{position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:1;}
#particles span{
  position:absolute; bottom:-10%; width:4px; height:4px; border-radius:50%;
  background:var(--gold-light); opacity:.5; animation:floatUp linear infinite;
}
@keyframes floatUp{
  0%{transform:translateY(0) translateX(0); opacity:0;}
  10%{opacity:.6;}
  90%{opacity:.4;}
  100%{transform:translateY(-110vh) translateX(30px); opacity:0;}
}

/* ---------- navbar ---------- */
#navbar{
  position:fixed; top:0; left:0; right:0; z-index:900;
  padding:26px 0; transition:all .5s var(--ease);
}
#navbar .nav-inner{
  display:flex; align-items:center; justify-content:space-between; max-width:var(--container); margin:0 auto; padding:0 var(--pad);
}
#navbar.scrolled{
  padding:14px 0; background:var(--glass-bg); backdrop-filter:blur(16px) saturate(160%);
  border-bottom:1px solid var(--glass-border); box-shadow:var(--shadow-sm);
}
.logo{display:flex; align-items:center; gap:12px; font-family:var(--font-display); font-size:22px; letter-spacing:.02em; color:#fff;}
#navbar.scrolled .logo{color:var(--text);}
.logo small{display:block; font-family:var(--font-mono); font-size:9px; letter-spacing:.25em; color:var(--gold-light); text-transform:uppercase; margin-top:2px;}
.nav-links{display:flex; align-items:center; gap:38px;}
.nav-links > li{position:relative;}
.nav-links a.top-link{
  color:#fff; font-size:14px; font-weight:600; letter-spacing:.02em; padding:8px 0; position:relative;
}
#navbar.scrolled .nav-links a.top-link{color:var(--text);}
.nav-links a.top-link::after{content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold); transition:width .35s var(--ease);}
.nav-links a.top-link:hover::after{width:100%;}
.has-mega:hover .mega-menu, .has-mega:focus-within .mega-menu{opacity:1; visibility:visible; transform:translateY(0);}
.mega-menu{
  position:fixed; left:0; right:0; top:100%; margin-top:0;
  background:var(--surface); border-top:1px solid var(--line); box-shadow:var(--shadow-lg);
  opacity:0; visibility:hidden; transform:translateY(-10px); transition:all .4s var(--ease);
  padding:48px 0;
}
#navbar.scrolled .mega-menu{top:100%;}
.mega-grid{max-width:var(--container); margin:0 auto; padding:0 var(--pad); display:grid; grid-template-columns:1.1fr repeat(3,1fr); gap:40px;}
.mega-col h5{font-family:var(--font-mono); font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:18px;}
.mega-col a{display:block; padding:9px 0; font-size:15px; color:var(--text); border-bottom:1px solid var(--line); transition:.3s;}
.mega-col a:hover{color:var(--gold-dim); padding-left:6px;}
.mega-feature{border-radius:var(--radius-md); overflow:hidden; position:relative; height:100%; min-height:220px;}
.mega-feature img{width:100%;height:100%;object-fit:cover; position:absolute; inset:0;}
.mega-feature .tag{position:relative; z-index:2; background:linear-gradient(0deg, rgba(10,14,26,.85), transparent 65%); height:100%; display:flex; align-items:flex-end; padding:22px; color:#fff;}
.nav-actions{display:flex; align-items:center; gap:14px;}
.icon-btn{
  width:42px;height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,.35); color:#fff; transition:.35s;
}
#navbar.scrolled .icon-btn{border-color:var(--line); color:var(--text);}
.icon-btn:hover{background:var(--gold); color:var(--navy); border-color:var(--gold);}
.burger{display:none; flex-direction:column; gap:5px; width:26px;}
.burger span{height:2px; background:#fff; border-radius:2px; transition:.3s;}
#navbar.scrolled .burger span{background:var(--text);}

/* mobile nav */
.mobile-nav{position:fixed; inset:0; z-index:1200; background:var(--navy); transform:translateX(100%); transition:transform .5s var(--ease); padding:100px 30px 40px; overflow-y:auto;}
.mobile-nav.open{transform:translateX(0);}
.mobile-nav a{display:block; font-family:var(--font-display); font-size:26px; color:#fff; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.1);}
.mobile-close{position:absolute; top:32px; right:30px; color:#fff; font-size:26px;}

/* ---------- hero ---------- */
.hero{position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden; background:var(--navy); color:#fff;}
.hero-slides{position:absolute; inset:0; z-index:0;}
.hero-slides .slide{position:absolute; inset:0; opacity:0; background-size:cover; background-position:center; transform:scale(1.12); transition:opacity 2s ease;}
.hero-slides .slide.active{opacity:1; animation:kenburns 12s ease-in-out forwards;}
@keyframes kenburns{from{transform:scale(1.12) translate(0,0);} to{transform:scale(1) translate(-1%,-1%);}}
.hero::before{content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(10,14,26,.55) 0%, rgba(10,14,26,.35) 40%, rgba(10,14,26,.85) 100%);}
.hero::after{content:""; position:absolute; inset:0; z-index:1; background:radial-gradient(circle at 20% 20%, rgba(201,163,78,.12), transparent 45%);}
.hero-content{position:relative; z-index:3; width:100%; padding-top:80px;}
.hero-grid{display:grid; grid-template-columns:1.3fr .9fr; gap:60px; align-items:end;}
.hero-badges{display:flex; gap:14px; margin-bottom:26px; flex-wrap:wrap;}
.badge-glass{
  display:flex; align-items:center; gap:8px; padding:9px 16px; border-radius:100px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); backdrop-filter:blur(10px);
  font-size:12px; letter-spacing:.03em; font-weight:600;
}
.badge-glass i{color:var(--gold-light);}
.hero h1{font-size:clamp(40px,6.4vw,86px); font-weight:500; letter-spacing:-.02em; margin-bottom:22px;}
.hero h1 .line{display:block; overflow:hidden;}
.hero h1 .line span{display:inline-block; transform:translateY(110%); animation:revealUp 1s var(--ease) forwards;}
.hero h1 .line:nth-child(2) span{animation-delay:.12s;}
@keyframes revealUp{to{transform:translateY(0);}}
.hero h1 em{font-style:italic; color:var(--gold-light);}
.hero-sub{font-size:19px; color:rgba(255,255,255,.78); max-width:520px; margin-bottom:38px; font-weight:400;}
.hero-cta{display:flex; gap:18px; margin-bottom:56px; flex-wrap:wrap;}
.hero-stats{display:flex; gap:48px; flex-wrap:wrap;}
.hero-stats .stat b{font-family:var(--font-display); font-size:34px; color:var(--gold-light); display:block;}
.hero-stats .stat span{font-size:12px; color:rgba(255,255,255,.6); letter-spacing:.04em;}

/* floating enquiry card */
.enquiry-card{
  background:var(--glass-bg); border:1px solid var(--glass-border); backdrop-filter:blur(20px) saturate(160%);
  border-radius:var(--radius-lg); padding:34px; box-shadow:var(--shadow-lg); color:var(--text);
  animation:floatCard 6s ease-in-out infinite;
}
[data-theme="light"] .enquiry-card, :root:not([data-theme]) .enquiry-card{background:rgba(255,255,255,.92); color:var(--ink);}
@keyframes floatCard{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
.enquiry-card h4{font-size:20px; margin-bottom:6px;}
.enquiry-card p.small{font-size:13px; color:var(--text-soft); margin-bottom:20px;}
.enquiry-card input, .enquiry-card select{
  width:100%; padding:13px 16px; margin-bottom:12px; border-radius:10px; border:1px solid var(--line);
  background:rgba(255,255,255,.6); font-size:14px; color:var(--ink);
}
[data-theme="dark"] .enquiry-card input, [data-theme="dark"] .enquiry-card select{background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.15);}
.enquiry-card .btn{width:100%; margin-top:6px;}
.scroll-cue{position:absolute; bottom:34px; left:50%; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; color:rgba(255,255,255,.7); font-family:var(--font-mono); font-size:10px; letter-spacing:.2em;}
.scroll-cue .stick{width:1px; height:36px; background:linear-gradient(180deg, var(--gold), transparent); position:relative; overflow:hidden;}
.scroll-cue .stick::after{content:""; position:absolute; top:-100%; left:0; width:100%; height:100%; background:var(--gold-light); animation:scrollDown 1.8s ease-in-out infinite;}
@keyframes scrollDown{to{top:100%;}}

/* ---------- trust strip ---------- */
.trust-strip{background:var(--surface); border-bottom:1px solid var(--line); padding:22px 0; position:relative; z-index:5;}
.trust-strip .container{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;}
.trust-item{display:flex; align-items:center; gap:10px; font-size:13px; font-weight:700; color:var(--text-soft); letter-spacing:.02em;}
.trust-item i{color:var(--gold);}
.trust-item .stars{color:var(--gold);}

/* ---------- cards generic ---------- */
.card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); transition:transform .5s var(--ease), box-shadow .5s var(--ease);}
.tilt{transform-style:preserve-3d; will-change:transform;}

/* ---------- projects ---------- */
.projects-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px;}
.project-card{position:relative; border-radius:var(--radius-lg); overflow:hidden; height:520px; box-shadow:var(--shadow-md);}
.project-card .pc-img{position:absolute; inset:0;}
.project-card .pc-img img{width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease);}
.project-card:hover .pc-img img{transform:scale(1.12) rotate(.5deg);}
.project-card .pc-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,14,26,0) 20%, rgba(10,14,26,.92) 92%);}
.project-card .pc-status{position:absolute; top:20px; left:20px; z-index:3; padding:7px 14px; border-radius:100px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.3); backdrop-filter:blur(8px); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:#fff; font-weight:700;}
.project-card .pc-wish{position:absolute; top:20px; right:20px; z-index:3; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.3); backdrop-filter:blur(8px); display:flex; align-items:center; justify-content:center; color:#fff; transition:.3s;}
.project-card .pc-wish.active, .project-card .pc-wish:hover{background:var(--gold); color:var(--navy); border-color:var(--gold);}
.project-card .pc-body{position:absolute; left:0; right:0; bottom:0; z-index:3; padding:28px; color:#fff;}
.project-card .pc-cat{font-family:var(--font-mono); font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:var(--gold-light); margin-bottom:8px;}
.project-card h3{font-size:25px; margin-bottom:8px;}
.project-card .pc-loc{font-size:13px; color:rgba(255,255,255,.75); margin-bottom:16px; display:flex; align-items:center; gap:6px;}
.pc-meta{display:flex; justify-content:space-between; align-items:flex-end; border-top:1px solid rgba(255,255,255,.18); padding-top:16px; gap:10px;}
.pc-meta .m{font-size:11px; color:rgba(255,255,255,.6); text-transform:uppercase; letter-spacing:.06em; margin-bottom:4px;}
.pc-meta b{font-family:var(--font-mono); font-size:16px; color:#fff;}
.pc-meta .price b{color:var(--gold-light); font-size:18px;}
.pc-rera{font-size:10px; color:rgba(255,255,255,.45); margin-top:10px; font-family:var(--font-mono);}
.filter-bar{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:50px;}
.filter-btn{padding:11px 22px; border-radius:100px; border:1px solid var(--line); font-size:13px; font-weight:700; letter-spacing:.02em; transition:.35s;}
.filter-btn.active, .filter-btn:hover{background:var(--ink); color:#fff; border-color:var(--ink);}
[data-theme="dark"] .filter-btn.active, [data-theme="dark"] .filter-btn:hover{background:var(--gold); color:var(--navy); border-color:var(--gold);}

/* ---------- about / timeline / stats ---------- */
.about-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:center;}
.about-gallery{position:relative; height:560px;}
.about-gallery img{position:absolute; border-radius:var(--radius-md); object-fit:cover; box-shadow:var(--shadow-lg);}
.ag-1{width:72%; height:78%; top:0; left:0; z-index:2;}
.ag-2{width:52%; height:46%; bottom:0; right:0; z-index:3; border:6px solid var(--bg);}
.about-stats{display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:40px;}
.stat-box{padding:26px; border-radius:var(--radius-md); background:var(--surface); border:1px solid var(--line);}
.stat-box b{font-family:var(--font-display); font-size:42px; color:var(--gold-dim); display:block;}
[data-theme="dark"] .stat-box b{color:var(--gold-light);}
.stat-box span{font-size:13px; color:var(--text-soft);}
.mv-tabs{display:flex; gap:10px; margin:30px 0 18px;}
.mv-tab{padding:10px 20px; border-radius:100px; border:1px solid var(--line); font-size:13px; font-weight:700;}
.mv-tab.active{background:var(--ink); color:#fff;}
[data-theme="dark"] .mv-tab.active{background:var(--gold); color:var(--navy);}

.timeline{position:relative; margin-top:70px; padding-top:20px;}
.timeline::before{content:""; position:absolute; top:32px; left:0; right:0; height:1px; background:var(--line);}
.timeline-track{display:grid; grid-template-columns:repeat(5,1fr); gap:20px;}
.tl-item{position:relative; padding-top:50px; text-align:left;}
.tl-item .dot{position:absolute; top:24px; left:0; width:15px; height:15px; border-radius:50%; background:var(--bg); border:2px solid var(--gold);}
.tl-item .yr{font-family:var(--font-mono); color:var(--gold-dim); font-size:13px; margin-bottom:6px; display:block;}
[data-theme="dark"] .tl-item .yr{color:var(--gold-light);}
.tl-item p{font-size:14px; color:var(--text-soft);}

/* ---------- why choose us ---------- */
.wcu-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:26px;}
.wcu-card{padding:36px 28px; border-radius:var(--radius-md); background:var(--surface); border:1px solid var(--line); transition:.5s var(--ease); position:relative; overflow:hidden;}
.wcu-card::before{content:""; position:absolute; inset:0; background:linear-gradient(140deg, rgba(201,163,78,.12), transparent 60%); opacity:0; transition:.5s;}
.wcu-card:hover{transform:translateY(-10px); box-shadow:var(--shadow-md); border-color:var(--gold);}
.wcu-card:hover::before{opacity:1;}
.wcu-icon{width:56px; height:56px; border-radius:14px; background:linear-gradient(135deg, var(--gold-light), var(--gold)); display:flex; align-items:center; justify-content:center; color:var(--navy); font-size:22px; margin-bottom:22px; transition:transform .5s var(--ease);}
.wcu-card:hover .wcu-icon{transform:rotate(-8deg) scale(1.08);}
.wcu-card h4{font-size:18px; margin-bottom:10px; font-family:var(--font-body); font-weight:800;}
.wcu-card p{font-size:13.5px; color:var(--text-soft); line-height:1.6;}

/* ---------- categories ---------- */
.cat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.cat-card{position:relative; border-radius:var(--radius-lg); overflow:hidden; height:340px;}
.cat-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease), filter .5s;}
.cat-card:hover img{transform:scale(1.1);}
.cat-card::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,14,26,.1), rgba(10,14,26,.9));}
.cat-body{position:absolute; left:0; right:0; bottom:0; padding:26px; z-index:2; color:#fff;}
.cat-body .num{font-family:var(--font-mono); font-size:11px; color:var(--gold-light); letter-spacing:.1em;}
.cat-body h3{font-size:24px; margin:8px 0 10px;}
.cat-body a{font-size:12px; text-transform:uppercase; letter-spacing:.1em; font-weight:700; display:inline-flex; align-items:center; gap:8px; color:var(--gold-light); opacity:0; transform:translateY(8px); transition:.4s;}
.cat-card:hover .cat-body a{opacity:1; transform:translateY(0);}

/* ---------- map / location ---------- */
.map-wrap{display:grid; grid-template-columns:1.1fr .9fr; gap:0; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg);}
.map-frame{min-height:520px; position:relative; background:var(--gray-2);}
.map-frame iframe{width:100%; height:100%; min-height:520px; border:0; filter:grayscale(.2);}
.map-list{background:var(--surface); padding:44px; display:flex; flex-direction:column; justify-content:center; gap:2px;}
.loc-item{display:flex; align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid var(--line);}
.loc-item .li-icon{width:44px; height:44px; border-radius:12px; background:var(--bg-alt); display:flex; align-items:center; justify-content:center; color:var(--gold-dim); flex-shrink:0;}
[data-theme="dark"] .loc-item .li-icon{color:var(--gold-light);}
.loc-item h5{font-size:15px; margin-bottom:2px;}
.loc-item span{font-size:12.5px; color:var(--text-soft);}
.loc-item b{margin-left:auto; font-family:var(--font-mono); font-size:13px; color:var(--gold-dim); white-space:nowrap;}
[data-theme="dark"] .loc-item b{color:var(--gold-light);}

/* ---------- amenities ---------- */
.amenities-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:22px;}
.amen-card{text-align:center; padding:32px 14px; border-radius:var(--radius-md); border:1px solid var(--line); background:var(--surface); transition:.4s var(--ease);}
.amen-card:hover{background:var(--ink); transform:translateY(-8px);}
.amen-card:hover *{color:#fff !important;}
.amen-card i{font-size:26px; color:var(--gold-dim); margin-bottom:14px; display:inline-block; transition:.4s;}
[data-theme="dark"] .amen-card i{color:var(--gold-light);}
.amen-card:hover i{transform:scale(1.2) rotate(-6deg); color:var(--gold-light) !important;}
.amen-card span{font-size:13px; font-weight:700;}

/* ---------- calculator ---------- */
.calc-wrap{background:var(--ink); border-radius:var(--radius-xl); overflow:hidden; color:#fff; position:relative;}
.calc-wrap::before{content:""; position:absolute; inset:0; background:radial-gradient(circle at 85% 15%, rgba(201,163,78,.18), transparent 50%);}
.calc-tabs{display:flex; gap:10px; padding:50px 50px 0; position:relative; z-index:2; flex-wrap:wrap;}
.calc-tab{padding:12px 26px; border-radius:100px; font-size:13px; font-weight:700; border:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.7);}
.calc-tab.active{background:var(--gold); color:var(--navy); border-color:var(--gold);}
.calc-body{padding:50px; position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:60px;}
.calc-panel{display:none;}
.calc-panel.active{display:grid; grid-template-columns:1fr 1fr; gap:60px; grid-column:1/-1;}
.calc-field{margin-bottom:26px;}
.calc-field label{display:flex; justify-content:space-between; font-size:13px; color:rgba(255,255,255,.65); margin-bottom:10px;}
.calc-field label b{color:var(--gold-light); font-family:var(--font-mono);}
.calc-field input[type=range]{width:100%; accent-color:var(--gold);}
.calc-field input[type=number]{width:100%; padding:12px 14px; border-radius:10px; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06); color:#fff; font-family:var(--font-mono);}
.calc-result{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:var(--radius-md); padding:36px; display:flex; flex-direction:column; justify-content:center; gap:22px;}
.calc-result .row{display:flex; justify-content:space-between; align-items:center; padding-bottom:16px; border-bottom:1px solid rgba(255,255,255,.1);}
.calc-result .row span{font-size:13px; color:rgba(255,255,255,.6);}
.calc-result .row b{font-family:var(--font-mono); font-size:20px; color:var(--gold-light);}
.calc-result .big b{font-size:34px;}

/* ---------- gallery ---------- */
.gallery-tabs{display:flex; gap:12px; margin-bottom:36px;}
.gallery-masonry{columns:4 240px; column-gap:20px;}
.g-item{break-inside:avoid; margin-bottom:20px; position:relative; border-radius:var(--radius-md); overflow:hidden; cursor:pointer;}
.g-item img{width:100%; display:block; transition:transform .7s var(--ease);}
.g-item:hover img{transform:scale(1.08);}
.g-item .g-overlay{position:absolute; inset:0; background:rgba(10,14,26,0); display:flex; align-items:center; justify-content:center; transition:.4s;}
.g-item:hover .g-overlay{background:rgba(10,14,26,.4);}
.g-item .g-overlay i{color:#fff; font-size:22px; opacity:0; transform:scale(.6); transition:.4s;}
.g-item:hover .g-overlay i{opacity:1; transform:scale(1);}
.g-item.video .g-overlay i{opacity:1; transform:scale(1); background:var(--gold); color:var(--navy); width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center;}

.lightbox{position:fixed; inset:0; z-index:2000; background:rgba(6,8,14,.94); display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:.4s;}
.lightbox.open{opacity:1; visibility:visible;}
.lightbox img{max-width:88vw; max-height:82vh; border-radius:12px; box-shadow:var(--shadow-lg);}
.lightbox .lb-close, .lightbox .lb-next, .lightbox .lb-prev{position:absolute; color:#fff; font-size:22px; width:50px; height:50px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.2); transition:.3s;}
.lightbox .lb-close:hover, .lightbox .lb-next:hover, .lightbox .lb-prev:hover{background:var(--gold); color:var(--navy);}
.lightbox .lb-close{top:30px; right:30px;}
.lightbox .lb-next{right:30px; top:50%; transform:translateY(-50%);}
.lightbox .lb-prev{left:30px; top:50%; transform:translateY(-50%);}

/* ---------- testimonials ---------- */
.testi-track{display:flex; gap:28px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:20px; scrollbar-width:none;}
.testi-track::-webkit-scrollbar{display:none;}
.testi-card{min-width:400px; scroll-snap-align:start; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); padding:36px; position:relative;}
.testi-card .stars{color:var(--gold); margin-bottom:18px; font-size:14px;}
.testi-card p{font-size:16px; line-height:1.7; margin-bottom:26px; font-family:var(--font-display); font-weight:500;}
.testi-who{display:flex; align-items:center; gap:14px;}
.testi-who img{width:48px;height:48px; border-radius:50%; object-fit:cover;}
.testi-who h5{font-size:14px;}
.testi-who span{font-size:12px; color:var(--text-soft);}
.testi-card .quote-mark{position:absolute; top:24px; right:28px; font-family:var(--font-display); font-size:50px; color:var(--gold); opacity:.25;}
.testi-nav{display:flex; gap:12px; margin-top:30px; justify-content:center;}
.testi-nav button{width:44px;height:44px;border-radius:50%; border:1px solid var(--line);}
.testi-nav button:hover{background:var(--ink); color:#fff; border-color:var(--ink);}

/* ---------- construction progress ---------- */
.progress-slider{display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:10px; scrollbar-width:none;}
.progress-slider::-webkit-scrollbar{display:none;}
.prog-card{min-width:340px; scroll-snap-align:start; border-radius:var(--radius-md); overflow:hidden; background:var(--surface); border:1px solid var(--line);}
.prog-card img{height:220px; width:100%; object-fit:cover;}
.prog-card .pc-content{padding:22px;}
.prog-bar{height:6px; border-radius:100px; background:var(--gray-2); overflow:hidden; margin:14px 0 10px;}
.prog-bar i{display:block; height:100%; background:linear-gradient(90deg, var(--gold-dim), var(--gold-light)); border-radius:100px;}

/* ---------- blogs ---------- */
.blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:30px;}
.blog-card{border-radius:var(--radius-md); overflow:hidden; background:var(--surface); border:1px solid var(--line); transition:.5s var(--ease);}
.blog-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-md);}
.blog-img{height:220px; overflow:hidden;}
.blog-img img{width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease);}
.blog-card:hover .blog-img img{transform:scale(1.1);}
.blog-content{padding:26px;}
.blog-tag{font-family:var(--font-mono); font-size:11px; color:var(--gold-dim); text-transform:uppercase; letter-spacing:.1em;}
[data-theme="dark"] .blog-tag{color:var(--gold-light);}
.blog-content h4{font-size:19px; margin:10px 0 12px; line-height:1.35;}
.blog-content p{font-size:13.5px; color:var(--text-soft); margin-bottom:18px;}
.blog-meta{display:flex; justify-content:space-between; font-size:12px; color:var(--text-soft); border-top:1px solid var(--line); padding-top:14px;}

/* ---------- faq ---------- */
.faq-wrap{max-width:820px; margin:0 auto;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{display:flex; justify-content:space-between; align-items:center; padding:26px 4px; font-size:18px; font-weight:700; font-family:var(--font-display);}
.faq-q i{transition:transform .4s var(--ease); color:var(--gold-dim);}
.faq-item.open .faq-q i{transform:rotate(135deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .5s var(--ease);}
.faq-a p{padding:0 4px 26px; color:var(--text-soft); font-size:15px; line-height:1.7; max-width:680px;}

/* ---------- contact ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:0; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg);}
.contact-map{min-height:100%;}
.contact-map iframe{width:100%; height:100%; min-height:560px; border:0;}
.contact-form-wrap{background:var(--ink); color:#fff; padding:56px;}
.contact-form-wrap .field{margin-bottom:18px;}
.contact-form-wrap label{display:block; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.55); margin-bottom:8px;}
.contact-form-wrap input, .contact-form-wrap select, .contact-form-wrap textarea{
  width:100%; padding:14px 16px; border-radius:10px; border:1px solid rgba(255,255,255,.15); background:rgba(255,255,255,.06); color:#fff;
}
.contact-form-wrap .row2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.contact-info-strip{display:flex; gap:30px; margin-top:40px; flex-wrap:wrap;}
.ci-item{display:flex; align-items:center; gap:12px; font-size:14px;}
.ci-item i{color:var(--gold-light);}

/* ---------- compare bar ---------- */
.compare-bar{position:fixed; bottom:0; left:0; right:0; z-index:850; background:var(--ink); color:#fff; padding:16px 0; transform:translateY(100%); transition:transform .5s var(--ease); box-shadow:0 -10px 30px rgba(0,0,0,.2);}
.compare-bar.show{transform:translateY(0);}
.compare-bar .container{display:flex; align-items:center; justify-content:space-between; gap:20px;}
.compare-chips{display:flex; gap:10px; flex-wrap:wrap;}
.compare-chip{background:rgba(255,255,255,.1); padding:8px 14px; border-radius:100px; font-size:12px; display:flex; align-items:center; gap:8px;}

/* ---------- footer ---------- */
footer{background:var(--navy); color:#fff; padding:100px 0 0;}
.footer-top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1.3fr; gap:50px; padding-bottom:70px; border-bottom:1px solid rgba(255,255,255,.1);}
.footer-brand p{color:rgba(255,255,255,.55); font-size:14px; line-height:1.7; margin:20px 0 24px;}
.social-row{display:flex; gap:12px;}
.social-row a{width:40px;height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; transition:.3s;}
.social-row a:hover{background:var(--gold); color:var(--navy); border-color:var(--gold);}
.footer-col h5{font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-light); margin-bottom:22px;}
.footer-col a{display:block; font-size:14px; color:rgba(255,255,255,.65); padding:7px 0; transition:.3s;}
.footer-col a:hover{color:var(--gold-light); padding-left:5px;}
.newsletter-box p{font-size:14px; color:rgba(255,255,255,.6); margin-bottom:18px;}
.newsletter-form{display:flex; border-radius:100px; overflow:hidden; border:1px solid rgba(255,255,255,.2); padding:5px;}
.newsletter-form input{flex:1; background:transparent; border:0; padding:10px 16px; color:#fff; font-size:13px;}
.newsletter-form button{background:var(--gold); color:var(--navy); padding:10px 18px; border-radius:100px; font-weight:800; font-size:12px;}
.rera-note{font-size:11.5px; color:rgba(255,255,255,.4); margin-top:22px; line-height:1.6;}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding:26px 0; flex-wrap:wrap; gap:14px; font-size:12.5px; color:rgba(255,255,255,.5);}
.footer-bottom .legal-links{display:flex; gap:22px;}
.footer-bottom .legal-links a:hover{color:var(--gold-light);}

/* ---------- floating utility buttons ---------- */
.fab-stack{position:fixed; right:26px; bottom:26px; z-index:880; display:flex; flex-direction:column; gap:14px; align-items:center;}
.fab{width:56px;height:56px;border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:22px; box-shadow:var(--shadow-md); transition:transform .35s var(--ease);}
.fab:hover{transform:scale(1.1) translateY(-2px);}
.fab-wa{background:#25D366; color:#fff;}
.fab-call{background:var(--ink); color:#fff;}
.fab-top{background:var(--gold); color:var(--navy); opacity:0; visibility:hidden; transform:scale(.6);}
.fab-top.show{opacity:1; visibility:visible; transform:scale(1);}
.fab-chat{background:linear-gradient(135deg, var(--gold-light), var(--gold)); color:var(--navy);}

.chat-panel{position:fixed; right:26px; bottom:100px; width:320px; background:var(--surface); border-radius:var(--radius-md); box-shadow:var(--shadow-lg); z-index:890; overflow:hidden; transform:translateY(20px) scale(.95); opacity:0; visibility:hidden; transition:.35s var(--ease); border:1px solid var(--line);}
.chat-panel.open{transform:translateY(0) scale(1); opacity:1; visibility:visible;}
.chat-head{background:var(--ink); color:#fff; padding:18px 20px; display:flex; align-items:center; gap:12px;}
.chat-head .dot{width:9px;height:9px;border-radius:50%; background:#3bd671;}
.chat-body{padding:18px 20px; min-height:160px; font-size:13.5px; color:var(--text-soft);}
.chat-bubble{background:var(--bg-alt); padding:12px 14px; border-radius:14px; margin-bottom:10px; max-width:85%;}
.chat-input{display:flex; border-top:1px solid var(--line);}
.chat-input input{flex:1; border:0; padding:14px; font-size:13px; background:transparent; color:var(--text);}
.chat-input button{padding:0 18px; color:var(--gold-dim);}

/* ---------- theme toggle ---------- */
.theme-toggle{width:42px;height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.35); color:#fff;}
#navbar.scrolled .theme-toggle{border-color:var(--line); color:var(--text);}

/* ---------- tour modal ---------- */
.tour-modal{position:fixed; inset:0; z-index:2100; background:rgba(6,8,14,.94); display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:.4s;}
.tour-modal.open{opacity:1; visibility:visible;}
.tour-inner{width:min(920px,90vw); aspect-ratio:16/9; border-radius:var(--radius-md); overflow:hidden; position:relative; box-shadow:var(--shadow-lg);}
.tour-inner img{width:100%;height:100%;object-fit:cover;}
.tour-inner .tour-badge{position:absolute; top:20px; left:20px; background:rgba(255,255,255,.15); backdrop-filter:blur(8px); color:#fff; padding:8px 16px; border-radius:100px; font-size:12px; font-weight:700; border:1px solid rgba(255,255,255,.3);}
.tour-close{position:absolute; top:-54px; right:0; color:#fff; font-size:22px; width:44px;height:44px;border-radius:50%; background:rgba(255,255,255,.1); display:flex;align-items:center;justify-content:center; border:1px solid rgba(255,255,255,.2);}

/* gallery tabs */
.gallery-tab{padding:10px 20px; border-radius:100px; border:1px solid var(--line); font-size:13px; font-weight:700;}
.gallery-tab.active{background:var(--ink); color:#fff; border-color:var(--ink);}
[data-theme="dark"] .gallery-tab.active{background:var(--gold); color:var(--navy); border-color:var(--gold);}

/* mv panels */
.mv-panel{display:none;}
.mv-panel.active{display:block;}

/* ---------- inner page header (banner) ---------- */
.page-header{position:relative; min-height:52vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--navy); color:#fff; padding-bottom:64px;}
.page-header-bg{position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.08); animation:phZoom 16s ease-in-out infinite alternate;}
@keyframes phZoom{from{transform:scale(1.08);} to{transform:scale(1);}}
.page-header::before{content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(10,14,26,.5) 0%, rgba(10,14,26,.4) 45%, rgba(10,14,26,.96) 100%);}
.page-header::after{content:""; position:absolute; inset:0; z-index:1; background:radial-gradient(circle at 85% 15%, rgba(201,163,78,.2), transparent 50%);}
.page-header .container{position:relative; z-index:3; padding-top:150px;}
.breadcrumb{display:flex; align-items:center; gap:9px; font-family:var(--font-mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.55); margin-bottom:24px;}
.breadcrumb a{color:rgba(255,255,255,.85); transition:.3s;}
.breadcrumb a:hover{color:var(--gold-light);}
.breadcrumb i{font-size:8px; opacity:.5;}
.page-header h1{font-size:clamp(36px,5.4vw,64px); font-weight:500; margin-bottom:16px; letter-spacing:-.01em;}
.page-header h1 em{font-style:italic; color:var(--gold-light);}
.page-header > .container > p{font-size:16.5px; color:rgba(255,255,255,.72); max-width:560px; line-height:1.7;}
.ph-stats{display:flex; gap:44px; margin-top:34px; flex-wrap:wrap;}
.ph-stats .stat b{font-family:var(--font-display); font-size:26px; color:var(--gold-light); display:block;}
.ph-stats .stat span{font-size:11px; color:rgba(255,255,255,.55); letter-spacing:.03em; text-transform:uppercase;}

/* ---------- director cards (about) ---------- */
.director-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
.director-card{
  display:flex; align-items:center; gap:18px; padding:24px; border-radius:var(--radius-md);
  background:var(--surface); border:1px solid var(--line); transition:.4s var(--ease);
}
.director-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:var(--gold);}
.director-avatar{
  width:58px; height:58px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; font-size:19px; color:var(--navy);
  background:conic-gradient(from 180deg, var(--gold-light), var(--gold), var(--gold-dim), var(--gold-light));
  position:relative;
}
.director-avatar::after{content:""; position:absolute; inset:3px; border-radius:50%; background:var(--surface);}
.director-avatar span{position:relative; z-index:2;}
.director-card h5{font-size:16px; margin-bottom:3px;}
.director-card span.role{font-size:12.5px; color:var(--gold-dim); font-family:var(--font-mono); letter-spacing:.04em;}
[data-theme="dark"] .director-card span.role{color:var(--gold-light);}

/* ---------- focus cards (about business focus) ---------- */
.focus-grid{display:flex; flex-direction:column; gap:16px;}
.focus-card{
  display:flex; gap:18px; padding:22px; border-radius:var(--radius-md); background:var(--surface);
  border:1px solid var(--line); transition:.4s var(--ease);
}
.focus-card:hover{transform:translateX(6px); border-color:var(--gold); box-shadow:var(--shadow-sm);}
.focus-icon{
  width:48px; height:48px; border-radius:12px; flex-shrink:0; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--gold-light), var(--gold)); color:var(--navy); font-size:19px;
}
.focus-card h5{font-size:15.5px; margin-bottom:5px;}
.focus-card span{font-size:13px; color:var(--text-soft); line-height:1.6;}

/* ---------- quick contact cards ---------- */
.quick-contact-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-bottom:70px;}
.quick-card{
  padding:32px 26px; border-radius:var(--radius-md); background:var(--surface); border:1px solid var(--line);
  text-align:center; transition:.4s var(--ease); display:block;
}
.quick-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-md); border-color:var(--gold);}
.quick-card .qc-icon{
  width:58px; height:58px; border-radius:50%; margin:0 auto 18px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--gold-light), var(--gold)); color:var(--navy); font-size:22px;
}
.quick-card h5{font-size:16px; margin-bottom:6px;}
.quick-card span{font-size:13px; color:var(--text-soft);}

/* ---------- blog featured layout ---------- */
.blog-featured{display:grid; grid-template-columns:1.3fr 1fr; gap:30px; margin-bottom:30px;}
.blog-featured .blog-card{display:grid; grid-template-rows:auto 1fr;}
.blog-featured .blog-img{height:320px;}
.blog-featured .blog-content h4{font-size:26px;}
.blog-side{display:flex; flex-direction:column; gap:30px;}
.blog-side .blog-card{display:grid; grid-template-columns:130px 1fr;}
.blog-side .blog-img{height:100%; min-height:120px;}
.blog-side .blog-content{padding:18px;}
.blog-side .blog-content h4{font-size:15.5px; margin:6px 0 8px;}
.blog-side .blog-content p{display:none;}

@media (max-width:900px){
  .director-grid{grid-template-columns:1fr;}
  .quick-contact-grid{grid-template-columns:1fr;}
  .blog-featured{grid-template-columns:1fr;}
  .blog-side .blog-card{grid-template-columns:100px 1fr;}
}

/* ==========================================================================
   NEW PAGES: Testimonials / Team / Locations / Why Invest / Book Visit / Gallery
   ========================================================================== */

/* ---------- testimonials page grid + carousel enhancements ---------- */
.testi-carousel-wrap{position:relative;}
.testi-track-full{display:flex; gap:28px; overflow-x:auto; scroll-snap-type:x mandatory; padding:10px 4px 26px; scrollbar-width:none;}
.testi-track-full::-webkit-scrollbar{display:none;}
.testi-card-lg{
  min-width:380px; max-width:380px; scroll-snap-align:start; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius-md); padding:32px; position:relative; transition:transform .5s var(--ease), box-shadow .5s var(--ease), opacity .5s var(--ease);
  opacity:.55; transform:scale(.94);
}
.testi-card-lg.in-view{opacity:1; transform:scale(1);}
.testi-card-lg.featured{border-color:var(--gold); box-shadow:var(--shadow-gold);}
.testi-card-lg .featured-tag{position:absolute; top:-12px; left:28px; background:var(--gold); color:var(--navy); font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:6px 14px; border-radius:100px;}
.testi-card-lg .stars{color:var(--gold); margin-bottom:16px; font-size:14px;}
.testi-card-lg p{font-size:15.5px; line-height:1.75; margin-bottom:24px; font-family:var(--font-display); font-weight:500; min-height:110px;}
.testi-who-lg{display:flex; align-items:center; gap:14px; padding-top:18px; border-top:1px solid var(--line);}
.testi-who-lg img{width:52px;height:52px;border-radius:50%; object-fit:cover;}
.testi-who-lg h5{font-size:14.5px;}
.testi-who-lg span{font-size:12px; color:var(--text-soft);}
.testi-grid-static{display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:60px;}

/* ---------- team page ---------- */
.team-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
.team-card{position:relative; border-radius:var(--radius-lg); overflow:hidden; background:var(--surface); border:1px solid var(--line); transition:.5s var(--ease);}
.team-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-md);}
.team-photo{height:320px; overflow:hidden; position:relative;}
.team-photo img{width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease), filter .5s;}
.team-card:hover .team-photo img{transform:scale(1.1);}
.team-social{position:absolute; inset:auto 0 0 0; display:flex; justify-content:center; gap:10px; padding:18px; background:linear-gradient(0deg, rgba(10,14,26,.85), transparent); opacity:0; transform:translateY(10px); transition:.4s var(--ease);}
.team-card:hover .team-social{opacity:1; transform:translateY(0);}
.team-social a{width:36px;height:36px;border-radius:50%; background:rgba(255,255,255,.15); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; color:#fff; border:1px solid rgba(255,255,255,.3); font-size:13px; transition:.3s;}
.team-social a:hover{background:var(--gold); color:var(--navy);}
.team-body{padding:22px;}
.team-body h4{font-size:18px; margin-bottom:4px;}
.team-body .role{font-family:var(--font-mono); font-size:11.5px; color:var(--gold-dim); text-transform:uppercase; letter-spacing:.06em; margin-bottom:12px; display:block;}
[data-theme="dark"] .team-body .role{color:var(--gold-light);}
.team-body p{font-size:13px; color:var(--text-soft); line-height:1.6;}

/* ---------- location pages ---------- */
.loc-highlight-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.loc-highlight-card{padding:28px; border-radius:var(--radius-md); background:var(--surface); border:1px solid var(--line); transition:.4s var(--ease);}
.loc-highlight-card:hover{transform:translateY(-6px); border-color:var(--gold); box-shadow:var(--shadow-sm);}
.loc-highlight-card i{font-size:22px; color:var(--gold-dim); margin-bottom:16px; display:block;}
[data-theme="dark"] .loc-highlight-card i{color:var(--gold-light);}
.loc-highlight-card h5{font-size:15.5px; margin-bottom:8px;}
.loc-highlight-card p{font-size:13px; color:var(--text-soft); line-height:1.6;}
.locations-hub-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.locations-hub-card{position:relative; border-radius:var(--radius-lg); overflow:hidden; height:300px;}
.locations-hub-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease);}
.locations-hub-card:hover img{transform:scale(1.1);}
.locations-hub-card::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,14,26,.1), rgba(10,14,26,.92));}
.locations-hub-body{position:absolute; left:0; right:0; bottom:0; padding:24px; z-index:2; color:#fff;}
.locations-hub-body .tag-pill{display:inline-block; background:rgba(255,255,255,.15); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.3); padding:5px 12px; border-radius:100px; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; margin-bottom:10px;}
.locations-hub-body h3{font-size:21px; margin-bottom:6px;}
.locations-hub-body span{font-size:12.5px; color:rgba(255,255,255,.7);}

/* ---------- why invest page ---------- */
.invest-stats-band{background:var(--ink); border-radius:var(--radius-xl); padding:60px 50px; display:grid; grid-template-columns:repeat(4,1fr); gap:30px; color:#fff; position:relative; overflow:hidden;}
.invest-stats-band::before{content:""; position:absolute; inset:0; background:radial-gradient(circle at 15% 20%, rgba(201,163,78,.16), transparent 50%);}
.invest-stats-band .stat{position:relative; z-index:2; text-align:center;}
.invest-stats-band .stat b{font-family:var(--font-display); font-size:44px; color:var(--gold-light); display:block; margin-bottom:8px;}
.invest-stats-band .stat span{font-size:12.5px; color:rgba(255,255,255,.6); letter-spacing:.03em;}
.invest-timeline-wrap{position:relative; padding-left:32px;}
.invest-timeline-wrap::before{content:""; position:absolute; top:6px; bottom:6px; left:6px; width:1px; background:var(--line);}
.invest-tl-item{position:relative; padding-bottom:44px;}
.invest-tl-item:last-child{padding-bottom:0;}
.invest-tl-item::before{content:""; position:absolute; left:-32px; top:4px; width:13px; height:13px; border-radius:50%; background:var(--gold); border:3px solid var(--bg);}
.invest-tl-item h5{font-size:16.5px; margin-bottom:8px;}
.invest-tl-item p{font-size:13.5px; color:var(--text-soft); line-height:1.7; max-width:560px;}

/* ---------- book site visit page ---------- */
.book-hero{position:relative; min-height:60vh; display:flex; align-items:center; overflow:hidden; background:var(--navy); color:#fff; padding:150px 0 70px;}
.book-hero-bg{position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.08); animation:phZoom 16s ease-in-out infinite alternate; opacity:.55;}
.book-hero::before{content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(10,14,26,.6), rgba(10,14,26,.96));}
.book-hero .container{position:relative; z-index:3;}
.book-hero h1{font-size:clamp(34px,5vw,58px); margin-bottom:18px; text-align:center;}
.book-hero p{text-align:center; max-width:600px; margin:0 auto 34px; color:rgba(255,255,255,.72); font-size:16.5px;}
.book-cta-row{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
.booking-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:0; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg);}
.booking-form-panel{background:var(--surface); padding:52px;}
.booking-form-panel .row2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.booking-form-panel .row3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px;}
.booking-form-panel .field{margin-bottom:18px;}
.booking-form-panel label{display:block; font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--text-soft); margin-bottom:8px;}
.booking-form-panel input, .booking-form-panel select, .booking-form-panel textarea{
  width:100%; padding:14px 16px; border-radius:10px; border:1px solid var(--line); background:var(--bg-alt); color:var(--text); font-size:14px;
}
.booking-side-panel{background:var(--ink); color:#fff; padding:52px; display:flex; flex-direction:column; justify-content:center; gap:26px;}
.booking-side-panel .side-item{display:flex; gap:16px; align-items:flex-start;}
.booking-side-panel .side-icon{width:46px;height:46px; border-radius:12px; background:linear-gradient(135deg, var(--gold-light), var(--gold)); color:var(--navy); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:18px;}
.booking-side-panel h5{font-size:15px; margin-bottom:4px;}
.booking-side-panel span{font-size:13px; color:rgba(255,255,255,.6);}
.success-check{
  width:74px; height:74px; border-radius:50%; background:var(--gold); color:var(--navy); display:flex; align-items:center; justify-content:center;
  font-size:30px; margin:0 auto 20px; animation:successPop .5s var(--ease);
}
@keyframes successPop{0%{transform:scale(0); opacity:0;}60%{transform:scale(1.15);}100%{transform:scale(1); opacity:1;}}
.form-success{display:none; text-align:center; padding:40px 20px;}
.form-success.show{display:block;}
.form-success h4{font-size:22px; margin-bottom:10px;}
.form-success p{color:var(--text-soft); font-size:14px;}
.sticky-mobile-cta{display:none; position:fixed; bottom:0; left:0; right:0; z-index:870; background:var(--surface); border-top:1px solid var(--line); padding:12px 16px; gap:10px; box-shadow:0 -6px 20px rgba(0,0,0,.08);}
@media (max-width:720px){
  .sticky-mobile-cta{display:flex;}
  .fab-stack{bottom:78px;}
  body{padding-bottom:0;}
}
.sticky-mobile-cta a{flex:1; text-align:center; padding:13px 8px; border-radius:10px; font-size:12.5px; font-weight:800; display:flex; align-items:center; justify-content:center; gap:6px;}
.sticky-mobile-cta a.smc-call{background:var(--ink); color:#fff;}
.sticky-mobile-cta a.smc-wa{background:#25D366; color:#fff;}
.sticky-mobile-cta a.smc-book{background:var(--gold); color:var(--navy);}

/* ---------- gallery page (dedicated) ---------- */
.gallery-video-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.gallery-video-card{position:relative; border-radius:var(--radius-md); overflow:hidden; height:220px; cursor:pointer;}
.gallery-video-card img{width:100%;height:100%;object-fit:cover; transition:transform .7s var(--ease);}
.gallery-video-card:hover img{transform:scale(1.08);}
.gallery-video-card::after{content:""; position:absolute; inset:0; background:rgba(10,14,26,.35);}
.gallery-video-card .play-btn{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:56px;height:56px; border-radius:50%; background:var(--gold); color:var(--navy); display:flex; align-items:center; justify-content:center; font-size:20px; z-index:2;}
.ba-slider{position:relative; border-radius:var(--radius-md); overflow:hidden; height:420px; user-select:none; box-shadow:var(--shadow-md);}
.ba-slider img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.ba-slider .ba-after{clip-path:inset(0 0 0 50%);}
.ba-slider .ba-handle{position:absolute; top:0; bottom:0; left:50%; width:3px; background:var(--gold); cursor:ew-resize; z-index:3;}
.ba-slider .ba-handle::after{content:"\21c6"; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:42px; height:42px; border-radius:50%; background:var(--gold); color:var(--navy); display:flex; align-items:center; justify-content:center; font-size:16px;}
.ba-label{position:absolute; top:16px; padding:6px 14px; border-radius:100px; background:rgba(10,14,26,.7); color:#fff; font-size:11px; letter-spacing:.06em; text-transform:uppercase; z-index:2;}
.ba-label.before{left:16px;}
.ba-label.after{right:16px;}

@media (max-width:1100px){
  .team-grid{grid-template-columns:repeat(2,1fr);}
  .testi-grid-static, .loc-highlight-grid, .locations-hub-grid, .gallery-video-grid{grid-template-columns:repeat(2,1fr);}
  .invest-stats-band{grid-template-columns:repeat(2,1fr);}
  .booking-grid{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .team-grid, .testi-grid-static, .loc-highlight-grid, .locations-hub-grid, .gallery-video-grid{grid-template-columns:1fr;}
  .invest-stats-band{grid-template-columns:1fr 1fr; padding:40px 26px;}
  .booking-form-panel, .booking-side-panel{padding:30px 24px;}
  .booking-form-panel .row2, .booking-form-panel .row3{grid-template-columns:1fr;}
}

/* ---------- reveal ---------- */
.reveal{opacity:0; transform:translateY(36px); transition:opacity .9s var(--ease), transform .9s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-delay-1{transition-delay:.1s;} .reveal-delay-2{transition-delay:.2s;} .reveal-delay-3{transition-delay:.3s;} .reveal-delay-4{transition-delay:.4s;}

/* ---------- parallax ---------- */
.parallax-section{position:relative; overflow:hidden; padding:160px 0; color:#fff; background:var(--navy);}
.parallax-bg{position:absolute; inset:-10% 0; background-size:cover; background-position:center; will-change:transform;}
.parallax-section::before{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,14,26,.75), rgba(10,14,26,.92));}
.parallax-content{position:relative; z-index:2; text-align:center; max-width:760px; margin:0 auto;}
.parallax-content h2{font-size:clamp(30px,4vw,50px); margin-bottom:20px;}
.parallax-content p{color:rgba(255,255,255,.7); font-size:17px; margin-bottom:36px;}

/* ---------- utility ---------- */
.text-center{text-align:center;}
.mt-40{margin-top:40px;}
.grad-divider{height:1px; background:linear-gradient(90deg, transparent, var(--line), transparent);}

/* =================== RESPONSIVE =================== */
@media (max-width:1100px){
  .nav-links, .nav-actions .icon-btn:nth-child(1){display:none;}
  .burger{display:flex;}
  .mega-menu{display:none;}
  .hero-grid{grid-template-columns:1fr;}
  .about-grid, .contact-grid, .map-wrap{grid-template-columns:1fr;}
  .projects-grid, .cat-grid{grid-template-columns:repeat(2,1fr);}
  .wcu-grid{grid-template-columns:repeat(2,1fr);}
  .amenities-grid{grid-template-columns:repeat(3,1fr);}
  .footer-top{grid-template-columns:1fr 1fr; row-gap:44px;}
  .calc-body, .calc-panel.active{grid-template-columns:1fr;}
  .timeline-track{grid-template-columns:repeat(3,1fr); row-gap:40px;}
}
@media (max-width:720px){
  section{padding:80px 0;}
  .projects-grid, .cat-grid, .wcu-grid, .blog-grid{grid-template-columns:1fr;}
  .amenities-grid{grid-template-columns:repeat(2,1fr);}
  .hero-stats{gap:26px;}
  .contact-form-wrap{padding:32px;}
  .contact-form-wrap .row2{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr;}
  .timeline-track{grid-template-columns:1fr 1fr;}
  .gallery-masonry{columns:2 160px;}
  .section-head{flex-direction:column; align-items:flex-start;}
  .fab{width:48px;height:48px; font-size:18px;}
}
