@charset "utf-8";
/* CSS Document */

:root{
  --blue:#017dc3;
  --red:#dc0505;
  --white:#fff;
  --ink:#0f172a;
  --muted:#6b7280;
  --bg:#f7fafc;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,Arial,Helvetica,sans-serif;
  color:var(--ink); background:var(--bg);
}

/* Topbar */
.topbar{
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  gap:12px; padding:8px 16px; background:var(--blue); color:#fff;
}
.topbar a{ color:#fff; text-decoration:none; }
.tb-left{justify-self:start}
.tb-center{justify-self:center}
.tb-right{justify-self:end}
.social .icon{display:inline-flex; width:22px; height:22px; margin:0 6px; opacity:.9}
.social .icon:hover{opacity:1}

/* Header / nav */
.navwrap{
  display:flex; align-items:center; gap:18px; padding:10px 16px;
  background:#fff; border-bottom:1px solid #e5e7eb;
}
.brand img{display:block;height:auto}
.burger{margin-left:auto; font-size:22px; display:none; background:none; border:0; cursor:pointer}
.mainnav ul{list-style:none; margin:0; padding:0; display:flex; gap:18px; flex-wrap:wrap}
.mainnav a{color:var(--ink); text-decoration:none; font-weight:600}
.mainnav a:hover{color:var(--blue)}
.has-dd{position:relative}
.has-dd>.dropdown{
  position:absolute; top:100%; left:0; min-width:180px; background:#fff;
  border:1px solid #e5e7eb; border-radius:6px; padding:8px 0; display:none;
}
.has-dd:hover>.dropdown{display:block}
.dropdown li{padding:0}
.dropdown a{display:block; padding:8px 12px}
.dropdown a:hover{background:#f3f4f6}

/* Sections */
.container{max-width:1160px; margin:0 auto; padding:0 16px}
.section{padding:56px 0}
.section h2{margin:0 0 14px; font-size:32px}
.lead{color:var(--muted); max-width:70ch}

/* Hero */
.hero{
  background:linear-gradient(95deg, var(--blue), #1fa6e8);
  color:#fff;
}
.hero-inner{display:grid; grid-template-columns:1.2fr .8fr; gap:24px; align-items:center}
.hero .cta{display:flex; gap:12px; margin-top:16px}
.btn{
  display:inline-block; padding:10px 16px; border-radius:10px; border:2px solid transparent; cursor:pointer;
  text-decoration:none; font-weight:700;
}
.btn.primary{background:var(--red); color:#fff; border-color:var(--red)}
.btn.secondary{background:#fff; color:var(--blue); border-color:#fff}
.btn.small{padding:6px 10px; font-weight:600}

/* Cards / grids */
.grid-3{display:grid; gap:20px; grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-2{display:grid; gap:20px; grid-template-columns:repeat(2,minmax(0,1fr))}
.card{background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:16px; box-shadow:0 4px 14px rgba(2,0,46,.04)}
.card img{width:100%; height:auto; border-radius:10px}
.badge{display:inline-block; background:var(--blue); color:#fff; padding:4px 8px; border-radius:999px; font-size:12px}

/* Forms */
.form label{display:block; font-weight:600; margin:10px 0 6px}
.form input[type="text"], .form input[type="email"], .form input[type="file"], .form select, .form textarea{
  width:100%; padding:10px 12px; border:1px solid #d1d5db; border-radius:10px; background:#fff;
}
.form .hp{position:absolute; left:-9999px; visibility:hidden}

/* Modal */
.modal{position:fixed; inset:0; display:none}
.modal.show{display:block}
.modal-overlay{position:absolute; inset:0; background:rgba(0,0,0,.5)}
.modal-card{
  position:relative; z-index:2; max-width:560px; margin:6vh auto; background:#fff; border-radius:16px;
  padding:18px; border:1px solid #e5e7eb; box-shadow:0 18px 50px rgba(0,0,0,.2)
}
.modal-close{position:absolute; top:10px; right:12px; background:none;border:0;font-size:18px;cursor:pointer}

/* Cookie banner */
.cookie-banner{
  position:fixed; bottom:16px; left:16px; right:16px; z-index:50;
  background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:12px 14px;
  box-shadow:0 8px 30px rgba(0,0,0,.15);
}

/* Footer */
.site-footer{margin-top:40px}
.site-footer .grid-3{align-items:start}
.site-footer h4{margin:0 0 8px}
.site-footer .links{list-style:none; padding:0; margin:0}
.site-footer .links li{margin:4px 0}
.footbar{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  border-top:1px solid #e5e7eb; padding:12px 16px; background:#fff;
}
.footbar .inline .icon{width:22px; height:22px; margin-left:8px}

/* Ensure mobile dropdown shows correctly above content */
.navwrap{ position:relative; }
/* Responsive */
@media (max-width:960px){
  .hero-inner{grid-template-columns:1fr}
  .grid-3{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .burger{ display:inline-block; margin-left:auto; font-size:22px; background:none; border:0; cursor:pointer }
  .mainnav{ display:none; }
  .mainnav.open{
    display:block;
    position:absolute;
    z-index:1000;
    left:0; right:0; top:100%;
    background:#fff;
    border-top:1px solid #e5e7eb;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    padding:10px 16px;
  }
  .mainnav.open ul{ flex-direction:column; gap:0; }
  .mainnav.open a{ padding:10px 6px; display:block; }
}

/* Keep the phone on one line and reduce crowding */
.topbar{
  display:grid; 
  grid-template-columns:auto 1fr auto;  /* room for centre icons */
  align-items:center;
  gap:8px;
  padding:8px 16px;
  background:var(--blue); 
  color:#fff;
}
.tb-left .phone{ white-space:nowrap; display:inline-flex; align-items:center; gap:6px; }

/* Tighter icons on small devices; hide if super narrow */
.social .icon{ margin:0 4px; }
@media (max-width:420px){
  .social{ display:none; } /* optional: free space when very narrow */
}

/* Footer background + separation */
.site-footer{
  background:#fff;
  box-shadow:0 -8px 24px rgba(0,0,0,.04);
  border-top:3px solid var(--blue);
  margin-top:40px;
}

.footbar{
  background:linear-gradient(90deg, var(--blue), #0aa0e0);
  color:#fff;
  border-top:1px solid rgba(255,255,255,.25);
}
.footbar a{ color:#fff; text-decoration:none; }
.footbar .inline .icon{ color:#fff; opacity:.95; }
.footbar .inline .icon:hover{ opacity:1; }

/* --- NAV SPACING / CENTRING --- */
.navwrap{ position:relative; background:#fff; border-bottom:1px solid #e5e7eb; }
.navinner{ display:flex; align-items:center; gap:28px; }
.brand{ display:flex; align-items:center; }
.mainnav{ margin-left:auto; }
.mainnav ul{ display:flex; gap:28px; flex-wrap:wrap; list-style:none; margin:0; padding:0; }
.mainnav a{ color:var(--ink); text-decoration:none; font-weight:600; }
.mainnav a:hover{ color:var(--blue); }

/* Mobile panel */
@media (max-width:960px){
  .burger{ display:inline-block; margin-left:auto; font-size:22px; background:none; border:0; cursor:pointer }
  .mainnav{ display:none; }
  .mainnav.open{
    display:block; position:absolute; z-index:1000; left:0; right:0; top:100%;
    background:#fff; border-top:1px solid #e5e7eb; box-shadow:0 10px 30px rgba(0,0,0,.08); padding:10px 16px;
  }
  .mainnav.open ul{ flex-direction:column; gap:0; }
  .mainnav.open a{ display:block; padding:10px 6px; }
}

/* --- TOP BAR PHONE (no wrapping) --- */
.tb-left .phone{ white-space:nowrap; display:inline-flex; align-items:center; gap:6px; }

/* Hide centre icons if super tight */
@media (max-width:420px){ .social{ display:none; } }

/* --- FOOTER: clearer block + link colours, spacing --- */
.site-footer{
  background:#fff;
  border-top:3px solid var(--blue);
  margin-top:48px;
  padding-top:28px;            /* more breathing room above the grid */
}
.site-footer .grid-3{ gap:28px; }
.site-footer a{ color:var(--ink); text-decoration:none; }
.site-footer a:hover{ color:var(--blue); text-decoration:underline; }

.footbar{
  margin-top:24px;             /* add space before the coloured bar */
  background:linear-gradient(90deg, var(--blue), #0aa0e0);
  color:#fff;
  border-top:1px solid rgba(255,255,255,.25);
  padding:14px 16px;           /* more vertical padding so the line isn’t tight */
}

/* --- ALTERNATING SECTION BACKGROUNDS --- */
.section.alt{ background:#ffffff; } /* white carded look */
.section.tint{
  background: radial-gradient(900px 300px at 10% -10%, rgba(1,125,195,.12), transparent),
              radial-gradient(900px 300px at 90% -10%, rgba(220,5,5,.10), transparent),
              #f6f9fc;
}
/* Card elevation slightly increased for flavour */
.card{ box-shadow:0 8px 26px rgba(2,0,46,.06); }


/* --- HOME SLIDER (right column) --- */
/* Ensure the homes list and slider split 50/50 on desktop */
.homes-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media (max-width:960px){ .homes-wrap{ grid-template-columns:1fr; } }


.slider{
  position:relative; border-radius:14px; overflow:hidden; min-height:340px; background:#eef2f7;
  border:1px solid #e5e7eb;
}
.slider .slide{ position:absolute; inset:0; opacity:0; transition:opacity .6s ease; }
.slider .slide.active{ opacity:1; }
.slider img{ width:100%; height:100%; object-fit:cover; display:block; }
.slider .dots{ position:absolute; left:12px; bottom:12px; display:flex; gap:6px; }
.slider .dot{ width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.6); border:1px solid rgba(0,0,0,.15); cursor:pointer; }
.slider .dot.active{ background:#fff; }

/* ===== FOOTER: blue columns + red copyright bar ===== */
.site-footer{
  background: var(--blue);
  color:#fff;
  border-top: none;
  margin-top:48px;
  padding-top:32px;
}
.site-footer h4{ color:#fff; }
.site-footer .grid-3{ gap:28px; }
.site-footer a{ color:#fff; text-decoration:none; }
.site-footer a:hover{ color:#fff; text-decoration:underline; }

.footbar{
  margin-top:24px;
  background: var(--red);
  color:#fff;
  border-top: none;
  padding:14px 16px;
}
.footbar a{ color:#fff; text-decoration:none; }
.footbar a:hover{ text-decoration:underline; }
.footbar .inline .icon{ color:#fff; opacity:.95; }
.footbar .inline .icon:hover{ opacity:1; }

/* ===== INNER PAGE HEADER (image + blue dissolve) ===== */
.page-hero{
  position:relative;
  color:#fff;
  background: var(--blue);
  background-size: cover;
  background-position:center;
  padding:70px 0;               /* height */
  border-bottom: 3px solid rgba(255,255,255,.25);
}
.page-hero .container{ position:relative; z-index:2; }
.page-hero h1{ margin:0; font-size:36px; }
.page-hero p{ margin:.5rem 0 0; opacity:.95 }

/* blue overlay for “dissolve” effect */
.page-hero::before{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(1,125,195,.65) 0%, rgba(1,125,195,.85) 60%, var(--blue) 100%);
  z-index:1;
  pointer-events:none;
}

/* Optional: vary section backgrounds for flavour */
.section.alt{ background:#ffffff; }
.section.tint{
  background: radial-gradient(900px 300px at 10% -10%, rgba(1,125,195,.12), transparent),
              radial-gradient(900px 300px at 90% -10%, rgba(220,5,5,.10), transparent),
              #f6f9fc;
}

/* ===== FULL-BLEED HERO ===== */
.hero--bg{
  position:relative;
  display:flex; align-items:center;
  min-height:560px;
  background-size:cover; background-repeat:no-repeat;
  color:#fff;
}
.hero--bg .hero-copy{ max-width: 720px; }
.hero--bg h1{
  color:#fff; margin:0 0 10px; font-size:44px; line-height:1.12;
  text-shadow:0 1px 2px rgba(0,0,0,.25);
}
.hero--bg .lead{
  color:#f3f9ff; max-width:65ch; margin:0 0 14px;
  text-shadow:0 1px 2px rgba(0,0,0,.18);
}
.hero--bg .btn.secondary{ background:#fff; color:var(--blue); border-color:#fff; }
.hero--bg .btn.primary{ box-shadow:0 6px 18px rgba(220,5,5,.25); }

@media (max-width:960px){
  .hero--bg{ min-height:420px; }
  .hero--bg h1{ font-size:34px; }
}

/* keep existing hero styles for other sections */
/* Eyebrow label (also used in hero and About) */
.eyebrow{
  display:inline-block; margin-bottom:8px; padding:6px 10px;
  border-radius:999px; background:rgba(255,255,255,.15);
  color:#fff; font-weight:800; text-transform:uppercase; letter-spacing:.06em; font-size:13px;
  backdrop-filter: blur(1px);
}

/* About: equal visual weight with image */
.about-grid{ display:grid; gap:20px; grid-template-columns:1.1fr .9fr; align-items:stretch; }
@media (max-width:960px){ .about-grid{ grid-template-columns:1fr; } }
.about-grid .card{ display:flex; flex-direction:column; }

/* Homes list fills the left half beside the slider */
/* BEFORE (causes narrow card with empty tracks)
.homes-list{ display:grid; gap:20px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); align-items:stretch; }
*/

/* Left column: overlay card(s) */
.homes-list{ display:grid; gap:20px; grid-template-columns:1fr; }
@media (min-width:1280px){ .homes-list{ grid-template-columns:1fr; } } /* keep a single big card for parity with slider */

.homes-list .card{ height:100%; display:flex; flex-direction:column; }
.homes-list .card img{ aspect-ratio: 3/2; object-fit: cover; }

/* Contact: form height matches map */
.contact-grid{ display:grid; gap:20px; grid-template-columns: 1fr 1fr; }
@media (max-width:960px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-card{ background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:16px; min-height:380px; }
.map-embed{ background:#fff; border:1px solid #e5e7eb; border-radius:14px; overflow:hidden; }
.map-embed iframe{ width:100%; height:380px; display:block; border:0; }

/* Balance Why Choose Us columns */
.why-grid{ display:grid; gap:20px; grid-template-columns:1fr 1fr; align-items:stretch; }
@media (max-width:960px){ .why-grid{ grid-template-columns:1fr; } }
.why-grid .card{ display:flex; flex-direction:column; }
.why-grid ul{ margin-top:8px; }

/* Even 50/50 split on desktop */



/* Anchor-as-card with background image and overlay text */
.home-card{
  position:relative; display:block; overflow:hidden;
  border:1px solid #e5e7eb; border-radius:14px;
  box-shadow:0 8px 26px rgba(2,0,46,.06);
  background-size:cover; background-position:center;
  aspect-ratio:16/9; text-decoration:none; color:#fff;
}
.home-card::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.00) 42%, rgba(1,125,195,.55) 70%, rgba(1,125,195,.88) 100%);
}
.home-overlay{ position:absolute; left:16px; right:16px; bottom:16px; z-index:2; }
.home-card h3{ margin:0 0 6px; color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.35); }
.home-card p{ margin:0 0 10px; color:#f1f8ff; text-shadow:0 1px 2px rgba(0,0,0,.25); }

/* Ghost button for contrast over image */
.btn.ghost{
  display:inline-block; padding:8px 12px; border-radius:10px;
  background:transparent; color:#fff; border:1.5px solid #fff; font-weight:700;
}

/* Right column slider: match framing + height with left card */
.slider{
  position:relative; border-radius:14px; overflow:hidden;
  border:1px solid #e5e7eb; box-shadow:0 8px 26px rgba(2,0,46,.06);
  aspect-ratio:16/9; background:#eef2f7;
}
.slider .slide{ position:absolute; inset:0; opacity:0; transition:opacity .6s ease; }
.slider .slide.active{ opacity:1; }
.slider img{ width:100%; height:100%; object-fit:cover; display:block; }
.slider .dots{ position:absolute; left:14px; bottom:14px; display:flex; gap:6px; z-index:2; }
.slider .dot{ width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.7); border:1px solid rgba(0,0,0,.2); cursor:pointer; }
.slider .dot.active{ background:#fff; }

/* === OUR HOMES — robustness + visual parity === */

/* Prevent intrinsic sizing from forcing horizontal scroll */
.homes-wrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);  /* avoids overflow */
  gap:24px;
}
@media (max-width:960px){
  .homes-wrap{ grid-template-columns:minmax(0,1fr); }
}

/* Left overlay card(s) */
.homes-list{
  display:grid;
  gap:20px;
  grid-template-columns:1fr;     /* single large card for balance with slider */
}

/* Anchor-as-card with bg image */
.home-card{
  position:relative;
  display:block;
  width:100%;
  max-width:100%;
  overflow:hidden;
  border:1px solid #e5e7eb;
  border-radius:16px;            /* match slider */
  box-shadow:0 8px 26px rgba(2,0,46,.06);
  background-size:cover;
  background-position:center;
  aspect-ratio:16/9;             /* keeps height equal to slider */
  text-decoration:none;          /* no underline anywhere */
  color:#fff;
}

/* Blue gradient overlay; inherit rounding so it doesn’t “square” the corners */
.home-card::before{
  content:"";
  position:absolute; inset:0;
  border-radius:inherit;
  background:linear-gradient(180deg,
               rgba(0,0,0,0.04) 20%,
               rgba(1,125,195,.55) 65%,
               rgba(1,125,195,.88) 100%);
  pointer-events:none;
}

.home-overlay{
  position:absolute; left:16px; right:16px; bottom:16px; z-index:2;
}
.home-card h3{ margin:0 0 6px; color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.35); }
.home-card p{ margin:0 0 10px; color:#f1f8ff; text-shadow:0 1px 2px rgba(0,0,0,.25); }
.home-card .btn.ghost{
  display:inline-block; padding:8px 12px; border-radius:10px;
  background:transparent; color:#fff; border:1.5px solid #fff; font-weight:700;
  text-decoration:none;
}

/* Right column slider — match size/edges to left */
.slider{
  position:relative;
  width:100%;
  max-width:100%;
  aspect-ratio:16/9;
  border-radius:16px;            /* same as card */
  overflow:hidden;
  border:1px solid #e5e7eb;
  box-shadow:0 8px 26px rgba(2,0,46,.06);
  background:#eef2f7;
}
.slider .slide{ position:absolute; inset:0; opacity:0; transition:opacity .6s ease; }
.slider .slide.active{ opacity:1; }
.slider img{ width:100%; height:100%; object-fit:cover; display:block; }
.slider .dots{ position:absolute; left:14px; bottom:14px; display:flex; gap:6px; z-index:2; }
.slider .dot{ width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.7); border:1px solid rgba(0,0,0,.2); cursor:pointer; }
.slider .dot.active{ background:#fff; }

/* Defensive: kill any stray horizontal scroll on tiny devices */
html, body{ overflow-x:hidden; }

/* --- Our Homes: mobile text never clipped --- */

/* Make sure overlay sits above the gradient */
.home-card{ position:relative; }
.home-card::before{ z-index:1; }   /* gradient */
.home-overlay{ z-index:2; }        /* text on top */

/* Responsive type so headings never hit the edge */
.home-card h3{ 
  font-size: clamp(18px, 4.4vw, 26px);
  line-height: 1.2;
}
.home-card p{
  font-size: clamp(14px, 3.6vw, 18px);
  line-height: 1.35;
}

/* Slightly taller card on small screens so title+summary+button fit comfortably */
@media (max-width: 640px){
  .home-card{
    aspect-ratio: 4 / 3;          /* was 16/9 – this adds height */
  }
  .home-overlay{
    left:14px; right:14px; bottom:14px;
  }
  .btn.ghost{ padding:6px 10px; border-width:1.5px; }
}

/* Extra safety: avoid any horizontal scroll caused by intrinsic widths */
.homes-wrap{ grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
@media (max-width:960px){ .homes-wrap{ grid-template-columns: minmax(0,1fr); } }

/* Layout helpers */
.about-grid{ display:grid; gap:20px; grid-template-columns:1.1fr .9fr; align-items:stretch; }
@media (max-width:960px){ .about-grid{ grid-template-columns:1fr; } }
.grid-4{ display:grid; gap:20px; grid-template-columns:repeat(4,1fr); }
@media (max-width:1100px){ .grid-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .grid-4{ grid-template-columns:1fr; } }

/* Colour bands */
.band{ padding:34px 0; color:#fff; }
.band--blue{ background:linear-gradient(90deg, var(--blue), #0aa0e0); }
.band--red{  background:linear-gradient(90deg, var(--red), #ef3030); }
.band .promise h4{ margin:0 0 6px; color:#fff; }
.band .promise p{ margin:0; opacity:.95 }

/* Accent cards */
.card--accent-blue{ background:linear-gradient(180deg, rgba(1,125,195,.08), #fff); border-left:4px solid var(--blue); }
.card--accent-red{  background:linear-gradient(180deg, rgba(220,5,5,.08), #fff);  border-left:4px solid var(--red); }
.card--accent-white{ background:#fff; border-left:4px solid #e5e7eb; }

/* Quality card bullet spacing */
.quality ul{ margin:10px 0 0 18px; }

/* Pills */
.pills{ display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.pill{
  display:inline-block; padding:8px 12px; border-radius:999px;
  background:rgba(1,125,195,.12); color:var(--blue); font-weight:700; font-size:14px;
}

/* Stats */
.stats .stat{ background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:18px; text-align:center; }
.stat__num{ font-size:28px; font-weight:900; color:var(--blue); }
.stat__label{ color:var(--ink); opacity:.9 }

/* Team */
.team-card{ text-align:center; }
.team-card img{ width:100%; height:auto; border-radius:12px; object-fit:cover; aspect-ratio:1/1; }
.team-card h4{ margin:10px 0 2px; }
.team-card p{ margin:0; opacity:.9 }

/* Steps */
.steps .step{ background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:16px; }
.step__num{
  width:36px; height:36px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  background:var(--blue); color:#fff; font-weight:900; margin-bottom:8px;
}

/* Quotes */
.quote{ font-style:italic; }
.quote cite{ display:block; margin-top:8px; font-style:normal; opacity:.85 }

/* FAQ details */
.faq details summary{ cursor:pointer; font-weight:700; outline:none; }
.faq details[open]{ border-color:rgba(1,125,195,.35); }

/* CTA band */
.cta-row{ display:flex; justify-content:space-between; align-items:center; gap:16px; }
@media (max-width:800px){ .cta-row{ flex-direction:column; align-items:flex-start; } }
.btn.white{ background:#fff; color:var(--blue); border-color:#fff; }

/* ===== Services layout ===== */
.svc-layout{ display:grid; grid-template-columns:260px 1fr; gap:24px; }
@media (max-width:1024px){ .svc-layout{ grid-template-columns:1fr; } }

/* Sticky quick-nav */
.svc-nav{ position:sticky; top:90px; align-self:start; }
.svc-nav ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px; }
.svc-nav a{
  display:block; padding:10px 12px; border-radius:10px; text-decoration:none; font-weight:700;
  background:#fff; border:1px solid #e5e7eb; color:var(--ink);
}
.svc-nav a:hover{ border-color:rgba(1,125,195,.35); color:var(--blue); }
@media (max-width:1024px){
  .svc-nav ul{ flex-direction:row; overflow:auto; gap:10px; }
  .svc-nav a{ white-space:nowrap; }
}

/* Top cards row */
.svc-topcards .card{ min-height:140px; display:flex; flex-direction:column; justify-content:center; }

/* Service blocks with subtle colour edges */
.svc-block{ padding:22px 0; }
.svc-block .media img{ width:100%; height:auto; display:block; border-radius:12px; object-fit:cover; }
.svc-blue .card, .svc-red .card, .svc-white .card{ box-shadow:0 8px 26px rgba(2,0,46,.06); }
.svc-blue{ border-left:4px solid var(--blue); }
.svc-red{  border-left:4px solid var(--red); }
.svc-white{ border-left:4px solid #e5e7eb; }

/* Ticked lists */
.ticklist{ list-style:none; margin:10px 0 0; padding:0; }
.ticklist li{ position:relative; padding-left:26px; margin:8px 0; }
.ticklist li::before{
  content:"✓"; position:absolute; left:0; top:0; line-height:1.2; font-weight:900;
  color:var(--blue);
}

/* Outcomes */
.svc-outcomes .svc-stat .stat__num{ font-size:24px; color:var(--blue); }
.svc-outcomes .svc-stat{ background:#fff; }

/* Timeline */
.timeline{ position:relative; margin-top:10px; }
.timeline::before{ content:""; position:absolute; left:16px; top:0; bottom:0; width:3px; background:rgba(1,125,195,.25); border-radius:3px; }
.t-item{ position:relative; padding-left:56px; margin:14px 0; }
.t-time{
  position:absolute; left:0; top:-2px; width:48px; padding:6px 0; text-align:center;
  background:var(--blue); color:#fff; border-radius:10px; font-weight:800; font-size:12px;
}
.t-body{ background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:10px 12px; }

/* Steps / referrals */
.steps .step{ background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:16px; }

/* CTA keeps existing .band + .cta-row styles from About page */
/* === SERVICES FIXES ===================================== */

/* 1) More space between sidebar and content */
.svc-layout{
  display:grid;
  grid-template-columns:260px 1fr;
  gap:36px;                     /* was 24px */
  align-items:start;
}

/* 2) Sidebar look + behaviour */
.svc-nav{ position:sticky; top:90px; align-self:start; }
.svc-nav ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.svc-nav a{
  display:block; padding:11px 12px; border-radius:10px; text-decoration:none; font-weight:700;
  background:#fff; border:1px solid #e5e7eb; color:var(--ink);
}
.svc-nav a:hover{ border-color:rgba(1,125,195,.35); color:var(--blue); }

/* Mobile: stack nav on top; no overflow */
@media (max-width:1024px){
  .svc-layout{ grid-template-columns:1fr; }
  .svc-nav{ position:static; }
  .svc-nav ul{
    flex-direction:row;
    flex-wrap:wrap;             /* wrap instead of forcing a horizontal scroll */
    gap:8px;
  }
  .svc-nav a{ flex:0 1 calc(50% - 8px); }  /* two per row; adjusts automatically */
}
@media (max-width:560px){
  .svc-nav a{ flex:0 1 100%; } /* one per row on very small screens */
}

/* 3) Replace left border “separators” with a top accent stripe */
.svc-blue, .svc-red, .svc-white{ position:relative; border-left:none !important; }
.svc-blue::before, .svc-red::before, .svc-white::before{
  content:""; display:block; height:4px; width:64px; border-radius:4px; margin:0 0 14px;
}
.svc-blue::before{ background:var(--blue); }
.svc-red::before{  background:var(--red); }
.svc-white::before{ background:#dfe5ea; }

/* 4) Tighten inner layout + prevent image overflow in every block */
.svc-block .grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.svc-block .media{ overflow:hidden; border-radius:12px; }
.svc-block .media img{
  width:100%; height:auto; max-width:100%;
  display:block; object-fit:cover;
}

/* Stack cleanly on mobile; image never overflows */
@media (max-width:960px){
  .svc-block .grid-2{ grid-template-columns:1fr; }
  .svc-block .media{ order:2; } /* text first, image after — nicer flow */
}

/* Defensive: never allow horizontal scroll caused by intrinsic widths */
.svc-content, .svc-topcards, .svc-block, .svc-outcomes, .svc-day, .svc-referrals{
  max-width:100%; overflow-x:hidden;
}
html, body{ overflow-x:hidden; }

/* ===== Homes grid ===== */
.homes-grid{
  display:grid;
  gap:22px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width:1100px){ .homes-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width:640px){  .homes-grid{ grid-template-columns: 1fr; } }

/* Anchor-as-card with background image + overlay copy */
.home-tile{
  position:relative;
  display:block;
  width:100%;
  text-decoration:none;              /* no underline */
  color:#fff;
  border-radius:16px;
  overflow:hidden;
  border:1px solid #e5e7eb;
  box-shadow:0 8px 26px rgba(2,0,46,.06);
  background-size:cover;
  background-position:center;
  aspect-ratio: 16 / 10;             /* nice landscape card */
  transition: transform .25s ease, box-shadow .25s ease;
}
.home-tile::before{
  content:"";
  position:absolute; inset:0;
  border-radius:inherit;
  background:linear-gradient(180deg,
              rgba(0,0,0,.00) 40%,
              rgba(1,125,195,.55) 72%,
              rgba(1,125,195,.90) 100%);
  pointer-events:none;
}
.home-tile__overlay{
  position:absolute; left:16px; right:16px; bottom:16px; z-index:2;
}
.home-tile h3{ margin:0 0 6px; color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.35); }
.home-tile p{  margin:0 0 10px; color:#f1f8ff; text-shadow:0 1px 2px rgba(0,0,0,.25); }
.home-tile .btn.ghost{
  display:inline-block; padding:8px 12px; border-radius:10px;
  background:transparent; color:#fff; border:1.5px solid #fff; font-weight:700;
  text-decoration:none;
}
.home-tile:hover{
  transform: translateY(-2px);
  box-shadow:0 16px 36px rgba(2,0,46,.10);
}

/* Mobile readability: give extra height + responsive type */
@media (max-width:640px){
  .home-tile{ aspect-ratio: 4 / 3; }
  .home-tile h3{ font-size: clamp(18px, 4.6vw, 24px); }
  .home-tile p { font-size: clamp(14px, 3.8vw, 18px); }
}

/* Home detail layout */
.media img{ width:100%; height:auto; display:block; border-radius:12px; object-fit:cover; }

/* Gallery grid */
.gallery-grid{
  display:grid; gap:14px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width:1100px){ .gallery-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width:640px){  .gallery-grid{ grid-template-columns: 1fr; } }
.gallery-grid .g-item{
  position:relative; display:block; overflow:hidden; border-radius:12px;
  border:1px solid #e5e7eb; box-shadow:0 6px 20px rgba(2,0,46,.05);
  text-decoration:none; /* remove underline */
}
.gallery-grid .g-item img{
  width:100%; height:100%; object-fit:cover; display:block; aspect-ratio: 4/3;
  transition: transform .28s ease;
}
.gallery-grid .g-item:hover img{ transform: scale(1.02); }

/* Lightbox */
.gbox{
  position:fixed; inset:0; background:rgba(0,0,0,.8);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .2s ease; z-index:9999;
}
.gbox.show{ opacity:1; pointer-events:auto; }
#gbox-img{ max-width:92vw; max-height:86vh; border-radius:10px; box-shadow:0 10px 30px rgba(0,0,0,.5); }
.gbox-close, .gbox-prev, .gbox-next{
  position:absolute; background:rgba(255,255,255,.9); border:0; cursor:pointer;
  width:40px; height:40px; border-radius:999px; font-size:24px; line-height:40px; text-align:center;
  color:#111; box-shadow:0 5px 16px rgba(0,0,0,.25);
}
.gbox-close{ top:16px; right:16px; }
.gbox-prev{ left:16px; }
.gbox-next{ right:16px; }
@media (max-width:560px){
  #gbox-img{ max-width:94vw; max-height:78vh; }
}

/* ===== Work With Us ===== */
.jobs-layout{
  display:grid; gap:22px;
  grid-template-columns: 340px 1fr;
}
@media (max-width:1100px){ .jobs-layout{ grid-template-columns:1fr; } }

.job-aside{ position:sticky; top:90px; align-self:start; display:flex; flex-direction:column; gap:16px; }
@media (max-width:1100px){ .job-aside{ position:static; } }

.job-main .card .form .upl input[type="file"]{
  display:block; width:100%; border:1px dashed #cbd5e1; border-radius:10px; padding:10px; background:#f9fafb;
}
.job-main .card .form .consent{ display:flex; gap:10px; align-items:flex-start; }
.job-main .card .form .consent a{ color:var(--blue); text-decoration:underline; }

/* Make ticklists tight and readable in side cards */
.job-aside .ticklist li{ margin:6px 0; }

/* Keep inputs tidy */
.form input[type="text"], .form input[type="email"], .form input[type="tel"],
.form input[type="number"], .form select, .form textarea{
  background:#fff;
}
/* ===== Contact page polish ===== */
.contact-cards .card p{ margin:.4rem 0; }
.contact-cards .muted{ opacity:.8; font-size:.95em; }

.contact-grid{
  display:grid; gap:20px;
  grid-template-columns: 1fr 1fr;
  align-items:stretch;
}
@media (max-width:960px){ .contact-grid{ grid-template-columns:1fr; } }

.contact-card{
  background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:16px;
  display:flex; flex-direction:column; justify-content:flex-start;
}

/* Map matches form height */
.map-embed{ overflow:hidden; border-radius:14px; }
.map-embed iframe{ width:100%; height:420px; border:0; display:block; }

/* Form tweaks */
.form .consent{ display:flex; gap:10px; align-items:flex-start; }
.form .consent a{ color:var(--blue); text-decoration:underline; }

/* No email addresses shown anywhere; .phone links styled */
a.phone{ color:var(--ink); text-decoration:none; font-weight:700; }
a.phone:hover{ color:var(--blue); }

/* Button in quick cards */
.contact-cards .btn{ background:#fff; color:var(--blue); border-color:#fff; }

/* ===== Privacy page ===== */
.privacy-layout{
  display:grid; gap:24px;
  grid-template-columns:280px 1fr;
}
@media (max-width:1024px){ .privacy-layout{ grid-template-columns:1fr; } }

.privacy-nav{ position:sticky; top:90px; align-self:start; }
.privacy-nav ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.privacy-nav a{
  display:block; padding:10px 12px; border-radius:10px; text-decoration:none; font-weight:700;
  background:#fff; border:1px solid #e5e7eb; color:var(--ink);
}
.privacy-nav a:hover{ border-color:rgba(1,125,195,.35); color:var(--blue); }

@media (max-width:1024px){
  .privacy-nav{ position:static; }
  .privacy-nav ul{ flex-direction:row; flex-wrap:wrap; gap:8px; }
  .privacy-nav a{ flex:0 1 calc(50% - 8px); }
}
@media (max-width:560px){
  .privacy-nav a{ flex:0 1 100%; }
}

/* Cookie table */
.cookie-table{
  width:100%; border-collapse:separate; border-spacing:0; margin-top:8px;
  border:1px solid #e5e7eb; border-radius:10px; overflow:hidden;
}
.cookie-table th, .cookie-table td{ padding:10px 12px; border-bottom:1px solid #eef2f7; text-align:left; }
.cookie-table thead th{ background:#f7fbff; }
.cookie-table tr:last-child td{ border-bottom:0; }

/* Small helper */
.muted{ opacity:.85; font-size:.95em; }

/* HERO eyebrow tidy */
.eyebrow--hero{
  background: rgba(255,255,255,.18);
  color:#fff;
  padding:6px 12px;
  border-radius:999px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  display:inline-block;
  margin-bottom:8px;
  backdrop-filter: blur(1px);
}

/* Stats band on home */
.home-stats .stat__num{ color:#fff; font-weight:900; font-size:24px; }
.home-stats .stat__label{ color:#fff; opacity:.95 }

/* Services preview cards */
.svc-preview .svc-card{
  position:relative; display:flex; flex-direction:column; text-decoration:none;
  border-radius:16px; overflow:hidden; border:1px solid #e5e7eb; box-shadow:0 8px 26px rgba(2,0,46,.06);
  color:var(--ink); background:#fff; transition: transform .2s ease, box-shadow .2s ease;
}
.svc-preview .svc-card img{ width:100%; height:auto; display:block; object-fit:cover; aspect-ratio:3/2; }
.svc-preview .svc-card .svc-card__body{ padding:14px; }
.svc-preview .svc-card h3{ margin:0 0 6px; }
.svc-preview .svc-card .btn.ghost{ border:1.5px solid var(--blue); color:var(--blue); }
.svc-preview .svc-card:hover{ transform: translateY(-2px); box-shadow:0 16px 36px rgba(2,0,46,.10); }

.svc--blue .svc-card__body{ background:linear-gradient(180deg, rgba(1,125,195,.06), #fff); }
.svc--red  .svc-card__body{ background:linear-gradient(180deg, rgba(220,5,5,.06), #fff); }
.svc--white .svc-card__body{ background:#fff; }

/* Homes parity & responsiveness (builds on your existing rules) */
.homes-wrap{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; align-items:stretch; }
@media (max-width:960px){ .homes-wrap{ grid-template-columns:1fr; } }

.home-card, .slider{
  border-radius:16px; overflow:hidden; border:1px solid #e5e7eb;
  box-shadow:0 8px 26px rgba(2,0,46,.06);
  aspect-ratio:16/9; width:100%; max-width:100%;
}
.home-card{ position:relative; color:#fff; text-decoration:none; background-size:cover; background-position:center; }
.home-card::before{ content:""; position:absolute; inset:0; border-radius:inherit;
  background:linear-gradient(180deg, rgba(0,0,0,.04) 20%, rgba(1,125,195,.55) 65%, rgba(1,125,195,.88) 100%); z-index:1; }
.home-overlay{ position:absolute; left:16px; right:16px; bottom:16px; z-index:2; }
.home-card h3{ margin:0 0 6px; text-shadow:0 1px 2px rgba(0,0,0,.35); }
.home-card p{ margin:0 0 10px; color:#f1f8ff; text-shadow:0 1px 2px rgba(0,0,0,.25); }
@media (max-width:640px){ .home-card{ aspect-ratio:4/3; } }

/* Slider (keeps your existing JS) */
.slider{ position:relative; background:#eef2f7; }
.slider .slide{ position:absolute; inset:0; opacity:0; transition:opacity .6s ease; }
.slider .slide.active{ opacity:1; }
.slider img{ width:100%; height:100%; object-fit:cover; display:block; }
.slider .dots{ position:absolute; left:14px; bottom:14px; display:flex; gap:6px; z-index:2; }
.slider .dot{ width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.7); border:1px solid rgba(0,0,0,.2); cursor:pointer; }
.slider .dot.active{ background:#fff; }

/* Why Choose Us layout balance */
.why-grid{ display:grid; gap:20px; grid-template-columns:1fr 1fr; align-items:stretch; }
@media (max-width:960px){ .why-grid{ grid-template-columns:1fr; } }
.why-grid .card{ display:flex; flex-direction:column; }

/* Contact equal heights already present; minor tidy */
.map-embed iframe{ width:100%; height:380px; border:0; display:block; }

/* Fix blank hero cards + add marketing polish */

/* Hero eyebrow */
.eyebrow--hero{
  background: rgba(255,255,255,.18); color:#fff; padding:6px 12px;
  border-radius:999px; font-weight:900; letter-spacing:.06em; text-transform:uppercase;
  display:inline-block; margin-bottom:8px; backdrop-filter: blur(1px);
}

/* Hero USP row (these were appearing empty for some users) */
.usp-row{
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:28px;
}
@media (max-width:1024px){ .usp-row{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){  .usp-row{ grid-template-columns:1fr; } }

.usp-card{
  display:flex; gap:12px; align-items:center; padding:12px 14px;
  border-radius:14px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.35);
  color:#fff;
}
.usp-ico{ font-size:22px; line-height:1; }

/* Services preview cards (marketing look) */
.svc-preview .svc-card{ position:relative; display:flex; flex-direction:column; text-decoration:none;
  border-radius:16px; overflow:hidden; border:1px solid #e5e7eb; box-shadow:0 8px 26px rgba(2,0,46,.06); color:var(--ink);
  background:#fff; transition: transform .2s ease, box-shadow .2s ease;
}
.svc-preview .svc-card img{ width:100%; height:auto; display:block; object-fit:cover; aspect-ratio:3/2; }
.svc-preview .svc-card .svc-card__body{ padding:14px; }
.svc-preview .svc-card .btn.ghost{ border:1.5px solid var(--blue); color:var(--blue); }
.svc-preview .svc-card:hover{ transform: translateY(-2px); box-shadow:0 16px 36px rgba(2,0,46,.10); }
.svc--blue .svc-card__body{ background:linear-gradient(180deg, rgba(1,125,195,.06), #fff); }
.svc--red  .svc-card__body{ background:linear-gradient(180deg, rgba(220,5,5,.06), #fff); }
.svc--white .svc-card__body{ background:#fff; }

/* Homes & slider parity (uses your existing rules; ensure no overflow) */
.homes-wrap{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; align-items:stretch; }
@media (max-width:960px){ .homes-wrap{ grid-template-columns:1fr; } }
.home-card, .slider{ border-radius:16px; overflow:hidden; border:1px solid #e5e7eb; box-shadow:0 8px 26px rgba(2,0,46,.06); aspect-ratio:16/9; }
@media (max-width:640px){ .home-card{ aspect-ratio:4/3; } }

/* Blue bands shouldn’t show white cards with invisible text */
.band--blue .stat{ background:transparent; border:1px solid rgba(255,255,255,.35); color:#fff; }
.band--blue .stat__num, .band--blue .stat__label{ color:#fff; }

/* Testimonials */
.quote{ font-style:italic; }
.quote cite{ display:block; margin-top:8px; font-style:normal; opacity:.85 }

/* Small tweaks */
.map-embed iframe{ width:100%; height:380px; border:0; display:block; }

/* ==== Our Homes: mobile overflow fix ==== */
.homes-wrap, .homes-list { min-width: 0; }           /* allow grid children to shrink */
.homes-wrap > * { min-width: 0; }
.home-card, .slider { width:100%; max-width:100%; }   /* never exceed container */
.slider { aspect-ratio: 16/9; }
@media (max-width:640px){ .slider{ aspect-ratio: 4/3; } }
.slider .slide, .slider img{
  width:100%; height:100%; max-width:100%;
  object-fit:cover; display:block;
}
.container { overflow-x:hidden; }                     /* defensive: no horizontal scroll */

/* ==== Gradient section for clear separation (use on FAQs) ==== */
.section.gradient{
  background: linear-gradient(180deg, #017dc3 0%, #0891d1 100%);
  color:#fff;
}
.section.gradient h2, .section.gradient h3,
.section.gradient p, .section.gradient details summary{ color:#fff; }
.section.gradient .card{ background:#fff; color:var(--ink); border:1px solid #e5e7eb; }

/* ==== Safeguarding block: equal heights ==== */
.equal-heights{ align-items:stretch; }
.equal-heights .card{ height:100%; display:flex; flex-direction:column; }
.equal-heights .card .ticklist{ margin-top:8px; }

/* Images in cards never overflow */
.card img{ width:100%; height:auto; display:block; }

/* FAQ in gradient section – fix invisible text on white cards */
.section.gradient .faq .card summary,
.section.gradient .faq .card p,
.section.gradient .faq .card li {
  color: var(--ink);              /* restore readable text */
}

.section.gradient .faq .card {
  background: #fff;
  border: 1px solid #e5e7eb;
  color: var(--ink);
}

/* Nice summary styling */
.faq details.card summary {
  font-weight: 800;
  cursor: pointer;
  padding: 12px 14px;
  list-style: none;
}
.faq details.card summary::-webkit-details-marker { display:none; }
.faq details.card[open] { box-shadow: 0 8px 26px rgba(2,0,46,.06); }
.faq details.card > *:not(summary) { padding: 0 14px 12px; }

/* ===== Polished Footer ===== */
.site-footer{
  background:#017dc3; /* brand blue */
  color:#fff;
  padding:28px 0 0;
}
.site-footer .footer-cols{ gap:28px; align-items:start; }
.site-footer h4{
  color:#fff; text-transform:uppercase; letter-spacing:.06em;
  font-weight:900; margin:0 0 8px;
}
.site-footer p{ margin:.6rem 0; }
.site-footer .muted{ opacity:.9; font-size:.95em; }

.site-footer .brand{ display:flex; gap:12px; align-items:center; margin-bottom:10px; }
.site-footer .brand img{ height:48px; width:auto; }
.site-footer .brand-text strong{ font-size:1.05rem; }
.site-footer .mini-cta .btn.white{
  background:#fff; color:#017dc3; border-color:#fff;
}

.site-footer .links{ list-style:none; padding:0; margin:0; display:grid; gap:6px; }
.site-footer .links a{
  color:#fff; text-decoration:none; opacity:.95;
}
.site-footer .links a:hover,
.site-footer .links a:focus{ text-decoration:underline; opacity:1; }

.site-footer .phone{ color:#fff; font-weight:900; text-decoration:none; }
.site-footer .addr{ font-style:normal; line-height:1.6; }

/* Copyright bar */
.footbar{ background:#dc0505; /* brand red */ color:#fff; margin-top:26px; }
.footbar-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; padding:12px 0;
}

.site-footer .social .icon{
  color:#fff; opacity:.9; margin-left:14px; display:inline-flex;
}
.site-footer .social .icon:hover{ opacity:1; transform:translateY(-1px); }

/* Responsive */
@media (max-width:900px){
  .site-footer .footer-cols{ grid-template-columns:1fr; }
  .footbar-inner{ flex-direction:column; gap:8px; text-align:center; }
}
/* ===== Modal layering & sizing (contact pop-up) ===== */

/* Your modal root (adapt selectors to whatever you already use) */
#contact-modal,
.modal,               /* fallback: if your markup uses .modal */
.contact-modal {      /* …or this */
  position: fixed;
  inset: 0;                     /* top:0 right:0 bottom:0 left:0 */
  display: none;                /* shown via .is-open */
  z-index: 100000;              /* above header/hero */
  align-items: center;
  justify-content: center;
  padding: 16px;
}

/* When opened */
#contact-modal.is-open,
.modal.is-open,
.contact-modal.is-open {
  display: flex;
}

/* Backdrop */
#contact-modal .modal-backdrop,
.modal .modal-backdrop,
.contact-modal .modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(1px);
}

/* Panel */
#contact-modal .modal-panel,
.modal .modal-panel,
.contact-modal .modal-panel {
  position: relative;
  width: min(760px, 92vw);
  max-height: min(88dvh, 840px);   /* works better on mobile than 100vh */
  overflow: auto;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 24px 70px rgba(2,0,46,.35);
  padding: 18px;
  z-index: 1;                      /* above backdrop */
}

/* Close button always above */
#contact-modal .modal-close,
.modal .modal-close,
.contact-modal .modal-close {
  position: absolute;
  top: 10px;
  right: 14px;
  z-index: 2;
}

/* Prevent page scroll when modal open */
body.no-scroll { overflow: hidden; }

/* (Optional) ensure header/hero never outrank modal */
.site-header { z-index: 1000; position: sticky; }
.hero, .page-hero { position: relative; z-index: 0; }

/* Header top bar – keep phone/email white */
.topbar, .top-bar { color:#fff; }

.topbar a,
.topbar .phone,
.top-bar a,
.top-bar .phone,
.topbar .tel,
.top-bar .tel {
  color:#fff !important;
  text-decoration:none;
}

.topbar a:hover,
.topbar .phone:hover,
.top-bar a:hover,
.top-bar .phone:hover {
  opacity:.9;
}

/* If the phone icon uses currentColor */
.topbar svg { color:#fff; fill:#fff; }
