/* ==========================================================
   LUX RESIDENCE — Main Stylesheet
   ========================================================== */
:root{
  --navy:#0c1b2b;
  --navy-light:#16273b;
  --gold:#c9a14a;
  --gold-light:#e8cf94;
  --cream:#f7f4ee;
  --white:#ffffff;
  --text:#2c2c2c;
  --muted:#565a61;
  --radius:4px;
  --shadow:0 20px 60px rgba(12,27,43,.12);
  --serif:'Cormorant Garamond', serif;
  --sans:'Jost', sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--sans);font-size:16.5px;font-weight:400;color:var(--text);background:var(--cream);line-height:1.7;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.container{max-width:1240px;margin:0 auto;padding:0 24px;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;color:var(--navy);margin:0 0 16px;letter-spacing:.3px;}
h1{font-size:50px;}
h2{font-size:37px;}
h3{font-size:25px;}
p{margin:0 0 14px;color:var(--muted);font-size:16px;}
section{padding:90px 0;}
.section-light{background:var(--white);}
.section-navy{background:var(--navy);color:#cfd6de;}
.section-navy h1,.section-navy h2,.section-navy h3{color:var(--white);}
.eyebrow{display:inline-block;color:var(--gold);text-transform:uppercase;letter-spacing:3px;font-size:13px;font-weight:600;margin-bottom:12px;}
.section-head{text-align:center;max-width:680px;margin:0 auto 56px;}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 32px;border-radius:var(--radius);font-size:14px;letter-spacing:1px;text-transform:uppercase;font-weight:500;border:1px solid transparent;cursor:pointer;transition:.25s;}
.btn-gold{background:var(--gold);color:var(--navy);}
.btn-gold:hover{background:var(--gold-light);transform:translateY(-2px);box-shadow:0 12px 24px rgba(201,161,74,.35);}
.btn-outline{border-color:var(--white);color:var(--white);background:transparent;}
.btn-outline:hover{background:rgba(255,255,255,.12);transform:translateY(-2px);}
.btn-navy{background:var(--navy);color:var(--white);}
.btn-navy:hover{background:var(--navy-light);transform:translateY(-2px);box-shadow:0 12px 24px rgba(12,27,43,.28);}
.btn-sm{padding:10px 20px;font-size:12px;}
.btn-block{width:100%;}

/* Header */
.site-header{position:sticky;top:0;z-index:200;background:rgba(10,20,35,.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(201,161,74,.18);box-shadow:0 2px 28px rgba(0,0,0,.35);}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:110px;gap:18px;}
.brand{flex-shrink:0;display:flex;align-items:center;}
.brand-logo{height:96px;max-width:280px;object-fit:contain;filter:drop-shadow(0 2px 12px rgba(201,161,74,.22));transition:.2s;}
.brand-logo:hover{filter:drop-shadow(0 2px 18px rgba(201,161,74,.45));}
.brand-text{font-family:var(--serif);font-size:26px;color:var(--white);letter-spacing:2px;white-space:nowrap;text-shadow:0 2px 10px rgba(201,161,74,.3);}
.main-nav{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0;}
.main-nav>a{color:#f0f2f4;font-size:16px;font-weight:500;letter-spacing:.2px;padding:11px 14px;border-radius:4px;white-space:nowrap;transition:.2s;position:relative;}
.main-nav>a::after{content:'';position:absolute;left:14px;right:14px;bottom:6px;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s ease;}
.main-nav>a:hover{color:var(--gold-light);background:rgba(255,255,255,.05);}
.main-nav>a:hover::after{transform:scaleX(1);}
.dropdown{position:relative;}
.dropdown-trigger{display:inline-flex;align-items:center;gap:4px;color:#f0f2f4;font-size:16px;font-weight:500;padding:11px 12px;border-radius:4px;white-space:nowrap;}
.dropdown-trigger:hover{color:var(--gold-light);background:rgba(255,255,255,.05);}
.dropdown-trigger i{font-style:normal;font-size:11px;transition:.2s;}
.dropdown-menu{position:absolute;top:100%;left:0;background:var(--navy-light);min-width:230px;padding:8px 0;border-radius:6px;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s;border:1px solid rgba(255,255,255,.06);}
.dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0);}
.dropdown-menu a{display:block;padding:11px 18px;color:#e7e9ec;font-size:15px;font-weight:400;white-space:nowrap;}
.dropdown-menu a:hover{background:rgba(255,255,255,.06);color:var(--gold-light);}

.header-actions{display:flex;align-items:center;gap:14px;flex-shrink:0;}
.lang-switch{display:flex;gap:5px;}
.lang-switch a{font-size:11.5px;color:#aab3bd;padding:4px 7px;border:1px solid rgba(255,255,255,.18);border-radius:3px;line-height:1.4;}
.lang-switch a.active{color:var(--navy);background:var(--gold);border-color:var(--gold);}
.header-actions .btn-sm{padding:9px 18px;font-size:12px;white-space:nowrap;}
.mobile-only-row{display:none;}
.burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:38px;height:38px;background:none;border:0;cursor:pointer;padding:0;flex-shrink:0;}
.burger span{width:24px;height:2px;background:var(--white);transition:.25s;display:block;}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:198;opacity:0;visibility:hidden;transition:.25s;}
.nav-overlay.show{opacity:1;visibility:visible;}
.site-header.scrolled{box-shadow:0 12px 40px rgba(0,0,0,.4);border-bottom-color:rgba(201,161,74,.32);}

/* Scroll-triggered reveal animation, applied by main.js to key content blocks */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .75s cubic-bezier(.16,.8,.24,1),transform .75s cubic-bezier(.16,.8,.24,1);will-change:opacity,transform;}
.reveal.reveal-visible{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
}

/* Show burger + collapse full nav earlier (laptops) to avoid any overlap/wrapping */
@media (max-width:1180px){
  .main-nav{position:fixed;top:0;right:0;bottom:0;width:300px;max-width:85vw;background:var(--navy);
    flex-direction:column;align-items:stretch;padding:90px 26px 30px;gap:4px;
    transform:translateX(100%);transition:transform .3s ease;overflow-y:auto;z-index:199;box-shadow:-10px 0 40px rgba(0,0,0,.3);}
  .main-nav.open{transform:translateX(0);}
  .main-nav>a{padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.06);}
  .dropdown{width:100%;}
  .dropdown-trigger{width:100%;justify-content:space-between;padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.06);}
  .dropdown-menu{position:static;opacity:1;visibility:visible;transform:none;background:rgba(255,255,255,.03);box-shadow:none;
    max-height:0;overflow:hidden;padding:0;border:none;transition:max-height .25s ease;}
  .dropdown.mobile-open .dropdown-menu{max-height:500px;padding:6px 0;}
  .dropdown.mobile-open .dropdown-trigger i{transform:rotate(180deg);}
  .dropdown-menu a{padding:10px 18px;}
  .mobile-only-row{display:flex;flex-direction:column;gap:16px;margin-top:20px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);}
  .mobile-only-row .lang-switch{justify-content:center;}
  .mobile-only-row .btn{width:100%;}
  .desktop-only{display:none !important;}
  .burger{display:flex;}
}
@media (max-width:480px){
  .brand-text{font-size:21px;}
  .brand-logo{height:72px;max-width:200px;}
  .header-inner{height:88px;}
}

/* Hero / Slider */
.hero-slider{position:relative;height:92vh;min-height:600px;overflow:hidden;}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease;background-size:cover;background-position:center;transform:scale(1.04);transition:opacity 1.4s ease, transform 8s ease;}
.hero-slide.active{opacity:1;transform:scale(1);}
.hero-slide::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,12,20,.45) 0%,rgba(6,12,20,.1) 40%,rgba(6,12,20,.2) 100%);z-index:1;}
.hero-slide::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,rgba(6,13,22,.92) 0%,rgba(6,13,22,.72) 35%,rgba(6,13,22,.18) 65%,rgba(6,13,22,.4) 100%);z-index:1;}
.hero-content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;max-width:1240px;padding:0 48px;margin:0 auto;color:var(--white);width:100%;}
.hero-text-box{background:rgba(6,13,22,.48);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-left:4px solid var(--gold);border-radius:2px 12px 12px 2px;padding:44px 52px;box-shadow:0 30px 80px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.06);max-width:600px;}
.hero-eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--gold-light);text-transform:uppercase;letter-spacing:4px;font-size:12px;font-weight:600;margin-bottom:20px;background:rgba(201,161,74,.14);padding:8px 20px;border-radius:30px;border:1px solid rgba(201,161,74,.5);}
.hero-eyebrow::before{content:'';display:inline-block;width:18px;height:1px;background:var(--gold-light);}
.hero-content h1{color:var(--white);font-size:62px;line-height:1.12;text-shadow:0 4px 28px rgba(0,0,0,.7);margin-bottom:18px;}
.hero-content p{color:rgba(241,243,245,.9);font-size:18px;max-width:500px;text-shadow:0 2px 14px rgba(0,0,0,.65);line-height:1.7;margin-bottom:32px;}
.hero-dots{position:absolute;bottom:36px;left:0;right:0;display:flex;justify-content:center;gap:12px;z-index:3;}
.hero-dots span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.35);cursor:pointer;transition:.3s;border:1px solid rgba(255,255,255,.2);}
.hero-dots span.active{background:var(--gold);width:28px;border-radius:4px;border-color:var(--gold);}
/* Slider progress bar */
.hero-progress{position:absolute;bottom:0;left:0;height:3px;background:var(--gold);z-index:4;width:0;transition:width 6s linear;}
.hero-progress.running{width:100%;}

/* Cards */
.grid{display:grid;gap:32px;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
.card{background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:.3s;}
.card:hover{transform:translateY(-6px);}
.card-img{aspect-ratio:4/3;overflow:hidden;}
.card-img img{width:100%;height:100%;object-fit:cover;transition:.4s;}
.card:hover .card-img img{transform:scale(1.06);}
.card-body{padding:24px;}
.card-tag{display:inline-block;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:8px;}
.card-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--muted);margin:14px 0;}
.card-meta span{display:flex;align-items:center;gap:6px;}

/* Project hero / detail */
.project-hero{position:relative;height:60vh;min-height:420px;background-size:cover;background-position:center;display:flex;align-items:flex-end;}
.project-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,16,26,.2),rgba(8,16,26,.85));}
.project-hero-content{position:relative;z-index:2;color:var(--white);padding:60px 0;}
.project-hero-content h1{color:var(--white);text-shadow:0 4px 20px rgba(0,0,0,.6);}
.project-hero-content .eyebrow{background:rgba(201,161,74,.18);padding:6px 16px;border-radius:30px;border:1px solid rgba(201,161,74,.5);}
.stat-row{display:flex;flex-wrap:wrap;gap:36px;margin-top:24px;}
.stat-box{text-align:left;}
.stat-box .num{font-family:var(--serif);font-size:34px;color:var(--gold-light);display:block;}
.stat-box .lbl{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#cfd6de;}

.size-chips{display:flex;flex-wrap:wrap;gap:10px;}
.size-chips span{padding:8px 16px;border:1px solid #e0d8c4;border-radius:30px;font-size:13px;color:var(--navy);background:var(--cream);}

/* Apartment detail row */
.apt-specs{list-style:none;margin:0;padding:0;}
.apt-specs li{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #ece7da;font-size:14.5px;}
.apt-specs li span:first-child{color:var(--muted);}
.apt-specs li span:last-child{font-weight:600;color:var(--navy);}
.status-pill{display:inline-block;padding:4px 12px;border-radius:30px;font-size:11px;letter-spacing:.5px;text-transform:uppercase;font-weight:600;}
.status-available{background:#e4f3e7;color:#2e8b4f;}
.status-reserved{background:#fdf1de;color:#b5780f;}
.status-sold{background:#fbe4e4;color:#c0392b;}

/* Gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;}
.gallery-item{position:relative;border-radius:var(--radius);overflow:hidden;cursor:pointer;aspect-ratio:4/3;}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.4s;}
.gallery-item:hover img{transform:scale(1.08);}
.gallery-caption{position:absolute;left:0;right:0;bottom:0;padding:14px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.65));color:#fff;font-size:13px;opacity:0;transition:.3s;}
.gallery-item:hover .gallery-caption{opacity:1;}

.lightbox{position:fixed;inset:0;background:rgba(8,12,18,.94);z-index:999;display:none;align-items:center;justify-content:center;}
.lightbox.open{display:flex;}
.lightbox-stage{display:flex;align-items:center;justify-content:center;max-width:92vw;max-height:88vh;}
.lightbox img{max-width:90vw;max-height:85vh;border-radius:4px;box-shadow:0 30px 90px rgba(0,0,0,.5);transition:opacity .18s ease;}
.lightbox-close{position:absolute;top:22px;right:28px;color:#fff;font-size:32px;line-height:1;cursor:pointer;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.2s;z-index:2;}
.lightbox-close:hover{background:var(--gold);color:var(--navy);border-color:var(--gold);}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:20px;cursor:pointer;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);width:52px;height:52px;border-radius:50%;align-items:center;justify-content:center;transition:.2s;z-index:2;}
.lightbox-nav:hover{background:var(--gold);color:var(--navy);border-color:var(--gold);}
.lightbox-prev{left:20px;}
.lightbox-next{right:20px;}
.lightbox-counter{position:absolute;bottom:24px;left:0;right:0;text-align:center;color:#e7e9ec;font-size:13px;letter-spacing:1px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);width:fit-content;margin:0 auto;padding:6px 18px;border-radius:30px;}
@media (max-width:640px){
  .lightbox-nav{width:42px;height:42px;font-size:16px;}
  .lightbox-prev{left:8px;} .lightbox-next{right:8px;}
  .lightbox-close{top:14px;right:14px;width:38px;height:38px;font-size:26px;}
}

.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:26px;}
.video-card{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:16/9;background:#000;}
.video-card iframe,.video-card video{width:100%;height:100%;border:0;}

/* Floor plans */
.floorplan-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:30px;}
.floorplan-card img{width:100%;}
.floorplan-meta{padding:20px 24px;}

/* Team & partners */
.team-card{text-align:center;}
.team-photo{width:160px;height:160px;border-radius:50%;overflow:hidden;margin:0 auto 18px;border:3px solid var(--gold-light);}
.team-photo img{width:100%;height:100%;object-fit:cover;}
.partners-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:30px;align-items:center;}
.partners-grid img{max-height:64px;width:auto;margin:0 auto;filter:grayscale(40%);opacity:.85;transition:.25s;}
.partners-grid img:hover{filter:none;opacity:1;}

/* Forms */
.form-box{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:40px;}
.form-row{margin-bottom:20px;}
.form-row label{display:block;font-size:13px;color:var(--navy);font-weight:600;margin-bottom:6px;}
.form-row input,.form-row select,.form-row textarea{width:100%;padding:13px 16px;border:1px solid #ddd6c4;border-radius:var(--radius);font-family:var(--sans);font-size:14.5px;background:#fdfcf9;}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--gold);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.alert{padding:16px 20px;border-radius:var(--radius);margin-bottom:24px;font-size:14.5px;}
.alert-success{background:#e4f3e7;color:#2e6b41;}
.alert-error{background:#fbe4e4;color:#a23434;}

/* Map */
.map-wrap img{border-radius:var(--radius);box-shadow:var(--shadow);}

/* Footer */
.site-footer{background:var(--navy);color:#aab3bd;padding-top:70px;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding-bottom:50px;}
.footer-col h4{color:var(--white);font-family:var(--sans);font-size:14px;letter-spacing:1px;text-transform:uppercase;margin-bottom:18px;}
.footer-col a{display:block;color:#aab3bd;margin-bottom:10px;font-size:14px;}
.footer-col a:hover{color:var(--gold-light);}
.footer-logo{height:64px;max-width:200px;object-fit:contain;margin-bottom:16px;filter:drop-shadow(0 2px 8px rgba(201,161,74,.15));}
.footer-brand-text{font-family:var(--serif);font-size:24px;color:var(--white);margin-bottom:16px;letter-spacing:1px;}
.footer-socials{display:flex;gap:14px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:22px 0;text-align:center;font-size:13px;}

.float-whatsapp{position:fixed;bottom:26px;right:26px;width:56px;height:56px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;box-shadow:0 8px 20px rgba(0,0,0,.25);z-index:150;}

/* Breadcrumb-ish page top */
.page-top{background:var(--navy);color:var(--white);padding:70px 0 50px;text-align:center;}
.page-top h1{color:var(--white);}

/* Responsive */
@media (max-width:980px){
  .grid-4{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:760px){
  h1{font-size:34px;} h2{font-size:28px;}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .hero-content h1{font-size:36px;}
  .hero-content p{font-size:16px;}
  .hero-text-box{padding:28px 26px;border-radius:2px 8px 8px 2px;margin:0 4px;}
  .hero-eyebrow{font-size:10px;padding:6px 14px;letter-spacing:2.5px;}
  .hero-content{padding:0 16px;}
  .hero-slider{height:88vh;}
}
