:root{
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.6rem, 1.2rem + 1.6vw, 2.6rem);
  --text-hero: clamp(2.75rem, 1rem + 6vw, 6.5rem);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;
  --bg: oklch(0.965 0.008 75);
  --surface: oklch(0.99 0.004 75);
  --stone: oklch(0.92 0.012 70);
  --ink: oklch(0.2 0.012 60);
  --ink-2: oklch(0.42 0.012 60);
  --dark: oklch(0.19 0.01 60);
  --dark-2: oklch(0.25 0.012 60);
  --line: oklch(0.86 0.012 70);
  --accent: oklch(0.6 0.165 42);       /* Carolina red clay */
  --accent-hover: oklch(0.54 0.165 40);
  --accent-ink: oklch(0.5 0.15 40);
  --radius: 6px;
  --font-display: 'Archivo', 'Arial Narrow', sans-serif;
  --font-body: 'Public Sans', 'Helvetica Neue', sans-serif;
  --pad: clamp(var(--space-16), 9vw, var(--space-24));
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--font-display);line-height:1.02;margin:0;text-wrap:balance}
h2{font-size:var(--text-xl);font-weight:800;font-stretch:80%;letter-spacing:-0.01em;text-transform:uppercase}
h3{font-size:var(--text-lg);font-weight:700;font-stretch:90%;line-height:1.15}
p{margin:0 0 var(--space-4)}
.wrap{width:min(1200px,100% - 2*clamp(var(--space-5),4vw,var(--space-10)));margin-inline:auto}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:#fff;padding:var(--space-2) var(--space-4);z-index:100}
.skip:focus{left:var(--space-4)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

.eyebrow{font-size:var(--text-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:oklch(0.82 0.09 55);margin-bottom:var(--space-4)}
.eyebrow-dark{color:var(--accent-ink)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-body);font-weight:700;font-size:var(--text-sm);text-decoration:none;border-radius:var(--radius);padding:var(--space-3) var(--space-5);border:2px solid transparent;cursor:pointer;transition:background .18s,border-color .18s,color .18s}
.btn-lg{padding:var(--space-4) var(--space-6);font-size:var(--text-base)}
.btn-accent{background:var(--accent);color:#fff}
.btn-accent:hover{background:var(--accent-hover)}
.btn-ghost{border-color:rgba(255,255,255,.7);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:var(--dark);color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
.header-inner{display:flex;align-items:center;gap:var(--space-8);min-height:72px}
.brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;line-height:1;color:inherit}
.brand-mark{display:block;width:44px;height:44px;flex:none}
.brand-text{display:flex;flex-direction:column}
.footer-logo{display:block;width:52px;height:52px;margin-bottom:var(--space-3)}
.brand-name{font-family:var(--font-display);font-weight:900;font-stretch:115%;font-size:1.6rem;letter-spacing:.04em;margin:0}
.brand-sub{font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:oklch(0.82 0.09 55);margin:2px 0 0}
.nav{display:flex;gap:var(--space-6);margin-left:auto}
.nav a{font-size:var(--text-sm);font-weight:600;text-decoration:none;color:rgba(255,255,255,.82)}
.nav a:hover{color:#fff}
.menu-btn{display:none}
.mobile-nav{display:none}

/* hero */
.hero{position:relative;min-height:min(88vh,820px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--dark)}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,14,10,.85) 0%,rgba(18,14,10,.55) 45%,rgba(18,14,10,.1) 80%),linear-gradient(0deg,rgba(18,14,10,.6) 0%,transparent 40%)}
.hero-content{position:relative;padding-block:var(--space-24) var(--space-16)}
.hero h1{font-size:var(--text-hero);font-weight:900;font-stretch:72%;text-transform:uppercase;letter-spacing:-0.01em;line-height:.92;margin-bottom:var(--space-6)}
.hero h1 span{color:oklch(0.72 0.15 48)}
.hero-lede{max-width:44ch;font-size:var(--text-lg);line-height:1.45;color:rgba(255,255,255,.9);margin-bottom:var(--space-8)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:var(--space-3)}

/* proof */
.proof{background:var(--accent);color:#fff}
.proof-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.proof-grid div{padding:var(--space-6) var(--space-5);border-left:1px solid rgba(255,255,255,.25)}
.proof-grid div:first-child{border-left:0;padding-left:0}
.proof strong{display:block;font-family:var(--font-display);font-size:var(--text-lg);font-weight:800;font-stretch:85%;text-transform:uppercase}
.proof span{font-size:var(--text-xs);color:rgba(255,255,255,.88)}

/* sections */
.section{padding-block:var(--pad)}
.section-head{max-width:720px;margin-bottom:var(--space-12)}
.section-head h2{margin-bottom:var(--space-4)}
.section-lede{color:var(--ink-2);max-width:60ch}
.section-lede.light,.light{color:rgba(255,255,255,.8)}
.feature-row{display:grid;grid-template-columns:1.25fr 1fr;gap:var(--space-12);align-items:center;margin-bottom:var(--space-16)}
.feature-img,.materials-img,.about-img{margin:0;border-radius:var(--radius);overflow:hidden}
.feature-img img,.materials-img img,.about-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.tag{display:inline-block;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;background:var(--stone);padding:var(--space-1) var(--space-3);border-radius:999px;color:var(--accent-ink)}
.feature-copy h3{font-size:var(--text-xl);font-weight:800;font-stretch:80%;text-transform:uppercase;margin-bottom:var(--space-4)}
.feature-copy p{color:var(--ink-2)}
.text-link{font-weight:700;color:var(--accent-ink);text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:2px}
.service-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}
.service-grid li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.service-grid img{aspect-ratio:3/2;object-fit:cover;width:100%}
.service-grid li>div{padding:var(--space-6)}
.service-grid h3{margin-bottom:var(--space-3)}
.service-grid p{color:var(--ink-2);font-size:var(--text-sm);margin:0}

.materials{background:var(--dark);color:#fff}
.materials-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--space-16);align-items:center}
.materials h2{margin-bottom:var(--space-4)}
.material-list{list-style:none;margin:var(--space-8) 0;padding:0;border-top:1px solid rgba(255,255,255,.14)}
.material-list li{display:flex;justify-content:space-between;gap:var(--space-4);align-items:baseline;padding:var(--space-4) 0;border-bottom:1px solid rgba(255,255,255,.14)}
.material-list span{font-family:var(--font-display);font-weight:700;font-stretch:90%;font-size:var(--text-lg)}
.material-list small{font-size:var(--text-xs);color:rgba(255,255,255,.65);text-align:right}

.about-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:var(--space-16);align-items:start}
.about-grid h2{margin-bottom:var(--space-6)}
.about-grid>div>p{color:var(--ink-2);max-width:62ch}
.about-img img{aspect-ratio:4/5}
.segments{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6) var(--space-8);margin-top:var(--space-10);padding-top:var(--space-8);border-top:2px solid var(--ink)}
.segments h3{font-size:var(--text-base);text-transform:uppercase;letter-spacing:.02em;margin-bottom:var(--space-1)}
.segments p{font-size:var(--text-sm);color:var(--ink-2);margin:0}

.area{background:var(--stone)}
.area-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--space-12);align-items:stretch}
.area h2{margin-bottom:var(--space-6)}
.towns{list-style:none;padding:0;margin:0 0 var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-2)}
.towns li{background:var(--surface);border:1px solid var(--line);padding:var(--space-2) var(--space-4);border-radius:999px;font-weight:600;font-size:var(--text-sm)}
.muted{color:var(--ink-2);font-size:var(--text-sm)}
.locations{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);margin-top:var(--space-8)}
.locations h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--accent-ink);margin-bottom:var(--space-2)}
.locations p{margin:0}
.map{border-radius:var(--radius);overflow:hidden;min-height:380px;background:var(--line)}
.map iframe{width:100%;height:100%;min-height:380px;border:0;display:block}

.quote{background:var(--dark-2);color:#fff}
.quote-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:var(--space-16);align-items:start}
.quote h2{margin-bottom:var(--space-4)}
.big-phone{display:inline-block;font-family:var(--font-display);font-weight:900;font-stretch:80%;font-size:var(--text-xl);color:oklch(0.75 0.14 50);text-decoration:none;margin:var(--space-2) 0 var(--space-6)}
.checks{list-style:none;padding:0;margin:0}
.checks li{padding-left:var(--space-8);position:relative;margin-bottom:var(--space-3);color:rgba(255,255,255,.88)}
.checks li::before{content:"";position:absolute;left:0;top:.45em;width:14px;height:8px;border-left:3px solid var(--accent);border-bottom:3px solid var(--accent);transform:rotate(-45deg)}
.quote-form{background:var(--surface);color:var(--ink);border-radius:var(--radius);padding:clamp(var(--space-6),4vw,var(--space-10));display:grid;gap:var(--space-5)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.quote-form label{display:grid;gap:var(--space-2);font-size:var(--text-sm);font-weight:600}
.quote-form input,.quote-form select,.quote-form textarea{font:inherit;font-weight:400;font-size:var(--text-base);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--ink);width:100%}
.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}
.quote-form [aria-invalid="true"]{border-color:oklch(0.55 0.2 27)}
.form-error{color:oklch(0.5 0.2 27);font-size:var(--text-sm);margin:0}
.form-success{border-left:4px solid var(--accent);padding:var(--space-4);background:var(--bg)}
.form-success h3{margin-bottom:var(--space-2)}
.form-success p{margin:0}
.form-success a{color:var(--accent-ink);font-weight:700}

.site-footer{background:var(--dark);color:#fff;padding-top:var(--space-16)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--space-10);padding-bottom:var(--space-12)}
.site-footer h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.1em;color:oklch(0.82 0.09 55);margin-bottom:var(--space-3)}
.site-footer p{font-size:var(--text-sm);color:rgba(255,255,255,.8)}
.site-footer a{text-decoration:none}
.muted-light{margin-top:var(--space-4)}
.footer-base{border-top:1px solid rgba(255,255,255,.1);padding-block:var(--space-6)}
.footer-base p{margin:0;font-size:var(--text-xs);color:rgba(255,255,255,.55)}
.mobile-call{display:none}

@media (max-width: 960px){
  .nav,.header-call{display:none}
  .menu-btn{display:grid;gap:6px;margin-left:auto;background:none;border:0;padding:var(--space-3);cursor:pointer}
  .menu-btn span{display:block;width:24px;height:2px;background:#fff;transition:transform .2s}
  .menu-btn[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}
  .menu-btn[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}
  .mobile-nav:not([hidden]){display:grid;padding:var(--space-2) clamp(var(--space-5),4vw,var(--space-10)) var(--space-6)}
  .mobile-nav a{padding:var(--space-3) 0;border-bottom:1px solid rgba(255,255,255,.1);text-decoration:none;font-weight:600}
  .proof-grid{grid-template-columns:1fr 1fr}
  .proof-grid div:nth-child(3){border-left:0;padding-left:0}
  .proof-grid div:nth-child(2){padding-right:0}
  .proof-grid div:nth-child(n+3){border-top:1px solid rgba(255,255,255,.25)}
  .feature-row,.materials-grid,.about-grid,.area-grid,.quote-grid{grid-template-columns:1fr;gap:var(--space-10)}
  .service-grid{grid-template-columns:1fr 1fr}
  .about-img img{aspect-ratio:4/3}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid>div:first-child{grid-column:1/-1}
}
@media (max-width: 600px){
  .hero{min-height:auto}
  .hero-content{padding-block:var(--space-24) var(--space-12)}
  .hero-shade{background:linear-gradient(0deg,rgba(18,14,10,.92) 0%,rgba(18,14,10,.6) 60%,rgba(18,14,10,.35) 100%)}
  .hero-ctas .btn{flex:1 1 100%}
  .proof-grid div{padding:var(--space-4) var(--space-3)}
  .service-grid,.segments,.field-row,.locations{grid-template-columns:1fr}
  .material-list li{flex-direction:column;gap:var(--space-1)}
  .material-list small{text-align:left}
  .footer-grid{grid-template-columns:1fr}
  .mobile-call{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--accent);color:#fff;text-align:center;font-weight:700;text-decoration:none;padding:var(--space-4);font-size:var(--text-sm)}
  body{padding-bottom:56px}
}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important}}
.site-footer .brand-name{font-size:1.6rem;color:#fff;margin:0}
.site-footer .brand-sub{font-size:.72rem;color:oklch(0.82 0.09 55);margin:2px 0 0}
/* process */
.process{background:var(--surface);border-top:1px solid var(--line)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);counter-reset:s}
.steps li{border-top:3px solid var(--ink);padding-top:var(--space-5)}
.step-n{display:block;font-family:var(--font-display);font-weight:900;font-stretch:75%;font-size:var(--text-xl);color:var(--accent-ink);line-height:1;margin-bottom:var(--space-3)}
.steps h3{margin-bottom:var(--space-2)}
.steps p{color:var(--ink-2);font-size:var(--text-sm);margin:0}
/* faq */
.faq-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:var(--space-16);align-items:start}
.faq h2{margin-bottom:var(--space-4)}
.faq-list{border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) 0;font-weight:700;font-size:var(--text-base)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";font-family:var(--font-display);font-size:1.5rem;line-height:1;color:var(--accent-ink);transition:transform .2s}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list details p{color:var(--ink-2);margin:0;padding:0 var(--space-8) var(--space-5) 0;max-width:65ch}
.footer-link{color:oklch(0.82 0.09 55)!important;font-weight:600}
.nav a[aria-current="page"]{color:#fff;box-shadow:inset 0 -2px 0 var(--accent)}
/* contractors */
.page-hero{position:relative;min-height:min(70vh,640px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--dark)}
.page-hero h1{font-size:var(--text-hero);font-weight:900;font-stretch:72%;text-transform:uppercase;line-height:.92;max-width:14ch;margin-bottom:var(--space-6)}
.cap-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16)}
.cap-grid h2{margin-bottom:var(--space-4)}
.cert-list{list-style:none;padding:0;margin:var(--space-8) 0 0;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.cert-list li{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);padding:var(--space-4) var(--space-5)}
.cert-list strong{display:block;font-family:var(--font-display);font-stretch:85%;font-size:var(--text-lg);text-transform:uppercase}
.cert-list span{font-size:var(--text-sm);color:var(--ink-2)}
.cap-list{list-style:none;padding:0;margin:var(--space-6) 0 0;border-top:1px solid var(--line)}
.cap-list li{padding:var(--space-3) 0 var(--space-3) var(--space-8);border-bottom:1px solid var(--line);position:relative}
.cap-list li::before{content:"";position:absolute;left:0;top:1.05em;width:14px;height:8px;border-left:3px solid var(--accent);border-bottom:3px solid var(--accent);transform:rotate(-45deg)}
.facts-band{background:var(--dark);color:#fff}
.facts-band h2{margin-bottom:var(--space-8)}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0;border-top:1px solid rgba(255,255,255,.15)}
.facts div{padding:var(--space-5) var(--space-5) var(--space-5) 0;border-bottom:1px solid rgba(255,255,255,.15)}
.facts dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:oklch(0.82 0.09 55);margin-bottom:var(--space-2);font-weight:700}
.facts dd{margin:0;font-weight:600}
.split-cta{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12);align-items:center}
.split-cta h2{margin-bottom:var(--space-4)}
.split-cta .hero-ctas{align-items:center;gap:var(--space-6)}
@media (max-width:960px){
  .steps{grid-template-columns:1fr 1fr}
  .faq-grid,.cap-grid,.split-cta{grid-template-columns:1fr;gap:var(--space-10)}
  .facts{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .steps,.cert-list,.facts{grid-template-columns:1fr}
  .page-hero .hero-content{padding-block:var(--space-24) var(--space-12)}
}

/* Footer base + legal page */
.footer-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-3)}
.footer-base a{color:rgba(255,255,255,.75)}
.footer-base a:hover{color:#fff;text-decoration:underline}
.legal-wrap{max-width:760px}
.legal h1{font-size:var(--text-xl);font-weight:900;font-stretch:80%;text-transform:uppercase;margin-bottom:var(--space-3)}
.legal h2{font-size:var(--text-lg);margin:var(--space-10) 0 var(--space-3)}
.legal-updated{color:var(--ink-2);font-size:var(--text-sm);margin-bottom:var(--space-8)}
.legal p,.legal li{color:var(--ink-2);max-width:68ch}
.legal ul{padding-left:var(--space-6);margin:0 0 var(--space-4)}
.legal li{margin-bottom:var(--space-2)}

/* Hide the "Powered by Netlify" badge injected by the hosting platform */
#nl-badge-frame,
#nl-hud-frame {
  display: none !important;
}
