:root{
  --navy:#0F2942;
  --navy-deep:#0A1D30;
  --coral:#FF6B4A;
  --coral-deep:#E5502D;
  --gold:#E8A33D;
  --teal:#1B8A7A;
  --ink:#1A1D23;
  --muted:#5C6470;
  --bg:#FAFAF8;
  --card:#FFFFFF;
  --line:rgba(15,41,66,0.10);
  --shadow:0 8px 30px rgba(15,41,66,0.10);
  --shadow-lg:0 20px 50px rgba(15,41,66,0.18);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Cairo',sans-serif;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
img{max-width:100%; display:block;}
h1,h2,h3{font-family:'Poppins',sans-serif; margin:0; line-height:1.2;}

/* ---------- top nav ---------- */
.navbar{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,0.92); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  padding:14px 5vw;
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.navbar .brand{display:flex; flex-direction:column; line-height:1.1;}
.navbar .brand .fr{font-family:'Poppins',sans-serif; font-weight:700; font-size:1.05rem; color:var(--navy);}
.navbar .brand .ar{font-size:0.78rem; color:var(--coral-deep); font-weight:600;}
.nav-actions{display:flex; align-items:center; gap:10px;}
.lang-switch{display:flex; gap:4px; background:var(--bg); border-radius:20px; padding:3px; border:1px solid var(--line);}
.lang-switch button{
  border:none; background:transparent; color:var(--muted);
  padding:6px 12px; border-radius:16px; font-size:0.76rem; cursor:pointer; font-family:'Poppins',sans-serif; font-weight:600;
}
.lang-switch button.active{background:var(--navy); color:#fff;}
.btn-nav-cta{
  background:var(--coral); color:#fff; text-decoration:none; font-weight:700;
  padding:10px 20px; border-radius:24px; font-size:0.86rem; box-shadow:0 6px 16px rgba(255,107,74,0.35);
}

/* ---------- hero ---------- */
.hero{
  position:relative; min-height:min(88vh, 640px); display:flex; align-items:flex-end;
  background:linear-gradient(180deg, rgba(10,29,48,0.35) 0%, rgba(10,29,48,0.55) 55%, rgba(10,29,48,0.92) 100%), var(--navy-deep);
  background-size:cover; background-position:center; background-repeat:no-repeat;
  color:#fff; padding:0 5vw 44px;
}
.hero-inner{max-width:720px; padding-top:120px;}
.hero .eyebrow{
  display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,0.14);
  border:1px solid rgba(255,255,255,0.3); padding:7px 16px; border-radius:20px;
  font-size:0.8rem; margin-bottom:18px; backdrop-filter:blur(6px);
}
.hero .eyebrow .dot{width:7px; height:7px; border-radius:50%; background:#37D67A;}
.hero h1{font-size:clamp(1.9rem, 4.5vw, 3.1rem); font-weight:700; margin-bottom:10px;}
.hero .ar-line{display:block; direction:rtl;}
.hero .fr-line{display:block; font-size:0.55em; font-weight:500; color:#F1D9BF; margin-top:4px;}
.hero p.tagline{font-size:1rem; max-width:52ch; color:rgba(255,255,255,0.88); margin:14px 0 26px;}
.hero-cta-row{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:30px;}
.btn-hero-primary{
  background:var(--coral); color:#fff; text-decoration:none; font-weight:700; font-size:1rem;
  padding:16px 30px; border-radius:30px; box-shadow:0 10px 26px rgba(255,107,74,0.45);
}
.btn-hero-ghost{
  background:rgba(255,255,255,0.12); border:1.5px solid rgba(255,255,255,0.55); color:#fff; text-decoration:none;
  font-weight:600; font-size:0.95rem; padding:15px 26px; border-radius:30px; backdrop-filter:blur(6px);
}
.trust-row{display:flex; gap:10px; flex-wrap:wrap;}
.trust-pill{
  background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.25); backdrop-filter:blur(6px);
  color:#fff; font-size:0.8rem; padding:8px 14px; border-radius:20px; display:flex; align-items:center; gap:6px;
}
.trust-pill svg{width:15px; height:15px; flex-shrink:0;}

/* ---------- stat / info strip ---------- */
.info-strip{
  max-width:1100px; margin:-46px auto 0; padding:0 5vw; position:relative; z-index:5;
}
.info-strip .info-card{
  background:var(--card); border-radius:18px; box-shadow:var(--shadow-lg);
  display:grid; grid-template-columns:repeat(4,1fr); overflow:hidden;
}
.info-strip .cell{padding:22px 18px; text-align:center; border-inline-end:1px solid var(--line);}
.info-strip .cell:last-child{border-inline-end:none;}
.info-strip .cell .icon{width:30px; height:30px; margin:0 auto 8px; color:var(--coral);}
.info-strip .cell .label{display:block; font-size:0.74rem; color:var(--muted); margin-bottom:4px;}
.info-strip .cell .value{font-family:'Poppins',sans-serif; font-weight:700; font-size:1.02rem; color:var(--navy);}
@media (max-width:720px){ .info-strip .info-card{grid-template-columns:repeat(2,1fr);} .info-strip .cell{border-bottom:1px solid var(--line);} }

/* ---------- generic section ---------- */
.section{max-width:1100px; margin:0 auto; padding:70px 5vw 10px;}
.section-head{text-align:center; max-width:60ch; margin:0 auto 40px;}
.section-head .kicker{color:var(--coral-deep); font-weight:700; font-size:0.82rem; letter-spacing:0.03em; display:block; margin-bottom:8px;}
.section-head h2{font-size:clamp(1.5rem,3vw,2.1rem); color:var(--navy);}
.section-head p{color:var(--muted); font-size:0.96rem; margin-top:10px;}

/* ---------- why-us features ---------- */
.features-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px;}
.feature-card{
  background:var(--card); border-radius:16px; padding:26px 22px; box-shadow:var(--shadow);
  transition:transform .2s ease, box-shadow .2s ease;
}
.feature-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-lg);}
.feature-card .icon-wrap{
  width:48px; height:48px; border-radius:12px; background:linear-gradient(135deg,var(--coral),var(--gold));
  display:flex; align-items:center; justify-content:center; margin-bottom:16px;
}
.feature-card .icon-wrap svg{width:24px; height:24px; color:#fff;}
.feature-card h3{font-size:1.02rem; color:var(--navy); margin-bottom:6px;}
.feature-card p{font-size:0.88rem; color:var(--muted); margin:0;}

/* ---------- apartment cards ---------- */
.apt-cards-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:24px;}
.apt-card-modern{
  background:var(--card); border-radius:18px; overflow:hidden; box-shadow:var(--shadow);
  transition:transform .2s ease, box-shadow .2s ease; cursor:pointer; border:2px solid transparent;
}
.apt-card-modern:hover{transform:translateY(-5px); box-shadow:var(--shadow-lg);}
.apt-card-modern.selected{border-color:var(--coral);}
.apt-card-modern .cover-wrap{position:relative; aspect-ratio:4/3; overflow:hidden; background:#eee;}
.apt-card-modern .cover-wrap img{width:100%; height:100%; object-fit:cover; transition:transform .3s ease;}
.apt-card-modern:hover .cover-wrap img{transform:scale(1.06);}
.apt-card-modern .price-badge{
  position:absolute; top:12px; inset-inline-end:12px; background:#fff; color:var(--navy);
  font-family:'Poppins',sans-serif; font-weight:700; font-size:0.82rem; padding:6px 12px; border-radius:20px;
  box-shadow:0 4px 14px rgba(0,0,0,0.18);
}
.apt-card-modern .body{padding:18px 20px 22px;}
.apt-card-modern h3{font-size:1.08rem; color:var(--navy); margin-bottom:6px;}
.apt-card-modern .desc{font-size:0.85rem; color:var(--muted); margin-bottom:14px; min-height:2.6em;}
.apt-card-modern .amenity-row{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px;}
.apt-card-modern .amenity-chip{
  font-size:0.72rem; background:rgba(15,41,66,0.06); color:var(--navy); padding:4px 10px; border-radius:12px;
}
.apt-card-modern .select-btn{
  width:100%; background:var(--navy); color:#fff; border:none; padding:12px; border-radius:12px;
  font-family:'Cairo',sans-serif; font-weight:700; font-size:0.9rem; cursor:pointer; transition:background .2s;
}
.apt-card-modern.selected .select-btn, .apt-card-modern .select-btn:hover{background:var(--coral);}

/* photo gallery lightbox strip (per-apartment detail) */
.gallery-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-top:14px; border-radius:14px; overflow:hidden;}
.gallery-strip img{aspect-ratio:4/3; object-fit:cover; width:100%;}
.img-fallback{aspect-ratio:4/3; width:100%; background:#EFEAE3; display:flex; align-items:center; justify-content:center; color:var(--muted); font-size:0.7rem; text-align:center; padding:8px;}

/* ---------- booking panel ---------- */
.booking-wrap{
  background:linear-gradient(135deg, var(--navy) 0%, var(--navy-deep) 100%);
  border-radius:24px; padding:clamp(28px,4vw,48px); color:#fff; box-shadow:var(--shadow-lg);
  position:relative; overflow:hidden;
}
.booking-wrap::before{
  content:''; position:absolute; inset:0; opacity:0.15;
  background:radial-gradient(circle at 85% 15%, var(--coral) 0%, transparent 55%);
}
.booking-grid{position:relative; display:grid; grid-template-columns:1.15fr 0.85fr; gap:36px;}
@media (max-width:760px){ .booking-grid{grid-template-columns:1fr;} }

.field-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.field{display:flex; flex-direction:column; gap:6px; margin-bottom:16px;}
.field label{font-size:0.76rem; color:var(--gold); font-weight:600;}
.field input, .field select{
  background:rgba(255,255,255,0.09); border:1px solid rgba(255,255,255,0.25); color:#fff;
  padding:12px 14px; border-radius:10px; font-family:'Cairo',sans-serif; font-size:0.94rem;
}
.field input::placeholder{color:rgba(255,255,255,0.5);}
.field input::-webkit-calendar-picker-indicator{filter:invert(1);}
.rules{font-size:0.8rem; color:rgba(255,255,255,0.6); margin-top:4px;}
.form-error{color:#FFB199; font-size:0.85rem; margin-top:10px; min-height:1.2em;}

.summary-card{background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.18); border-radius:16px; padding:26px; align-self:start;}
.summary-card .row{display:flex; justify-content:space-between; font-size:0.9rem; margin-bottom:12px;}
.summary-card .row.total{border-top:1px solid rgba(255,255,255,0.22); padding-top:16px; font-size:1.4rem; font-weight:700;}
.discount-note{font-size:0.78rem; color:var(--gold); margin:-4px 0 14px;}
.btn-submit{
  width:100%; background:var(--coral); border:none; color:#fff; font-weight:700; font-size:1rem;
  padding:15px 18px; border-radius:12px; cursor:pointer; margin-top:8px; font-family:'Cairo',sans-serif;
  box-shadow:0 10px 24px rgba(255,107,74,0.35);
}
.btn-submit:disabled{opacity:0.6; cursor:not-allowed;}
.btn-whatsapp{
  display:flex; align-items:center; justify-content:center; gap:10px; background:#fff; color:#1b6b3a;
  text-decoration:none; padding:14px 18px; border-radius:12px; font-weight:700; font-size:0.98rem; margin-top:12px;
}
.btn-whatsapp svg{width:20px; height:20px; fill:#25D366;}
.apt-pills{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:22px; position:relative;}
.apt-pill{
  border:1.5px solid rgba(255,255,255,0.3); background:rgba(255,255,255,0.06); color:#fff;
  padding:10px 18px; border-radius:20px; font-family:'Cairo',sans-serif; font-size:0.88rem; cursor:pointer;
}
.apt-pill.active{background:var(--coral); border-color:var(--coral);}
.loading-note{font-size:0.86rem; color:rgba(255,255,255,0.7);}

/* ---------- rating / social proof ---------- */
.rating-bar{
  display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap;
  background:var(--card); border-radius:16px; padding:20px 26px; box-shadow:var(--shadow); margin-top:20px;
}
.rating-bar .stars{color:var(--gold); font-size:1.1rem; letter-spacing:2px;}
.rating-bar .score{font-family:'Poppins',sans-serif; font-weight:700; color:var(--navy); font-size:1.1rem;}
.rating-bar .count{color:var(--muted); font-size:0.86rem;}

/* ---------- map / address ---------- */
.contact-grid{display:grid; grid-template-columns:1fr; max-width:560px; margin:0 auto;}
.contact-card{background:var(--card); border-radius:18px; padding:28px; box-shadow:var(--shadow);}
.contact-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:18px;}
.contact-list li{display:flex; gap:14px; align-items:flex-start;}
.contact-list .icon-wrap{
  width:40px; height:40px; border-radius:10px; background:rgba(255,107,74,0.1); color:var(--coral);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.contact-list .icon-wrap svg{width:19px; height:19px;}
.contact-list strong{display:block; font-size:0.95rem; color:var(--navy);}
.contact-list span{font-size:0.86rem; color:var(--muted);}

/* ---------- closing CTA ---------- */
.closing{
  max-width:1100px; margin:70px auto 0; padding:0 5vw;
}
.closing-inner{
  background:linear-gradient(120deg, var(--coral) 0%, var(--coral-deep) 100%);
  border-radius:24px; padding:56px 24px; text-align:center; color:#fff; box-shadow:var(--shadow-lg);
}
.closing-inner h2{font-size:clamp(1.5rem,3vw,2rem); margin-bottom:8px;}
.closing-inner .sub1{font-size:1rem; opacity:0.95; margin:0 0 4px;}
.closing-inner .sub2{font-size:0.88rem; opacity:0.85; margin:0 0 28px;}
.btn-wa-solid{
  display:inline-flex; align-items:center; gap:10px; background:#fff; color:#1b6b3a; text-decoration:none;
  padding:16px 30px; border-radius:30px; font-weight:700; font-size:1rem; box-shadow:0 10px 24px rgba(0,0,0,0.2);
}
.btn-wa-solid svg{width:20px; height:20px; fill:#25D366;}

footer{background:var(--navy-deep); color:rgba(255,255,255,0.75); text-align:center; padding:40px 24px 28px; margin-top:70px; font-size:0.86rem;}
footer .agency{font-weight:700; color:#fff; margin-bottom:6px; font-family:'Poppins',sans-serif;}
footer .desc{opacity:0.75; margin-bottom:14px;}
footer .links a{color:var(--gold); text-decoration:none;}

@media (max-width:560px){
  .hero-inner{padding-top:90px;}
}
