/* Final responsive and accessibility pass. */
#gravel-flow{display:none!important}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:7;opacity:.2;background:radial-gradient(circle at 15% 20%,rgba(0,155,222,.18),transparent 24%),radial-gradient(circle at 85% 70%,rgba(0,155,222,.12),transparent 28%);animation:ambient-drift 18s ease-in-out infinite alternate}
.hero:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.13;background-image:linear-gradient(rgba(154,222,247,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(154,222,247,.5) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(120deg,transparent 5%,#000 42%,transparent 90%);-webkit-mask-image:linear-gradient(120deg,transparent 5%,#000 42%,transparent 90%);animation:grid-drift 22s linear infinite}
.hero-content,.hero-facts{z-index:3}
@keyframes ambient-drift{from{transform:translate3d(-2%,0,0) scale(1)}to{transform:translate3d(2%,2%,0) scale(1.08)}}
@keyframes grid-drift{from{background-position:0 0}to{background-position:144px 72px}}
:root{--muted:#566875}
html{scroll-padding-top:104px}
:focus-visible{outline:3px solid #009bde;outline-offset:5px}
.hero :focus-visible,.contact :focus-visible{outline-color:#fff}
.hero h1{line-height:1;letter-spacing:-.045em;font-size:clamp(3.4rem,7.6vw,6.8rem)}
.hero h1 em{color:#bfeaff;-webkit-text-stroke:0}
.hero-content{padding-top:90px;padding-bottom:165px}
.hero-lead{max-width:600px}
.hero{height:auto;min-height:780px;max-height:none}
.hero-facts span,.eyebrow,.contact-card span,.footer-bottom,.panel-head b,.news-card time{font-size:14px}
.hero-facts strong{color:#66d0ff}
.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.service-card,.service-card.featured{grid-row:auto;min-height:0;display:flex;flex-direction:column;background:#fff;color:var(--ink);border:1px solid var(--line)}
.service-card img{position:static;height:auto;aspect-ratio:4/3;object-fit:cover;filter:none}
.service-shade{display:none}
.service-content{position:static;inset:auto;padding:26px 30px 30px;background:#fff;flex:1;z-index:1}
.service-content span{color:var(--blue2);font-size:14px;font-weight:750}
.service-content h3{font-size:30px}
body .service-content p{color:var(--muted);font-size:16px;line-height:1.65}
.service-card:hover img{transform:none}
.service-card:hover{border-color:#009bde}
.materials-grid{grid-template-columns:.9fr 1.1fr;gap:56px}
.material-panels{grid-template-columns:repeat(2,minmax(0,1fr))}
.panel{padding:26px 22px}.panel-head span{font-size:18px}.panel li{font-size:16px}.panel li small{display:inline-block;margin-left:7px;color:#bdeaff;font-size:13px;font-weight:800;white-space:nowrap}
.company-image img{aspect-ratio:4/3;filter:none}
.values strong,.values span{font-size:16px}
.contact-grid{gap:64px;grid-template-columns:1fr 1fr}
.contact-card{padding:28px}.contact-card>div{grid-template-columns:1fr;gap:5px}
.contact-card p{font-size:16px;font-weight:600}
.contact-card a{overflow-wrap:anywhere}
.contact-card span{text-transform:none;letter-spacing:.02em}
.button,.nav-cta{min-height:48px;font-size:16px}
.footer-links a,.footer-links button{min-height:44px;display:flex;align-items:center}
.footer-top p{font-size:16px}
.reveal{opacity:1;transform:none}
.reveal.reveal-ready:not(.visible){opacity:0;transform:translateY(18px)}
body #gravel-flow{mask-image:linear-gradient(90deg,#000,rgba(0,0,0,.8) 2%,transparent 6%,transparent 94%,rgba(0,0,0,.8) 98%,#000);-webkit-mask-image:linear-gradient(90deg,#000,rgba(0,0,0,.8) 2%,transparent 6%,transparent 94%,rgba(0,0,0,.8) 98%,#000)}
@media(max-width:1050px){
  body .site-header nav{position:absolute;inset:86px 0 auto;display:grid;gap:0;padding:16px 28px 24px;background:#142c3e;max-height:calc(100svh - 86px);overflow:auto;visibility:hidden;transform:translateY(-8px);opacity:0;pointer-events:none;z-index:1}
  body .site-header nav.open{visibility:visible;transform:none;opacity:1;pointer-events:auto}
  .site-header nav a{padding:12px 0;min-height:48px;font-size:16px;border-bottom:1px solid #ffffff20}
  .menu-toggle{display:grid;grid-template-columns:24px auto;gap:0 8px;align-items:center;min-height:44px;padding:8px}
  .menu-toggle span{grid-column:1;width:22px;height:2px;background:#fff;margin:2px 0}
  .menu-toggle b{grid-column:2;grid-row:1/4;font-size:14px}
  .materials-grid,.company-grid,.contact-grid{grid-template-columns:1fr;gap:42px}
}
@media(max-width:620px){
  html{scroll-padding-top:90px}
  .section{padding:64px 0}
  body .site-header nav{top:76px;max-height:calc(100svh - 76px)}
  .hero{padding-top:0;min-height:780px;display:block}
  .hero-content{padding-top:150px;padding-bottom:170px}
  .hero h1{font-size:clamp(2.6rem,11.5vw,4rem);line-height:1.08;letter-spacing:-.035em}
  .hero-lead{font-size:18px;line-height:1.6}
  .hero-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hero-facts span{font-size:13px;line-height:1.4}
  .eyebrow{font-size:12px;letter-spacing:.1em}
  .eyebrow span{width:22px;flex-shrink:0}
  .service-grid,.material-panels{grid-template-columns:1fr}
  .service-content{padding:22px}
  .service-card,.service-card.featured{min-height:0}
  .section-heading h2,.materials h2,.company h2,.contact h2,.news-head h2{font-size:clamp(2rem,9vw,2.75rem);line-height:1.12}
  .company-image img{aspect-ratio:4/3}
  .image-label{right:0;bottom:12px}
  .contact-actions .button{width:100%}
  dialog{padding:32px 24px;max-height:85svh;overflow:auto}
}
@media(prefers-reduced-motion:reduce){.reveal.reveal-ready:not(.visible){opacity:1;transform:none}*,*::before,*::after{animation:none!important;transition:none!important}#gravel-flow{display:none}}

.news-card > img{width:100%;height:190px;object-fit:cover;border-radius:14px;margin:0 0 18px;display:block}
.news-card p{white-space:pre-wrap}
.social-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}
.social-link{min-height:76px;padding:13px 15px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.3);border-radius:14px;background:rgba(255,255,255,.08);transition:transform .2s ease,border-color .2s ease,background .2s ease}
.social-link:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.72);background:rgba(255,255,255,.14)}
.social-link svg{width:42px;height:42px;padding:8px;border-radius:12px;color:#fff;fill:none;stroke:currentColor;stroke-width:1.8}
.social-link.instagram svg{background:linear-gradient(145deg,#7c3aed,#db2777 55%,#f59e0b)}
.social-link.facebook svg{background:#1877f2;fill:#fff;stroke:none}
.social-link .social-dot{fill:currentColor;stroke:none}
.social-link>span{display:grid;gap:3px;min-width:0}
.social-link strong{font-size:15px}.social-link small{color:#cce8f6;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.social-link b{font-size:17px;font-weight:500}
.footer-social{gap:7px}.footer-social svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}.footer-social:last-of-type svg{fill:currentColor;stroke:none}
@media(max-width:620px){.social-links{grid-template-columns:1fr}.social-link{min-height:70px}.footer-social span{display:none}.footer-social{width:44px;justify-content:center}}

body .hero-bg{background-image:url("hero-yard.jpeg")!important;background-position:center 52%!important;filter:brightness(1.13) saturate(1.08)}
body .hero-overlay{background:linear-gradient(90deg,rgba(7,20,32,.64) 0%,rgba(7,20,32,.34) 46%,rgba(7,20,32,.03) 100%),linear-gradient(0deg,rgba(7,20,32,.28),transparent 32%)}
body .site-header{color:#fff;background:linear-gradient(180deg,rgba(11,24,36,.88),rgba(11,24,36,.42));border-bottom:1px solid rgba(255,255,255,.08);backdrop-filter:blur(14px);box-shadow:none}
body .site-header.scrolled{color:#fff;background:rgba(11,24,36,.94);box-shadow:0 8px 30px rgba(0,0,0,.14)}
body .site-header nav a{color:#fff}
body .site-header nav a:not(.nav-cta):after{background:#009bde}
body .nav-cta{border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.06)}
body .menu-toggle{color:#fff}
body .menu-toggle span{background:#fff}
@media(max-width:1050px){body .site-header nav{background:#142c3e;box-shadow:0 18px 38px rgba(0,0,0,.18)}body .site-header nav a{border-bottom-color:rgba(255,255,255,.12)}}
@media(max-width:620px){body .hero-bg{background-position:58% center!important}body .hero-overlay{background:linear-gradient(90deg,rgba(7,20,32,.68),rgba(7,20,32,.36) 58%,rgba(7,20,32,.08)),linear-gradient(0deg,rgba(7,20,32,.34),transparent 36%)}}
