/* Navigation repairs: fixed header and accurate in-page anchor offsets. */
html { scroll-padding-top: 112px; }
body { padding-top: 102px; }
.site { overflow-x: clip; }
.site-header { position: fixed; top: 14px; left: 50%; transform: translateX(-50%); z-index: 100; margin: 0; }
.header-actions { display:flex; align-items:center; gap:8px; }.mobile-action-bar { display:none; }.header-actions a { display:inline-flex; align-items:center; justify-content:center; min-height:39px; padding:0 12px; border-radius:10px; font-size:.74rem; font-weight:900; text-transform:uppercase; letter-spacing:.03em; }.header-book { background:var(--lime); color:var(--deep); }.header-client { background:#fff; color:var(--green-dark); }
@media (max-width: 900px) { .primary-nav { position: fixed; top: 92px; left: 14px; right: 14px; } .header-actions { display:none; } body { padding-bottom:86px; } .mobile-action-bar { position:fixed; z-index:101; bottom:12px; left:14px; right:14px; display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:8px; border:1px solid rgba(255,255,255,.16); border-radius:18px; background:rgba(5,9,5,.94); box-shadow:0 12px 35px rgba(0,0,0,.26); backdrop-filter:blur(14px); } .mobile-action-bar a { min-height:46px; display:flex; align-items:center; justify-content:center; border-radius:12px; font-size:.82rem; font-weight:900; text-transform:uppercase; letter-spacing:.02em; } .mobile-book { background:var(--lime); color:var(--deep); } .mobile-call { background:#fff; color:var(--green-dark); } }
.hero-rebuilt { padding-bottom: 42px; }
.hero-quick { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:26px; }
.hero-quick article,.material-card { padding:16px; border:1px solid var(--line); border-radius:18px; background:rgba(255,255,255,.82); }
.hero-quick strong,.hero-quick span { display:block; }.hero-quick strong { font-size:.92rem; }.hero-quick span { margin-top:3px;color:var(--muted);font-size:.78rem; }
.phone-button { color:var(--green)!important; }.business-stats { display:flex; gap:12px; margin:25px 0; }.business-stats span { flex:1; padding:14px; border-radius:14px; background:rgba(255,255,255,.08); color:rgba(255,255,255,.7); font-size:.78rem; }.business-stats b { display:block; margin-bottom:3px; color:var(--lime); font-size:1.4rem; }
.material-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }.material-card { min-height:220px; box-shadow:0 15px 35px rgba(10,20,10,.06); }.material-card h3 { margin-bottom:22px; }.material-card.accepted { background:linear-gradient(135deg,#eeffe7,#fff); }.material-card.restricted { background:linear-gradient(135deg,#fff,#f4f5f2); }.tag-list { display:flex; flex-wrap:wrap; gap:8px; }.tag-list span { padding:8px 10px; border-radius:999px; background:white; border:1px solid var(--line); font-size:.78rem; font-weight:800; }.accepted .tag-list span { border-color:rgba(49,198,83,.25); }.area-card { padding:clamp(30px,5vw,62px); border:1px solid var(--line); border-radius:34px; background:linear-gradient(135deg,#fff,#eff8ea); box-shadow:0 18px 50px rgba(10,20,10,.07); }.area-card h2 { max-width:760px; }.area-list { display:flex; flex-wrap:wrap; gap:10px; margin:25px 0; }.area-list span { padding:10px 14px; border-radius:999px; background:var(--deep); color:white; font-weight:800; }.contact-card { display:flex; align-items:center; justify-content:space-between; gap:30px; }.contact-card h2 { max-width:620px; }.contact-actions { display:flex; flex-direction:column; align-items:flex-start; gap:12px; min-width:240px; }.email-link { color:var(--green-dark); font-weight:800; }
@media (min-width:701px) and (max-width:900px) { .size-grid { grid-template-columns:repeat(2,1fr); } .size-card:last-child { grid-column:1 / -1; min-height:320px; } }
@media(max-width:700px){.hero-quick{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:20px}.hero-quick article{padding:11px 8px}.hero-quick strong{font-size:.76rem}.hero-quick span{font-size:.68rem;line-height:1.25}.material-grid{grid-template-columns:1fr}.contact-card{display:block}.contact-actions{margin-top:26px}.business-stats{flex-direction:column}.trust .wrap{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:0 8px;scrollbar-width:none}.trust .wrap::-webkit-scrollbar{display:none}.trust span{flex:0 0 auto}.hero-rebuilt{padding-bottom:32px}.hero-rebuilt .hero-panel{min-height:230px;height:230px}.size-card{min-height:330px;padding:24px}.size-meta{margin:10px 0 16px}.size-card .button{width:100%}}
@media(max-width:560px){.size-hero{padding:74px 0 48px}.measurements{padding:22px}.measurements strong{font-size:1.55rem}.page-content{padding:62px 0}.facts .fact{padding:20px}}

/* Solid, calm visual system: clean surfaces, precise spacing and no gradients. */
:root { --lime:#a7f542; --green:#48b968; --green-dark:#1f7439; --deep:#101110; --ink:#161816; --muted:#687068; --paper:#f5f5f2; --line:rgba(22,24,22,.12); --radius:24px; --max:1200px; }
body { background:var(--paper); font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif; letter-spacing:-.012em; }
.site-header { min-height:70px; padding:11px 14px 11px 20px; border-radius:18px; border-color:rgba(255,255,255,.16); background:#101110; box-shadow:0 14px 34px rgba(10,15,10,.16); backdrop-filter:none; }
.brand img { width:205px; }
.menu { gap:2px; }.menu a { padding:9px 11px; font-size:.82rem; letter-spacing:0; }.menu .quote-link a { background:transparent; color:rgba(255,255,255,.83)!important; }.menu .quote-link a:hover { background:rgba(255,255,255,.09); }
.header-actions a { min-height:38px; border-radius:11px; }.header-book { background:var(--lime); }.header-client { color:var(--deep); }
h1,h2 { font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif; text-transform:none; letter-spacing:-.06em; line-height:.98; font-weight:800; }
h1 { font-size:clamp(3.25rem,6.5vw,6.2rem); }.hero h1 { max-width:720px; }.section-head h2 { max-width:760px; margin-inline:auto; }
h3 { letter-spacing:-.03em; }.eyebrow { color:var(--green-dark); letter-spacing:.1em; }.eyebrow:before { width:8px; height:8px; box-shadow:none; }
.hero { background:var(--paper); padding:112px 0 72px; }.hero-rebuilt { padding-bottom:58px; }.hero-grid { gap:56px; }
.hero-panel { border:1px solid #242924; border-radius:28px; background:#151715; box-shadow:0 22px 50px rgba(10,15,10,.16); overflow:hidden; }.hero-panel:before { display:none; }.hero-photo-panel img { width:100%; height:100%; object-fit:cover; object-position:center; }.hero-photo-panel:after { content:""; position:absolute; inset:0; background:rgba(0,0,0,.1); pointer-events:none; }.dumpster-mark { background:#242824; border:2px solid rgba(167,245,66,.72); box-shadow:inset 0 20px 0 rgba(255,255,255,.035),0 24px 0 rgba(0,0,0,.14); }.panel-pill { z-index:1; border:1px solid rgba(16,17,16,.08); border-radius:12px; box-shadow:0 10px 22px rgba(0,0,0,.14); }.panel-pill.two { background:var(--lime); }
.button { min-height:52px; padding:0 20px; border-radius:14px; box-shadow:none; transition:transform .2s ease,background .2s ease,border-color .2s ease; }.button:hover { background:#8be330; transform:translateY(-2px); }.button.alt { background:#fff; border-color:rgba(22,24,22,.14); }
.hero-quick article,.material-card { border-radius:16px; background:#fff; box-shadow:none; }.hero-quick article { border-color:rgba(22,24,22,.1); }
.trust { background:#101110; }.trust span { border-radius:10px; border-color:rgba(255,255,255,.15); }
.section { padding:96px 0; }.section-soft { background:#fff; }.card,.fact { border-color:var(--line); border-radius:20px; box-shadow:0 12px 30px rgba(12,20,12,.05); }
.size-card { min-height:382px; border:1px solid rgba(255,255,255,.1); border-radius:24px; background:#151715; box-shadow:0 16px 38px rgba(10,15,10,.12); }.size-card:nth-child(2) { background:#1b261b; }.size-card:nth-child(3) { background:#252b1c; }.size-card:before { color:rgba(167,245,66,.1); }.size-card .button { border-radius:12px; }
.dark-box { border-radius:28px; background:#101110; }.business-stats span { border:1px solid rgba(255,255,255,.08); background:#1b1e1b; }
.steps article { border-bottom-color:var(--line); }.steps article:before { background:#101110; }
.material-card { min-height:212px; }.material-card.accepted { background:#f0fae9; }.material-card.restricted { background:#fff1f1; border-color:#f1c5c5; }.material-card h3 { display:flex; align-items:center; gap:7px; }.material-card h3 span { font-size:1.05em; line-height:1; }.restricted .tag-list span { border-color:#efcccc; }.tag-list span { background:#fff; border-radius:10px; }
.area-card { border-radius:28px; background:#fff; box-shadow:0 14px 36px rgba(12,20,12,.06); }.area-list a { display:inline-flex; align-items:center; min-height:42px; padding:0 16px; border-radius:11px; background:#101110; color:#fff; font-weight:800; transition:transform .2s ease,background .2s ease; }.area-list a:hover { background:var(--green-dark); transform:translateY(-2px); }
.quote { background:#101110; }.quote-card { border-radius:28px; box-shadow:0 18px 46px rgba(0,0,0,.22); }.contact-actions .button { min-width:220px; }
.site-footer { background:#101110; }.site-footer img { width:205px; }
.site-footer .footer-address { margin-top:14px; line-height:1.5; color:rgba(255,255,255,.82); font-weight:700; }
.size-hero { background:#101110; }.measurements { border-color:rgba(167,245,66,.46); background:#1b1e1b; }.facts { gap:14px; }.fact { border-radius:18px; }
.page-content { background:#fff; }.page-content .wrap { max-width:760px; }
.service-area-content .wrap { max-width:1120px; }.service-project-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.9fr); gap:48px; align-items:center; }.service-project-grid h2 { margin-bottom:22px; }.service-category-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:26px; }.service-category-list span { padding:9px 11px; border:1px solid rgba(22,24,22,.12); border-radius:10px; background:#f4f5f2; color:#161816; font-size:.75rem; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }.service-project-image { overflow:hidden; margin:0; border-radius:22px; background:#e9ece6; }.service-project-image img { width:100%; aspect-ratio:4 / 3; object-fit:cover; }.permit-link { margin-top:24px; font-size:.9rem; }.permit-link a { color:var(--green-dark); font-weight:800; text-decoration:underline; text-underline-offset:4px; }
@media (max-width:900px) { .site-header { min-height:68px; } .primary-nav { top:90px; border:1px solid rgba(255,255,255,.13); border-radius:18px; background:#101110; box-shadow:0 16px 34px rgba(0,0,0,.18); } .mobile-action-bar { background:#101110; border-radius:16px; box-shadow:0 12px 30px rgba(0,0,0,.2); backdrop-filter:none; } }
@media (max-width:800px) { .service-project-grid { grid-template-columns:1fr; gap:28px; }.service-project-image { order:-1; }.service-category-list { gap:7px; }.service-category-list span { font-size:.69rem; padding:8px 9px; } }
/* Immersive home hero: full-bleed project imagery with a solid, readable content layer. */
body { overflow-x:clip; }.site { overflow:visible; background:#101110; }.hero.hero-immersive { position:relative; display:flex; align-items:center; min-height:clamp(720px,88vh,920px); margin-top:-167px; padding:144px 0 84px; overflow:hidden; background:#101110; isolation:isolate; }.hero-media { position:absolute; z-index:-2; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center; filter:brightness(.5); }.hero-immersive:before { content:""; position:absolute; z-index:-1; inset:0; background:rgba(10,13,10,.28); }.hero-immersive-content { display:flex; flex-direction:column; align-items:center; gap:32px; text-align:center; }.hero-copy { max-width:900px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }.hero-copy .eyebrow { color:#dfffc0; }.hero-copy .lede { max-width:690px; margin-inline:auto; color:rgba(255,255,255,.9); font-size:1.08rem; }.hero-copy h1 { max-width:860px; margin-inline:auto; color:#fff; font-size:clamp(3.8rem,7vw,7rem); text-shadow:0 4px 22px rgba(0,0,0,.28); }.hero-copy .actions { justify-content:center; }.hero-copy .button.alt { color:#101110!important; }.hero-immersive .hero-quick { width:min(100%,760px); margin:0; }.hero-immersive .hero-quick article { border-color:rgba(255,255,255,.22); background:rgba(16,17,16,.84); color:#fff; }.hero-immersive .hero-quick span { color:rgba(255,255,255,.72); }
@media (max-width:700px) { .hero.hero-immersive { min-height:760px; padding:116px 0 106px; align-items:flex-end; }.hero-immersive-content { gap:18px; }.hero-copy { padding:22px 18px; border-radius:20px; }.hero-copy h1 { font-size:clamp(3.15rem,15vw,4.6rem); }.hero-immersive .hero-quick { grid-template-columns:1fr; gap:7px; }.hero-immersive .hero-quick article { padding:10px 12px; }.hero-immersive .hero-quick strong,.hero-immersive .hero-quick span { display:inline; }.hero-immersive .hero-quick span { margin-left:7px; }.hero-media { object-position:58% center; } }
/* Strong contrast for the dark service flow without changing its black background. */
#how-it-works { background:#101110; } #how-it-works > .wrap > div > h2, #how-it-works .steps h3 { color:#fff; } #how-it-works .steps p { color:rgba(255,255,255,.78); } #how-it-works > .wrap > div > .eyebrow { color:#85e496; } .dark-box > .button { width:100%; min-height:60px; margin-top:4px; }
/* Mobile-first reading rhythm: headline, decision and action before supporting detail. */
@media (max-width:700px) { .hero.hero-immersive { min-height:680px; padding:108px 0 98px; align-items:center; }.hero-copy h1 { font-size:clamp(3rem,13vw,4.15rem); }.hero-copy .lede { display:none; }.hero-immersive-content { gap:22px; }.hero-copy .actions { margin-top:20px; }.hero-immersive .hero-quick { grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; }.hero-immersive .hero-quick article { min-height:64px; padding:10px 7px; display:flex; align-items:center; justify-content:center; }.hero-immersive .hero-quick strong { display:block; font-size:.7rem; line-height:1.15; }.hero-immersive .hero-quick span { display:none; }.section-head > p:not(.eyebrow), .contact-card > div > p:not(.eyebrow) { display:none; }.section-head { margin-bottom:30px; }.section-head h2 { font-size:clamp(2.2rem,10vw,3rem); }.steps article { padding:14px 0; }.steps article p { margin:5px 0 0; font-size:.92rem; line-height:1.45; }.dark-box > p:not(.eyebrow):not(.business-note) { font-size:.93rem; line-height:1.48; }.contact-card h2 { margin-bottom:0; } }
/* Mobile navigation and stacked contact controls. */
@media (max-width:900px) { .nav-toggle { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:4px; width:44px; height:44px; padding:0; border-radius:13px; background:var(--lime); color:var(--deep); }.nav-toggle span { display:block; width:18px; height:2px; border-radius:2px; background:currentColor; transition:transform .2s ease,opacity .2s ease; }.nav-toggle.is-open span:nth-child(1) { transform:translateY(6px) rotate(45deg); }.nav-toggle.is-open span:nth-child(2) { opacity:0; }.nav-toggle.is-open span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }.primary-nav { z-index:99; padding:10px; }.primary-nav .menu a { min-height:46px; display:flex; align-items:center; justify-content:center; }.contact-card { text-align:center; }.contact-actions { align-items:stretch; min-width:0; }.contact-actions .button { width:100%; }.email-link { width:100%; overflow-wrap:anywhere; font-size:.83rem; } }
.business-stats span { display:flex; align-items:baseline; justify-content:space-between; gap:10px; }.business-stats small { order:1; font-size:.76rem; font-weight:800; }.business-stats b { order:2; margin-bottom:0; }
/* Homepage mobile: one clear action group, evenly sized and never hidden behind the header. */
@media (max-width:700px) {
  .hero-immersive .hero-copy > .eyebrow { display:none; }
  .hero-copy .actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; max-width:540px; gap:10px; margin:18px auto 0; }
  .hero-copy .actions .button { width:100%; min-width:0; min-height:58px; padding:0 10px; font-size:.92rem; white-space:nowrap; }
  .hero-immersive .hero-quick { gap:8px; }
  .hero-immersive .hero-quick article { min-height:76px; padding:10px 6px; border-radius:16px; }
  .hero-immersive .hero-quick strong { font-size:.76rem; }
  .home .mobile-action-bar { display:none; }
  body.home { padding-bottom:0; }
}
@media (max-width:700px) { .section { padding:68px 0; }.hero { padding:92px 0 48px; }.hero-panel { border-radius:22px; }.size-card { border-radius:20px; }.quote-card,.area-card,.dark-box { border-radius:22px; } }
@media (max-width:700px) {
  #areas-served { padding:36px 0 26px; }
  #areas-served + .quote { padding-top:26px; }
  .area-card { padding:32px 24px; }
  .area-card h2 { max-width:330px; font-size:clamp(2.45rem,11vw,3.15rem); }
  .area-card > div > p:not(.eyebrow) { margin-bottom:22px; font-size:1rem; }
  .area-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:0; }
  .area-list a { width:100%; min-width:0; min-height:62px; justify-content:center; padding:8px 5px; border-radius:14px; font-size:.86rem; line-height:1.15; text-align:center; }
}
/* Home hero details: compact mobile hierarchy with a primary booking action. */
.hero-location { display:flex; align-items:center; justify-content:center; gap:.35rem; }
.hero-location span + span:before { content:"·"; margin-right:.35rem; }
.phone-icon { display:none; font-size:1.25rem; line-height:1; }
@media (max-width:700px) {
  .hero-immersive .hero-copy > .hero-location { display:flex; flex-direction:column; gap:2px; margin:0 0 8px; color:#dfffc0; font-size:.66rem; line-height:1.2; letter-spacing:.13em; }
  .hero-location span + span:before { display:none; }
  .hero-copy .actions { grid-template-columns:minmax(0,1fr) 58px; max-width:430px; gap:10px; }
  .hero-copy .actions .phone-button { width:58px; min-width:58px; padding:0; }
  .hero-copy .actions .phone-label { display:none; }
  .hero-copy .actions .phone-icon { display:block; }
  .hero-immersive .hero-quick { gap:6px; }
  .hero-immersive .hero-quick article { min-height:56px; padding:7px 4px; border-radius:14px; }
  .hero-immersive .hero-quick strong { font-size:.67rem; line-height:1.1; }
}
/* The booking decision is the hero priority; the phone remains an accessible secondary route. */
.hero-phone { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:0 20px; color:#fff; font-weight:800; }
.hero-location:before { display:none; }
.hero-location .location-copy { display:flex; align-items:center; gap:.35rem; }
.hero-location .location-copy strong + span:before { content:"·"; margin-right:.35rem; }
@media (max-width:700px) {
  .hero-immersive .hero-copy > .hero-location { display:flex; margin:0 0 12px; padding:0; color:#dfffc0; font-size:.72rem; line-height:1.2; letter-spacing:.14em; }
  /* Use the lower half of the image more deliberately on phones. */
  .hero-immersive-content { transform:translateY(28px); }
  .hero-location .location-copy { display:flex; flex-direction:column; align-items:center; gap:4px; }
  .hero-location .location-copy strong { color:#f4ffe9; font-weight:900; }
  .hero-location .location-copy strong + span:before { display:none; }
  .hero-copy .actions { display:flex; flex-direction:column; align-items:center; width:100%; max-width:330px; gap:8px; margin:16px auto 0; }
  .hero-copy .actions .button { width:100%; min-height:68px; padding:0 18px; font-size:1.08rem; }
  .hero-copy .actions .hero-phone { min-height:30px; padding:0; color:#fff; font-size:.9rem; font-weight:800; text-decoration:underline; text-decoration-color:rgba(157,255,47,.75); text-underline-offset:5px; }
}
.size-footer { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-top:auto; }.size-card .size-footer .button { width:auto; margin-top:0; }.size-footer small { max-width:126px; color:rgba(255,255,255,.66); font-size:.72rem; font-weight:750; line-height:1.35; text-align:right; }
.business-note { margin:0 0 12px; color:var(--lime)!important; font-weight:800; }
.size-image-section { padding-top:26px; padding-bottom:84px; background:#fff; }.size-image { margin:0; overflow:hidden; border:1px solid var(--line); border-radius:24px; background:#fff; box-shadow:0 16px 38px rgba(10,15,10,.06); }.size-image img { width:100%; height:auto; background:#fff; }.size-image figcaption { padding:14px 18px; color:var(--muted); font-size:.88rem; font-weight:700; }
@media(max-width:700px){.size-footer{align-items:stretch;flex-direction:column;gap:10px}.size-card .size-footer .button{width:100%}.size-footer small{max-width:none;text-align:left}.size-image-section{padding-top:12px;padding-bottom:54px}.size-image{border-radius:18px}.size-image figcaption{padding:12px 14px;font-size:.8rem}}
