@font-face { font-family: "Manrope"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/s_manrope_v20_xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FO_F.ttf") format("truetype"); }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/s_manrope_v20_xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk4jE-_F.ttf") format("truetype"); }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/s_manrope_v20_xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk4aE-_F.ttf") format("truetype"); }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 800; font-display: swap; src: url("assets/fonts/s_manrope_v20_xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk59E-_F.ttf") format("truetype"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/s_inter_v20_UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfMZg.ttf") format("truetype"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/s_inter_v20_UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fMZg.ttf") format("truetype"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/s_inter_v20_UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYMZg.ttf") format("truetype"); }
@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/s_barlowcondensed_v13_HTxwL3I-JCGChYJ8VI-L6OO_au7B4-Lw_3E.ttf") format("truetype"); }
@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/s_barlowcondensed_v13_HTxwL3I-JCGChYJ8VI-L6OO_au7B4873_3E.ttf") format("truetype"); }
@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/s_barlowcondensed_v13_HTxwL3I-JCGChYJ8VI-L6OO_au7B46r2_3E.ttf") format("truetype"); }

:root {
  --charcoal: #171a18;
  --bone: #f2efe8;
  --stone: #b6b2a8;
  --copper: #a9653c;
  --forest: #29352f;
  --white: #ffffff;
  --line: rgba(23, 26, 24, .16);
  --dark-line: rgba(182, 178, 168, .22);
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --display: Manrope, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --label: "Barlow Condensed", "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bone); color: var(--charcoal); font-family: var(--sans); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
::selection { background: var(--copper); color: #fff; }
:focus-visible { outline: 2px solid var(--copper); outline-offset: 3px; }
.container { width: 100%; max-width: 1400px; margin: 0 auto; padding-left: 20px; padding-right: 20px; }
.display { font-family: var(--display); font-weight: 800; letter-spacing: -.045em; line-height: .95; text-wrap: balance; }
.label { font-family: var(--label); text-transform: uppercase; letter-spacing: .18em; font-weight: 600; font-size: .8125rem; line-height: 1; }
.num { font-family: var(--label); font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.muted { color: rgba(23, 26, 24, .68); }
.dark-muted { color: var(--stone); }
.rule { height: 1px; background: currentColor; opacity: .25; }
.site-header { position: absolute; inset: 0 0 auto; z-index: 20; color: var(--bone); background: rgba(23, 26, 24, .97); }
.site-header.overlay { background: transparent; }
.header-inner { min-height: 148px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.wordmark { display: inline-flex; align-items: center; gap: 13px; min-width: 210px; }
.wordmark-mark { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid var(--copper); color: var(--copper); font-family: var(--display); font-size: 1.55rem; font-weight: 900; letter-spacing: -.12em; transform: skew(-10deg); }
.wordmark-copy strong { display: block; font-family: var(--display); font-size: 1.3rem; letter-spacing: .1em; line-height: .95; }
.wordmark-copy small { display: block; margin-top: 6px; color: var(--stone); font-family: var(--label); font-size: .55rem; letter-spacing: .16em; line-height: 1; }
.main-nav { display: flex; align-items: center; gap: 32px; }
.main-nav > a, .main-nav .nav-trigger { color: rgba(242,239,232,.83); }
.main-nav > a:hover, .main-nav .nav-trigger:hover { color: var(--copper); }
.nav-services { position: relative; }
.nav-services:hover .nav-dropdown, .nav-services:focus-within .nav-dropdown { visibility: visible; opacity: 1; transform: translateY(0); }
.nav-trigger { cursor: default; }
.nav-dropdown { position: absolute; left: -20px; top: 100%; width: 235px; padding-top: 20px; opacity: 0; visibility: hidden; transform: translateY(-4px); transition: .2s ease; }
.nav-dropdown ul { list-style: none; padding: 9px 0; margin: 0; background: var(--charcoal); border: 1px solid var(--dark-line); }
.nav-dropdown a { display: block; padding: 12px 20px; color: rgba(242,239,232,.78); }
.nav-dropdown a:hover { background: var(--forest); color: var(--copper); }
.nav-divider { width: 1px; height: 21px; background: var(--dark-line); }
.menu-toggle { position: absolute; opacity: 0; pointer-events: none; }
.menu-button { display: none; color: var(--bone); cursor: pointer; font-size: 1.55rem; line-height: 1; }
.mobile-nav { display: none; }
.btn { display: inline-flex; justify-content: center; align-items: center; gap: 9px; padding: 16px 28px; border: 1px solid transparent; font-family: var(--label); text-transform: uppercase; letter-spacing: .14em; font-size: .9375rem; font-weight: 600; line-height: 1.5; transition: .2s ease; }
.main-nav .btn-copper { padding: 12px 20px; border: 0; font-size: .8rem; line-height: 1.5; }
.btn-copper { border: 0; background: var(--copper); color: var(--white); }
.btn-copper:hover { background: #8f5231; transform: translateY(-1px); }
.btn-outline { border-color: currentColor; color: var(--bone); }
.btn-outline:hover { background: var(--bone); color: var(--charcoal); }
.btn-dark-outline { border-color: rgba(23,26,24,.4); color: var(--charcoal); }
.btn-dark-outline:hover { background: var(--charcoal); color: var(--bone); }
.hero { position: relative; min-height: 800px; height: 100svh; display: flex; align-items: flex-end; overflow: hidden; color: var(--bone); }
.hero-image, .image-hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-scrim { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(23,26,24,.98) 0%, rgba(23,26,24,.6) 49%, rgba(23,26,24,.27) 100%); }
.hero-copy { position: relative; z-index: 1; padding: 0 0 56px; }
.hero-copy > p.label { max-width: none; margin: 0; color: var(--copper); font-size: .8125rem; line-height: 1; }
.hero-copy h1 { max-width: none; margin: 24px 0 0; font-size: clamp(3rem, 7vw, 5.6rem); line-height: 1; }
.hero-copy > p:not(.label):not(.hero-meta) { max-width: 36rem; margin: 28px 0 0; color: var(--stone); font-size: 1.02rem; line-height: 1.625; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.hero-copy > p.hero-meta { max-width: none; margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(182,178,168,.25); color: rgba(182,178,168,.8); font-size: .8125rem; line-height: 1; }
.credibility { background: var(--charcoal); color: var(--bone); }
.credibility-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.credibility-item { padding: 28px 32px; border-left: 1px solid var(--dark-line); }
.credibility-item:first-child { border-left: 0; padding-left: 0; }
.credibility-item p { margin: 0; }
.credibility-item p + p { margin-top: 10px; color: var(--stone); font-size: .88rem; line-height: 1.5; }
.section { padding: 112px 0; }
.section-head h2 { margin: 20px 0 0; font-size: clamp(2.6rem, 5vw, 4.35rem); }
.section-head h2 span { color: rgba(23,26,24,.43); }
.service-index { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 54px; }
.service-index a { display: flex; align-items: baseline; gap: 22px; padding: 24px 10px; border-top: 1px solid var(--line); }
.service-index a:hover .service-index-name { color: var(--copper); }
.service-index-name { flex: 1; font-family: var(--display); font-size: clamp(1.55rem, 2.6vw, 2.1rem); font-weight: 800; letter-spacing: -.04em; transition: color .2s ease; }
.arrow { color: var(--copper); font-size: 1.25rem; transition: transform .2s ease; }
a:hover .arrow { transform: translateX(5px); }
.service-block { display: grid; grid-template-columns: 1.4fr 1fr; align-items: center; gap: 64px; padding: 96px 0; }
.service-block.reverse .service-block-image { order: 2; }
.service-block-image { height: 540px; width: 100%; object-fit: cover; }
.service-block h3 { margin: 20px 0 0; font-size: clamp(2.4rem, 4.2vw, 3.3rem); }
.service-block p { max-width: 560px; margin: 26px 0 0; color: rgba(23,26,24,.75); line-height: 1.72; }
.service-block ul, .feature-list, .service-list { list-style: none; padding: 0; margin: 25px 0 0; }
.service-block ul { columns: 2; color: rgba(23,26,24,.7); }
.service-block li { padding: 6px 0; break-inside: avoid; }
.text-link { display: inline-flex; align-items: center; gap: 11px; margin-top: 34px; padding-bottom: 9px; border-bottom: 1px solid rgba(23,26,24,.3); font-family: var(--label); text-transform: uppercase; letter-spacing: .14em; font-size: .78rem; font-weight: 700; }
.text-link:hover { color: var(--copper); border-color: var(--copper); }
.work-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; margin-top: 54px; }
.work-grid figure { margin: 0; }
.work-grid .wide { grid-column: span 8; }
.work-grid .stack { grid-column: span 4; display: grid; gap: 24px; padding-top: 64px; }
.work-grid .offset { grid-column: 4 / span 5; }
.work-grid .small { grid-column: span 4; }
.work-grid img { width: 100%; height: 300px; object-fit: cover; }
.work-grid .wide img { height: 610px; }
.work-grid .stack img { height: 275px; }
.work-grid figcaption { margin-top: 11px; color: rgba(23,26,24,.53); }
.dark-section { background: var(--charcoal); color: var(--bone); }
.forest-section { background: var(--forest); color: var(--bone); }
.why-grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: 64px; }
.why-grid h2 { margin: 20px 0 0; font-size: clamp(2.2rem, 4.3vw, 3.8rem); }
.reason-row { display: grid; grid-template-columns: auto 1fr; gap: 40px; padding: 28px 0; border-top: 1px solid var(--dark-line); }
.reason-row:first-child { margin-top: 0; }
.reason-row h3 { margin: 0; }
.reason-row p { max-width: 620px; margin: 9px 0 0; color: var(--stone); line-height: 1.65; }
.image-feature { position: relative; min-height: 640px; display: flex; align-items: center; overflow: hidden; color: var(--bone); }
.image-feature .image-hero-image { filter: saturate(.86); }
.image-feature-scrim { position: absolute; inset: 0; background: rgba(23,26,24,.72); }
.image-feature-copy { position: relative; z-index: 1; }
.image-feature h2 { max-width: 750px; margin: 20px 0 0; font-size: clamp(2.4rem, 5vw, 4.2rem); }
.image-feature p { max-width: 570px; margin: 26px 0 0; color: var(--stone); line-height: 1.7; }
.two-col { display: grid; grid-template-columns: 1fr 1.3fr; align-items: end; gap: 64px; }
.two-col h2 { margin: 20px 0 0; font-size: clamp(2.3rem, 4vw, 3.65rem); }
.two-col img { width: 100%; height: 510px; object-fit: cover; }
.inline-tags { display: flex; flex-wrap: wrap; gap: 20px 40px; margin-top: 48px; padding-top: 31px; border-top: 1px solid var(--line); color: rgba(23,26,24,.72); }
.commercial-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; align-items: center; }
.commercial-grid img { width: 100%; height: 510px; object-fit: cover; }
.commercial-grid h2 { margin: 20px 0 0; font-size: clamp(2.2rem, 4vw, 3.6rem); }
.commercial-grid p { max-width: 575px; color: var(--stone); line-height: 1.7; }
.feature-list { border-top: 1px solid var(--dark-line); }
.feature-list li { padding: 16px 0; border-bottom: 1px solid var(--dark-line); color: rgba(242,239,232,.85); }
.testimonial-feature { max-width: 1120px; }
.testimonial-feature blockquote { margin: 36px 0 0; }
.testimonial-feature p { margin: 0; font-family: var(--display); font-size: clamp(1.6rem, 3.3vw, 3rem); font-weight: 800; line-height: 1.03; letter-spacing: -.04em; }
.testimonial-feature footer { margin-top: 29px; color: var(--copper); }
.testimonial-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 48px; margin-top: 60px; padding-top: 38px; border-top: 1px solid var(--dark-line); }
.testimonial-grid p { margin: 0; color: rgba(242,239,232,.84); font-size: 1.12rem; line-height: 1.65; }
.testimonial-grid footer { margin-top: 18px; color: rgba(182,178,168,.7); }
.about-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 64px; align-items: start; }
.about-grid img { width: 100%; height: 620px; object-fit: cover; }
.about-copy { padding-top: 24px; }
.about-copy p { margin: 0 0 20px; color: rgba(23,26,24,.75); line-height: 1.72; }
.about-copy .lead { color: var(--charcoal); font-size: 1.45rem; line-height: 1.32; font-weight: 600; letter-spacing: -.03em; }
.area-list { display: flex; flex-wrap: wrap; gap: 16px 40px; margin-top: 30px; }
.area-list span { font-family: var(--display); font-size: clamp(1.7rem, 3.7vw, 3.3rem); font-weight: 800; letter-spacing: -.05em; }
.page-hero { padding: 190px 0 96px; background: var(--charcoal); color: var(--bone); }
.page-hero h1 { max-width: 980px; margin: 23px 0 0; font-size: clamp(2.8rem, 6vw, 5.4rem); }
.page-hero p { max-width: 640px; margin: 27px 0 0; color: var(--stone); line-height: 1.7; }
.service-hero { height: 68vh; min-height: 460px; display: flex; align-items: flex-end; position: relative; overflow: hidden; color: var(--bone); }
.service-hero .hero-scrim { background: linear-gradient(0deg, rgba(23,26,24,.99) 0%, rgba(23,26,24,.7) 56%, rgba(23,26,24,.22) 100%); }
.service-hero-copy { position: relative; z-index: 1; padding: 0 0 78px; }
.service-hero-copy h1 { max-width: 980px; margin: 21px 0 0; font-size: clamp(2.65rem, 5.7vw, 5.2rem); }
.service-hero-copy p { max-width: 630px; margin: 23px 0 0; color: var(--stone); line-height: 1.7; }
.service-intro { display: grid; grid-template-columns: 1fr 1.2fr; gap: 64px; }
.service-intro h2 { margin: 15px 0 0; font-size: clamp(2.1rem, 4vw, 3.2rem); }
.service-intro-copy p { margin: 0 0 20px; color: rgba(23,26,24,.75); font-size: 1.05rem; line-height: 1.72; }
.handles h2 { max-width: 700px; margin: 0; font-size: clamp(2.1rem, 4vw, 3.1rem); }
.handles-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 48px; margin-top: 50px; }
.handles-grid li { display: flex; align-items: baseline; gap: 20px; padding: 19px 0; border-top: 1px solid var(--dark-line); color: rgba(242,239,232,.86); }
.service-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 45px; }
.service-gallery figure { margin: 0; }
.service-gallery figure:first-child { grid-column: span 2; }
.service-gallery img { width: 100%; height: 420px; object-fit: cover; }
.service-gallery figure:not(:first-child) img { height: 420px; }
.service-gallery figcaption { margin-top: 10px; color: rgba(23,26,24,.55); }
.estimate-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 64px; }
.estimate-grid h2 { margin: 20px 0 0; font-size: clamp(2.3rem, 4vw, 3.7rem); }
.estimate-grid .phone { display: inline-block; margin-top: 31px; color: var(--copper); font-family: var(--display); font-size: 2rem; font-weight: 800; letter-spacing: -.04em; }
.form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.form-group.full { grid-column: 1 / -1; }
.form label { display: block; margin-bottom: 8px; color: rgba(23,26,24,.62); }
.form input, .form select, .form textarea { width: 100%; padding: 15px 16px; border: 1px solid rgba(23,26,24,.21); border-radius: 0; background: #fff; color: var(--charcoal); }
.form textarea { min-height: 130px; resize: vertical; }
.form input:focus, .form select:focus, .form textarea:focus { outline: 1px solid var(--copper); border-color: var(--copper); }
.form-note { margin-top: 15px; color: rgba(23,26,24,.63); font-size: .88rem; line-height: 1.5; }
.lead-form-shell { width: 100%; height: 640px; min-height: 640px; }
.lead-form-embed { display: block; width: 100%; height: 100%; min-height: 640px; border: 0; background: #fff; }
.other-services { margin-top: 80px; padding-top: 30px; border-top: 1px solid var(--line); }
.other-services-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 40px; margin-top: 18px; }
.other-services-list a { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line); font-family: var(--display); font-size: 1.2rem; font-weight: 800; letter-spacing: -.03em; }
.other-services-list a:hover { color: var(--copper); }
.gallery-controls { display: flex; flex-wrap: wrap; gap: 24px 29px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.gallery-filter-input { position: absolute; opacity: 0; pointer-events: none; }
.gallery-filter-label { cursor: pointer; padding-bottom: 5px; border-bottom: 2px solid transparent; color: rgba(23,26,24,.5); }
.gallery-filter-label:hover { color: var(--charcoal); }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 40px; }
.gallery-card { position: relative; overflow: hidden; background: var(--charcoal); cursor: zoom-in; }
.gallery-card:nth-child(7n + 1) { grid-column: span 2; }
.gallery-card img { width: 100%; height: 320px; object-fit: cover; transition: transform .45s ease; }
.gallery-card:nth-child(7n + 1) img { height: 390px; }
.gallery-card:hover img { transform: scale(1.035); }
.gallery-card span { position: absolute; inset: auto 0 0 auto; padding: 10px 12px; background: rgba(23,26,24,.85); color: var(--bone); opacity: 0; transition: opacity .2s ease; }
.gallery-card:hover span { opacity: 1; }
.gallery-filter-input:checked + .gallery-filter-label { color: var(--charcoal); border-color: var(--copper); }
#filter-roofing:checked ~ .gallery-grid .gallery-card:not(.roofing),
#filter-siding:checked ~ .gallery-grid .gallery-card:not(.siding),
#filter-concrete:checked ~ .gallery-grid .gallery-card:not(.concrete),
#filter-commercial:checked ~ .gallery-grid .gallery-card:not(.commercial),
#filter-remodeling:checked ~ .gallery-grid .gallery-card:not(.remodeling) { display: none; }
.lightbox { position: fixed; inset: 0; z-index: 80; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(23,26,24,.96); }
.lightbox:target { display: flex; }
.lightbox-backdrop { position: absolute; inset: 0; }
.lightbox figure { position: relative; z-index: 1; max-width: min(1100px, 92vw); max-height: 90vh; margin: 0; }
.lightbox img { max-width: 100%; max-height: 78vh; width: auto; object-fit: contain; }
.lightbox figcaption { margin-top: 12px; text-align: center; color: var(--stone); }
.lightbox-close { position: absolute; z-index: 2; top: 22px; right: 28px; color: var(--bone); font-size: 2rem; }
.site-footer { background: var(--charcoal); color: var(--bone); }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 60px; padding: 78px 0; }
.footer-copy { max-width: 360px; margin-top: 26px; color: var(--stone); font-size: .9rem; line-height: 1.65; }
.footer-phone { display: inline-block; margin-top: 18px; color: var(--copper); font-family: var(--display); font-size: 1.75rem; font-weight: 800; letter-spacing: -.04em; }
.footer-list { list-style: none; padding: 0; margin: 20px 0 0; }
.footer-list li { margin: 11px 0; }
.footer-list a { color: rgba(242,239,232,.8); font-size: .9rem; }
.footer-list a:hover { color: var(--copper); }
.footer-bottom { display: flex; justify-content: space-between; gap: 18px; padding: 23px 0 26px; border-top: 1px solid var(--dark-line); color: rgba(182,178,168,.6); font-size: .75rem; }
.mobile-cta { display: none; }
.appear { animation: appear .7s ease both; }
@keyframes appear { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (min-width: 768px) {
  .container { padding-left: 40px; padding-right: 40px; }
  .header-inner { min-height: 160px; }
  .hero { height: 88vh; min-height: 560px; }
  .site-logo { height: 144px; }
}
@media (max-width: 1023px) {
  .main-nav { display: none; }
  .menu-button { display: block; }
  .menu-toggle:checked ~ .mobile-nav { display: block; }
  .mobile-nav { border-top: 1px solid var(--dark-line); background: var(--charcoal); }
  .mobile-nav a { display: block; padding: 17px 20px; border-bottom: 1px solid rgba(182,178,168,.12); color: rgba(242,239,232,.85); }
  .mobile-nav a:hover { color: var(--copper); }
  .mobile-nav .mobile-phone { padding-top: 25px; color: var(--copper); }
  .credibility-grid { grid-template-columns: repeat(2, 1fr); }
  .credibility-item { border-left: 0; border-top: 1px solid var(--dark-line); padding: 22px 0; }
  .credibility-item:nth-child(-n+2) { border-top: 0; }
  .credibility-item:nth-child(even) { padding-left: 24px; border-left: 1px solid var(--dark-line); }
  .service-block, .commercial-grid, .about-grid, .service-intro, .estimate-grid, .two-col, .why-grid { grid-template-columns: 1fr; gap: 38px; }
  .service-block.reverse .service-block-image { order: 0; }
  .service-block-image { height: 420px; }
  .work-grid .wide { grid-column: span 12; }
  .work-grid .stack { grid-column: span 6; padding-top: 0; }
  .work-grid .offset { grid-column: span 6; }
  .work-grid .small { grid-column: span 6; }
  .commercial-grid img, .two-col img { height: 430px; }
  .handles-grid { grid-template-columns: repeat(2, 1fr); }
  .other-services-list { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1.4fr 1fr; }
  .footer-grid > :last-child { grid-column: 2; }
}
@media (max-width: 639px) {
  .container { padding-left: 20px; padding-right: 20px; }
  .wordmark { min-width: auto; }
  .wordmark-mark { width: 42px; height: 42px; font-size: 1.35rem; }
  .wordmark-copy strong { font-size: 1.08rem; }
  .wordmark-copy small { font-size: .46rem; }
  .hero .hero-scrim { background: linear-gradient(0deg, rgba(23,26,24,.99) 0%, rgba(23,26,24,.78) 50%, rgba(23,26,24,.5) 100%); }
  .hero-copy { padding-bottom: 42px; }
  .hero-copy h1 { font-size: clamp(2.75rem, 13vw, 4.1rem); }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .btn { width: 100%; }
  .section { padding: 80px 0; }
  .credibility-grid { grid-template-columns: 1fr; }
  .credibility-item, .credibility-item:nth-child(even) { padding: 20px 0; border-left: 0; border-top: 1px solid var(--dark-line); }
  .credibility-item:first-child { border-top: 0; }
  .service-index { grid-template-columns: 1fr; margin-top: 38px; }
  .service-block { padding: 70px 0; }
  .service-block-image { height: 300px; }
  .service-block ul { columns: 1; }
  .work-grid { grid-template-columns: 1fr; gap: 26px; }
  .work-grid .wide, .work-grid .stack, .work-grid .offset, .work-grid .small { grid-column: auto; display: block; padding-top: 0; }
  .work-grid img, .work-grid .wide img, .work-grid .stack img { height: 280px; }
  .reason-row { grid-template-columns: 1fr; gap: 10px; }
  .image-feature { min-height: 600px; }
  .testimonial-grid { grid-template-columns: 1fr; gap: 35px; }
  .about-grid img { height: 380px; }
  .page-hero { padding: 155px 0 72px; }
  .service-hero { height: 68vh; min-height: 460px; }
  .service-gallery { grid-template-columns: 1fr; }
  .service-gallery figure:first-child { grid-column: auto; }
  .service-gallery img, .service-gallery figure:not(:first-child) img { height: 280px; }
  .handles-grid { grid-template-columns: 1fr; }
  .form { grid-template-columns: 1fr; }
  .form-group.full { grid-column: auto; }
  .gallery-grid { grid-template-columns: 1fr; }
  .gallery-card:nth-child(7n + 1) { grid-column: auto; }
  .gallery-card img, .gallery-card:nth-child(7n + 1) img { height: 260px; }
  .footer-grid { grid-template-columns: 1fr; gap: 38px; padding: 60px 0 80px; }
  .footer-grid > :last-child { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
  .mobile-cta { position: fixed; inset: auto 0 0; z-index: 30; display: grid; grid-template-columns: 1fr 1fr; }
  .mobile-cta a { padding: 16px; text-align: center; }
  .mobile-cta .call { background: var(--charcoal); color: var(--bone); }
  .mobile-cta .estimate { background: var(--copper); color: #fff; }
  body { padding-bottom: 53px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }

/* Exact archive asset treatment */
.wordmark { min-width: 0; }
.site-logo { display: block; width: auto; height: 132px; object-fit: contain; }
@media (min-width: 768px) { .site-logo { height: 144px; } }

/* Route-specific parity with the supplied Tailwind source */
.page-hero h1 { max-width: 56rem; margin-top: 20px; font-size: 2.6rem; line-height: .95; }
.page-hero p { max-width: 36rem; margin-top: 24px; line-height: 1.625; }
.service-page .service-hero-copy { padding-bottom: 56px; }
.service-page .service-hero-copy > p.label { max-width: none; margin: 0; font-size: .8125rem; line-height: 1; }
.service-page .service-hero-copy h1 { max-width: 56rem; margin-top: 20px; font-size: 2.6rem; line-height: .95; }
.service-page .service-hero-copy h1 { line-height: 1; }
.service-page .service-hero-copy > p:not(.label) { max-width: 36rem; margin-top: 24px; line-height: 1.625; }
.service-page .service-intro { gap: 48px; }
.service-page .service-intro h2,
.service-page .handles h2,
.service-page .why-grid h2 { font-size: 2.25rem; }
.service-page .service-intro-copy { display: flex; flex-direction: column; gap: 20px; }
.service-page .service-intro-copy p { margin: 0; line-height: 1.625; }
.service-page .service-intro-copy a { padding-top: 8px !important; }
.service-page .handles-grid { margin-top: 48px; }
.service-page .service-gallery { margin-top: 40px; }
.service-page .service-gallery img,
.service-page .service-gallery figure:not(:first-child) img { height: 26rem; }
.service-page .why-grid { gap: 48px; }
.service-page .reason-row { gap: 32px; padding: 24px 0; }
.service-page .estimate-grid { gap: 56px; }
.service-page .estimate-grid h2 { font-size: 3rem; }
.gallery-page .gallery-controls { gap: 12px 28px; padding-bottom: 19px; }
.gallery-page .page-hero > .container > p.label { max-width: none; margin: 0; font-size: .8125rem; line-height: 1; }
.gallery-page .gallery-card:nth-child(7n + 1) img { height: 320px; }
.gallery-page .section[style*="padding-top:56px"] { padding-top: 64px !important; }
.contact-page { padding-top: 160px; }
.contact-page .page-hero { padding: 64px 0 96px; }
.contact-page .page-hero > .container > p.label { max-width: none; margin: 0; font-size: .8125rem; line-height: 1; }
.contact-page .page-hero h1 { margin-top: 24px; font-size: 4.5rem; line-height: 1; }
.contact-page .page-hero > .container > p:not(.label) { max-width: 28rem; margin-top: 32px; line-height: 1.625; }
.contact-page .page-hero .footer-phone { margin-top: 32px; font-size: 3rem; line-height: 1; letter-spacing: -.025em; }
.contact-page .estimate-grid { grid-template-columns: 1fr 1.4fr; gap: 56px; }
.contact-page .estimate-grid h2 { margin-top: 0; font-size: 2.25rem; line-height: 1.111; }
.contact-page .estimate-grid > div:last-child > div { margin-top: 40px !important; }

@media (min-width: 640px) {
  .hero-actions { gap: 20px; }
  .page-hero h1,
  .service-page .service-hero-copy h1 { font-size: 3.75rem; }
  .service-page .service-hero-copy { padding-bottom: 80px; }
  .service-page .service-intro h2,
  .service-page .handles h2,
  .service-page .why-grid h2 { font-size: 2.25rem; }
}
@media (min-width: 1024px) {
  .page-hero h1,
  .service-page .service-hero-copy h1 { font-size: 4.5rem; }
}
@media (max-width: 639px) {
  .service-page .service-hero-copy { padding-bottom: 56px; }
  .service-page .estimate-grid h2 { font-size: 2.25rem; }
  .lead-form-shell, .lead-form-embed { height: 700px; min-height: 700px; }
}
