/* Cunha Pavers — site styles
   Layout concept: a light, concrete-gray site cut by the logo's roof chevron;
   bold condensed signage type over job photos, with a "what's under the patio" cross-section as the signature. */
@font-face{font-family:"Big Shoulders Display";src:url("../fonts/big-shoulders-display-latin-700-normal.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Big Shoulders Display";src:url("../fonts/big-shoulders-display-latin-800-normal.woff2") format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/public-sans-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-display:swap}

:root{
  --red:#D60000;          /* buttons + text accents (AA on white) */
  --red-logo:#F80101;     /* pure logo red, graphics only */
  --red-dark:#A80000;
  --ink:#141414;
  --ink-2:#2A2C2D;
  --muted:#596165;
  --concrete:#EDEFEF;
  --concrete-2:#E1E4E4;
  --line:#CDD2D3;
  --paper:#FFFFFF;
  --sand:#D9CBB0;
  --base:#9C9A94;
  --soil:#6E5A45;
  --font-display:"Big Shoulders Display","Arial Narrow","Roboto Condensed",Impact,sans-serif;
  --font-body:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --step--1:clamp(.82rem,.8rem + .1vw,.9rem);
  --step-0:clamp(1rem,.96rem + .2vw,1.08rem);
  --step-1:clamp(1.2rem,1.1rem + .4vw,1.4rem);
  --step-2:clamp(1.6rem,1.3rem + 1.1vw,2.2rem);
  --step-3:clamp(2.1rem,1.6rem + 2vw,3.2rem);
  --step-4:clamp(2.7rem,1.9rem + 3.6vw,4.9rem);
  --radius:4px;
  --wrap:1200px;
  --gutter-l:max(16px,env(safe-area-inset-left,0px));
  --gutter-r:max(16px,env(safe-area-inset-right,0px));
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);line-height:1.6}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--paper)}
img{max-width:100%;height:auto;display:block}
a{color:var(--red)}
a:hover{color:var(--red-dark)}
:focus-visible{outline:3px solid var(--red-logo);outline-offset:2px}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;line-height:1.02;letter-spacing:.005em;text-transform:uppercase;margin:0;text-wrap:balance}
h1{font-size:var(--step-4)}
h2{font-size:var(--step-3)}
h3{font-size:var(--step-1);letter-spacing:.02em}
p{margin:0}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-left:var(--gutter-l);padding-right:var(--gutter-r)}
.flow>*+*{margin-top:1em}
.prose{max-width:66ch}
.eyebrow{font-family:var(--font-body);font-size:var(--step--1);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--red);display:inline-flex;align-items:center;gap:.6em}
.eyebrow::before{content:"";width:14px;height:9px;background:var(--red-logo);clip-path:polygon(0 100%,50% 0,100% 100%,82% 100%,50% 38%,18% 100%)}
.muted{color:var(--muted)}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.6em 1em;z-index:100}
.skip:focus{left:8px;top:8px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;font-family:var(--font-body);font-weight:750;font-size:1rem;line-height:1;padding:1em 1.4em;border-radius:var(--radius);border:2px solid transparent;text-decoration:none;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s}
.btn svg{width:1.1em;height:1.1em;flex:none}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-dark);color:#fff}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:#000;color:#fff}
.btn-line{border-color:currentColor;color:var(--ink);background:transparent}
.btn-line:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-ghost-light{border-color:rgba(255,255,255,.8);color:#fff}
.btn-ghost-light:hover{background:#fff;color:var(--ink)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- Header ---------- */
.topbar{background:var(--ink);color:#e9e9e9;font-size:var(--step--1)}
.topbar .wrap{display:flex;justify-content:space-between;gap:16px;padding-block:.5em;flex-wrap:wrap}
.topbar a{color:#fff;text-decoration:none;font-weight:600}
.topbar a:hover{color:#fff;text-decoration:underline}
.topbar .tb-items{display:flex;gap:20px;flex-wrap:wrap}
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:10px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);min-width:0}
.brand img{width:54px;height:auto}
.brand-name{font-family:var(--font-display);font-weight:800;font-size:1.65rem;line-height:.9;text-transform:uppercase;letter-spacing:.02em}
.brand-name small{display:block;font-family:var(--font-body);font-size:.62rem;font-weight:700;letter-spacing:.2em;color:var(--muted);margin-top:4px}
.nav{display:flex;align-items:center;gap:4px}
.nav>ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:2px}
.nav a.nav-link,.nav button.nav-link{font:inherit;font-weight:650;font-size:.95rem;color:var(--ink);text-decoration:none;padding:.6em .75em;border-radius:var(--radius);background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:.3em}
.nav a.nav-link:hover,.nav button.nav-link:hover,.nav a[aria-current="page"]{color:var(--red)}
.nav .has-sub{position:relative}
.nav .sub{position:absolute;top:100%;left:-8px;min-width:270px;background:var(--paper);border:1px solid var(--line);box-shadow:0 18px 40px rgba(20,20,20,.12);padding:8px;list-style:none;margin:0;display:none;border-top:3px solid var(--red-logo)}
.nav .has-sub:hover .sub,.nav .has-sub:focus-within .sub,.nav .has-sub.open .sub{display:block}
.nav .sub a{display:block;padding:.55em .8em;color:var(--ink);text-decoration:none;font-weight:600;font-size:.94rem;border-radius:var(--radius)}
.nav .sub a:hover{background:var(--concrete);color:var(--red)}
.header-cta{display:flex;align-items:center;gap:10px}
.header-cta .btn{padding:.85em 1.1em}
.menu-btn{display:none;background:none;border:2px solid var(--ink);border-radius:var(--radius);padding:8px 10px;cursor:pointer;color:var(--ink)}
.menu-btn svg{width:22px;height:22px;display:block}
@media (max-width:1080px){
  .nav{position:fixed;inset:0;top:0;background:var(--paper);flex-direction:column;align-items:stretch;padding:calc(84px + env(safe-area-inset-top,0px)) var(--gutter-r) 32px var(--gutter-l);overflow-y:auto;display:none;z-index:45}
  .nav.open{display:flex}
  .nav>ul{flex-direction:column;align-items:stretch;gap:0}
  .nav>ul>li{border-bottom:1px solid var(--line)}
  .nav a.nav-link,.nav button.nav-link{font-family:var(--font-display);font-size:1.6rem;text-transform:uppercase;padding:.55em 0;width:100%;justify-content:space-between}
  .nav .sub{position:static;display:none;box-shadow:none;border:0;padding:0 0 12px;min-width:0}
  .nav .has-sub:hover .sub,.nav .has-sub:focus-within .sub{display:none}
  .nav .has-sub.open .sub{display:block}
  .menu-btn{display:block;position:relative;z-index:55}
  .header-cta .btn-call-label{display:none}
  .brand{position:relative;z-index:55}
}
@media (max-width:520px){.header-cta .btn-quote{display:none}.brand-name{font-size:1.35rem}.brand img{width:44px}.topbar .tb-hide{display:none}}

/* ---------- Hero ---------- */
.hero{position:relative;background:var(--ink);color:#fff;overflow:hidden}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,12,12,.9) 0%,rgba(12,12,12,.72) 45%,rgba(12,12,12,.25) 100%)}
.hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);gap:48px;align-items:center;padding-block:clamp(48px,7vw,96px) clamp(72px,9vw,120px)}
.hero h1{font-size:var(--step-4);max-width:14ch}
.hero h1 em{font-style:normal;color:var(--red-logo)}
.hero .lead{font-size:var(--step-1);line-height:1.45;max-width:46ch;color:#ececec;margin-top:20px}
.hero .btn-row{margin-top:28px}
.hero .checks{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-wrap:wrap;gap:10px 22px;font-weight:600;font-size:.95rem}
.hero .checks li{display:flex;align-items:center;gap:8px}
.hero .checks svg{width:18px;height:18px;color:var(--red-logo);flex:none}
.hero-chevron{position:absolute;left:0;right:0;bottom:-1px;height:clamp(28px,4vw,56px);background:var(--paper);clip-path:polygon(0 100%,0 60%,50% 0,100% 60%,100% 100%)}
.hero.hero-page .wrap{grid-template-columns:minmax(0,1fr);padding-block:clamp(40px,6vw,80px) clamp(64px,8vw,104px)}
.hero.hero-page h1{max-width:20ch;font-size:var(--step-4)}
@media (max-width:900px){.hero .wrap{grid-template-columns:minmax(0,1fr)}.hero-media::after{background:linear-gradient(180deg,rgba(12,12,12,.78),rgba(12,12,12,.88))}}

/* ---------- Quote card ---------- */
.quote-card{background:var(--paper);color:var(--ink);border-radius:var(--radius);padding:clamp(20px,3vw,32px);box-shadow:0 30px 60px rgba(0,0,0,.35);border-top:6px solid var(--red-logo);min-width:0}
.quote-card h2{font-size:var(--step-2)}
.quote-card .sub{color:var(--muted);margin-top:6px;font-size:.95rem}
form.quote{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
form.quote .full{grid-column:1/-1}
form.quote label{display:block;font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px;color:var(--ink-2)}
form.quote input,form.quote select,form.quote textarea{width:100%;font:inherit;font-size:1rem;padding:.75em .8em;border:1.5px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink)}
form.quote textarea{min-height:96px;resize:vertical}
form.quote input:focus,form.quote select:focus,form.quote textarea:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px rgba(248,1,1,.18)}
form.quote .hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
form.quote .btn{width:100%;font-size:1.05rem}
form.quote .fine{font-size:.78rem;color:var(--muted);line-height:1.45}
form.quote .err{color:var(--red-dark);font-size:.88rem;font-weight:600}
@media (max-width:480px){form.quote{grid-template-columns:minmax(0,1fr)}}

/* ---------- Sections ---------- */
.section{padding-block:clamp(56px,8vw,104px)}
.section.tight{padding-block:clamp(40px,6vw,72px)}
.section.gray{background:var(--concrete)}
.section.dark{background:var(--ink);color:#f1f1f1}
.section.dark .muted{color:#b7bcbf}
.section-head{display:grid;gap:14px;margin-bottom:clamp(28px,4vw,48px);max-width:760px}
.section-head p{font-size:var(--step-1);line-height:1.5;color:var(--muted)}
.section.dark .section-head p{color:#c4c8ca}
.split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,64px);align-items:start}
@media (max-width:860px){.split{grid-template-columns:minmax(0,1fr)}}

/* Trust strip */
.trust{border-bottom:1px solid var(--line)}
.trust ul{list-style:none;margin:0;padding:22px 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.trust li{display:flex;gap:12px;align-items:flex-start;min-width:0}
.trust svg{width:28px;height:28px;color:var(--red);flex:none}
.trust strong{display:block;font-family:var(--font-display);font-size:1.25rem;text-transform:uppercase;line-height:1}
.trust span{font-size:.88rem;color:var(--muted)}
@media (max-width:860px){.trust ul{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Service cards */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
@media (max-width:960px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.cards{grid-template-columns:minmax(0,1fr)}}
.card{display:flex;flex-direction:column;background:var(--paper);text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(20,20,20,.12);color:var(--ink)}
.card-img{aspect-ratio:4/3;overflow:hidden;background:var(--concrete-2)}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .card-img img{transform:scale(1.04)}
.card-body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.card-body p{color:var(--muted);font-size:.95rem}
.card-more{margin-top:auto;padding-top:6px;font-weight:750;color:var(--red);font-size:.92rem;display:inline-flex;gap:.4em;align-items:center}
.card.feature{grid-column:span 2}
.card.feature .card-img{aspect-ratio:16/8}
@media (max-width:560px){.card.feature{grid-column:auto}.card.feature .card-img{aspect-ratio:4/3}}

/* Cross-section signature */
.xsec{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center}
@media (max-width:860px){.xsec{grid-template-columns:minmax(0,1fr)}}
.layers{border-radius:var(--radius);overflow:hidden;border:2px solid var(--ink);font-size:.92rem}
.layer{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:stretch;border-top:1px solid rgba(0,0,0,.25)}
.layer:first-child{border-top:0}
.layer .depth{font-family:var(--font-display);font-weight:800;font-size:1.25rem;display:flex;align-items:center;justify-content:center;background:var(--ink);color:#fff;letter-spacing:.02em}
.layer .what{padding:14px 16px;display:grid;gap:2px}
.layer .what b{font-weight:750}
.layer .what span{font-size:.86rem;opacity:.85}
.l-paver .what{background:repeating-linear-gradient(90deg,#8d8f8f 0 46px,#5d5f60 46px 48px);color:#fff}
.l-turf .what{background:repeating-linear-gradient(90deg,#4a8b3a 0 3px,#5ea548 3px 6px);color:#fff}
.l-slab .what{background:#b9bcbd;color:var(--ink)}
.l-sand .what{background:var(--sand);color:var(--ink)}
.l-base .what{background:radial-gradient(circle at 20% 30%,#7c7a75 2px,transparent 3px) 0 0/14px 12px,radial-gradient(circle at 70% 70%,#6b6964 2px,transparent 3px) 0 0/18px 16px,var(--base);color:var(--ink)}
.l-fabric .what{background:repeating-linear-gradient(45deg,#d8d8d2 0 4px,#c9c9c2 4px 8px);color:var(--ink)}
.l-soil .what{background:var(--soil);color:#fff}
.l-drain .what{background:radial-gradient(circle at 50% 50%,#9fa3a5 4px,transparent 5px) 0 0/16px 14px,#7f8486;color:#fff}
.xsec .note{font-size:.88rem;color:var(--muted);margin-top:12px}

/* Steps (true sequence) */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;counter-reset:s;border-top:2px solid var(--ink)}
.steps li{counter-increment:s;padding:22px 20px 0 0;display:grid;gap:8px;align-content:start;min-width:0}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:var(--font-display);font-weight:800;font-size:2.6rem;line-height:1;color:var(--red)}
.steps h3{font-size:1.25rem}
.steps p{font-size:.94rem;color:var(--muted)}
.section.dark .steps{border-color:#fff}
.section.dark .steps p{color:#c4c8ca}
.steps.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:960px){.steps,.steps.four{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px}}
@media (max-width:520px){.steps,.steps.four{grid-template-columns:minmax(0,1fr)}}

/* Includes grid */
.includes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.includes>div{background:var(--paper);padding:22px;display:grid;gap:6px;align-content:start}
.includes h3{font-size:1.2rem;display:flex;gap:10px;align-items:center}
.includes h3::before{content:"";width:12px;height:8px;flex:none;background:var(--red-logo);clip-path:polygon(0 100%,50% 0,100% 100%,82% 100%,50% 38%,18% 100%)}
.includes p{color:var(--muted);font-size:.95rem}
@media (max-width:900px){.includes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.includes{grid-template-columns:minmax(0,1fr)}}

.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.chips li{border:1.5px solid var(--ink);border-radius:999px;padding:.4em .9em;font-weight:650;font-size:.9rem}

/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.gallery figure{margin:0;position:relative;overflow:hidden;border-radius:var(--radius);background:var(--concrete-2);aspect-ratio:1/1}
.gallery figure.wide{grid-column:span 2;aspect-ratio:auto}
.gallery figure.tall{grid-row:span 2;aspect-ratio:auto}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:24px 12px 10px;font-size:.82rem;font-weight:600;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.75))}
@media (max-width:860px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gallery.three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:700px){.gallery.three{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Review */
.review{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(24px,5vw,64px);align-items:center}
@media (max-width:860px){.review{grid-template-columns:minmax(0,1fr)}}
.review blockquote{margin:0;font-family:var(--font-display);font-weight:700;font-size:var(--step-2);line-height:1.15;text-transform:none}
.review blockquote::before{content:"\201C";display:block;font-size:4.5rem;line-height:.6;color:var(--red-logo);margin-bottom:8px}
.review cite{display:block;margin-top:18px;font-style:normal;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.9rem}
.stars{display:flex;gap:2px;color:var(--red-logo);margin-top:6px}
.stars svg{width:18px;height:18px}
.platforms{display:grid;gap:10px}
.platforms a{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border:1.5px solid currentColor;border-radius:var(--radius);color:inherit;text-decoration:none;font-weight:700}
.platforms a:hover{background:var(--red);border-color:var(--red);color:#fff}

/* Areas */
.areas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
@media (max-width:900px){.areas{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.areas{grid-template-columns:minmax(0,1fr)}}
.areas h3{font-size:1.15rem;padding-bottom:8px;border-bottom:2px solid currentColor;margin-bottom:10px}
.areas ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.areas a{color:inherit;text-decoration:none;display:flex;justify-content:space-between;padding:5px 0;font-weight:550}
.areas a:hover{color:var(--red)}
.section.dark .areas a:hover{color:#ff5a5a}
.pill-links{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.pill-links a{display:inline-block;padding:.45em .9em;border-radius:999px;background:var(--paper);border:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:600;font-size:.9rem}
.pill-links a:hover{border-color:var(--red);color:var(--red)}

/* Local notes */
.local-notes{display:grid;gap:14px}
.local-notes>div{border-left:4px solid var(--red-logo);background:var(--concrete);padding:16px 18px}
.local-notes h3{font-size:1.15rem;margin-bottom:4px}
.local-notes p{color:var(--ink-2);font-size:.96rem}

/* Service list in city page */
.svc-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;list-style:none;margin:0;padding:0}
@media (max-width:860px){.svc-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.svc-list{grid-template-columns:minmax(0,1fr)}}
.svc-list a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink);font-weight:700;height:100%}
.svc-list a:hover{border-color:var(--ink)}
.svc-list .tag{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;background:var(--red);color:#fff;padding:3px 7px;border-radius:2px;white-space:nowrap}

/* FAQ */
.faq{display:grid;gap:10px;max-width:880px}
.faq details{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}
.faq summary{cursor:pointer;list-style:none;padding:18px 52px 18px 20px;font-weight:700;font-size:1.05rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font-family:var(--font-display);font-size:1.8rem;color:var(--red)}
.faq details[open] summary::after{content:"\2013"}
.faq details>div{padding:0 20px 20px;color:var(--ink-2)}

/* Breadcrumb */
.crumbs{font-size:.85rem;margin-bottom:18px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.crumbs li+li::before{content:"/";margin-right:6px;opacity:.6}
.crumbs a{color:#fff;opacity:.85}
.crumbs [aria-current]{opacity:.7}

/* CTA band */
.cta-band{background:var(--red);color:#fff;position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;right:-60px;top:-40px;width:340px;height:240px;background:rgba(255,255,255,.08);clip-path:polygon(0 100%,50% 0,100% 100%,80% 100%,50% 40%,20% 100%)}
.cta-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-block:clamp(36px,5vw,56px);position:relative;z-index:1}
.cta-band h2{font-size:var(--step-3);max-width:18ch}
.cta-band .btn-ink{background:#fff;color:var(--ink)}
.cta-band .btn-ink:hover{background:var(--ink);color:#fff}

/* Contact blocks */
.nap{display:grid;gap:18px}
.nap div{display:grid;gap:2px}
.nap dt{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.nap dd{margin:0;font-size:1.15rem;font-weight:650}
.nap a{color:var(--ink)}

/* Footer */
.site-footer{background:#0E0E0E;color:#cfd2d3;font-size:.94rem}
.site-footer .wrap{padding-block:56px 28px}
.f-grid{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:32px}
@media (max-width:900px){.f-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.f-grid{grid-template-columns:minmax(0,1fr)}}
.f-logo{display:inline-flex;align-items:center;gap:12px;background:#fff;padding:10px 14px;border-radius:var(--radius);text-decoration:none;color:var(--ink)}
.f-logo img{width:44px}
.site-footer h3{font-size:1.1rem;color:#fff;margin-bottom:12px;letter-spacing:.06em}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.site-footer a{color:#e7e9ea;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.f-bottom{border-top:1px solid #2a2a2a;margin-top:40px;padding-top:20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.84rem;color:#9ca2a5}
.f-bottom a{color:#c8cbcc}
.social{display:flex;gap:10px;margin-top:16px}
.social a{width:40px;height:40px;border:1px solid #3a3a3a;border-radius:50%;display:grid;place-items:center}
.social a:hover{background:var(--red);border-color:var(--red)}
.social svg{width:18px;height:18px}

/* Mobile action bar */
.mbar{display:none}
@media (max-width:760px){
  .mbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--ink);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);border-top:3px solid var(--red-logo)}
  .mbar a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 4px;color:#fff;text-decoration:none;font-size:.78rem;font-weight:700;letter-spacing:.04em}
  .mbar a svg{width:20px;height:20px}
  .mbar a.hot{background:var(--red)}
  body{padding-bottom:64px}
}

/* Legal pages */
.legal h2{font-size:var(--step-2);margin-top:1.6em}
.legal ul{padding-left:1.2em}
.legal li+li{margin-top:.4em}

/* Utility */
.mt-0{margin-top:0}.mt-s{margin-top:12px}.mt-m{margin-top:24px}.mt-l{margin-top:40px}
.center{text-align:center}
.img-frame{border-radius:var(--radius);overflow:hidden;position:relative}
.img-frame img{width:100%;aspect-ratio:4/3;object-fit:cover}
.img-frame.tall img{aspect-ratio:3/4}
.badge-corner{position:absolute;left:0;bottom:0;background:var(--red);color:#fff;font-family:var(--font-display);font-weight:800;text-transform:uppercase;padding:10px 16px;font-size:1.15rem;letter-spacing:.02em}
.big-num{font-family:var(--font-display);font-weight:800;font-size:var(--step-3);line-height:1;color:var(--red)}
.notfound{min-height:50vh;display:grid;place-items:center;text-align:center}
.areas .span2{grid-column:span 2}
.areas ul.two-col{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
@media (max-width:480px){.areas .span2{grid-column:auto}.areas ul.two-col{grid-template-columns:minmax(0,1fr)}}
.gallery.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.svc-list.one{grid-template-columns:minmax(0,1fr)}
.center-block{margin-inline:auto}
.btn-row.centered{justify-content:center}
/* fixes */
.card-more svg{width:1em;height:1em}
.nav a.nav-link,.nav button.nav-link{white-space:nowrap}
@media (max-width:1280px) and (min-width:1081px){.header-cta .btn-call-label{display:none}.nav a.nav-link,.nav button.nav-link{padding:.6em .55em}}
.hero .eyebrow,.section.dark .eyebrow,.cta-band .eyebrow{color:#FF6A5F}
.l-base .what{background:radial-gradient(circle at 20% 30%,#8f8c86 1.6px,transparent 2.4px) 0 0/16px 14px,#c3c0b9}
.l-base .what b,.l-base .what span{text-shadow:0 0 6px #c3c0b9}
.site-footer .f-logo{color:var(--ink)}
.site-footer address{font-style:normal}
.review blockquote::before{content:"";display:block;width:44px;height:28px;background:var(--red-logo);clip-path:polygon(0 100%,50% 0,100% 100%,80% 100%,50% 40%,20% 100%);margin-bottom:22px;line-height:1}
.brand-name small{white-space:nowrap}
@media (max-width:400px){.brand-name small{font-size:.55rem;letter-spacing:.12em}}

/* ===== v2: header, reviews carousel, floating button, mobile ===== */
.brand-name{font-size:1.55rem;white-space:nowrap}
.site-header .wrap{padding-block:8px}
.nav a.nav-link,.nav button.nav-link{font-size:.97rem}
@media (max-width:1200px) and (min-width:1081px){.brand-name{display:none}}
.btn-quote{white-space:nowrap}

/* Reviews carousel */
.rv-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 32px;flex-wrap:wrap;margin-bottom:clamp(24px,4vw,40px)}
.rv-head .section-head{margin-bottom:0}
.rv-links{display:flex;gap:8px;flex-wrap:wrap}
.rv-links a{color:inherit;text-decoration:none;font-weight:700;font-size:.92rem;padding:.55em 1em;border:1.5px solid currentColor;border-radius:999px}
.rv-links a:hover{background:var(--red);border-color:var(--red);color:#fff}
.rv{position:relative}
.rv-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,calc((100% - 40px)/3));gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 2px 8px;overscroll-behavior-x:contain}
.rv-track::-webkit-scrollbar{display:none}
.rv:not(.multi) .rv-track{grid-auto-columns:minmax(0,760px)}
@media (max-width:960px){.rv-track{grid-auto-columns:minmax(0,calc((100% - 20px)/2))}}
@media (max-width:620px){.rv-track{grid-auto-columns:88%;gap:12px}.rv:not(.multi) .rv-track{grid-auto-columns:100%}}
.rv-slide{margin:0;scroll-snap-align:start;background:var(--paper);color:var(--ink);border-radius:var(--radius);padding:26px 24px 22px;display:flex;flex-direction:column;gap:14px;border-top:5px solid var(--red-logo);box-shadow:0 10px 30px rgba(0,0,0,.08)}
.section.gray .rv-slide{box-shadow:0 1px 0 var(--line)}
.rv-slide blockquote{margin:0;font-family:var(--font-display);font-weight:700;font-size:1.55rem;line-height:1.15;flex:1}
.rv-slide .rv-note{color:var(--muted);font-size:.93rem}
.rv-slide figcaption{display:flex;align-items:center;gap:12px;padding-top:14px;border-top:1px solid var(--line)}
.rv-slide figcaption strong{display:block}
.rv-src{display:block;font-size:.84rem;color:var(--muted)}
.rv-av{width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:800;flex:none}
.rv-slide .stars{margin:0}
.rv-ctrls{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px}
.rv-ctrls button{width:46px;height:46px;border-radius:50%;border:1.5px solid currentColor;background:transparent;color:inherit;cursor:pointer;display:grid;place-items:center}
.rv-ctrls button:hover{background:var(--red);border-color:var(--red);color:#fff}
.rv-ctrls svg{width:20px;height:20px}
.rv-prev svg{transform:rotate(180deg)}
.rv-dots{display:flex;gap:8px}
.rv-dots button{width:10px;height:10px;border:0;padding:0;border-radius:99px;background:currentColor;opacity:.3;transition:width .2s,opacity .2s}
.rv-dots button[aria-current="true"]{width:28px;opacity:1;background:var(--red-logo)}

/* Floating contact button */
.mbar{display:none!important}
@media (max-width:760px){body{padding-bottom:0}}
.fab{position:fixed;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:70;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.fab-btn{display:flex;align-items:center;gap:10px;border:0;cursor:pointer;background:var(--red);color:#fff;border-radius:999px;padding:8px 22px 8px 8px;font:inherit;font-weight:800;font-size:1rem;box-shadow:0 12px 30px rgba(214,0,0,.38),0 2px 6px rgba(0,0,0,.2);transition:transform .2s,background .2s}
.fab-btn:hover{background:var(--red-dark);transform:translateY(-2px)}
.fab-icon{position:relative;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--red);display:grid;place-items:center}
.fab-icon::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid #fff;opacity:0;animation:fabPulse 2.6s ease-out infinite}
@keyframes fabPulse{0%{transform:scale(.8);opacity:.7}80%,100%{transform:scale(1.35);opacity:0}}
.fab-icon svg{width:22px;height:22px}
.fab-i-close{display:none;font-size:1.9rem;line-height:1;font-weight:400}
.fab.open .fab-i-open{display:none}
.fab.open .fab-i-close{display:block}
.fab.open .fab-icon::after{animation:none}
.fab-panel{width:min(360px,calc(100vw - 32px));background:var(--paper);color:var(--ink);border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.28);overflow:hidden;transform-origin:bottom right;animation:fabIn .22s ease-out}
@keyframes fabIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
.fab-head{display:flex;align-items:center;gap:12px;background:var(--ink);color:#fff;padding:16px 16px 18px;position:relative}
.fab-head img{background:#fff;border-radius:8px;padding:4px;width:44px;height:auto}
.fab-head strong{display:block;font-family:var(--font-display);font-size:1.35rem;text-transform:uppercase;line-height:1}
.fab-head span{font-size:.82rem;color:#c9cdcf}
.fab-close{margin-left:auto;align-self:flex-start;background:transparent;border:0;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;padding:2px 6px}
.fab-body{padding:16px;max-height:calc(100vh - 220px);overflow-y:auto}
.fab-actions{display:grid;gap:8px}
.fab-actions .btn{width:100%;padding:.9em 1em}
.fab-or{display:flex;align-items:center;gap:10px;margin:16px 0 4px;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fab-or::before,.fab-or::after{content:"";flex:1;height:1px;background:var(--line)}
form.fab-form{grid-template-columns:minmax(0,1fr);gap:10px;margin-top:8px}
form.fab-form input,form.fab-form select{padding:.65em .75em}
@media (max-width:620px){
  .fab{right:calc(14px + env(safe-area-inset-right,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px))}
  .fab-btn{padding:7px 18px 7px 7px;font-size:.95rem}
  .fab-icon{width:42px;height:42px}
  .fab.open{left:0;right:0;bottom:0;align-items:stretch;gap:0}
  .fab.open .fab-btn{display:none}
  .fab-panel{width:100%;border-radius:16px 16px 0 0;padding-bottom:env(safe-area-inset-bottom,0px);animation-name:fabUp}
  .fab-body{max-height:calc(100vh - 140px)}
  @keyframes fabUp{from{transform:translateY(100%)}to{transform:none}}
}

/* Mobile optimization */
@media (max-width:760px){
  .topbar .wrap{justify-content:center;text-align:center;gap:2px 14px;padding-block:.4em}
  .topbar .tb-items{justify-content:center;gap:4px 14px}
  .site-header .wrap{padding-block:6px}
  .brand img{width:42px}
  .section{padding-block:52px}
  .section.tight{padding-block:36px}
  .section-head{margin-bottom:24px}
  .section-head p{font-size:1.05rem}
  .hero .wrap{padding-block:32px 64px;gap:28px}
  .hero .lead{font-size:1.08rem;margin-top:14px}
  .hero .btn-row{margin-top:20px}
  .hero .btn-row .btn{flex:1 1 100%}
  .hero .checks{margin-top:18px;gap:6px 16px;font-size:.88rem}
  .quote-card{padding:20px 16px}
  .crumbs{margin-bottom:10px}
  /* service cards become compact rows */
  .cards{grid-template-columns:minmax(0,1fr);gap:10px}
  .card,.card.feature{flex-direction:row;grid-column:auto}
  .card-img,.card.feature .card-img{aspect-ratio:auto;width:112px;flex:none}
  .card-body{padding:12px 14px;gap:4px}
  .card-body h3{font-size:1.12rem}
  .card-body p{font-size:.86rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .card-more{font-size:.84rem;padding-top:2px}
  .card:hover{transform:none}
  .trust ul{padding:16px 0;gap:14px}
  .trust strong{font-size:1.1rem}
  .areas{gap:20px}
  .areas ul{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}
  .areas .span2{grid-column:1/-1}
  .areas a{font-size:.94rem}
  .areas a span{display:none}
  .includes>div{padding:16px}
  .steps li::before{font-size:2rem}
  .steps li{padding-top:16px}
  .xsec .layer{grid-template-columns:58px minmax(0,1fr)}
  .layer .what{padding:10px 12px}
  .cta-band .btn-row{width:100%}
  .cta-band .btn-row .btn{flex:1 1 100%}
  .f-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}
  .f-grid>div:first-child{grid-column:1/-1}
  .site-footer .wrap{padding-block:40px 96px}
  .faq summary{padding:15px 46px 15px 16px;font-size:1rem}
  .rv-head{align-items:flex-start}
  .rv-slide blockquote{font-size:1.35rem}
}
@media (max-width:480px){.areas{grid-template-columns:minmax(0,1fr)}.areas .span2{grid-column:auto}.areas ul.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}}
#estimate,[id]{scroll-margin-top:96px}

/* ===== v3: real Yelp reviews ===== */
.rv-side{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.rv-score{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;padding:8px 16px 8px 8px;border:1.5px solid currentColor;border-radius:12px}
.rv-score b{font-family:var(--font-display);font-size:2.4rem;line-height:1;background:var(--red);color:#fff;border-radius:8px;padding:6px 10px}
.rv-score>span{display:grid;gap:2px;font-weight:700;font-size:.9rem}
.rv-score .stars{margin:0}
.rv-score:hover{border-color:var(--red)}
.rv-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.rv-badge{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:#C41200;border-radius:3px;padding:3px 7px}
.rv-slide blockquote{font-family:var(--font-body);font-weight:450;font-size:1rem;line-height:1.6;color:var(--ink-2);flex:1}
.rv-slide blockquote::before{content:"\201C";display:block;font-family:var(--font-display);font-size:3rem;line-height:.7;color:var(--red-logo);height:22px;width:auto;background:none;clip-path:none;margin:0}
.rv-slide blockquote.clamp p{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.rv-slide blockquote.clamp.open p{display:block;-webkit-line-clamp:unset}
.rv-more{align-self:flex-start;background:none;border:0;padding:0;margin-top:-6px;font:inherit;font-weight:750;font-size:.9rem;color:var(--red);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.rv-track{align-items:stretch}
@media (max-width:760px){.rv-slide blockquote{font-size:.97rem}.rv-score b{font-size:2rem}}
.rv-track{grid-auto-columns:calc((100% - 40px)/3)}
@media (max-width:960px){.rv-track{grid-auto-columns:calc((100% - 20px)/2)}}
@media (max-width:620px){.rv-track{grid-auto-columns:86%}}
.f-credit a{font-weight:800;letter-spacing:.08em;color:#fff}
.f-credit a:hover{color:var(--red-logo)}
@media (max-width:760px){.f-bottom{flex-direction:column;align-items:flex-start;gap:8px}}
.site-footer .wrap{padding-bottom:110px}
