:root{--red:#D32F2F;--black:#000;--grey:#424242;--paper:#f4f3ef;--line:#d3d2cd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:var(--black);background:var(--paper);font-family:'Barlow',Arial,sans-serif;font-size:16px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3,.button,.eyebrow,.topline,.quote-label,.text-link,.hero-footer{font-family:'Barlow Condensed','Arial Narrow',Impact,sans-serif}h2{font-size:clamp(2.5rem,4vw,4rem);line-height:1.02;font-weight:800}h3{font-size:2rem;line-height:1.1}.topline{background:#000;color:#d0d0d0;display:flex;justify-content:space-between;padding:9px 5%;font-size:13px;letter-spacing:1.6px;font-weight:600}header{height:108px;padding:0 5%;display:flex;align-items:center;gap:36px;background:var(--paper)}.brand{font-family:'Barlow Condensed',Impact,sans-serif;font-weight:900;display:flex;flex-direction:column;font-size:38px;line-height:.85;letter-spacing:-1px;white-space:nowrap;transform:skew(-5deg)}.brand-period{color:var(--red)}.brand small{font-size:17px;letter-spacing:6.5px;border-top:3px solid var(--red);margin-top:7px;padding-top:5px}header nav{display:flex;margin-left:auto;gap:30px;font-size:15px;font-weight:600}header nav a:hover{color:var(--red)}.button{display:flex;align-items:center;justify-content:space-between;gap:25px;background:var(--red);color:white;border:0;min-height:51px;padding:15px 22px;font-weight:700;letter-spacing:.6px;font-size:17px;transition:background .2s}.button:hover{background:#ad2020}.button span,.text-link span{font-family:Arial,sans-serif;font-size:23px}.menu-button{display:none}.hero{position:relative;background:#242624;color:white;overflow:hidden}.hero-background{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.76),rgba(0,0,0,.16)),linear-gradient(0deg,#171918,transparent 70%);background-size:cover;background-position:center}.hero-inner{position:relative;display:grid;grid-template-columns:1.5fr 1fr;max-width:1500px;margin:auto;gap:6%;padding:65px 5% 70px;align-items:center}.eyebrow{font-size:15px;letter-spacing:1.8px;font-weight:700;display:flex;gap:10px;align-items:center;margin-bottom:24px}.eyebrow>span{width:25px;height:3px;background:var(--red)}h1{font-size:clamp(4rem,6.7vw,7rem);font-weight:800;line-height:.91;letter-spacing:-1px}h1 em{font-style:normal;color:var(--red);display:block}h1 br+em{display:inline}.hero-description{color:#e0e0de;line-height:1.65;font-size:18px;margin:28px 0}.text-link{display:inline-flex;align-items:center;gap:28px;border-bottom:2px solid var(--red);padding:8px 0;font-size:17px;font-weight:700;letter-spacing:.7px}.hero-stamp{display:flex;align-items:center;margin-top:46px;gap:15px}.hero-stamp strong{font-family:'Barlow Condensed',Impact,sans-serif;font-size:76px;line-height:.9;font-weight:800}.hero-stamp span{font-size:14px;line-height:1.4;font-weight:700;letter-spacing:1.5px}.hero-stamp i{font-style:normal;font-size:13px;letter-spacing:1px;color:#cacaca;border-left:1px solid #777;padding:10px 0 10px 25px;margin-left:15px}.quote-panel{color:#000;background:var(--paper);padding:28px 30px;border:1px solid #000;box-shadow:none;scroll-margin-top:25px}.quote-label{color:var(--red);font-size:14px;letter-spacing:2px;font-weight:700;margin-bottom:8px}.quote-panel h2{font-size:36px}.quote-panel h2 span{color:var(--red)}.quote-panel>p{color:var(--grey);margin:9px 0 22px}.quote-panel label{font-size:14px;font-weight:600;display:block;margin:0 0 6px}.quote-panel label span{color:var(--red)}input,select,textarea{width:100%;min-height:43px;border:1px solid #cecec9;background:#fff;padding:10px 11px;color:#151515;margin-bottom:13px;border-radius:0;font-size:14px}input:focus,select:focus,textarea:focus{outline:2px solid var(--red);outline-offset:1px}textarea{resize:vertical;min-height:60px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quote-panel .button{width:100%}.form-note{font-size:12px;color:#626262;text-align:center;margin-top:11px}#form-status{font-size:14px;margin-top:12px;line-height:1.5}.photo-tag{position:absolute;bottom:88px;left:5%;font-size:11px;letter-spacing:1.5px;color:#c6c6c6}.hero-footer{position:relative;display:flex;gap:5%;justify-content:center;align-items:center;border-top:1px solid #ffffff35;padding:23px 5%;letter-spacing:2px;font-size:17px;font-weight:600;background:#0006}.hero-footer b{color:var(--red)}[hidden]{display:none!important}@media(min-width:1600px){.hero-inner{padding-left:35px;padding-right:35px}}@media(max-width:1050px){header{gap:25px}header nav{gap:18px}.header-quote{display:none}.hero-inner{gap:4%;grid-template-columns:1.1fr 1fr}h1{font-size:5rem}.quote-panel{padding:25px 22px}.hero-stamp i{display:none}}@media(max-width:700px){.topline{font-size:11px;letter-spacing:1px}.topline span:last-child{display:none}header{height:88px;justify-content:space-between}.brand{font-size:32px}.brand small{font-size:14px;letter-spacing:5.8px}header nav{display:none}.menu-button{display:block;border:0;background:none;font-weight:700;font-size:14px}#mobile-nav{background:var(--paper);padding:0 5% 20px;display:flex;flex-direction:column;gap:20px}.hero-inner{display:block;padding-top:48px;padding-bottom:46px}.eyebrow{font-size:13px;letter-spacing:1.2px}h1{font-size:clamp(3.7rem,14vw,6rem)}.hero-description{font-size:16px}.hero-stamp{margin:30px 0 40px}.hero-stamp strong{font-size:60px}.hero-stamp i{display:block}.quote-panel{padding:25px}.hero-footer{gap:20px;font-size:12px;letter-spacing:1px;justify-content:space-around}.hero-footer span:last-child,.hero-footer b:last-of-type{display:none}.photo-tag{display:none}}
.hero-background{background-image:linear-gradient(90deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.32) 52%,rgba(0,0,0,.14)),url('/assets/crawler-loader-loading-red-dump-truck.jpg');background-position:center 52%}.section{padding:90px 5%;max-width:1600px;margin:auto}.section-top{display:flex;justify-content:space-between;gap:45px;align-items:flex-end;margin-bottom:36px}.section-top p{max-width:370px;line-height:1.65;color:var(--grey)}.eyebrow.red{color:var(--red)}.capability-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.capability-card{position:relative;height:430px;color:white;overflow:hidden;background:#292929;display:flex;align-items:flex-end;padding:35px}.capability-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}.capability-card:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.5),transparent 70%)}.capability-card:hover img{transform:scale(1.035)}.capability-card .card-content{position:relative;z-index:1;max-width:90%}.card-num{font-family:'Barlow Condensed',Impact,sans-serif;color:#e9e6dd;font-size:14px;letter-spacing:1.5px;position:absolute;z-index:2;top:25px;left:30px}.capability-card h3{font-size:44px;font-weight:800;margin-bottom:12px}.capability-card p{color:#e5e5e5;line-height:1.5;max-width:390px}.card-arrow{position:absolute;right:25px;bottom:32px;z-index:2;font-size:32px;color:#fff}.services-intro{display:flex;justify-content:space-between;align-items:center;margin:46px 0 18px}.services-intro h3{font-size:23px;letter-spacing:.5px}.services-intro p{font-size:13px;color:#626262}.service-list{display:grid;grid-template-columns:1fr 1fr 1fr;column-gap:35px}.service-list a{border-top:1px solid var(--line);padding:20px 0;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:18px;line-height:1.35}.service-list a span{color:var(--red);font-size:22px}.service-list a:hover{color:var(--red)}.dark-section{background:#111;color:var(--paper)}.dark-section .section-top p{color:#aaa}.project-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:30px}.project-card img{width:100%;height:340px;object-fit:cover;display:block}.project-card .project-meta{font-size:13px;color:#bababa;letter-spacing:1.1px;padding:21px 0 10px}.project-card h3{font-size:32px;display:flex;justify-content:space-between}.project-card h3 span{color:var(--red)}.tags{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.tags a{font-size:13px;border:1px solid #555;padding:8px 10px;transition:background .2s}.tags a:hover{background:var(--red);border-color:var(--red);color:white}.project-note{font-size:13px;color:#aaa;margin-top:28px}.experience{display:grid;grid-template-columns:1fr 1.25fr;gap:10%;align-items:center;padding-top:100px;padding-bottom:100px}.experience-number{font-family:'Barlow Condensed',Impact,sans-serif;text-align:center;position:relative}.experience-number strong{display:block;color:var(--red);font-size:240px;line-height:.8;font-weight:800;letter-spacing:-10px}.experience-number span{display:block;margin:30px 0 0;font-size:23px;letter-spacing:6px;font-weight:600}.experience-number:before,.experience-number:after{content:'';display:block;width:70%;height:3px;background:var(--black);margin:30px auto}.experience-copy p:not(.eyebrow){margin:25px 0;color:var(--grey);line-height:1.8;max-width:520px}.experience-copy h2{font-size:57px}.topsoil{display:grid;grid-template-columns:1fr 1fr;background:var(--grey);color:white}.topsoil-photo{position:relative;min-height:430px;background:url('/assets/dc-woods-screened-topsoil-final.png') center/cover}.topsoil-photo span{position:absolute;bottom:24px;left:30px;font-size:12px;letter-spacing:1.5px}.topsoil-copy{padding:65px 10%}.topsoil-copy p:not(.eyebrow){color:#ddd;line-height:1.7;margin:25px 0;max-width:430px}.topsoil-copy .button{display:inline-flex}.service-area{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.area-title{font-family:'Barlow Condensed',Impact,sans-serif;border-left:8px solid var(--red);padding-left:28px}.area-title strong{display:block;font-size:76px;font-weight:800;line-height:.95}.area-title span{display:block;font-size:20px;letter-spacing:5px;margin-top:18px}.area-copy p{color:var(--grey);line-height:1.8;margin-bottom:20px}.quote-cta{background:var(--red);color:white;padding:60px 5%;display:flex;align-items:center;justify-content:space-between;gap:40px}.quote-cta h2{font-size:58px;max-width:710px}.quote-cta .button{background:black;white-space:nowrap}.quote-cta .button:hover{background:#282828}footer{background:black;color:white;padding:50px 5% 22px}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:40px;padding-bottom:45px}.footer-top p{line-height:1.7;color:#bbb}.footer-links{display:flex;gap:24px;font-size:14px}.footer-bottom{border-top:1px solid #333;padding-top:20px;display:flex;justify-content:space-between;gap:30px;color:#999;font-size:12px;line-height:1.7}.footer-bottom a{text-decoration:underline}.detail-hero{background:#151515;color:white;padding:70px 5%}.breadcrumb{color:#aaa;font-size:14px;margin-bottom:35px}.breadcrumb a{text-decoration:underline}.detail-hero h1{font-size:clamp(3rem,7vw,6.7rem);max-width:1100px}.detail-hero>p{margin-top:25px;max-width:690px;color:#ddd;line-height:1.7}.detail-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:6%}.detail-photo{width:100%;height:420px;object-fit:cover;display:block}.image-caption{font-size:12px;color:#666;margin:10px 0 35px}.detail-copy p{line-height:1.8;color:var(--grey);margin:20px 0}.detail-copy ul{padding-left:20px;line-height:2}.detail-aside{background:#e8e7e2;padding:30px;height:fit-content;border-top:4px solid var(--red)}.detail-aside h3{margin-bottom:20px}.detail-aside p{line-height:1.7;color:var(--grey);margin:20px 0}.detail-aside .tags a{border-color:#bbb}.related-project{display:block;border-top:1px solid #c4c3bf;padding:20px 0}.related-project strong{display:block;font-family:'Barlow Condensed',Impact,sans-serif;font-size:25px}.related-project span{font-size:13px;color:#666;display:block;margin-top:8px}.sample-notice{padding:15px 5%;background:#e6e4dc;color:#424242;font-size:14px;line-height:1.6}.detail-aside .button{margin-top:25px}.detail-copy h2{font-size:42px}@media(max-width:900px){.section{padding:65px 5%}.section-top{gap:25px}.capability-card{height:370px;padding:25px}.capability-card h3{font-size:36px}.service-list{grid-template-columns:1fr 1fr}.experience{gap:6%}.experience-number strong{font-size:185px}.experience-copy h2{font-size:44px}.area-title strong{font-size:60px}.quote-cta h2{font-size:45px}.footer-top{flex-wrap:wrap}.detail-layout{grid-template-columns:1.2fr 1fr}}@media(max-width:700px){.section{padding:55px 5%}.section-top{display:block}.section-top p{margin-top:20px}.section-top .text-link{margin-top:20px}.capability-grid,.project-grid,.experience,.topsoil,.service-area,.detail-layout{grid-template-columns:1fr}.capability-card{height:380px}.capability-card h3{font-size:40px}.services-intro{align-items:flex-start;gap:20px}.services-intro p{max-width:110px;text-align:right}.service-list{column-gap:20px}.service-list a{font-size:14px}.project-grid{gap:42px}.project-card img{height:290px}.experience-number{max-width:310px;width:100%;margin:auto auto 38px}.experience-number strong{font-size:210px}.experience-copy h2{font-size:46px}.topsoil-photo{min-height:300px}.topsoil-copy{padding:45px 5%}.service-area{gap:32px}.area-title strong{font-size:65px}.quote-cta{display:block;padding:45px 5%}.quote-cta h2{font-size:45px;margin-bottom:28px}.quote-cta .button{display:inline-flex}.footer-top{align-items:flex-start;flex-direction:column;gap:25px}.footer-links{flex-wrap:wrap;gap:18px}.footer-bottom{display:block}.footer-bottom p+p{margin-top:15px}.detail-hero{padding:45px 5%}.detail-photo{height:290px}.detail-aside{margin-top:30px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Consistent uppercase headings and navigation, with the expanded hero copy. */
h1,h2,h3,h4,h5,h6,nav,header nav,.footer-links,.breadcrumb,.service-list,.tags,.related-project{text-transform:uppercase}
.hero-title{font-size:clamp(3rem,4.4vw,4.65rem);line-height:.99;letter-spacing:-.5px}
.hero-title>span{display:block}
.hero-title em{display:block;margin-top:.12em;-webkit-text-stroke:10px #fff;paint-order:stroke fill}
.hero-description{max-width:610px}
.hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.hero-actions .button{display:inline-flex}
.hero-actions .text-link{font-size:16px;gap:15px}
@media(max-width:1050px) and (min-width:701px){.hero-title{font-size:clamp(2.6rem,4.7vw,3.7rem)}.hero-actions{gap:16px}}
@media(max-width:700px){.hero-title{font-size:clamp(2.5rem,10.3vw,4.35rem);line-height:1.12;letter-spacing:0}.hero-actions{gap:18px}.hero-actions .text-link{font-size:16px}.hero-stamp{margin-top:34px}}

/* Contact details and expanded primary navigation. */
.topline{gap:12px;align-items:center;flex-wrap:wrap}
.topline-contact{display:flex;align-items:center;gap:24px;margin-left:auto}
.header-phone{color:white;font-size:16px;letter-spacing:.6px;font-weight:700;white-space:nowrap}
.header-phone:hover{text-decoration:underline}
header{gap:28px}
header nav{font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-size:17px;gap:22px;white-space:nowrap}
header .brand{flex-shrink:0}
.header-quote{white-space:nowrap}
@media(max-width:1450px){.header-quote{display:none}header nav{gap:19px}}
@media(max-width:1149px){header{height:88px;justify-content:space-between}header nav{display:none}.menu-button{display:block;border:0;background:none;color:#000;font-weight:700;font-size:14px}#mobile-nav{background:var(--paper);padding:0 5% 24px;display:flex;flex-direction:column;gap:20px}}
@media(max-width:700px){.topline{justify-content:center;gap:5px;padding:9px 5%}.topline-contact{margin-left:0;gap:16px;justify-content:center;flex-wrap:wrap}.topline .topline-contact .topline-experience{display:inline;font-size:11px}.header-phone{font-size:15px}.hero-footer{gap:12px;flex-wrap:wrap}.hero-footer span:last-child,.hero-footer b:last-of-type{display:block}.hero-footer span{font-size:11px;letter-spacing:.6px}}

/* Direct contact beside the hero experience badge. */
.hero-stamp{flex-wrap:wrap;row-gap:20px}
.hero-stamp .hero-phone{font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-size:32px;font-weight:700;white-space:nowrap;border-left:1px solid #ffffff70;padding:10px 0 10px 24px;margin-left:12px;line-height:1.2}
.hero-phone:hover{text-decoration:underline;text-underline-offset:5px}
.quote-cta h2{max-width:1050px;font-size:clamp(2.5rem,3.5vw,3.625rem);line-height:1.05}
@media(max-width:700px){.hero-stamp .hero-phone{font-size:23px;padding-left:16px;margin-left:0}.hero-stamp{gap:14px}.quote-cta h2{font-size:40px}}

/* Supplied company identity, crew photography and service-area map. */
header{height:154px}
.brand.brand-logo{display:block;transform:none;line-height:0;letter-spacing:0;width:170px;flex-shrink:0}
.brand-logo img{display:block;width:100%;height:auto;object-fit:contain}
footer .brand.brand-logo{width:215px}
.hero-stamp .hero-phone small{display:block;font-family:'Barlow',Arial,sans-serif;font-weight:600;letter-spacing:1.8px;font-size:12px;margin-bottom:7px}
.crew-placeholder{margin:0;min-height:375px;aspect-ratio:4/3;position:relative;border:1px solid #cccac3;background:#e4e3de;display:flex;align-items:center;justify-content:center;padding:30px;color:#424242;text-align:center}
.crew-placeholder>div{border-top:3px solid #D32F2F;padding-top:18px}
.crew-placeholder p{font-family:'Barlow Condensed',Impact,sans-serif;font-size:40px;font-weight:800;color:#424242;margin-bottom:8px}
.crew-placeholder span{font-size:13px;letter-spacing:2px}
.crew-placeholder figcaption{position:absolute;left:20px;right:20px;bottom:20px;font-size:12px;line-height:1.5;color:#666}
.experience{gap:7%;grid-template-columns:1fr 1.1fr}
.experience-copy .text-link{font-size:16px;gap:16px;line-height:1.3}
.county-map{margin:0}
.county-map img{display:block;width:100%;height:auto}
.county-map figcaption{font-family:'Barlow Condensed',Impact,sans-serif;font-size:23px;font-weight:700;padding-top:16px}
.county-map figcaption a{display:block;font-family:'Barlow',Arial,sans-serif;font-size:12px;font-weight:400;color:#666;text-decoration:underline;margin-top:8px}
.service-area{gap:6%}
.footer-top{align-items:center;display:grid;grid-template-columns:215px 1fr 1.5fr;gap:6%}
.footer-description{max-width:360px}
.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:20px 25px;font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-size:17px;font-weight:600;line-height:1.4}
.footer-links a:hover{color:#ef5350}
.about-story{display:grid;grid-template-columns:1fr 1.1fr;gap:7%;align-items:start}
.about-story-copy>p:not(.eyebrow){color:#424242;line-height:1.8;margin:24px 0}
.about-story-copy h3{margin-top:36px}
@media(max-width:1149px){header{height:132px}.brand.brand-logo{width:142px}.footer-top{grid-template-columns:190px 1fr}.footer-links{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){header{height:123px}.brand.brand-logo{width:135px}.experience,.about-story{grid-template-columns:1fr;gap:35px}.crew-placeholder{min-height:280px}.hero-stamp .hero-phone small{font-size:10px;letter-spacing:1.2px;margin-bottom:4px}.footer-top{display:flex;align-items:flex-start}.footer-links{display:grid;grid-template-columns:1fr 1fr;width:100%;font-size:16px}.footer-description{max-width:100%}.county-map figcaption{font-size:21px}}

/* Retain quote access as the header condenses. */
.header-quote-bar{display:none}
.menu-icon{display:inline-flex;flex-direction:column;gap:4px;width:21px}
.menu-icon span{display:block;width:21px;height:2px;background:currentColor;transition:transform .15s,opacity .15s}
.menu-button[aria-expanded="true"] .menu-icon span:first-child{transform:translateY(6px) rotate(45deg)}
.menu-button[aria-expanded="true"] .menu-icon span:nth-child(2){opacity:0}
.menu-button[aria-expanded="true"] .menu-icon span:last-child{transform:translateY(-6px) rotate(-45deg)}
.projects-directory{background:var(--paper);color:#000}
.projects-directory .project-meta{color:#626262}
.projects-directory .tags a{border-color:#b8b8b2}
.topsoil-page-heading{margin-top:36px}
.topsoil-call{display:block;margin-top:26px;font-family:'Barlow Condensed',Impact,sans-serif;font-size:15px;letter-spacing:1px;line-height:1.6}
.topsoil-call strong{font-size:29px;letter-spacing:0}
@media(max-width:1450px){.header-quote-bar{display:flex;width:100%;justify-content:center;gap:18px;min-height:50px;padding:12px 5%}.header-quote{display:none}}
@media(max-width:1149px){.menu-button{display:inline-flex;align-items:center;gap:12px;padding:14px 0}}

/* Sticky navigation includes the responsive quote bar and expanded menu. */
.site-header{position:sticky;top:0;z-index:100;background:var(--paper);box-shadow:0 3px 12px #00000014}
html{scroll-padding-top:calc(var(--sticky-header-height,154px) + 20px)}
.site-header #mobile-nav{max-height:calc(100dvh - 185px);overflow-y:auto}
.service-area{display:block}
.service-area-heading{margin-bottom:36px}
.service-area-body{display:grid;grid-template-columns:1.25fr 1fr;gap:6%;align-items:center}
.service-map{margin:0;border:1px solid #cccac3;background:#fff}
.service-map iframe{display:block;width:100%;height:420px;border:0}
.service-map figcaption{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 20px;font-family:'Barlow Condensed',Impact,sans-serif;font-size:15px;font-weight:600;letter-spacing:.5px;background:#000;color:#fff}
.service-map figcaption a{text-decoration:underline;text-underline-offset:4px}
.service-photo-placeholder{height:420px;min-height:0;aspect-ratio:auto}
@media(max-width:700px){.service-area-body{grid-template-columns:1fr;gap:30px}.service-map iframe{height:330px}.service-map figcaption{flex-wrap:wrap;padding:14px}.service-photo-placeholder{height:290px}}

/* Real project photography */
.projects-directory .project-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:55px}
.projects-directory .project-meta{color:var(--grey)}
.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.project-gallery-photo{display:block;background:#e8e7e2}
.project-gallery-photo:first-child{grid-column:1/-1}
.project-gallery-photo img{display:block;width:100%;height:auto}
.project-gallery-photo:hover{outline:3px solid var(--red);outline-offset:3px}
.real-project .detail-aside .tags{margin-bottom:25px}
@media(max-width:700px){.projects-directory .project-grid,.project-gallery{grid-template-columns:1fr}.project-gallery-photo:first-child{grid-column:auto}}
.photo-lightbox{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:20px 28px;border:0;background:rgba(0,0,0,.96);color:white;overflow:hidden}
.photo-lightbox::backdrop{background:rgba(0,0,0,.92)}
.photo-lightbox[open]{display:flex;flex-direction:column}
.lightbox-toolbar{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;min-height:48px;gap:20px;font-family:'Barlow Condensed',Impact,sans-serif;font-size:20px;letter-spacing:1px}
.photo-lightbox button{border:1px solid #777;background:#191919;color:#fff;cursor:pointer;min-width:48px;min-height:48px;font:inherit}
.photo-lightbox button:hover{background:var(--red)}
.photo-lightbox button:focus-visible{outline:3px solid white;outline-offset:4px}
.lightbox-close{padding:8px 16px;display:flex;align-items:center;gap:18px}
.lightbox-close span{font-size:32px;line-height:1}
.lightbox-stage{min-height:0;flex:1;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:20px;padding-top:20px}
.lightbox-image{width:100%;height:100%;min-height:0;object-fit:contain;display:block}
.lightbox-stage button{font-family:Arial,sans-serif;font-size:42px;line-height:1}
@media(max-width:700px){.photo-lightbox{padding:12px}.lightbox-stage{grid-template-columns:48px minmax(0,1fr) 48px;gap:8px}.lightbox-image{grid-column:1/-1;grid-row:1}.lightbox-prev,.lightbox-next{grid-row:1;z-index:1;align-self:end;margin-bottom:12px}.lightbox-prev{grid-column:1}.lightbox-next{grid-column:3}}
.service-list-item{border-top:1px solid var(--line);padding:20px 0;font-weight:600;line-height:1.35;text-transform:uppercase}
.tags .service-tag{font-size:13px;border:1px solid #bbb;padding:8px 10px}
.dark-section .service-tag{border-color:#555}
#york-county-map{height:440px;width:100%;z-index:0;background:#e9e8e3}
.map-zoom-help{font-size:14px;padding:12px 16px;margin:0;line-height:1.5;color:var(--grey);background:var(--paper)}
.county-map-label{background:#fff;border:2px solid var(--red);box-shadow:none;color:#000;font-family:'Barlow Condensed',Impact,sans-serif;font-size:18px;font-weight:700;letter-spacing:1px;padding:7px 12px}
.area-copy .service-area-heading{margin-bottom:28px}
.area-copy .service-area-heading .eyebrow{color:var(--red)}
.service-area-body{align-items:center}
@media(max-width:700px){#york-county-map{height:350px}.service-list-item{font-size:14px}}

.topsoil-title-line{white-space:nowrap}
@media(max-width:900px) and (min-width:701px){.topsoil-copy h2{font-size:clamp(30px,4.2vw,38px)}}
@media(max-width:400px){.topsoil-copy h2{font-size:clamp(28px,10vw,40px)}}
/* Shared equal columns for the homepage's photo-and-copy sections. */
.experience,.service-area-body,.topsoil-inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6%;align-items:center}
.topsoil{display:block}
.topsoil-inner{display:grid;width:100%}
.topsoil-copy{padding:0;min-width:0}
.topsoil-photo{min-height:440px}
.topsoil-copy h2{font-size:clamp(30px,3.3vw,56px)}
.experience-copy p:not(.eyebrow){max-width:none}
.about-history{padding-top:0}
.about-history h3{font-size:42px;margin-bottom:24px}
.about-history p{line-height:1.8;color:var(--grey)}
.project-overview{margin-bottom:36px}
.service-sidebar{min-width:0}
.service-sidebar .quote-panel{box-shadow:none}
.service-related{margin-top:35px}
.site-header header{height:96px;gap:24px}
.site-header .brand.brand-logo{width:105px;flex-shrink:0}
.site-header .brand.brand-logo img{max-height:84px;width:100%;object-fit:contain}
.site-header header nav{gap:20px}
.site-header .header-quote-bar{min-height:44px;padding-top:9px;padding-bottom:9px}
.site-header #mobile-nav{max-height:calc(100dvh - 125px)}
@media(max-width:1149px){.site-header header{height:84px}.site-header .brand.brand-logo{width:90px}.site-header .brand.brand-logo img{max-height:72px}}
@media(max-width:700px){.experience,.service-area-body,.topsoil-inner{grid-template-columns:1fr;gap:35px}.topsoil-photo{min-height:300px}.topsoil-copy h2{font-size:clamp(28px,8.5vw,48px)}.site-header header{height:76px}.site-header .brand.brand-logo{width:80px}.site-header .brand.brand-logo img{max-height:64px}.service-sidebar .form-row{grid-template-columns:1fr}.about-history{padding-top:0}}
/* Full-size masthead at the top; compact only after scrolling. */
.site-header:not(.is-scrolled) header{height:154px}
.site-header:not(.is-scrolled) .brand.brand-logo{width:170px}
.site-header:not(.is-scrolled) .brand.brand-logo img{max-height:140px}
.experience-copy h2>span{display:block}
.topsoil-inner{max-width:none;padding:0;gap:0;align-items:stretch}
.topsoil-inner .topsoil-photo{min-height:440px;height:100%}
.topsoil-inner .topsoil-copy{padding:70px 10% 70px 6%;align-self:center}
@media(max-width:1149px){.site-header:not(.is-scrolled) header{height:132px}.site-header:not(.is-scrolled) .brand.brand-logo{width:142px}.site-header:not(.is-scrolled) .brand.brand-logo img{max-height:120px}}
@media(max-width:700px){.site-header:not(.is-scrolled) header{height:123px}.site-header:not(.is-scrolled) .brand.brand-logo{width:135px}.site-header:not(.is-scrolled) .brand.brand-logo img{max-height:112px}.topsoil-inner .topsoil-photo{min-height:300px}.topsoil-inner .topsoil-copy{padding:45px 5%}}

/* Project inquiries reuse the service-page quote panel. */
.project-sidebar{min-width:0;display:flex;flex-direction:column;gap:28px}.project-sidebar .quote-panel{width:100%;margin:0}.project-sidebar .project-details{margin-top:0}

.detail-hero .swf-project-title{max-width:none}.swf-project-title span{display:block}.swf-project-title .project-title-line{white-space:nowrap;font-size:clamp(1.25rem,5.6vw,6.7rem)}

/* Keep stacked mobile sections in normal flow and inside the viewport. */
@media(max-width:1149px){
 .site-header #mobile-nav{padding:24px 5%;gap:0;font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-size:17px;font-weight:600;line-height:1.4}
 #mobile-nav a{display:block;padding:11px 0}
 .site-header:not(.is-scrolled) #mobile-nav{max-height:calc(100dvh - 270px)}
 .site-header.is-scrolled #mobile-nav{max-height:calc(100dvh - 140px)}
}
@media(max-width:700px){
 .detail-layout{grid-template-columns:minmax(0,1fr);row-gap:35px;column-gap:0;align-items:start}
 .detail-layout>*,.about-story>*,.experience>*{min-width:0;max-width:100%}
 .detail-aside{margin-top:0}
 .service-related{margin-top:28px}
 .project-sidebar,.service-sidebar{width:100%;min-width:0}
 .quote-panel,.detail-aside{max-width:100%;overflow-wrap:break-word}
 .form-row{grid-template-columns:minmax(0,1fr)}
 input,select,textarea{min-width:0;max-width:100%}
 .about-story,.experience{grid-template-columns:minmax(0,1fr)}
 .crew-placeholder{width:100%;max-width:100%;min-width:0;min-height:0;aspect-ratio:4/3;padding:24px 16px}
 .crew-placeholder p{font-size:clamp(28px,8vw,40px)}
 .topline,.topline-contact{flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center}
 .topline-contact{margin-left:0;width:100%}
 .topline>span,.topline .topline-contact .topline-experience{display:block}
 .header-phone{display:block}
 .hero-footer{flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px 5%;text-align:center}
 .hero-footer span,.hero-footer span:last-child{display:block;width:100%;font-size:20px;letter-spacing:1px;line-height:1.25}
 .hero-footer b,.hero-footer b:last-of-type{display:none}
 .swf-project-title .project-title-line{font-size:inherit;white-space:normal}
}

/* Compact mobile contact bar, service strip, and footer rhythm. */
@media(max-width:700px){
 .topline{padding:6px 5%;gap:2px;line-height:1.15}
 .topline-contact{gap:2px;line-height:1.15}
 .header-phone{font-size:14px;line-height:1.15}
 .hero-footer{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:8px;padding:18px 5%;align-items:center}
 .hero-footer span,.hero-footer span:last-child{font-size:14px;letter-spacing:.6px;line-height:1.25}
 .hero-footer b,.hero-footer b:last-of-type{display:block;font-size:15px;line-height:1}
 .footer-top{gap:28px;padding-bottom:35px}
 .footer-links{padding-top:8px;row-gap:20px}
}

/* Mobile contact details share a compact, centered row. */
@media(max-width:700px){.topline-contact{flex-direction:row;flex-wrap:nowrap;gap:10px;align-items:center;justify-content:center}.topline-experience{white-space:nowrap}}
@media(max-width:360px){.topline .topline-contact .topline-experience{font-size:10px}.topline-contact .header-phone{font-size:13px}}

/* Clearer topsoil photography and breathing room between service topics. */
.topsoil-photo,.topsoil-service-photo{filter:none}
.detail-copy h3{margin-top:32px;margin-bottom:14px}
.detail-copy p a{text-decoration:underline;text-underline-offset:3px}

/* Consistent inset for native service dropdowns across browsers. */
.quote-panel select{appearance:none;-webkit-appearance:none;padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23151515' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px 8px}
@media(forced-colors:active){.quote-panel select{appearance:auto;-webkit-appearance:auto;background-image:none}}
.crew-placeholder.crew-logo{background:#fff;padding:30px}
.crew-placeholder.crew-logo img{display:block;width:100%;height:100%;max-height:420px;object-fit:contain}
.arrow-icon{display:inline-block;width:.9em;height:.9em;vertical-align:-.12em;flex:none}.card-arrow .arrow-icon{width:1em;height:1em;display:block}

/* Slightly slimmer sticky header once the page is scrolled. */
.site-header.is-scrolled header{height:108px}
.site-header.is-scrolled .brand.brand-logo{width:128px}
.site-header.is-scrolled .brand.brand-logo img{max-height:100px}
@media(max-width:1149px){.site-header.is-scrolled header{height:96px}.site-header.is-scrolled .brand.brand-logo{width:112px}.site-header.is-scrolled .brand.brand-logo img{max-height:88px}}
@media(max-width:700px){.site-header.is-scrolled header{height:88px}.site-header.is-scrolled .brand.brand-logo{width:104px}.site-header.is-scrolled .brand.brand-logo img{max-height:80px}}
