.elementor-1903 .elementor-element.elementor-element-c6c422d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}/* Start custom CSS *//* ==========================================================
   PrimeStone Associates — Global Stylesheet
   Paste this ENTIRE file into:
   Elementor → Site Settings → Custom CSS
   (or Appearance → Customize → Additional CSS if that's not available)
   ========================================================== */

:root{
  --cream:#F3F6FA;
  --paper:#FFFFFF;
  --navy:#0B1F3A;
  --navy-soft:#4C5C74;
  --blue:#1D4ED8;
  --blue-deep:#0F3D91;
  --teal:#0E8F6E;
  --line:#DCE3EC;
  --gold:#E8B84B;
  --radius:6px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--cream); color:var(--navy); font-family:'Inter',sans-serif; -webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:'Poppins',sans-serif; font-weight:700; margin:0; letter-spacing:-0.01em;}
p{margin:0;}
a{color:inherit; text-decoration:none;}
img{display:block; max-width:100%;}
ul{margin:0; padding:0;}
.container{max-width:1220px; margin:0 auto; padding:0 28px;}
.btn{
  display:inline-flex; align-items:center; gap:8px; justify-content:center;
  padding:15px 30px; border-radius:var(--radius); font-weight:600; font-size:14.5px; cursor:pointer; border:none;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn-primary{background:var(--blue); color:#fff; box-shadow:0 14px 26px -12px rgba(29,78,216,0.55);}
.btn-primary:hover{transform:translateY(-2px);}
.btn-outline{background:transparent; border:1.5px solid rgba(255,255,255,0.5); color:#fff;}
.btn-outline.dark{border-color:var(--navy); color:var(--navy);}
.btn-whatsapp{background:#25D366; color:#fff;}
.section-tag{
  display:inline-block; font-size:12px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--blue); margin-bottom:12px;
}
.section-head{max-width:640px; margin:0 auto 46px; text-align:center;}
.section-head h2{font-size:clamp(26px,3.4vw,36px); line-height:1.2;}
.section-head p{margin-top:14px; color:var(--navy-soft); font-size:15.5px; line-height:1.6;}

/* ---- Top utility bar ---- */
.topbar{background:var(--navy); color:#CBD5E5; font-size:13px;}
.topbar .container{display:flex; justify-content:space-between; align-items:center; padding:9px 28px; flex-wrap:wrap; gap:8px;}
.topbar .left{display:flex; gap:22px;}
.topbar a{display:flex; align-items:center; gap:6px; color:#CBD5E5;}
.topbar a:hover{color:#fff;}
.topbar svg{width:14px; height:14px;}

/* ---- Header ---- */
header.site{background:#fff; position:sticky; top:0; z-index:50; border-bottom:1px solid var(--line);}
.nav-wrap{display:flex; align-items:center; justify-content:space-between; padding:16px 28px;}
.brand{display:flex; align-items:baseline; gap:8px;}
.brand .mark{font-family:'Poppins',sans-serif; font-weight:800; font-size:21px; color:var(--navy);}
.brand .sub{font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--blue); font-weight:600;}
nav.links{display:flex; gap:34px; font-size:14px; font-weight:600; color:var(--navy-soft);}
nav.links a:hover{color:var(--blue);}
.header-cta{display:flex; align-items:center; gap:14px;}
.header-cta .phone{font-weight:700; font-size:14.5px; color:var(--navy); display:flex; align-items:center; gap:6px;}

/* ---- Quick enquiry bar (top of page) ---- */
.quick-enquiry{background:#fff; border-bottom:1px solid var(--line); padding:18px 0;}
.qe-row{display:flex; align-items:center; gap:24px; flex-wrap:wrap; justify-content:space-between;}
.qe-text{font-size:14.5px; color:var(--navy); max-width:280px; line-height:1.5;}
.qe-text strong{display:block; font-size:15.5px; margin-bottom:2px;}
form.qe-form{display:flex; gap:10px; flex-wrap:wrap; flex:1; justify-content:flex-end;}
form.qe-form input, form.qe-form select{
  padding:11px 13px; border:1px solid var(--line); border-radius:var(--radius); font-family:'Inter',sans-serif;
  font-size:13.5px; background:var(--cream); color:var(--navy); min-width:150px;
}
form.qe-form button{padding:11px 24px; white-space:nowrap;}
@media(max-width:980px){
  .qe-row{flex-direction:column; align-items:stretch;}
  form.qe-form{justify-content:stretch;}
  form.qe-form input, form.qe-form select{flex:1 1 140px;}
}

/* ---- Gallery ---- */
.gallery{padding:90px 0; background:#fff;}
.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.gallery-grid figure{margin:0; border-radius:var(--radius); overflow:hidden; aspect-ratio:4/5; position:relative;}
.gallery-grid img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease;}
.gallery-grid figure:hover img{transform:scale(1.07);}
@media(max-width:980px){ .gallery-grid{grid-template-columns:repeat(2,1fr);} }

/* ---- Hero ---- */
.hero{background:linear-gradient(160deg, var(--navy) 0%, #123061 60%, var(--blue-deep) 100%); color:#fff; position:relative; overflow:hidden;}
.hero::before{content:""; position:absolute; right:-120px; top:-120px; width:420px; height:420px; border-radius:50%; background:rgba(255,255,255,0.05);}
.hero-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:50px; align-items:center; padding:76px 0 90px; position:relative;}
.hero-eyebrow{display:inline-block; background:rgba(255,255,255,0.1); padding:8px 16px; border-radius:20px; font-size:12.5px; font-weight:600; letter-spacing:0.04em; margin-bottom:22px;}
.hero h1{font-size:clamp(30px,4.2vw,46px); line-height:1.14; margin-bottom:18px;}
.hero h1 span{color:var(--gold);}
.hero p.lede{font-size:16px; line-height:1.7; color:#C9D5E8; max-width:50ch; margin-bottom:30px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:38px;}
.hero-stats{display:flex; gap:34px; flex-wrap:wrap;}
.hero-stats div{border-left:2px solid var(--gold); padding-left:12px;}
.hero-stats .n{font-family:'Poppins',sans-serif; font-size:24px; font-weight:700;}
.hero-stats .l{font-size:12px; color:#B6C4DB; text-transform:uppercase; letter-spacing:0.04em;}

.hero-visual{position:relative;}
.hero-photo-main{border-radius:var(--radius); overflow:hidden; aspect-ratio:4/3; box-shadow:0 30px 60px -20px rgba(0,0,0,0.5);}
.hero-photo-main img{width:100%; height:100%; object-fit:cover;}
.float-card{
  position:absolute; background:#fff; color:var(--navy); border-radius:var(--radius); padding:16px 20px;
  box-shadow:0 20px 40px -18px rgba(0,0,0,0.35); display:flex; align-items:center; gap:12px;
}
.float-card.f1{bottom:-26px; left:-24px;}
.float-card.f2{top:-22px; right:-18px;}
.float-card .ico{width:40px; height:40px; border-radius:50%; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0;}
.float-card .ico.teal{background:var(--teal);}
.float-card b{display:block; font-size:16px;}
.float-card span{font-size:12px; color:var(--navy-soft);}

/* ---- Lead form band ---- */
.lead-band{background:#fff; border-bottom:1px solid var(--line);}
.lead-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  margin-top:-70px; position:relative; z-index:5; box-shadow:0 30px 60px -30px rgba(11,31,58,0.25);
  padding:30px 32px; display:grid; grid-template-columns:1.1fr 2fr; gap:30px; align-items:center;
}
.lead-card h3{font-size:19px; margin-bottom:6px;}
.lead-card p{font-size:13.5px; color:var(--navy-soft);}
form.lead-form{display:grid; grid-template-columns:1fr; gap:14px; max-width:420px;}
form.lead-form input, form.lead-form select{
  padding:13px 14px; border:1px solid var(--line); border-radius:var(--radius); font-family:'Inter',sans-serif;
  font-size:13.5px; background:var(--cream); color:var(--navy); width:100%;
}
form.lead-form button{margin-top:4px;}

/* ---- Trust strip ---- */
.trust-strip{background:var(--cream); padding:30px 0;}
.trust-strip .container{display:flex; justify-content:space-around; flex-wrap:wrap; gap:24px; text-align:center;}
.trust-strip .item{font-size:13px; color:var(--navy-soft); font-weight:600; display:flex; align-items:center; gap:8px;}
.trust-strip .item b{color:var(--navy); font-family:'Poppins',sans-serif; font-size:18px;}

/* ---- Services grid ---- */
.services{padding:90px 0 70px;}
.svc-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.svc-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px 24px;
  transition:box-shadow .2s ease, transform .2s ease;
}
.svc-card:hover{box-shadow:0 20px 40px -22px rgba(11,31,58,0.25); transform:translateY(-4px);}
.svc-card .ico{width:44px; height:44px; border-radius:10px; background:rgba(29,78,216,0.1); color:var(--blue); display:flex; align-items:center; justify-content:center; margin-bottom:16px; font-size:20px;}
.svc-card h4{font-size:16px; margin-bottom:8px;}
.svc-card p{font-size:13.5px; color:var(--navy-soft); line-height:1.55; margin-bottom:12px;}
.svc-card .lnk{font-size:13px; font-weight:700; color:var(--blue-deep);}

/* ---- Featured properties ---- */
.featured{background:var(--navy); padding:90px 0; color:#fff;}
.featured .section-head p{color:#B6C4DB;}
.featured .section-tag{color:var(--gold);}
.feat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.feat-card{background:#122A50; border-radius:var(--radius); overflow:hidden; border:1px solid rgba(255,255,255,0.08);}
.feat-card .media{aspect-ratio:4/3; overflow:hidden; position:relative;}
.feat-card .media img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease;}
.feat-card:hover .media img{transform:scale(1.06);}
.feat-tag{position:absolute; top:12px; left:12px; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; padding:5px 11px; border-radius:14px; color:#fff;}
.feat-tag.sale{background:var(--blue);}
.feat-tag.rent{background:var(--teal);}
.feat-body{padding:20px;}
.feat-body h4{font-size:16.5px; margin-bottom:6px;}
.feat-body .loc{font-size:12.5px; color:#9FB0C8; margin-bottom:12px;}
.feat-body .price{font-family:'Poppins',sans-serif; font-size:19px; color:var(--gold);}
.feat-center{text-align:center; margin-top:44px;}

/* ---- Process ---- */
.process{padding:90px 0;}
.proc-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:18px;}
.proc-step{text-align:center; position:relative;}
.proc-step .num{
  width:56px; height:56px; border-radius:50%; background:var(--blue); color:#fff; font-family:'Poppins',sans-serif;
  font-weight:700; font-size:19px; display:flex; align-items:center; justify-content:center; margin:0 auto 16px;
}
.proc-step h4{font-size:14.5px; margin-bottom:6px;}
.proc-step p{font-size:12.5px; color:var(--navy-soft); line-height:1.5;}

/* ---- Stats band ---- */
.stats-band{background:var(--blue-deep); color:#fff; padding:54px 0;}
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); text-align:center; gap:20px;}
.stats-grid .n{font-family:'Poppins',sans-serif; font-size:38px; font-weight:800;}
.stats-grid .l{font-size:13px; color:#C9D5E8; text-transform:uppercase; letter-spacing:0.04em; margin-top:6px;}

/* ---- Testimonials ---- */
.testimonials{padding:90px 0; background:var(--cream);}
.test-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.test-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px; position:relative;}
.test-card .quote{font-size:14px; line-height:1.7; color:var(--navy-soft); margin-bottom:18px;}
.test-card .stars{color:var(--gold); font-size:14px; margin-bottom:12px; letter-spacing:2px;}
.test-card .who{display:flex; align-items:center; gap:12px;}
.test-card .avatar{width:40px; height:40px; border-radius:50%; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-family:'Poppins',sans-serif;}
.test-card .who b{display:block; font-size:13.5px;}
.test-card .who span{font-size:12px; color:var(--navy-soft);}

/* ---- Second CTA ---- */
.cta-band{
  background:linear-gradient(120deg, var(--blue) 0%, var(--blue-deep) 100%); color:#fff; padding:70px 0; text-align:center;
}
.cta-band h2{font-size:clamp(24px,3vw,32px); margin-bottom:14px;}
.cta-band p{color:#DCE7FB; max-width:520px; margin:0 auto 30px; font-size:15px; line-height:1.6;}
.cta-band .hero-ctas{justify-content:center;}

/* ---- FAQ ---- */
.faq{padding:90px 0;}
.faq-list{max-width:820px; margin:0 auto;}
.faq-item{border-bottom:1px solid var(--line); padding:22px 0;}
.faq-q{display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-weight:600; font-size:15.5px;}
.faq-q .plus{font-size:20px; color:var(--blue); transition:transform .2s ease;}
.faq-item.open .plus{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.faq-item.open .faq-a{max-height:200px;}
.faq-a p{padding-top:14px; font-size:14px; line-height:1.7; color:var(--navy-soft);}

/* ---- Footer ---- */
footer{background:var(--navy); color:#B6C4DB;}
.footer-wrap{display:grid; grid-template-columns:1.6fr 1fr 1.2fr; gap:36px; padding:64px 0 32px;}
footer h3{color:#fff; font-size:18px; margin-bottom:16px;}
footer p{font-size:13.5px; line-height:1.7; color:#96A6C2; max-width:34ch;}
footer .col a{display:block; font-size:13.5px; margin-bottom:10px; color:#B6C4DB;}
footer .col a:hover{color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.1); text-align:center; padding:20px 0; font-size:12px; color:#7C8CA8;}

/* ---- Floating WhatsApp ---- */
.wa-float{
  position:fixed; bottom:26px; right:26px; background:#25D366; color:#fff; width:58px; height:58px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; box-shadow:0 14px 30px -10px rgba(0,0,0,0.4); z-index:60; font-size:26px;
}

@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr; padding-top:50px;}
  .hero-visual{order:-1;}
  .lead-card{grid-template-columns:1fr;}
  .svc-grid{grid-template-columns:repeat(2,1fr);}
  .feat-grid{grid-template-columns:1fr; }
  .proc-grid{grid-template-columns:repeat(2,1fr);}
  .stats-grid{grid-template-columns:1fr 1fr;}
  .test-grid{grid-template-columns:1fr;}
  .footer-wrap{grid-template-columns:1fr 1fr;}
  nav.links{display:none;}
}

/* ==========================================================
   ELEMENTOR-SPECIFIC FIXES — add these too, or the sections
   above may still look broken inside Elementor's own layout
   ========================================================== */

/* Elementor wraps each Section in its own container with default
   padding. Since our HTML already has its own .container for width
   control, stop Elementor's default padding from doubling it up
   on any section holding one of our HTML widgets: */
.elementor-widget-html .container{padding-left:28px; padding-right:28px;}

/* Elementor's theme may impose its own max-width on "Boxed" sections,
   fighting our full-bleed backgrounds (navy hero, footer, etc).
   In the Elementor editor, set each Section's Layout to "Full Width"
   (Section settings → Layout → Content Width → Full Width) instead
   of relying on this CSS alone — but this helps as a safety net: */
.elementor-section.elementor-section-boxed > .elementor-container{
  max-width:100% !important;
}/* End custom CSS */