@font-face{font-family:'OC Cormorant';src:url('assets/cormorant-garamond.ttf') format('truetype');font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:'OC Manrope';src:url('assets/manrope.ttf') format('truetype');font-weight:200 800;font-style:normal;font-display:swap}
:root{--display:'OC Cormorant',Georgia,serif;--body:'OC Manrope','Segoe UI',sans-serif;--yellow:#e0b867}
body{font-family:var(--body);font-weight:400;font-size:15px;line-height:1.8;-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:var(--body)}
h1,h2,h3,h4{font-family:var(--display);font-weight:500;letter-spacing:-.025em;text-transform:none;font-synthesis:none}h2{font-size:clamp(42px,4.5vw,68px);line-height:1.06}h3{font-size:32px;line-height:1.13}
.hero-editorial .hero-inner{gap:64px;padding-block:70px;align-items:center}.hero-editorial h1{font-family:var(--display);font-weight:500;font-size:clamp(62px,6.65vw,96px);line-height:.98;letter-spacing:-.035em;max-width:none;margin-bottom:30px;text-wrap:balance}.hero-editorial h1 em{font-style:normal;font-weight:500;color:#546e68}.hero-editorial .hero-lead{font-size:15px;line-height:1.95;max-width:48ch}.eyebrow,.utility,.film-topline,.equipment-brand{font-family:var(--body);font-weight:600;letter-spacing:.15em}.eyebrow{font-size:10px;line-height:1.8}
.brand strong{font-family:var(--display);font-weight:700;font-size:27px;line-height:1.1;letter-spacing:-.035em}.brand small{font-family:var(--body);font-size:8px;letter-spacing:.17em;font-weight:650}.header nav a{font-family:var(--body);font-weight:550;letter-spacing:.01em}
.button,.filter,.quote-steps button,.inline-link,.mobile-actions{font-family:var(--body);font-weight:600;letter-spacing:.025em}.button{font-size:12px}.section-heading>p,.about-copy>p,.equipment-body>p:not(.equipment-brand):not(.equipment-rate){line-height:1.9}.equipment-body h3{font-family:var(--display);font-size:36px;font-weight:600;letter-spacing:-.025em;line-height:1.12}.equipment-brand{font-size:10px}.equipment-rate,.preview-rate{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:16px;font-weight:650;letter-spacing:-.02em}.equipment-rate small{font-weight:400;letter-spacing:0}
.preview-title,.quote-line-title,.field-gallery figcaption>strong,.service-card h3,.social-feature h3{font-family:var(--display);font-weight:600;letter-spacing:-.02em}.preview-title{font-size:29px}.social-feature h3{font-size:clamp(38px,4vw,58px);line-height:1.06}.field-gallery figcaption>strong{font-size:30px;line-height:1.12}.quote-line-title{font-size:25px}.quote-summary h3{font-family:var(--body);font-size:12px;font-weight:650;letter-spacing:.08em}.summary-total>strong{font-family:var(--body);font-weight:650;font-size:34px;line-height:1.25;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.summary-row,.summary-line{font-variant-numeric:tabular-nums}.summary-row strong{font-family:var(--body);font-weight:650}
label,input,select,textarea,.route-estimator,.route-estimator button,.leaflet-container{font-family:var(--body)}input,select,textarea{font-size:14px;line-height:1.6}.destination-heading h4,.route-heading h4{font-family:var(--display);font-size:29px;font-weight:600}.faq-list summary{font-family:var(--body);font-size:15px;font-weight:550;line-height:1.6}.contact-main>a strong{font-family:var(--body);font-weight:500;letter-spacing:-.04em}.contact-main h2{font-weight:500}footer{font-family:var(--body)}
@media(max-width:1000px){.hero-editorial .hero-inner{gap:35px}.hero-editorial h1{font-size:clamp(54px,6.5vw,76px)}.brand strong{font-size:24px}.section{padding-block:85px}}
@media(max-width:700px){body{font-size:14px}.container{width:calc(100% - 40px)}.hero-editorial .hero-inner{padding-block:40px;gap:34px}.hero-editorial h1{font-size:clamp(49px,11.7vw,76px);line-height:1;letter-spacing:-.035em}.hero-editorial .hero-lead{font-size:14px;line-height:1.85}.hero-editorial .eyebrow{font-size:8px;letter-spacing:.1em}.brand strong{font-size:23px}.brand small{font-size:7px;letter-spacing:.11em}.brand img{width:43px}.brand{gap:9px}h2{font-size:clamp(39px,9.5vw,56px);line-height:1.08}.section{padding-block:65px}.equipment-body h3{font-size:34px}.button{font-size:11px}.summary-total>strong{font-size:29px}.field-gallery figcaption>strong{font-size:27px}.quote-line-title{font-size:23px}.hero-editorial .hero-actions .button{font-size:11px}.hero-editorial .hero-secondary{font-size:10px}.eyebrow{font-size:9px}}
@media(max-width:360px){.brand strong{font-size:20px}.brand small{font-size:6px}.hero-editorial h1{font-size:46px}.summary-total>strong{font-size:27px}}
/* Narrow screens: long service names must stay inside their card. */
.social-feature{min-width:0}.social-feature h3{overflow-wrap:anywhere}.field-gallery>*{min-width:0}.hero-location>*,.hero-trust>*{min-width:0;overflow-wrap:anywhere}
@media(max-width:700px){.social-feature h3{font-size:36px;line-height:1.1}.social-feature>a{overflow-wrap:anywhere}}

/* Service silhouettes: bulldozer, tipper and backhoe on low-loader. */
.service-list article{grid-template-columns:30px 180px minmax(0,1fr) 48px;gap:28px}
.service-symbol{color:#0b2844;display:flex;align-items:center;justify-content:flex-start;width:180px;max-width:100%;min-width:0}
.service-symbol svg{display:block;width:150px;height:92px;max-width:100%;overflow:visible}
.service-list article:nth-child(3) .service-symbol svg{width:180px;height:92px}
@media(max-width:1000px) and (min-width:601px){.service-list article{grid-template-columns:24px 150px minmax(0,1fr) 44px;gap:18px}.service-symbol{width:150px}.service-symbol svg{width:132px;height:85px}.service-list article:nth-child(3) .service-symbol svg{width:150px}.service-list h3{font-size:29px}}
@media(max-width:600px){.service-list article{grid-template-columns:23px minmax(0,1fr) 40px;gap:12px;padding-block:28px}.service-list .service-symbol{display:flex!important;grid-column:2;grid-row:1;width:180px}.service-symbol svg{width:130px;height:82px}.service-list article:nth-child(3) .service-symbol svg{width:180px;height:82px}.service-list article>.service-no{grid-column:1;grid-row:1}.service-list article>.service-symbol+div{grid-column:1/-1}.service-list article>a{grid-column:3;grid-row:1;width:40px;height:40px}.service-list h3{font-size:30px;line-height:1.13}}

/* Delicate moving line illustrations; wheel centres and loads stay attached. */
.service-symbol svg{stroke-width:2.4;overflow:visible}
.service-list article:nth-child(3) .service-symbol svg{stroke-width:2.8}
.motion-ground{opacity:.3;stroke-width:1.5;animation:oc-road 1.8s linear infinite}
.motion-ground-reverse{animation-direction:reverse}
.motion-wheel{animation:oc-wheel 3.5s linear infinite;transform-box:fill-box;transform-origin:center}
.motion-wheel.motion-reverse{animation-direction:reverse}
.wheel-spoke{stroke-width:1.5}.motion-ride{animation:oc-ride 2.4s ease-in-out infinite}
.motion-delayed{animation-delay:-.8s}.motion-slow{animation-duration:3.2s}
.motion-earth{animation:oc-earth 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center bottom}
.motion-dirt-dot{animation:oc-dust 2.4s ease-out infinite}
.motion-load{animation:oc-load 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center bottom}
.service-symbol :is(.motion-ground,.motion-wheel,.motion-ride,.motion-earth,.motion-dirt-dot,.motion-load,.motion-soil-dot){animation-play-state:paused}
.service-symbol.is-in-view :is(.motion-ground,.motion-wheel,.motion-ride,.motion-earth,.motion-dirt-dot,.motion-load,.motion-soil-dot){animation-play-state:running}
@keyframes oc-road{to{stroke-dashoffset:28}}
@keyframes oc-wheel{to{transform:rotate(360deg)}}
@keyframes oc-ride{0%,100%{transform:translate(0,0)}25%{transform:translate(-.5px,-.8px)}65%{transform:translate(.5px,.4px)}}
@keyframes oc-earth{0%,100%{transform:translate(0,0)}50%{transform:translate(4px,-1px)}}
@keyframes oc-dust{0%,25%{opacity:0;transform:translate(0,3px)}50%{opacity:.7}90%,100%{opacity:0;transform:translate(5px,-4px)}}
@keyframes oc-load{0%,100%{transform:translateY(0)}50%{transform:translateY(-.65px)}}
@media(prefers-reduced-motion:reduce){.service-symbol *{animation:none!important;transform:none!important}}

/* Continuous road dashes and offset earth particles, with quieter suspension. */
.service-list article:first-child .service-symbol svg{width:170px}
.motion-ground{animation-duration:2.4s}.motion-wheel{animation-duration:4s}
.motion-ride{animation-duration:3s}.motion-slow{animation-duration:3.6s}
.motion-soil-dot{animation:oc-soil 2.8s linear infinite;animation-play-state:paused}
.soil-two{animation-delay:-.95s}.soil-three{animation-delay:-1.9s}
@keyframes oc-soil{0%{opacity:0;transform:translate(-3px,5px)}15%{opacity:.7}55%{opacity:.7}100%{opacity:0;transform:translate(9px,-4px)}}
@keyframes oc-ride{0%,100%{transform:translateY(0)}50%{transform:translateY(-.65px)}}
@keyframes oc-earth{0%,100%{transform:translate(0,0)}50%{transform:translate(2px,-.4px)}}
@media(prefers-reduced-motion:reduce){.service-symbol *{animation:none!important;transform:none!important}}

/* Original manufacturer wordmarks, sized for inline reading. */
.brand-wordmark{display:inline-flex;align-items:center;vertical-align:baseline;line-height:1;white-space:nowrap;margin-inline:.12em}
.brand-wordmark img{display:inline-block!important;width:6em!important;max-width:100%;height:auto!important;object-fit:contain!important;vertical-align:baseline}
.brand-caterpillar img{width:5.5em!important}.brand-mack img{width:4.8em!important}
.hero-specialties{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.hero-specialties>span{display:inline-flex;align-items:center;min-height:34px}.hero-specialties small{flex-basis:100%}
.equipment-brand .brand-wordmark,.preview-brand .brand-wordmark{font-size:14px;letter-spacing:normal}
.quote-summary .brand-wordmark img,.contact-section .brand-wordmark img,footer .brand-wordmark img{filter:brightness(0) invert(1)}
.summary-line .brand-wordmark{font-size:inherit}
@media(max-width:600px){.hero-specialties{gap:16px}.hero-specialties>.brand-wordmark{font-size:14px}.brand-wordmark img{max-width:100%}}

/* Quiet two-column service introduction. */
.hero-service-note{display:grid;grid-template-columns:max-content max-content;gap:38px;width:fit-content;max-width:100%;margin-bottom:30px}
.hero-service-note>span{display:flex;flex-direction:column;gap:3px}
.hero-service-note small{font-family:var(--body);font-size:9px;line-height:1.5;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:#7b715f}
.hero-service-note strong{font-family:var(--display);font-size:25px;font-weight:500;line-height:1.15;letter-spacing:.01em;color:#425a65}
@media(max-width:700px){.hero-service-note{gap:28px;margin-bottom:27px}.hero-service-note strong{font-size:23px}.hero-service-note small{font-size:8px}}

.hero-service-note small,.hero-service-note strong{color:#877047}

/* Responsive spacing and readable, intentional line breaks. */
.social-feature h3{overflow-wrap:normal!important;word-break:normal;hyphens:none;font-size:clamp(28px,2.5vw,38px)!important;line-height:1.14!important}
.social-feature h3 .social-title-line{display:block}
.social-feature h3 .social-title-line+span{margin-top:.15em}
.capacity-intro h2 br{display:block!important}
.capacity-grid>div{min-width:0}
.capacity-grid>div:not(:first-child)>span{display:block;line-height:1.45;overflow-wrap:normal;word-break:normal}
.contact-address{display:grid;gap:9px;line-height:1.6;min-width:0}
.contact-address .contact-kicker{font-size:11px;letter-spacing:.09em}
.contact-address .contact-place{font-size:18px;font-weight:500}
.contact-address .contact-phone{width:fit-content;font-size:20px;font-weight:600}
.contact-address .contact-location{margin-top:4px;width:fit-content}
.contact-socials{flex-wrap:wrap;gap:18px 28px;min-width:0}
.contact-socials a{max-width:100%;overflow-wrap:anywhere;line-height:1.6}
@media(max-width:700px){
.capacity-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:28px 24px!important}
.capacity-grid .capacity-intro{grid-column:1/-1;display:grid;grid-template-columns:1fr;gap:12px}
.capacity-intro h2{font-size:clamp(32px,8vw,44px);line-height:1.12}
.capacity-grid>div:not(:first-child){padding:0!important}
.capacity-grid>div:not(:first-child)>strong{font-size:46px;line-height:1.05;display:block;margin-bottom:10px}
.capacity-grid>div:not(:first-child)>span{font-size:14px!important}
.field-gallery .social-feature{grid-column:1/-1!important;width:100%;padding:26px!important}
.field-gallery .social-feature h3{font-size:clamp(29px,7.5vw,38px)!important}
.alternate-contact{display:grid!important;grid-template-columns:minmax(0,1fr);gap:28px!important}
.contact-socials{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.contact-socials a{width:fit-content;font-size:14px!important;padding-block:8px}
.contact-main h2{font-size:clamp(35px,9vw,52px);line-height:1.12}
.contact-main>a strong{font-size:clamp(34px,10vw,54px)}
input,select,textarea{font-size:16px!important}
}
