*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --white:#fff;
  --off:#f5f5f7;
  --mid:#86868b;
  --dark:#1d1d1f;
  --black:#000;
  --accent:#0066cc;
  --ease:cubic-bezier(0.25,0.1,0.25,1);
  --nav-h:52px;
}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:'Inter',system-ui,sans-serif;background:#000;color:#fff;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}

/* Prevent any page section or animated element from creating a stacking
   context that bleeds above the fixed nav. Every direct child of <main>
   is isolated so transform/animation inside can never escape. */
main > *{isolation:isolate}

/* ================================
   NAV
================================ */
/* ============================================================
   HEADER & NAVIGATION
============================================================ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  height:var(--nav-h);
  background:rgba(0,0,0,0.82);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:0.5px solid rgba(255,255,255,0.1);
  transition:background 0.3s;
}
.site-header.light{
  background:rgba(245,245,247,0.92);
  border-bottom-color:rgba(0,0,0,0.08);
}
.nav-inner{
  max-width:1280px;margin:0 auto;
  height:100%;display:flex;align-items:center;
  padding:0 24px;gap:24px;
}
.nav-brand{
  display:flex;align-items:center;gap:9px;
  font-size:16px;font-weight:600;letter-spacing:-0.02em;
  color:#fff;white-space:nowrap;flex-shrink:0;
  transition:color 0.3s;
}
.site-header.light .nav-brand{color:var(--dark)}
.nav-logo-icon{height:30px;width:auto;transition:opacity 0.3s;}
.nav-primary{
  display:flex;align-items:center;gap:2px;
  list-style:none;flex:1;
}
.nav-primary > li{position:relative}
.nav-primary > li > a,
.nav-primary > li > button{
  display:flex;align-items:center;gap:4px;
  padding:6px 10px;border-radius:6px;
  font-size:13px;font-weight:400;
  color:rgba(255,255,255,0.8);
  background:none;border:none;cursor:pointer;
  transition:color 0.15s,background 0.15s;
  white-space:nowrap;
}
.site-header.light .nav-primary > li > a,
.site-header.light .nav-primary > li > button{color:rgba(0,0,0,0.7)}
.nav-primary > li > a:hover,
.nav-primary > li > button:hover{color:#fff;background:rgba(255,255,255,0.08)}
.site-header.light .nav-primary > li > a:hover,
.site-header.light .nav-primary > li > button:hover{color:var(--dark);background:rgba(0,0,0,0.06)}
.nav-chevron{width:12px;height:12px;flex-shrink:0;opacity:0.5;transition:transform 0.2s}
li:hover .nav-chevron,.nav-primary > li.open .nav-chevron{transform:rotate(180deg)}

/* -- Standard dropdown -- */
.nav-drop{
  position:absolute;top:100%;left:0;
  min-width:220px;padding-top:8px;
  background:transparent;
  opacity:0;visibility:hidden;pointer-events:none;
  z-index:1001;
}
.nav-drop-inner{
  background:rgba(20,20,20,0.97);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:0.5px solid rgba(255,255,255,0.12);
  border-radius:12px;padding:6px;
  transform:translateY(-6px);
  transition:opacity 0.2s,transform 0.2s;
  opacity:0;
}
.site-header.light .nav-drop-inner{background:rgba(255,255,255,0.97);border-color:rgba(0,0,0,0.1)}
.nav-primary > li:hover .nav-drop,
.nav-primary > li.open .nav-drop{opacity:1;visibility:visible;pointer-events:auto}
.nav-primary > li:hover .nav-drop-inner,
.nav-primary > li.open .nav-drop-inner{opacity:1;transform:translateY(0)}
.nav-drop a{
  display:flex;align-items:flex-start;gap:10px;
  padding:10px 12px;border-radius:8px;transition:background 0.15s;
}
.nav-drop a:hover{background:rgba(255,255,255,0.07)}
.site-header.light .nav-drop a:hover{background:rgba(0,0,0,0.05)}
.drop-icon{
  width:32px;height:32px;border-radius:8px;flex-shrink:0;
  background:rgba(0,102,204,0.18);
  display:flex;align-items:center;justify-content:center;margin-top:1px;
}
.drop-label{display:flex;flex-direction:column;gap:2px}
.drop-label strong{font-size:13px;font-weight:500;color:#fff}
.site-header.light .drop-label strong{color:var(--dark)}
.drop-label span{font-size:11px;color:rgba(255,255,255,0.4);font-weight:300}
.site-header.light .drop-label span{color:rgba(0,0,0,0.4)}

/* -- Locations mega-menu -- */
.nav-mega{min-width:0;left:50%;transform:translateX(-50%)}
.nav-primary > li:hover .nav-mega,
.nav-primary > li.open .nav-mega{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%)}
.nav-mega-inner{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;padding:8px;min-width:680px;
}
.mega-col{padding:12px 16px;display:flex;flex-direction:column;gap:2px}
.mega-col+.mega-col{border-left:0.5px solid rgba(255,255,255,0.07)}
.site-header.light .mega-col+.mega-col{border-color:rgba(0,0,0,0.06)}
.mega-state{
  display:flex;align-items:center;gap:6px;
  font-size:12px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;
  color:rgba(255,255,255,0.9);padding:6px 8px;border-radius:6px;
  transition:background 0.15s;
}
.site-header.light .mega-state{color:var(--dark)}
.mega-state:hover{background:rgba(255,255,255,0.08)}
.site-header.light .mega-state:hover{background:rgba(0,0,0,0.05)}
.mega-state svg{opacity:0.5;flex-shrink:0}
.mega-state-gap{margin-top:14px}
.mega-city{
  font-size:12px;font-weight:300;color:rgba(255,255,255,0.42);
  padding:3px 8px;border-radius:6px;transition:color 0.15s,background 0.15s;
  padding-left:22px;
}
.site-header.light .mega-city{color:rgba(0,0,0,0.45)}
.mega-city:hover{color:#fff;background:rgba(255,255,255,0.06)}
.site-header.light .mega-city:hover{color:var(--dark);background:rgba(0,0,0,0.05)}
.mega-more{color:var(--accent)!important;font-weight:500!important;margin-top:2px}
.site-header.light .mega-more{color:var(--accent)!important}
.mega-cta-col{justify-content:center;gap:12px;padding:20px 16px}
.mega-all-btn{
  display:flex;align-items:center;gap:8px;
  background:var(--accent);color:#fff;
  padding:10px 16px;border-radius:980px;
  font-size:12px;font-weight:500;
  transition:opacity 0.2s;white-space:nowrap;justify-content:center;
}
.mega-all-btn:hover{opacity:0.87}
.mega-tagline{
  font-size:11px;font-weight:300;
  color:rgba(255,255,255,0.3);line-height:1.5;text-align:center;
}
.site-header.light .mega-tagline{color:rgba(0,0,0,0.35)}

/* -- Nav right -- */
.nav-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
.nav-phone{
  font-size:13px;font-weight:400;
  color:rgba(255,255,255,0.65);
  transition:color 0.2s;display:none;
}
.nav-phone:hover{color:#fff}
.site-header.light .nav-phone{color:rgba(0,0,0,0.5)}
.site-header.light .nav-phone:hover{color:var(--dark)}
@media(min-width:1000px){.nav-phone{display:block}}
.nav-btn{
  background:var(--accent);color:#fff;
  padding:7px 16px;border-radius:980px;
  font-size:13px;font-weight:500;
  border:none;transition:opacity 0.2s;white-space:nowrap;
}
.nav-btn:hover{opacity:0.85}

/* -- Hamburger --
   On mobile: nav-right is hidden, hamburger is the only right-side element.
   We hide nav-btn at mobile so it never overlaps the hamburger.
----------------------------------------------------------- */
.nav-hamburger{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:36px;height:36px;padding:4px;
  background:none;border:none;cursor:pointer;flex-shrink:0;
}
.nav-hamburger span{
  display:block;height:1.5px;background:#fff;
  border-radius:2px;transition:transform 0.3s,opacity 0.3s,width 0.3s;
}
.nav-hamburger span:nth-child(2){width:75%}
.nav-hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-hamburger.open span:nth-child(2){opacity:0;width:0}
.nav-hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.site-header.light .nav-hamburger span{background:var(--dark)}

@media(max-width:860px){
  .nav-primary{display:none}
  .nav-right{display:none}      /* hide phone + Contact button on mobile */
  .nav-hamburger{display:flex}  /* show hamburger only */
}

/* -- Mobile drawer -- */
.nav-drawer{
  position:fixed;top:var(--nav-h);left:0;right:0;bottom:0;
  z-index:999;
  background:rgba(0,0,0,0.97);
  transform:translateX(100%);
  transition:transform 0.35s cubic-bezier(0.4,0,0.2,1);
  overflow-y:auto;padding:20px 16px;
  display:flex;flex-direction:column;gap:2px;
}
.nav-drawer.open{transform:translateX(0)}
.nav-drawer > a,
.nav-drawer .drawer-toggle{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;text-align:left;
  padding:13px 16px;border-radius:10px;
  font-size:16px;font-weight:400;color:rgba(255,255,255,0.85);
  background:none;border:none;cursor:pointer;
  transition:background 0.15s;
}
.nav-drawer > a:hover,
.nav-drawer .drawer-toggle:hover{background:rgba(255,255,255,0.07)}
.drawer-chevron{width:12px;height:12px;opacity:0.4;transition:transform 0.25s;flex-shrink:0}
.drawer-toggle[aria-expanded="true"] .drawer-chevron{transform:rotate(180deg)}
.drawer-sub{
  display:flex;flex-direction:column;gap:1px;
  padding:2px 0 6px 12px;
}
.drawer-sub a{
  font-size:14px;font-weight:300;
  color:rgba(255,255,255,0.5);
  padding:9px 16px;border-radius:8px;
  transition:background 0.15s,color 0.15s;
}
.drawer-sub a:hover{background:rgba(255,255,255,0.07);color:#fff}
.drawer-state{
  font-size:12px!important;font-weight:600!important;letter-spacing:0.05em;
  text-transform:uppercase;color:rgba(255,255,255,0.7)!important;
  padding-top:12px!important;
}
.drawer-state:first-child{padding-top:8px!important}
.drawer-all{
  margin-top:8px;color:var(--accent)!important;font-weight:500!important;
}
.drawer-divider{height:0.5px;background:rgba(255,255,255,0.08);margin:10px 0}
.drawer-cta{
  margin-top:6px;background:var(--accent)!important;
  color:#fff!important;justify-content:center!important;
  border-radius:980px!important;font-weight:500!important;
}

/* ================================
   HERO
================================ */
.hero{
  position:relative;
  height:100svh;min-height:680px;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  text-align:center;overflow:hidden;
}
.hero-bg{position:absolute;inset:0;z-index:0;isolation:isolate}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 55%;
  animation:heroZoom 18s ease-out forwards;
}
@keyframes heroZoom{
  from{transform:scale(1.08)}
  to{transform:scale(1)}
}
.hero-bg::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(0,0,0,0.3) 0%,rgba(0,0,0,0.2) 50%,rgba(0,0,0,0.82) 80%,rgba(0,0,0,1) 100%);
}
.hero-content{
  position:relative;z-index:1;
  padding:0 24px;max-width:920px;
  margin-top:calc(var(--nav-h) * -1);
}
.hero-tag{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,0.1);backdrop-filter:blur(10px);
  border:0.5px solid rgba(255,255,255,0.2);
  border-radius:980px;padding:5px 14px;
  font-size:11px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;
  color:rgba(255,255,255,0.8);margin-bottom:24px;
  opacity:0;animation:up 0.7s 0.2s var(--ease) forwards;
}
.hero-tag::before{content:'';width:6px;height:6px;border-radius:50%;background:#34c759;flex-shrink:0}
.hero-h1{
  font-size:clamp(48px,8vw,92px);font-weight:600;
  letter-spacing:-0.04em;line-height:1.0;color:#fff;
  margin-bottom:22px;
  opacity:0;animation:up 0.8s 0.4s var(--ease) forwards;
}
.hero-h1 .dim{color:rgba(255,255,255,0.38)}
.hero-p{
  font-size:clamp(16px,1.8vw,21px);font-weight:300;
  color:rgba(255,255,255,0.68);line-height:1.55;
  max-width:52ch;margin:0 auto 36px;
  opacity:0;animation:up 0.8s 0.6s var(--ease) forwards;
}
.hero-btns{
  display:flex;align-items:center;justify-content:center;
  gap:12px;flex-wrap:wrap;
  opacity:0;animation:up 0.8s 0.8s var(--ease) forwards;
}
.btn-primary{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--accent);color:#fff;
  padding:13px 26px;border-radius:980px;
  font-size:15px;font-weight:500;border:none;
  transition:opacity 0.2s,transform 0.2s;
}
.btn-primary:hover{opacity:0.85;transform:scale(1.02)}
.btn-secondary{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(255,255,255,0.1);color:#fff;
  padding:13px 26px;border-radius:980px;
  font-size:15px;font-weight:400;
  backdrop-filter:blur(10px);
  border:0.5px solid rgba(255,255,255,0.18);
  transition:background 0.2s;
}
.btn-secondary:hover{background:rgba(255,255,255,0.18)}
.hero-stats{
  position:absolute;bottom:0;left:0;right:0;z-index:1;
  display:grid;grid-template-columns:repeat(4,1fr);
  background:rgba(0,0,0,0.55);backdrop-filter:blur(20px);
  border-top:0.5px solid rgba(255,255,255,0.08);
  opacity:0;animation:up 0.8s 1.1s var(--ease) forwards;
}
.hs{
  padding:22px 20px;text-align:center;
  border-right:0.5px solid rgba(255,255,255,0.06);
}
.hs:last-child{border-right:none}
.hs-n{font-size:clamp(22px,3vw,32px);font-weight:600;letter-spacing:-0.03em;color:#fff;line-height:1}
.hs-n b{color:var(--accent)}
.hs-l{font-size:11px;font-weight:400;color:rgba(255,255,255,0.45);margin-top:4px;letter-spacing:0.02em}

/* ================================
   SHARED LAYOUT
================================ */
.sec-label{
  display:flex;align-items:center;gap:8px;
  font-size:11px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--mid);margin-bottom:14px;
}
.sec-label::before{content:'';width:18px;height:1px;background:currentColor}
.sec-label.white{color:rgba(255,255,255,0.35)}
.sec-label.white::before{background:rgba(255,255,255,0.35)}
.sec-h2{
  font-size:clamp(34px,4.5vw,58px);font-weight:600;
  letter-spacing:-0.03em;line-height:1.05;
  margin-bottom:20px;
}
.sec-p{
  font-size:17px;font-weight:300;line-height:1.72;
  color:#6e6e73;max-width:46ch;
}
.sec-p.white{color:rgba(255,255,255,0.48)}
.arrow-link{
  display:inline-flex;align-items:center;gap:6px;
  font-size:15px;font-weight:500;color:var(--accent);
  transition:gap 0.2s;
}
.arrow-link svg{transition:transform 0.2s}
.arrow-link:hover{gap:10px}
.arrow-link:hover svg{transform:translateX(2px)}

/* ================================
   ABOUT SPLIT
================================ */
.about-split{
  display:grid;grid-template-columns:1fr 1fr;
  min-height:75vh;
}
.about-img{
  position:relative;overflow:hidden;
}
.about-img img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transform:scale(1.06);
  transition:transform 1.2s cubic-bezier(0.25,0.1,0.25,1);
}
.about-img.in-view img{
  transform:scale(1);
}
.about-body{
  background:var(--off);color:var(--dark);
  display:flex;flex-direction:column;justify-content:center;
  padding:80px 7vw;
}
.about-body .sec-h2{color:var(--dark);margin-bottom:20px}
.about-body .sec-p{margin-bottom:32px}

/* ================================
   SERVICES &mdash; three full cards
================================ */
.services-intro{
  background:#000;padding:100px 5vw 60px;text-align:center;
}
.services-intro .sec-h2{color:#fff;margin-bottom:16px}
.services-intro .sec-p{color:rgba(255,255,255,0.48);margin:0 auto 0}

.services-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  background:#000;padding:0 5vw 100px;gap:20px;
}
.svc-card{
  position:relative;border-radius:16px;overflow:hidden;
  min-height:520px;cursor:pointer;
  border:0.5px solid rgba(255,255,255,0.08);
}
.svc-card img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:brightness(0.45);
  transition:filter 0.5s,transform 0.6s var(--ease);
}
.svc-card:hover img{filter:brightness(0.35);transform:scale(1.04)}
.svc-body{
  position:absolute;inset:0;padding:40px 36px;
  display:flex;flex-direction:column;justify-content:flex-end;
  background:linear-gradient(to top,rgba(0,0,0,0.9) 0%,rgba(0,0,0,0.3) 55%,transparent 100%);
}
.svc-num{
  position:absolute;top:32px;left:36px;
  font-size:11px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;
  color:rgba(255,255,255,0.3);
}
.svc-icon{
  width:48px;height:48px;border-radius:12px;
  background:rgba(0,102,204,0.25);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:20px;
  transition:background 0.3s;
}
.svc-card:hover .svc-icon{background:rgba(0,102,204,0.45)}
.svc-title{
  font-size:clamp(22px,2.2vw,28px);font-weight:600;
  letter-spacing:-0.02em;color:#fff;margin-bottom:12px;line-height:1.1;
}
.svc-desc{
  font-size:14px;font-weight:300;line-height:1.65;
  color:rgba(255,255,255,0.55);margin-bottom:24px;
  max-width:36ch;
}
.svc-link{
  display:inline-flex;align-items:center;gap:6px;
  font-size:13px;font-weight:500;color:rgba(255,255,255,0.7);
  opacity:0;transform:translateY(6px);
  transition:opacity 0.3s,transform 0.3s,color 0.2s;
}
.svc-card:hover .svc-link{opacity:1;transform:translateY(0)}
.svc-link:hover{color:#fff}

/* ================================
   PROPERTIES GRID
================================ */
.props-sec{background:var(--off);padding:100px 5vw}
.props-header{
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:48px;
}
.props-header .sec-h2{color:var(--dark)}
.pgrid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:400px 280px;
  gap:4px;border-radius:16px;overflow:hidden;
}
.pc{position:relative;overflow:hidden;cursor:pointer}
.pc:nth-child(1){grid-row:1/3}
.pc img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:brightness(0.8);
  transition:transform 0.7s var(--ease),filter 0.4s;
}
.pc:hover img{transform:scale(1.06);filter:brightness(0.6)}
.pc-info{
  position:absolute;inset:0;padding:24px;
  display:flex;flex-direction:column;justify-content:flex-end;
  background:linear-gradient(to top,rgba(0,0,0,0.72) 0%,transparent 50%);
}
.pc-tag{font-size:10px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.45);margin-bottom:5px}
.pc-name{font-size:clamp(18px,2vw,26px);font-weight:600;letter-spacing:-0.02em;color:#fff;line-height:1.1}
.pc-cta{
  display:inline-flex;align-items:center;gap:4px;
  font-size:12px;color:rgba(255,255,255,0.6);margin-top:8px;
  opacity:0;transform:translateY(6px);
  transition:opacity 0.3s,transform 0.3s;
}
.pc:hover .pc-cta{opacity:1;transform:translateY(0)}

/* ================================
   STATS BAND
================================ */
.stats-band{
  background:#000;
  display:grid;grid-template-columns:repeat(4,1fr);
  border-bottom:0.5px solid rgba(255,255,255,0.06);
}
.sb{
  padding:72px 40px;text-align:center;
  border-right:0.5px solid rgba(255,255,255,0.06);
}
.sb:last-child{border-right:none}
.sb-n{
  font-size:clamp(42px,5.5vw,72px);font-weight:600;
  letter-spacing:-0.04em;color:#fff;line-height:1;margin-bottom:8px;
}
.sb-n b{color:var(--accent)}
.sb-l{font-size:13px;font-weight:400;color:var(--mid)}
.hs-n b{color:var(--accent)}

/* ================================
   AREAS SERVED
================================ */
.areas{background:var(--off);padding:80px 5vw;text-align:center}
.areas .sec-h2{color:var(--dark);margin-bottom:12px}
.areas .sec-p{color:var(--mid);margin:0 auto 48px}
.area-chips{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;
  max-width:800px;margin:0 auto;
}
.chip{
  background:#fff;border:0.5px solid rgba(0,0,0,0.1);
  border-radius:980px;padding:9px 20px;
  font-size:14px;font-weight:400;color:var(--dark);
  transition:background 0.2s,border-color 0.2s;
}
.chip:hover{background:var(--accent);color:#fff;border-color:var(--accent)}

/* ================================
   CONTACT
================================ */
.contact-sec{
  min-height:90vh;
  display:grid;grid-template-columns:1fr 1fr;
}
.contact-vis{position:relative;overflow:hidden}
.contact-vis img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.contact-vis::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,rgba(0,0,0,0.35) 0%,transparent 70%)}
.contact-pane{
  background:#000;display:flex;flex-direction:column;
  justify-content:center;padding:80px 7vw;
}
.contact-pane .sec-h2{color:#fff;margin-bottom:8px}
.contact-pane .sec-label{margin-bottom:14px}
.contact-sub{font-size:16px;font-weight:300;color:rgba(255,255,255,0.45);margin-bottom:40px}
.form{display:flex;flex-direction:column;gap:12px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field label{
  display:block;font-size:11px;font-weight:500;
  letter-spacing:0.09em;text-transform:uppercase;
  color:rgba(255,255,255,0.3);margin-bottom:6px;
}
.field input,.field select,.field textarea{
  width:100%;
  background:rgba(255,255,255,0.05);
  border:0.5px solid rgba(255,255,255,0.1);
  border-radius:10px;padding:11px 14px;
  font-size:15px;color:#fff;font-family:inherit;
  outline:none;-webkit-appearance:none;
  transition:border-color 0.2s,background 0.2s;
}
.field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,0.2)}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:rgba(0,102,204,0.55);background:rgba(255,255,255,0.07);
}
.field select{color:rgba(255,255,255,0.38)}
.field select option{background:#111;color:#fff}
.field textarea{resize:none}
.form-submit{
  width:100%;background:var(--accent);color:#fff;border:none;
  border-radius:10px;padding:13px;font-size:15px;font-weight:500;
  font-family:inherit;transition:opacity 0.2s,transform 0.15s;margin-top:4px;
}
.form-submit:hover{opacity:0.87}
.form-submit:active{transform:scale(0.98)}
.cinfo{
  display:flex;flex-wrap:wrap;gap:20px;
  margin-top:32px;padding-top:28px;
  border-top:0.5px solid rgba(255,255,255,0.07);
}
.ci{display:flex;align-items:center;gap:7px}
.ci a{font-size:13px;color:rgba(255,255,255,0.38);transition:color 0.2s}
.ci a:hover{color:#fff}
.ci svg{opacity:0.28;flex-shrink:0}

/* ================================
   CAREERS
================================ */
.careers-sec{
  position:relative;min-height:62vh;overflow:hidden;
  display:flex;align-items:center;justify-content:center;text-align:center;
}
.careers-bg{position:absolute;inset:0}
.careers-bg img{width:100%;height:100%;object-fit:cover;filter:brightness(0.28);transform:scale(1.05)}
.careers-body{position:relative;z-index:1;padding:80px 5vw;max-width:660px}
.careers-body .sec-label{justify-content:center;color:rgba(255,255,255,0.3);margin-bottom:18px}
.careers-body .sec-label::before{display:none}
.careers-h2{
  font-size:clamp(38px,5.5vw,66px);font-weight:600;
  letter-spacing:-0.03em;line-height:1.05;color:#fff;margin-bottom:18px;
}
.careers-p{
  font-size:18px;font-weight:300;color:rgba(255,255,255,0.5);
  line-height:1.6;margin-bottom:32px;max-width:42ch;margin-left:auto;margin-right:auto;
}

/* ================================
   FAQ
================================ */
.faq{background:var(--off);padding:100px 5vw}
.faq-inner{max-width:760px;margin:0 auto}
.faq .sec-h2{color:var(--dark);margin-bottom:8px}
.faq-sub{font-size:17px;font-weight:300;color:var(--mid);margin-bottom:48px}
.faq-item{
  border-top:0.5px solid rgba(0,0,0,0.1);
  padding:22px 0;
}
.faq-item:last-child{border-bottom:0.5px solid rgba(0,0,0,0.1)}
.faq-q{
  display:flex;justify-content:space-between;align-items:start;gap:16px;
  font-size:16px;font-weight:500;color:var(--dark);cursor:pointer;
  background:none;border:none;width:100%;text-align:left;padding:0;
}
.faq-icon{
  width:22px;height:22px;border-radius:50%;
  background:rgba(0,0,0,0.07);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;margin-top:1px;
  transition:transform 0.25s,background 0.2s;
}
.faq-item.open .faq-icon{transform:rotate(45deg);background:var(--accent)}
.faq-item.open .faq-icon svg{stroke:#fff}
.faq-a{
  font-size:15px;font-weight:300;line-height:1.72;color:#6e6e73;
  max-height:0;overflow:hidden;
  transition:max-height 0.35s var(--ease),padding 0.35s;
}
.faq-item.open .faq-a{max-height:200px;padding-top:14px}

/* ================================
   FOOTER
================================ */
footer{
  background:#000;
  border-top:0.5px solid rgba(255,255,255,0.07);
  padding:80px 5vw 40px;
}

/* -- Top grid: brand col + 3 nav cols -- */
.footer-brand{}
.fb-desc{
  font-size:14px;font-weight:300;line-height:1.65;
  color:rgba(255,255,255,0.35);max-width:34ch;margin-bottom:20px;
}
.fb-contact a{display:block;font-size:14px;color:rgba(255,255,255,0.3);margin-bottom:6px;transition:color 0.2s}
.fb-contact a:hover{color:#fff}
.fb-social{display:flex;gap:10px;margin-top:16px}
.fb-social a{
  display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:8px;
  color:rgba(255,255,255,0.35);
  border:0.5px solid rgba(255,255,255,0.1);
  transition:color 0.2s,border-color 0.2s,background 0.2s;
}
.fb-social a:hover{color:#fff;border-color:rgba(255,255,255,0.3);background:rgba(255,255,255,0.07)}
.fc-title{
  font-size:11px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;
  color:rgba(255,255,255,0.2);margin-bottom:16px;
}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:10px}
.footer-col a{font-size:14px;color:rgba(255,255,255,0.35);transition:color 0.2s}
.footer-col a:hover{color:#fff}

/* -- Family of Companies row -- */
.footer-family{
  padding:44px 0 52px;
  margin-bottom:32px;
}
.footer-family-label{
  display:flex;align-items:center;gap:0;
  font-size:10px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;
  color:rgba(255,255,255,0.2);margin-bottom:36px;
  white-space:nowrap;
}
.footer-family-label::before,
.footer-family-label::after{
  content:'';flex:1;height:0.5px;
  background:rgba(255,255,255,0.1);
}
.footer-family-label::before{margin-right:20px}
.footer-family-label::after{margin-left:20px}
.footer-family-logos{
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:120px;
  flex-wrap:wrap;
}
.footer-family-logo{
  display:flex;align-items:center;justify-content:center;
  opacity:0.55;
  transition:opacity 0.25s;
  flex-shrink:0;
}
.footer-family-logo:hover{opacity:1}
/* Base: all logos 98px tall (115 * 0.85) */
.footer-family-logo img{
  height:78px;width:auto;
  object-fit:contain;
}
/* Dwell: 69px */
.footer-family-logo.logo-dwell img{height:69px}
/* WiFi: 70px */
.footer-family-logo.logo-wifi img{height:70px}

/* Single divider sits between grid and family row */
.footer-grid{
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:48px;
  padding-bottom:56px;
  margin-bottom:0;
}

/* -- Bottom bar -- */
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
}
.footer-copy{font-size:12px;color:rgba(255,255,255,0.18)}
.footer-legal{display:flex;gap:18px;flex-wrap:wrap}
.footer-legal a{font-size:12px;color:rgba(255,255,255,0.18);transition:color 0.2s}
.footer-legal a:hover{color:rgba(255,255,255,0.5)}

/* Homepage child companies strip */
.companies-strip{background:var(--off);border-top:0.5px solid rgba(0,0,0,0.06);border-bottom:0.5px solid rgba(0,0,0,0.06);padding:28px 5vw}
.companies-strip-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;gap:32px;flex-wrap:wrap}
.companies-strip-label{font-size:10px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:#86868b;white-space:nowrap;flex-shrink:0}
.companies-strip-links{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.company-chip{
  display:inline-flex;align-items:center;gap:8px;
  background:#fff;border:0.5px solid rgba(0,0,0,0.08);border-radius:980px;
  padding:8px 16px;font-size:13px;font-weight:500;color:var(--dark);
  transition:border-color 0.2s,box-shadow 0.2s,color 0.2s;
  text-decoration:none;
}
.company-chip:hover{border-color:rgba(0,102,204,0.3);box-shadow:0 4px 16px rgba(0,0,0,0.08);color:var(--accent)}
.company-chip svg{opacity:0.45;flex-shrink:0;transition:opacity 0.2s}
.company-chip:hover svg{opacity:0.8}
.company-chip-desc{font-size:11px;font-weight:300;color:#86868b;margin-left:2px}

/* ================================
   ANIMATIONS & REVEALS
================================ */
@keyframes up{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
.rv{opacity:0;transform:translateY(36px);transition:opacity 0.85s var(--ease),transform 0.85s var(--ease)}
.rv.in{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}

/* ================================
   RESPONSIVE
================================ */
@media(max-width:1024px){
  .about-split,.contact-sec{grid-template-columns:1fr}
  .about-img{min-height:55vw;position:relative}
  .about-img img{position:absolute}
  .contact-vis{display:none}
  .services-grid{grid-template-columns:1fr 1fr}  .stats-band,.hero-stats{grid-template-columns:1fr 1fr}
  .sb:nth-child(2),.hs:nth-child(2){border-right:none}
  .pgrid{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .pc,.pc:nth-child(1){grid-row:auto;grid-column:auto;min-height:240px}
  .pc:nth-child(1){grid-column:1/-1;min-height:360px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
}
@media(max-width:640px){
  .services-grid{grid-template-columns:1fr;padding-bottom:60px}
  .hero-btns{flex-direction:column;align-items:stretch;max-width:280px;margin:0 auto}
  .hero-stats{grid-template-columns:1fr 1fr}
  .hs:nth-child(2){border-right:none}
  .stats-band{grid-template-columns:1fr 1fr}
  .sb{padding:44px 20px}
  .pgrid{grid-template-columns:1fr}
  .pc:nth-child(1){grid-column:auto}
  .props-header{flex-direction:column;align-items:flex-start;gap:16px}
  .footer-grid{grid-template-columns:1fr}
  .footer-family-logos{gap:32px}
  .form-row{grid-template-columns:1fr}
}