/* Home page (Oct 2026 redesign). Palette: charcoal / poured concrete / aggregate / safety orange. */
.home-v2{--char:#1F2326;--char-2:#2B3034;--pour:#E9E7E3;--pour-2:#DAD7D1;--agg:#8A857D;--cone:#C4501A;--cone-hi:#F0A066;background:var(--pour)}
.home-v2 h2{font-size:clamp(30px,3.6vw,46px);line-height:1.05;color:var(--char);margin:0 0 16px;font-stretch:108%}
.home-v2 p{font-size:18px;line-height:1.6}
.home-v2 .btn-primary{background:var(--cone)}
.home-v2 .btn-primary:hover{background:#A9430F}
.home-v2 .btn-dark{background:var(--char);color:#fff}

/* Hero: left aligned, real driveway photo */
.hv-hero{min-height:min(92svh,860px);display:flex;align-items:flex-end;position:relative;isolation:isolate;overflow:hidden;background:var(--char);text-align:left}
.hv-hero .hero-background{position:absolute;inset:0;z-index:-2}
.hv-hero .hero-background img{width:100%;height:100%;object-fit:cover;object-position:50% 62%}
.hv-hero .hero-overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(23,25,27,.93) 0%,rgba(23,25,27,.78) 42%,rgba(23,25,27,.25) 100%),linear-gradient(0deg,rgba(23,25,27,.75) 0%,transparent 45%)}
.hv-hero-inner{padding:190px 0 64px;max-width:1160px}
.hv-hero .hero-headline{display:block;max-width:780px;margin:0 0 22px;color:#fff;font-size:clamp(42px,6.4vw,84px);line-height:.98;font-weight:900;font-stretch:104%;letter-spacing:-.025em;text-shadow:none}
.hv-hero .hero-emphasis,.hv-hero .hero-last,.hv-hero .hero-last strong{color:inherit;font-weight:inherit}
.hv-hero .hero-last{display:block}
.hv-lede{max-width:600px;color:rgba(255,255,255,.88);font-size:20px!important;margin:0 0 30px}
.hv-hero .actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-start;margin:0}
.hv-hero .btn{min-height:54px;padding:15px 24px;font-size:16px}
.hv-proof{display:flex;flex-wrap:wrap;gap:10px 28px;list-style:none;margin:34px 0 0;padding:20px 0 0;border-top:1px solid rgba(255,255,255,.22)}
.hv-proof li,.hv-proof a{color:rgba(255,255,255,.86);font-size:16px;text-decoration:none}
.hv-proof strong{color:#fff}
.hv-proof a:hover strong{color:var(--cone-hi)}

/* Pricing band */
.hv-pricing{background:#fff;padding:84px 0;border-bottom:1px solid var(--pour-2)}
.hv-pricing-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,90px);align-items:start}
.hv-pricing-intro p{color:#4A4E52;max-width:46ch;margin:0 0 26px}
.hv-prices{margin:0;display:grid;gap:0}
.hv-prices>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:8px 24px;padding:22px 0;border-top:2px solid var(--char)}
.hv-prices>div:last-child{border-bottom:2px solid var(--char)}
.hv-prices dt{font-family:var(--display);font-weight:700;font-size:18px;color:var(--char);font-stretch:104%}
.hv-prices dd{margin:0;color:#4A4E52;font-size:16px;line-height:1.5}
.hv-price{display:block;font-family:var(--display);font-weight:800;font-size:28px;color:var(--cone);font-stretch:108%;line-height:1.1;margin-bottom:4px}

/* Slab cross-section: the signature element */
.hv-slab{background:var(--pour);padding:90px 0}
.hv-slab-head{max-width:720px;margin-bottom:34px}
.hv-slab-head p{color:#4A4E52;margin:0}
.slab-tool{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:28px;align-items:start}
.slab-figure{margin:0;background:#F6F5F2;border:2px solid var(--char);border-radius:4px;padding:18px 18px 0}
.slab-figure svg{display:block;width:100%;height:auto}
.slab-figure svg *{transition:all .35s ease}
.slab-figure figcaption{margin:0 -18px;padding:16px 18px;background:var(--char);color:rgba(255,255,255,.9);font-size:16px;line-height:1.55;min-height:96px}
.slab-figure figcaption strong{color:#fff}
.slab-controls fieldset{border:0;padding:0;margin:0 0 20px}
.slab-controls legend{font-family:var(--display);font-weight:700;font-size:15px;color:var(--char);margin-bottom:10px;font-stretch:104%}
.seg{display:grid;grid-template-columns:repeat(3,1fr);border:2px solid var(--char);border-radius:4px;overflow:hidden}
.seg button{background:#fff;border:0;border-right:2px solid var(--char);padding:12px 0;font:700 16px var(--display);color:var(--char);cursor:pointer}
.seg button:last-child{border-right:0}
.seg button[aria-checked="true"]{background:var(--char);color:#fff}
.opt{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:2px solid var(--pour-2);border-radius:4px;padding:13px 14px;margin-bottom:8px;cursor:pointer;font:inherit;color:var(--char)}
.opt span{font-family:var(--display);font-weight:700;font-size:16px}
.opt small{color:#62666A;font-size:14px;text-align:right}
.opt::before{content:"";flex:0 0 18px;height:18px;border:2px solid var(--agg);border-radius:3px;order:-1}
.opt[aria-pressed="true"]{border-color:var(--char)}
.opt[aria-pressed="true"]::before{background:var(--cone);border-color:var(--cone);box-shadow:inset 0 0 0 3px #fff}
.opt:hover,.seg button:hover{outline:2px solid var(--cone);outline-offset:-2px}
.slab-included{font-size:15px!important;color:#4A4E52;margin:6px 0 18px}

/* Work */
.hv-work{background:#fff;padding:84px 0}
.hv-split-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:6px 30px;margin-bottom:26px}
.hv-split-head p{color:#4A4E52;margin:0}
.hv-work .work-link{display:inline-block;margin-top:16px;font-family:var(--display);font-weight:700;color:var(--cone);text-decoration:none;border-bottom:2px solid currentColor}

/* Questions to ask */
.hv-ask{background:var(--char);color:#fff;padding:90px 0}
.hv-ask h2{color:#fff}
.hv-ask-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,90px);align-items:start}
.hv-ask-intro{position:sticky;top:30px}
.hv-ask-intro p{color:rgba(255,255,255,.8)}
.ask-list{margin:0}
.ask-row{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:8px 26px;padding:20px 0;border-top:1px solid rgba(255,255,255,.18)}
.ask-row dt{font-family:var(--display);font-weight:700;font-size:18px;line-height:1.3;color:#fff}
.ask-row dd{margin:0;color:rgba(255,255,255,.82);font-size:16.5px;line-height:1.55}

/* Process: a real sequence, so it's numbered */
.hv-process{background:var(--pour);padding:90px 0}
.steps-row{list-style:none;counter-reset:st;display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:30px 0 0;padding:0;border-top:4px solid var(--char)}
.steps-row li{counter-increment:st;padding:22px 20px 0 0;position:relative}
.steps-row li::before{content:counter(st);position:absolute;top:-20px;left:0;width:36px;height:36px;border-radius:50%;background:var(--cone);color:#fff;font:800 17px/36px var(--display);text-align:center}
.steps-row h3{font-size:19px;margin:22px 0 8px;color:var(--char)}
.steps-row p{font-size:16px!important;color:#4A4E52;margin:0}

/* Owner */
.hv-owner{background:#fff;padding:90px 0}
.hv-owner-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(30px,6vw,80px);align-items:center}
.hv-owner-photo{margin:0}
.hv-owner-photo img{width:100%;border-radius:4px;aspect-ratio:4/5;object-fit:cover;filter:saturate(.9)}
.hv-owner p{color:#4A4E52;max-width:60ch}
.hv-services-links a{color:var(--char);font-weight:600;text-decoration-color:var(--cone);text-underline-offset:3px}

/* Reviews + form inherit existing styles; tune colors */
.home-v2 .reviews-section{background:var(--pour)}
.home-v2 .inquiry-section{background:#fff}

@media(max-width:980px){
  .hv-pricing-grid,.hv-ask-grid,.slab-tool,.hv-owner-grid{grid-template-columns:1fr}
  .hv-ask-intro{position:static}
  .steps-row{grid-template-columns:1fr;border-top:0;border-left:4px solid var(--char);padding-left:0}
  .steps-row li{padding:0 0 26px 34px}
  .steps-row li::before{top:0;left:-20px}
  .steps-row h3{margin-top:4px}
  .hv-owner-photo{max-width:420px}
}
@media(max-width:600px){
  .hv-hero-inner{padding:150px 0 40px}
  .hv-hero .hero-headline{font-size:clamp(36px,10.5vw,48px)}
  .hv-lede{font-size:17px!important}
  .hv-hero .btn{width:100%}
  .hv-proof{gap:8px 18px}
  .hv-prices>div{grid-template-columns:1fr}
  .ask-row{grid-template-columns:1fr}
  .hv-pricing,.hv-slab,.hv-work,.hv-ask,.hv-process,.hv-owner{padding:60px 0}
  .opt small{display:none}
}
@media (prefers-reduced-motion:reduce){.slab-figure svg *{transition:none}}
/* specificity fixes against legacy hero rules */
.home-v2 .hv-hero .hv-lede{color:rgba(255,255,255,.9);font-size:20px;max-width:600px;margin:0 0 30px;text-shadow:0 1px 12px rgba(0,0,0,.35)}
.home-v2 .hv-hero .actions{justify-content:flex-start;margin-top:0}
.home-v2 .hv-hero .hero-headline{text-align:left}
.opt span{flex:1}
.home-v2 .hv-hero .hero-last,.home-v2 .hv-hero .hero-last strong,.home-v2 .hv-hero .hero-emphasis{font-size:inherit;letter-spacing:inherit;line-height:inherit}

/* Oct 3 pass: story order, stamped-patio hero, polish */
.hv-hero .hero-background img{object-position:50% 58%}
.hv-hero .hero-overlay{background:linear-gradient(90deg,rgba(23,25,27,.9) 0%,rgba(23,25,27,.7) 40%,rgba(23,25,27,.12) 100%),linear-gradient(0deg,rgba(23,25,27,.7) 0%,transparent 40%),linear-gradient(180deg,rgba(23,25,27,.65) 0%,transparent 22%)}
.home-v2 .hv-hero .hero-headline{font-size:clamp(38px,5.2vw,68px);max-width:680px}
.home-v2 .brand-logo img{filter:drop-shadow(0 2px 10px rgba(0,0,0,.55))}
.hv-owner-top{padding:80px 0 70px}
.hv-owner-top .hv-owner-photo img{aspect-ratio:1/1}
.hv-work{background:var(--pour)}
.hv-slab{background:#fff}
.hv-ask-intro .btn{margin-top:10px}
.home-v2 .gallery-home{columns:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.home-v2 .gallery-home .g-item{margin:0}
.home-v2 .gallery-home .g-item img{aspect-ratio:4/5;object-fit:cover;height:auto}
.inquiry-form .inquiry-consent{font-size:14px;line-height:1.5;color:#4A4E52;gap:10px}
.inquiry-consent input{width:20px;height:20px;min-height:20px}
@media(max-width:600px){.home-v2 .gallery-home{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hv-owner-top{padding:56px 0}.hv-owner-top .hv-owner-photo img{aspect-ratio:4/3}}
@media(max-width:600px){.home-v2 .hv-hero .hero-headline{font-size:clamp(32px,9.4vw,44px)}.home-v2 .hv-hero .hero-last,.home-v2 .hv-hero .hero-last strong{white-space:normal}}

/* Oct 3 polish: split hero so the stamped patio photo is shown, not buried */
@media(min-width:901px){
  .home-v2 .hv-hero{min-height:min(88svh,800px);align-items:center}
  .home-v2 .hv-hero .hero-background{left:auto;width:44%}
  .home-v2 .hv-hero .hero-background img{object-position:30% 60%}
  .home-v2 .hv-hero .hero-overlay{background:linear-gradient(90deg,var(--char) 0%,var(--char) 56%,rgba(31,35,38,.55) 56%,rgba(31,35,38,0) 64%)}
  .home-v2 .hv-hero-inner{padding:150px 0 70px}
  .home-v2 .hv-hero .hero-headline{max-width:640px;font-size:clamp(40px,4.9vw,68px)}
  .home-v2 .hv-lede{max-width:540px}
  .home-v2 .hv-proof{max-width:560px}
}
@media(max-width:900px){
  .home-v2 .hv-hero .hero-background img{object-position:30% 70%}
}

/* Owner + reviews read as one "who you're hiring" band */
.home-v2 .hv-owner-top{padding:80px 0 40px}
.home-v2 .hv-owner-top + .reviews-section{background:#fff;padding-top:20px}
.home-v2 .hv-owner-photo img{box-shadow:0 18px 40px rgba(31,35,38,.18)}

/* Home gallery: even grid, no ragged gaps */
.home-v2 .gallery-home{columns:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.home-v2 .gallery-home .g-item{margin:0}
.home-v2 .gallery-home .g-item img{aspect-ratio:4/5;height:auto;object-fit:cover}
@media(max-width:700px){.home-v2 .gallery-home{grid-template-columns:repeat(2,1fr);gap:10px}}

/* Readable consent line */
.home-v2 .inquiry-form .inquiry-consent{font-size:14px;line-height:1.5;gap:10px}
.home-v2 .inquiry-consent input{width:20px;height:20px}
.home-v2 #reviews.reviews-section{background:#fff!important;padding:24px 0 84px}
@media(min-width:901px){
  .home-v2 .home-nav{background:var(--char)}
  .home-v2 .hv-hero .hero-background{top:139px}
}

/* Process: steps beside real crew photos */
.hv-process-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(30px,5vw,70px);align-items:start}
.steps-col{list-style:none;counter-reset:st;margin:30px 0 0;padding:0 0 0 0;border-left:4px solid var(--char)}
.steps-col li{counter-increment:st;position:relative;padding:0 0 26px 38px}
.steps-col li:last-child{padding-bottom:0}
.steps-col li::before{content:counter(st);position:absolute;top:-2px;left:-20px;width:36px;height:36px;border-radius:50%;background:var(--cone);color:#fff;font:800 17px/36px var(--display);text-align:center}
.steps-col h3{font-size:20px;margin:2px 0 6px;color:var(--char)}
.steps-col p{font-size:16.5px!important;color:#4A4E52;margin:0;max-width:52ch}
.hv-crew{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hv-crew figure{margin:0}
.hv-crew img{width:100%;height:auto;aspect-ratio:3/5;object-fit:cover;border-radius:4px;display:block}
.hv-crew figcaption{font-size:14px;color:#4A4E52;margin-top:8px;line-height:1.4}
@media(max-width:980px){.hv-process-grid{grid-template-columns:1fr}.hv-crew img{aspect-ratio:4/5}}

/* ---- Owner: then / now ---- */
.hv-owner-photos{position:relative}
.hv-owner-photos figure{margin:0;position:relative}
.hv-owner-photos img{width:100%;display:block;border-radius:4px;object-fit:cover;aspect-ratio:1/1;box-shadow:0 18px 40px rgba(31,35,38,.18)}
.hv-owner-photos figcaption{position:absolute;left:12px;bottom:12px;background:var(--char);color:#fff;font:700 13px/1 var(--display);padding:7px 10px;border-radius:3px}
.hv-owner-photos.has-now{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hv-owner-photos.has-now img{aspect-ratio:4/5}
.hv-owner-copy p{color:#4A4E52;max-width:58ch}

/* ---- What we do: one compact, ruled block ---- */
.hv-do{display:grid;grid-template-columns:1.25fr 1fr 1fr;margin-top:56px;border-top:2px solid var(--char)}
.hv-do-col{padding:22px 26px 6px 0}
.hv-do-col + .hv-do-col{padding-left:26px;border-left:1px solid var(--pour-2)}
.hv-do h3{font-size:18px;margin:0 0 12px;color:var(--char);font-stretch:104%}
.hv-do h3 a{color:inherit;text-decoration:none;border-bottom:2px solid var(--cone)}
.hv-do p{font-size:16px!important;color:#4A4E52;margin:0;max-width:34ch}
.hv-do ul{list-style:none;margin:0;padding:0;columns:2;column-gap:22px}
.hv-do li{font-size:16px;line-height:1.35;padding:5px 0;color:var(--char);break-inside:avoid}
.hv-do li a{color:var(--char);text-decoration:underline;text-decoration-color:var(--cone);text-underline-offset:3px}
@media(max-width:800px){
  .hv-do{grid-template-columns:1fr}
  .hv-do-col,.hv-do-col + .hv-do-col{padding:18px 0;border-left:0;border-top:1px solid var(--pour-2)}
  .hv-do-col:first-child{border-top:0}
}

/* ---- Reviews: score + featured quote + rail ---- */
.hv-reviews{background:var(--pour);padding:84px 0 70px;overflow:hidden}
.hv-reviews-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px 40px;flex-wrap:wrap;margin-bottom:34px}
.hv-reviews-head h2{margin:0}
.hv-score{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:14px;align-items:end;text-decoration:none;color:var(--char)}
.hv-score strong{grid-row:1/3;font:900 clamp(56px,7vw,88px)/.85 var(--display);font-stretch:104%;color:var(--char);letter-spacing:-.03em}
.hv-score-stars{color:var(--cone);font-size:22px;letter-spacing:2px;line-height:1}
.hv-score small{font-size:15px;color:#4A4E52;text-decoration:underline;text-decoration-color:var(--cone);text-underline-offset:3px}
.hv-feature{margin:0 0 34px;max-width:900px;position:relative;padding-left:clamp(0px,4vw,56px)}
.hv-feature::before{content:"\201C";position:absolute;left:-6px;top:-30px;font:900 120px/1 var(--display);color:var(--cone);opacity:.9}
.hv-feature blockquote{margin:0;font-family:var(--display);font-weight:600;font-size:clamp(20px,2.2vw,26px);line-height:1.4;color:var(--char)}
.hv-feature figcaption{margin-top:18px;font-size:15px;color:#4A4E52}
.hv-feature .google-review-author{display:flex;align-items:center;gap:12px}
.hv-feature .google-review-avatar{width:40px;height:40px;border-radius:50%}
.hv-feature .google-review-author-copy a,.hv-feature .google-review-author-copy strong{font-weight:700;color:var(--char);text-decoration:none}
.hv-feature .google-review-meta{display:flex;gap:10px;color:#62666A;font-size:14px}
.hv-feature .google-review-meta span{color:var(--cone)}
.hv-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(280px,340px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 0 18px;margin-right:calc(50% - 50vw);padding-right:24px;scrollbar-width:thin}
.hv-rail:focus-visible{outline:2px solid var(--cone);outline-offset:4px}
.hv-rail .google-review-card{scroll-snap-align:start;background:#fff;border:0;border-top:3px solid var(--char);border-radius:0 0 4px 4px;padding:18px;display:flex;flex-direction:column;gap:10px}
.hv-rail .google-review-card p{margin:0;font-size:16px!important;line-height:1.55;color:#33373A;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.hv-rail .google-review-author{display:flex;align-items:center;gap:10px}
.hv-rail .google-review-avatar{width:32px;height:32px;border-radius:50%}
.hv-rail .google-review-author-copy a,.hv-rail .google-review-author-copy strong{font-weight:700;color:var(--char);text-decoration:none}
.hv-rail .google-review-meta{display:flex;gap:8px;font-size:13px;color:#62666A}
.hv-rail .google-review-meta span{color:var(--cone)}
.hv-rail .google-review-source{margin-top:auto;font-size:14px;color:var(--cone);font-weight:600}
.hv-reviews .google-review-notice{font-size:13px;color:#62666A;margin:6px 0 0}
.home-v2 .hv-owner-photos img{height:auto!important;aspect-ratio:1/1}
.home-v2 .hv-owner-photos.has-now img{aspect-ratio:4/5}
.home-v2 .hv-owner-grid{align-items:center}
.home-v2 .hv-owner-photos{max-width:440px}
.hv-feature blockquote{font-size:clamp(18px,1.8vw,22px)}
@media(max-width:700px){.hv-feature{padding-left:0;padding-top:44px}.hv-feature::before{top:-8px;left:-4px;font-size:96px}}
@media(min-width:981px){.home-v2 .hv-owner-grid:has(.has-now){grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}}
.home-v2 .hv-owner-photos.has-now{max-width:620px}
.home-v2 .hv-owner-photos.has-now{max-width:540px}

/* ===== About page (about-v2) ===== */
.about-v2 .ab-hero .hero-background img{object-position:50% 30%}
.about-v2 .ab-hero .hero-headline{font-size:clamp(38px,4.6vw,64px)}
@media(min-width:901px){.about-v2 .ab-hero{min-height:min(84svh,760px)}}

.ab-story{background:#fff;padding:90px 0 40px}
.ab-chapter{display:grid;grid-template-columns:110px minmax(0,1fr) minmax(0,.9fr);gap:0 clamp(24px,4vw,56px);padding:0 0 70px;position:relative}
.ab-chapter::before{content:"";position:absolute;left:54px;top:44px;bottom:0;width:2px;background:var(--pour-2)}
.ab-mark span{display:inline-block;background:var(--char);color:#fff;font:800 14px/1 var(--display);padding:10px 12px;border-radius:3px;font-stretch:108%;position:relative;z-index:1}
.ab-chapter:first-of-type .ab-mark span{background:var(--cone)}
.ab-text h2{font-size:clamp(28px,3vw,40px);margin:0 0 16px;color:var(--char)}
.ab-text p{color:#3E4246;max-width:60ch;margin:0 0 16px;font-size:18px!important;line-height:1.65}
.ab-goal{color:var(--char)!important;font-weight:600;border-left:3px solid var(--cone);padding-left:16px}
.ab-sign{margin-top:22px!important;font-size:17px!important}
.ab-sign span{color:#62666A;font-size:15px}
.ab-media figure{margin:0}
.ab-media img{width:100%;height:auto;display:block;border-radius:4px;box-shadow:0 16px 36px rgba(31,35,38,.16)}
.ab-media figcaption{font-size:14px;color:#62666A;margin-top:8px}
.ab-media > figure img{aspect-ratio:4/5;object-fit:cover}
.ab-pair{display:grid;grid-template-columns:1fr;gap:12px}
.ab-pair img{aspect-ratio:16/10;object-fit:cover}
.ab-pair figure:last-child img{aspect-ratio:16/10;object-position:50% 70%}

.ab-quote{margin:0 0 80px;background:var(--char);color:#fff;border-radius:4px;padding:clamp(34px,5vw,64px) clamp(24px,6vw,90px);position:relative;overflow:hidden}
.ab-quote::before{content:"\201C";position:absolute;right:28px;top:-34px;font:900 220px/1 var(--display);color:var(--cone);opacity:.35}
.ab-quote blockquote{margin:0;font:800 clamp(28px,3.6vw,48px)/1.12 var(--display);font-stretch:104%;letter-spacing:-.015em;max-width:22ch;position:relative}
.ab-quote figcaption{margin-top:18px;color:var(--cone-hi);font-size:16px;font-weight:600}

.ab-circle{margin:-20px 0 80px 110px;background:var(--pour);border-radius:4px;padding:30px clamp(22px,4vw,44px);max-width:860px}
.ab-circle h3{font-size:22px;margin:0 0 10px;color:var(--char)}
.ab-circle p{margin:0;color:#3E4246;font-size:18px!important;line-height:1.65}

.ab-cta{background:var(--pour);padding:80px 0}
.ab-cta h2{margin:0 0 10px}
.ab-cta p{color:#4A4E52;margin:0 0 24px}
.ab-cta .actions{display:flex;flex-wrap:wrap;gap:12px}
.ab-cta .btn-hero-secondary{color:var(--char);border-color:var(--char)}

@media(max-width:980px){
  .ab-chapter{grid-template-columns:1fr;gap:16px}
  .ab-chapter::before{display:none}
  .ab-media{max-width:520px}
  .ab-circle{margin:-30px 0 60px}
  .ab-pair{grid-template-columns:1fr 1fr}
  .ab-pair img,.ab-pair figure:last-child img{aspect-ratio:1/1}
}
.ab-media.ab-pair figure img{aspect-ratio:16/10;object-fit:cover;object-position:50% 50%}
.ab-media.ab-pair figure:last-child img{object-position:50% 72%}
.ab-cta .btn-hero-secondary{background:transparent!important;color:var(--char)!important;border:2px solid var(--char)!important}
@media(max-width:980px){.ab-media.ab-pair figure img{aspect-ratio:1/1}}
.ab-circle{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(20px,4vw,44px);align-items:center;max-width:1000px}
.ab-circle-photo{margin:0}
.ab-circle-photo img{width:100%;height:auto;display:block;border-radius:4px;aspect-ratio:4/5;object-fit:cover;object-position:50% 60%}
.ab-circle-photo figcaption{font-size:14px;color:#62666A;margin-top:8px}
@media(max-width:800px){.ab-circle{grid-template-columns:1fr}.ab-circle-photo{max-width:420px}}

/* Service pages: each page's own recent-jobs grid */
.svc-work .hv-split-head h2{margin:0}
.svc-gallery{columns:auto!important;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.svc-gallery .g-item{margin:0}
.svc-gallery .g-item img{aspect-ratio:4/5;height:auto;object-fit:cover}
@media(max-width:900px){.svc-gallery{grid-template-columns:repeat(2,1fr);gap:10px}}

/* Hero brand words: same type as the headline, in a bright pop orange */
@font-face{font-family:"Oswald";src:url(fonts/oswald-700.woff2) format("woff2");font-weight:700;font-display:swap}
/* Hero headline: small connecting words, big logo wordmarks */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.home-v2 .hv-hero .hw-stack{max-width:600px}
.home-v2 .hv-hero .hw-lead{display:block;font-size:.6em;line-height:1.1;letter-spacing:-.01em;color:#fff}
.home-v2 .hv-hero .hw-concrete{display:block;width:69.3%;margin:.08em 0 .22em}
.home-v2 .hv-hero .hero-last .hw-brand{display:block;width:100%;margin-top:.08em}
.home-v2 .hv-hero .hw-stack img{display:block;width:100%;height:auto;filter:drop-shadow(0 2px 0 rgba(0,0,0,.6)) drop-shadow(0 10px 18px rgba(0,0,0,.65))}
.home-v2 .hv-hero .hw-stack .hero-last{display:block}
.home-v2 .hv-hero .hw-brand{position:relative;padding-bottom:.4em}
.home-v2 .hv-hero .hw-brand::after{content:"";position:absolute;left:-1%;right:-2%;bottom:-.14em;height:.5em;background:url(pencil-underline.svg) center/100% 100% no-repeat;transform:rotate(-.4deg);filter:drop-shadow(0 2px 3px rgba(0,0,0,.5));pointer-events:none}
.home-v2 .hv-hero .hero-headline{line-height:1.02}
/* What we do: three identical columns */
.hv-do{grid-template-columns:1.3fr 1fr 1fr}
.hv-do-col,.hv-do-col + .hv-do-col{padding:24px 28px 8px 0}
.hv-do-col + .hv-do-col{padding-left:28px;border-left:1px solid var(--pour-2)}
.hv-do h3{font-size:19px;margin:0 0 6px;color:var(--char);border:0}
.hv-do p{font-size:15.5px!important;line-height:1.5;color:#4A4E52;margin:0 0 14px;max-width:36ch}
.hv-do ul{columns:1;list-style:none;margin:0;padding:0}
.hv-do ul.two{columns:2;column-gap:24px}
.hv-do li{padding:4px 0;font-size:16px}
.hv-do li a{color:var(--char);text-decoration:underline;text-decoration-color:var(--cone);text-decoration-thickness:2px;text-underline-offset:4px}
.hv-do li a:hover{color:var(--cone)}
@media(max-width:800px){.hv-do-col,.hv-do-col + .hv-do-col{padding:18px 0;border-left:0;border-top:1px solid var(--pour-2)}.hv-do-col:first-child{border-top:0}}

/* Mini calculator */
.hv-pricing-right{display:grid;gap:22px}
.mini-calc{background:var(--char);color:#fff;border-radius:6px;padding:26px 26px 24px}
.mini-calc h3{color:#fff;font-size:20px;margin:0 0 14px}
.mc-fields{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px}
.mc-fields label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:rgba(255,255,255,.75)}
.mc-fields select,.mc-fields input{height:46px;border-radius:4px;border:1px solid rgba(255,255,255,.25);background:#2B3034;color:#fff;font:600 16px var(--body,inherit);padding:0 10px}
.mc-fields select:focus,.mc-fields input:focus{outline:2px solid var(--cone);outline-offset:1px}
.mc-result{margin:18px 0 10px;display:flex;flex-direction:column;gap:2px}
.mc-label{font-size:13px;color:rgba(255,255,255,.65);font-weight:700}
#mcOut{font:800 clamp(30px,3.6vw,42px)/1.1 var(--display);color:var(--cone-hi);font-stretch:104%}
#mcSqft{font-size:14px;color:rgba(255,255,255,.7)}
.mc-note{font-size:14px!important;line-height:1.5;color:rgba(255,255,255,.78);margin:0 0 16px;padding:10px 12px;border-left:3px solid var(--cone);background:rgba(255,255,255,.05)}
.mc-note strong{color:#fff}
.mini-calc .btn{width:100%}
@media(max-width:600px){.mc-fields{grid-template-columns:1fr 1fr}.mc-fields label:first-child{grid-column:1/-1}}
.estimate-disclaimer{font-size:13px;color:rgba(255,255,255,.75);margin:4px 0 8px;line-height:1.45}

/* Audit fixes: services block stacks on phones; slab labels readable */
@media(max-width:800px){.hv-do{grid-template-columns:1fr!important}.hv-do ul.two{columns:1}}
@media(max-width:640px){#slabSvg text{font-size:22px!important}#sJointText{transform:translateX(-70px)}}

/* Google rating above the headline */
.hv-google{display:inline-flex;align-items:center;gap:10px;margin:0 0 22px;padding:9px 16px 9px 12px;border-radius:999px;background:rgba(255,255,255,.96);color:#1F2326;text-decoration:none;font-size:15px;line-height:1;box-shadow:0 6px 22px rgba(0,0,0,.28);transition:transform .15s ease}
.hv-google:hover{transform:translateY(-1px)}
.hv-google:focus-visible{outline:3px solid var(--cone-hi,#F07A2C);outline-offset:3px}
.hv-google .g-logo{flex:none}
.hv-gstars{color:#FBBC04;font-size:17px;letter-spacing:1px}
.hv-gtext strong{font-weight:900}
.hv-gcount{color:#5b6166;padding-left:10px;border-left:1px solid #d5d8da}
@media(max-width:480px){.hv-google{font-size:13.5px;gap:8px;padding:8px 13px 8px 10px}.hv-gstars{font-size:15px}}
@media(prefers-reduced-motion:reduce){.hv-google{transition:none}}
