:root{
  --black:#000;
  --white:#fff;
  --text:#0f172a;
  --muted:#6b7280;
  --border:#e5e7eb;
  --orange:#f97316;
  --container:1200px;
  --line:24px;
  --section-pad-top:56px;
}

/* Fonts */
@font-face{
  font-family:"Aktiv Grotesk W04";
  src:url("fonts/AktivGroteskW04-XBold.woff2") format("woff2"),
      url("fonts/AktivGroteskW04-XBold.woff") format("woff");
  font-weight:800;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Open Sans";
  src:url("fonts/OpenSans-SemiBold.woff2") format("woff2"),
      url("fonts/OpenSans-SemiBold.woff") format("woff");
  font-weight:600;
  font-style:normal;
  font-display:swap;
}

/* Base */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:"Open Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:#f5f5f5;
  font-size:16px;font-weight:600;line-height:1.5;
}
.prose{max-width:900px;margin-left:auto;margin-right:auto;text-align:left}
.small{font-size:16px;color:var(--muted)}
.service-desc{font-size:16px;max-width:90%;margin:0 auto}
.text-xs{font-size:12px}
.text-sm{font-size:14px}

/* Desktop sizes */
@media(min-width:900px){
  body{font-size:18px;line-height:1.6}
  .small{font-size:18px;line-height:1.6}
  .service-desc{font-size:18px;line-height:1.6}
  .text-xs{font-size:16px}
  .text-sm{font-size:16px}
}

/* Headings/UI */
h1,h2,h3,h4{
  font-family:"Aktiv Grotesk W04",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-weight:800;text-transform:capitalize;
}
h1{font-size:36px}
h2{font-size:28px}
h3{font-size:24px}
h4{font-size:20px}
.btn,.btn-ghost{font-size:16px;font-family:"Open Sans";font-weight:600}
input,select,textarea,.nav a{font-family:"Open Sans";font-weight:600}
@media(min-width:900px){
  h1{font-size:44px}
  h2{font-size:36px}
  h3{font-size:28px}
  h4{font-size:24px}
}

/* Larger logo on desktop */
@media(min-width:900px){.header img{height:60px!important}}

/* Section headers (match Live Estimate) */
.hero .hero-copy h1,
#mission > h2,
#services > h2,
#funding > .max-w-7xl > h3,
#estimate > h3,
#process > .max-w-7xl > h3,
#testimonials > h3,
#gc > .max-w-7xl > h3,
.contact-wrap > h3{
  color:var(--orange);font-size:36px;line-height:1.1;text-align:center;
}
@media(min-width:900px){
  .hero .hero-copy h1,
  #mission > h2,
  #services > h2,
  #funding > .max-w-7xl > h3,
  #estimate > h3,
  #process > .max-w-7xl > h3,
  #testimonials > h3,
  #gc > .max-w-7xl > h3,
  .contact-wrap > h3{font-size:56px;}
}

/* Service “Why Choose …” titles */
.why-title{
  color:var(--orange);text-align:center;font-family:"Aktiv Grotesk W04";font-weight:800;text-transform:capitalize;
  font-size:36px;line-height:1.1;
}
@media(min-width:900px){.why-title{font-size:56px}}

/* Header spacing */
#mission > h2,
#services > h2,
#funding > .max-w-7xl > h3,
#estimate > h3,
#process > .max-w-7xl > h3,
#testimonials > h3,
#gc > .max-w-7xl > h3,
.contact-wrap > h3{
  margin-left:auto;margin-right:auto;
  margin-top:calc((2 * var(--line)) - var(--section-pad-top));
}

/* VERIFIED MEMBER styles */
.verified-wrap{margin-top:28px}
.verified-title{
  color:var(--orange);text-align:center;font-family:"Aktiv Grotesk W04";font-weight:800;text-transform:capitalize;
  font-size:18px;line-height:1.2;
}
.verified-logos{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:12px;flex-wrap:wrap}
.verified-logo{height:44px;width:auto;display:block;object-fit:contain}
.verified-logo--cca{height:72px}
@media(min-width:900px){
  .verified-title{font-size:26px}
  .verified-logo{height:56px}
  .verified-logo--cca{height:96px}
}

/* HERO */
.hero{color:#fff;background:#000}
.hero-video{position:relative;min-height:100svh;display:flex;align-items:center}
.hero-video-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pre{position:absolute;inset:0;background:#000;transition:opacity .4s}
.hero-inner{position:relative;z-index:1;width:100%}
.hero-copy{max-width:700px;margin:0 auto}
.hero-heading{
  font-size:36px;font-weight:800;line-height:1.1;text-align:center;margin:0 auto 12px auto;max-width:900px;font-family:"Aktiv Grotesk W04";
}
.hero-subline{ text-align:center;margin:0 auto;max-width:800px;font-size:20px;line-height:1.6;color:#e5e7eb; }
@media(min-width:900px){ .hero-heading{font-size:56px} .hero-subline{font-size:22px} }
.hero-video::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom, rgba(0,0,0,.35), rgba(0,0,0,.35))}

/* Services grid */
.service-grid{display:grid;gap:16px;grid-template-columns:repeat(4,1fr);align-items:start}
@media(max-width:1024px){.service-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.service-grid{grid-template-columns:1fr}}
.service-card{text-align:center}
.service-title{margin:10px 0 4px 0;font-size:20px;line-height:1.25;text-transform:capitalize}
@media(min-width:900px){.service-title{font-size:24px}}
.service-thumb{width:100%;aspect-ratio:4/5;border-radius:14px;overflow:hidden;background:#fcfafa;box-shadow:0 3px 8px rgba(0,0,0,.05)}
.service-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.service-card-link{display:block;color:inherit}
.service-card-link .service-thumb{transition:box-shadow .15s,transform .15s}
.service-card-link:hover .service-thumb{box-shadow:0 6px 16px rgba(0,0,0,.08);transform:translateY(-1px)}
.service-card-link:hover .service-title{text-decoration:underline}

/* Layout utils */
a{text-decoration:none;color:inherit}
.container{max-width:var(--container);margin:0 auto;padding:0 16px}
.hidden{display:none}
.grid{display:grid}
.gap-2{gap:8px}
.gap-3{gap:12px}
.gap-4{gap:16px}
.gap-6{gap:24px}
.gap-8{gap:32px}
.flex{display:flex}
.items-center{align-items:center}
.justify-between{justify-content:space-between}
.flex-wrap{flex-wrap:wrap}
.mx-auto{margin-left:auto;margin-right:auto}
.px-4{padding-left:16px;padding-right:16px}
.py-3{padding-top:12px;padding-bottom:12px}
.py-10{padding-top:40px;padding-bottom:40px}
.py-14{padding-top:56px;padding-bottom:56px}
.mt-1{margin-top:4px}
.mt-2{margin-top:8px}
.mt-4{margin-top:16px}
.mt-6{margin-top:24px}
.mt-8{margin-top:32px}
.text-2xl{font-size:24px}
.text-3xl{font-size:28px}
.text-4xl{font-size:36px}
.text-5xl{font-size:44px}
.font-bold{font-weight:800}
.font-semibold{font-weight:600}
.font-medium{font-weight:500}
.rounded-xl{border-radius:14px}
.border{border:1px solid var(--border)}
.border-t{border-top:1px solid var(--border)}
.shadow-sm{box-shadow:0 3px 8px rgba(0,0,0,.05)}
.cols-1{grid-template-columns:1fr}
@media(min-width:900px){
  .md-cols-2{grid-template-columns:1fr 1fr}
  .md-cols-3{grid-template-columns:repeat(3,1fr)}
}
.max-w-7xl{max-width:var(--container)}

/* Header/Footer */
.header{position:sticky;top:0;z-index:40;background:#000;color:#fff;border-bottom:1px solid rgba(255,255,255,.1)}
.footer{background:#000;color:#fff;border-top:1px solid rgba(255,255,255,.1)}

/* NAV (shared) */
.nav a{
  color:#fff;opacity:.9;margin-left:20px;padding:6px 8px;border-radius:10px;transition:.15s;font-size:18px;font-weight:600;
}
.nav a:hover,.nav a:focus{color:#fff;opacity:1;background:rgba(249,115,22,.15)}
.nav a.active{background:rgba(249,115,22,.25)}
@media(min-width:900px){.nav a{font-size:20px}}
.nav-toggle{
  display:inline-flex;align-items:center;gap:8px;color:#fff;background:transparent;border:1px solid rgba(255,255,255,.35);border-radius:10px;padding:6px 10px;font-weight:600;cursor:pointer
}
.nav{
  position:fixed;left:0;right:0;top:56px;background:#000;border-bottom:1px solid rgba(255,255,255,.15);overflow:hidden;max-height:0;opacity:0;transition:max-height .28s ease,opacity .28s ease;padding:0 12px
}
.nav.open{max-height:520px;opacity:1}
.nav a{display:block;margin:0;padding:12px;border-radius:8px}

/* Desktop nav layout */
@media(min-width:900px){
  .nav-toggle{display:none}
  .nav{position:static;max-height:none;opacity:1;overflow:visible;border-bottom:none;padding:0;display:flex;align-items:center}
  .nav a{display:inline-block;margin-left:20px;padding:6px 8px}
}

/* Services dropdown – desktop */
.has-sub{position:relative}
.submenu{
  list-style:none;margin:0;padding:8px;position:absolute;top:100%;left:0;background:#000;border:1px solid rgba(255,255,255,.15);border-radius:12px;min-width:260px;display:none;
  box-shadow:0 8px 18px rgba(0,0,0,.35);z-index:50
}
.submenu a{display:block;margin:0;padding:10px 12px;border-radius:8px}
.has-sub:hover .submenu{display:block}

/* Services submenu – mobile (stacked) */
@media(max-width:899px){
  .submenu{position:static;display:block;border:none;border-radius:0;box-shadow:none;padding:4px 0 10px 10px}
  .submenu a{padding:10px 12px;margin:0 0 2px 8px;background:transparent}
  .submenu a:hover{background:rgba(249,115,22,.15)}
}

/* Sections / Cards / Inputs */
.section{padding:56px 0;border-top:1px solid var(--border)}
.card{border:1px solid var(--border);border-radius:16px;padding:16px;background:#fcfafa;box-shadow:0 3px 8px rgba(0,0,0,.03)}
.input,select,textarea{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:12px;font-size:16px}
.input-lg{height:52px;font-size:18px;font-weight:600}
.addon{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:12px;padding:12px;background:#f7f7f5}
.range{font-weight:800;font-size:24px;color:var(--orange)}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--orange);color:#000;border-radius:14px;padding:12px 18px;border:1px solid rgba(0,0,0,.2);font-weight:700;cursor:pointer}
.btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35)}

/* Contact page */
.contact-wrap{max-width:var(--container);margin:0 auto;padding:0 16px}

/* Process */
.process-grid{align-items:center}
.process-media{width:100%}
.process-img{display:block;width:100%;height:auto;border-radius:14px;object-fit:cover;box-shadow:0 4px 12px rgba(0,0,0,.06)}
.process-steps{list-style:none;margin:0;padding:0}
.process-steps li{display:flex;align-items:flex-start;gap:12px;font-size:16px;line-height:1.6;color:#374151;margin:8px 0}
.process-steps .num{flex:0 0 auto;display:inline-block;width:28px;text-align:right;font-weight:800;color:var(--orange)}
@media(min-width:900px){.process-steps li{font-size:18px}.process-steps .num{width:32px}}
