@font-face{font-family:Montserrat;src:url('assets/fonts/montserrat-latin.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('assets/fonts/montserrat-latin-ext.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0100-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Inter;src:url('assets/fonts/inter-latin.woff2') format('woff2');font-weight:400 500;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url('assets/fonts/inter-latin-ext.woff2') format('woff2');font-weight:400 500;font-style:normal;font-display:swap;unicode-range:U+0100-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* Geometry belongs to the illustration; semantic UI values come from tokens.css. */
:root{--icon-inline:1.25rem;--icon-normal:1.5rem;--icon-feature:2rem;--car-size:2.75rem;--road-width:2.5rem;--stroke-thin:1px;--stroke-focus:2px;--stroke-marker:12px;--hero-max:56rem;--pin-min:42rem;--truck-width:6rem;--truck-height:4rem}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + var(--space-3))}
body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}
body.is-menu-open{overflow:hidden}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a{color:var(--color-text-accent);text-underline-offset:.2em}
a,button{touch-action:manipulation}
button:disabled{cursor:wait}
svg,img{display:block;max-width:100%}
img{height:auto}
button,summary{color:inherit}
h1,h2,h3,h4,p,figure{margin:0}
h1,h2,h3,h4{color:var(--color-heading);font-family:var(--font-heading);font-weight:var(--weight-bold);line-height:var(--leading-heading);text-wrap:balance;overflow-wrap:anywhere}
h1{font-size:var(--text-h1)}h2{font-size:var(--text-h2)}h3{font-size:var(--text-h3)}h4{font-size:var(--text-h4)}
p{max-width:var(--measure);text-wrap:pretty}
ul,ol{padding:0;margin:0;list-style:none}
button{border:0;background:none}
::selection{background:var(--color-action);color:var(--color-on-action)}
:focus-visible{outline:3px solid var(--color-focus);outline-offset:var(--focus-offset)}
[hidden]{display:none!important}
.u-visually-hidden,.u-honeypot{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.l-container{width:100%;max-width:calc(var(--content-max) + 2 * var(--page-margin));margin-inline:auto;padding-inline:max(var(--page-margin),env(safe-area-inset-left)) max(var(--page-margin),env(safe-area-inset-right))}
.l-section{padding-block:var(--space-section)}
.l-section--alt{background:var(--color-bg-alt)}
[data-road-side]{--journey-margin:max(var(--page-margin),calc((100% - var(--content-max))/2));--journey-lane:4rem}
.l-road-content{position:relative;z-index:var(--z-content);max-width:none;padding-left:var(--journey-margin);padding-right:calc(var(--journey-margin) + var(--journey-lane) + var(--space-3))}
[data-road-side="left"]>.l-road-content{padding-left:calc(var(--journey-margin) + var(--journey-lane) + var(--space-3));padding-right:var(--journey-margin)}
.l-section-intro{display:flex;gap:var(--space-5);justify-content:space-between;align-items:end;margin-bottom:var(--space-5)}
.l-section-intro .c-section-heading{margin-bottom:0}
.l-split{display:grid;gap:var(--space-5)}
.l-photo-grid{display:grid;gap:var(--space-3)}
.l-band a{color:var(--color-on-band)}
.c-icon{width:var(--icon-normal);height:var(--icon-normal);flex-shrink:0}
.c-small{font-size:var(--text-sm);color:var(--color-text-muted)}
.c-lead{font-size:var(--text-lead);line-height:var(--leading-body)}
.c-eyebrow{font:var(--weight-bold) var(--text-sm)/var(--leading-tight) var(--font-heading);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--color-text-accent);margin-bottom:var(--space-2)}
.c-section-heading{margin-bottom:var(--space-5)}
.c-section-heading .c-lead{margin-top:var(--space-3);max-width:45ch}
.c-section-index{display:none;font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap}
.c-logo{font-family:var(--font-heading);font-size:var(--text-h3);line-height:1;font-weight:var(--weight-bold);color:inherit;text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;min-height:var(--tap-min)}
.c-skip{position:fixed;top:var(--space-2);left:var(--space-2);z-index:calc(var(--z-loader) + 1);padding:var(--space-2) var(--space-3);background:var(--color-surface);transform:translateY(-200%)}
.c-skip:focus{transform:translateY(0)}

/* === c-header === */
.c-header{position:sticky;top:0;z-index:var(--z-header);background:var(--color-surface);border-bottom:var(--border-hairline)}
.c-header__inner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);min-height:var(--header-height)}
.c-header--transparent{background:var(--color-band);color:var(--color-on-band);border-color:transparent;--color-focus:var(--color-on-band)}
.c-header--solid{background:var(--color-surface);color:var(--color-heading)}
.c-header__cta{margin-left:auto}
.c-header__long{display:none}
.c-header__short{display:none}
.c-nav{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;width:100%;order:3;padding-bottom:var(--space-2)}
.is-enhanced .c-nav{display:none}
.c-nav>a,.c-dropdown>summary{font-family:var(--font-heading);font-weight:var(--weight-bold);font-size:var(--text-sm);min-height:var(--tap-min);display:flex;gap:var(--space-1);align-items:center;color:inherit;text-decoration:none;position:relative}
.c-nav>[aria-current=page]::after{content:"";position:absolute;bottom:0;left:0;width:var(--space-3);height:var(--stroke-focus);background:var(--color-brand)}
.c-header--transparent .c-nav>[aria-current=page]::after{background:var(--color-on-band)}
.c-dropdown{position:relative}
.c-dropdown>summary{cursor:pointer;list-style:none}
.c-dropdown>summary::-webkit-details-marker{display:none}
.c-dropdown>summary .c-icon{width:var(--icon-inline);height:var(--icon-inline)}
.c-dropdown__panel{position:absolute;top:100%;left:0;width:min(20rem,80vw);padding:var(--space-2);background:var(--color-surface);border:var(--border-hairline);color:var(--color-text);z-index:var(--z-menu)}
.c-dropdown__panel a{display:block;padding:var(--space-1) var(--space-2);min-height:var(--tap-min);color:var(--color-heading);font-size:var(--text-sm);text-decoration:none}
.c-icon-button{display:grid;place-items:center;flex-shrink:0;width:var(--tap-min);height:var(--tap-min);padding:0;color:inherit}
.c-header .c-button{font-size:var(--text-sm);padding:var(--space-1) var(--space-2)}
.c-header .c-button .c-icon{display:block}

/* === c-mobile-menu === */
.c-mobile-menu{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;border:0;padding:var(--space-3);margin:0;overflow-y:auto;z-index:var(--z-menu)}
.c-mobile-menu::backdrop{background:var(--color-band)}
.c-mobile-menu[open]{display:flex;flex-direction:column;gap:var(--space-4)}
.c-mobile-menu__top{display:flex;justify-content:space-between;align-items:center}
.c-mobile-menu nav>a{display:block;font:var(--weight-bold) var(--text-h3)/var(--leading-tight) var(--font-heading);min-height:var(--tap-min);padding-block:var(--space-1);text-decoration:none}
.c-mobile-menu__services{padding:var(--space-2) 0 var(--space-2) var(--space-3);border-left:var(--stroke-thin) solid var(--color-on-band-muted)}
.c-mobile-menu__services a{display:flex;align-items:center;min-height:var(--tap-min);font-size:var(--text-sm);text-decoration:none}
.c-mobile-menu>.c-button{align-self:start;margin-top:auto}

/* === c-button === */
.c-button{position:relative;display:inline-flex;justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--space-5);max-width:100%;padding:var(--space-2) var(--space-3);border:var(--stroke-thin) solid transparent;border-radius:var(--radius-control);font:var(--weight-bold) var(--text-base)/var(--leading-tight) var(--font-heading);text-decoration:none;text-align:center;vertical-align:middle}
.c-button--primary{background:var(--color-action);color:var(--color-on-action)}
.c-button--secondary{border-color:var(--color-heading);color:var(--color-heading)}
.c-button--inverse{border-color:var(--color-on-band);color:var(--color-on-band);background:transparent}
.c-button[aria-disabled=true]{cursor:wait}
.c-text-link{display:inline-flex;gap:var(--space-3);align-items:center;min-height:var(--tap-min);text-decoration:none;font-size:var(--text-sm);font-weight:var(--weight-medium)}
.c-text-link span{text-decoration:underline;text-underline-offset:.25em}
.c-text-link .c-icon{width:var(--icon-inline);height:var(--icon-inline)}

/* === c-hero === */
.c-hero{position:relative;isolation:isolate}
.c-hero--road{min-height:calc(min(100svh,var(--hero-max)) - var(--header-height));display:flex;align-items:center}
.c-hero__inner{position:relative;z-index:var(--z-content)}
.c-hero__copy{padding-block:clamp(3rem,7vh,6rem)}
.c-hero__copy h1{max-width:12ch}
.c-hero__copy .c-lead{margin-top:var(--space-4);max-width:37ch;color:var(--color-on-band-muted)}
.c-hero__actions{display:flex;align-items:start;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}
.c-hero__scroll{display:inline-flex;gap:var(--space-2);align-items:center;min-height:var(--tap-min);margin-top:var(--space-6);text-decoration:none;font-size:var(--text-sm)}
.c-hero__scroll>.c-icon{width:var(--icon-inline);height:var(--icon-inline)}
.c-hero__road-note{display:none}
.c-hero--page .c-hero__inner{display:grid;gap:var(--space-5);align-items:center}
.c-hero--page h1{max-width:16ch;margin-bottom:var(--space-4)}
.c-hero--page .c-lead{max-width:44ch}
.c-breadcrumb{display:inline-flex;min-height:var(--tap-min);align-items:center;font-size:var(--text-sm);margin-bottom:var(--space-4)}
.c-hero__visual{max-width:100%}
.c-hero__visual .c-pavement{max-height:var(--hero-max)}

/* === road illustration === */
.c-journey-section,.c-breakdown{position:relative;isolation:isolate}
.c-road{position:absolute;inset:0;z-index:var(--z-road);pointer-events:none;overflow:hidden}
[data-road-side]>.c-road{left:auto;width:calc(var(--journey-margin) + var(--journey-lane))}
[data-road-side="left"]>.c-road{left:0;right:auto}
.c-road>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:0}
.c-road path{fill:none;stroke-linecap:butt;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.c-road__edge{stroke:#858782;stroke-opacity:.35;stroke-width:calc(var(--road-width) + 4px)}
.c-road__surface{stroke:var(--illo-surface);stroke-width:var(--road-width)}
.c-road__boundary{stroke:#deded2;stroke-width:calc(var(--road-width) - 9px);opacity:.28}
.c-road__wear{stroke-width:calc(var(--road-width) - 12px)}
.c-road__line{stroke:#e7e6d9;stroke-width:var(--stroke-focus);stroke-dasharray:14 32;opacity:.5}
.c-car{position:absolute;top:0;left:0;width:var(--car-size);height:var(--car-size);visibility:hidden;transform-origin:center;z-index:3;filter:drop-shadow(0 2px 2px #0005)}
.c-car img{width:100%;height:100%;max-width:none}
/* The road stays behind the copy; only the car enters the text's foreground. */
.c-hero--road .c-road{z-index:auto}
.c-hero--road .c-road>svg{mask-image:linear-gradient(to bottom,transparent,#000 120px);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 120px)}
body:not(.is-enhanced) .c-hero .c-car{visibility:visible;left:78%;top:var(--space-6);transform:rotate(150deg)}

/* === pavement-breakdown and c-layer-list === */
.c-breakdown{background:var(--color-bg)}
.c-road-piece,.c-road-piece__shadow{opacity:0;pointer-events:none}
.c-road-piece{transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 10px 8px #0003)}
.c-road-piece rect{stroke:#16191b;stroke-width:1;vector-effect:non-scaling-stroke}
.c-road-piece__marking{fill:none;stroke:#e7e6d9;stroke-width:2;stroke-dasharray:18 28;vector-effect:non-scaling-stroke}
.c-road-piece__shadow{fill:#17191c;transform-box:fill-box;transform-origin:center}
.c-breakdown [data-pavement-block]{transform-box:fill-box;transform-origin:center}
.is-journey-ready [data-pavement-block],.is-journey-ready .c-layer-callouts>li,.is-journey-ready [data-layer-arrow]{opacity:0}
.c-breakdown__heading{position:relative;z-index:var(--z-content);display:flex;align-items:start;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}
.c-breakdown__heading .c-section-heading{margin:0}
.c-breakdown__body{position:relative;z-index:var(--z-content);background:var(--color-bg)}
.c-breakdown__intro{position:relative;isolation:isolate;padding-top:var(--space-7);padding-bottom:var(--space-4)}
.c-breakdown__heading{align-items:center;text-align:center}
.c-breakdown__heading .c-lead{margin-inline:auto}
.c-breakdown__scene{position:relative;isolation:isolate;z-index:1}
.c-breakdown__body>.c-road{z-index:0;display:none}
.is-journey-ready .c-breakdown__body>.c-road{display:block}
.c-breakdown__drawing{position:relative;z-index:2;width:min(50%,30rem,max(16rem,calc((100svh - 250px) * .8)));margin-inline:auto;min-width:0}
.c-breakdown__meta{position:relative;z-index:1;padding-block:var(--space-2);max-width:64rem}
.c-layer-list.c-layer-callouts>li{position:absolute;z-index:4;display:block;width:23%;max-width:16rem;padding:0;border:0;background:var(--color-bg);transform:translateY(-1.25rem)}
.c-layer-list.c-layer-callouts>li:nth-child(odd){right:calc(50% + min(23vw,17rem));text-align:right}
.c-layer-list.c-layer-callouts>li:nth-child(even){left:calc(50% + min(23vw,17rem));text-align:left}
.c-layer-list.c-layer-callouts h3{font-size:clamp(.875rem,1.5vw,1.25rem)}
.c-layer-list.c-layer-callouts p{font-size:clamp(.75rem,1.1vw,.875rem);line-height:1.5}
.c-layer-list.c-layer-callouts>li:nth-child(1){top:23%}
.c-layer-list.c-layer-callouts>li:nth-child(2){top:34.5%}
.c-layer-list.c-layer-callouts>li:nth-child(3){top:46%}
.c-layer-list.c-layer-callouts>li:nth-child(4){top:57.5%}
.c-layer-list.c-layer-callouts>li:nth-child(5){top:69%}
.c-layer-arrows{position:absolute;inset:0;z-index:3;width:100%;height:100%;overflow:visible;pointer-events:none}
.c-layer-arrows path{fill:none;stroke:var(--color-action);stroke-width:1.5;vector-effect:non-scaling-stroke}
@media(max-width:599px){
 [data-road-side]{--road-width:1.75rem;--car-size:2rem;--journey-lane:2rem}
 .c-hero__copy h1{font-size:clamp(2rem,8.5vw,2.75rem)}
 .c-breakdown__intro{padding-top:var(--space-6)}
 .c-layer-list.c-layer-callouts>li{width:25%;transform:translateY(-.75rem)}
 .c-layer-list.c-layer-callouts p{font-size:.75rem}
 .c-breakdown__scene{padding-top:var(--space-3)}
 .c-breakdown__drawing{width:50%}
 body:not(.is-enhanced) .c-layer-callouts{position:relative;padding:var(--space-3);display:grid;gap:var(--space-3)}
 body:not(.is-enhanced) .c-layer-list.c-layer-callouts>li{position:static;width:100%;max-width:none;text-align:left;transform:none}
}

.c-pavement{width:100%;height:auto;overflow:visible}
.c-pavement__layer{fill:var(--layer-color);stroke:var(--illo-outline);stroke-width:var(--illo-stroke);transform-box:fill-box;transform-origin:center}
.c-pavement__layer--surface{--layer-color:var(--illo-surface)}
.c-pavement__layer--binder{--layer-color:var(--illo-binder)}
.c-pavement__layer--base{--layer-color:var(--illo-base)}
.c-pavement__layer--subbase{--layer-color:var(--illo-subbase)}
.c-pavement__layer--subgrade{--layer-color:var(--illo-subgrade)}
.c-pavement:is([data-highlight="0"],[data-highlight="1"],[data-highlight="2"]) .c-pavement__layer{opacity:.18}
.c-pavement:is([data-highlight="0"],[data-highlight="1"],[data-highlight="2"]) .c-pavement__layer--selected{opacity:1}
.c-pavement__layer--selected .c-pavement__top{fill:var(--illo-marker)}
.c-pavement__side{filter:brightness(.8)}
.c-pavement__side--right{filter:brightness(.68)}
.c-pavement__stones{fill:var(--illo-aggregate);stroke:none;opacity:.3}
.c-pavement__marking{stroke:var(--illo-marking);fill:none;stroke-width:3;stroke-dasharray:18 18}
.c-pavement__marker{fill:var(--illo-marker);stroke:var(--illo-marker)}
.c-pavement__marker circle{transform-box:fill-box;transform-origin:center}
.c-pavement__marker text{font:700 14px Montserrat,sans-serif;stroke:none;fill:var(--illo-label)}
.c-pavement__outline{fill:none;stroke:var(--illo-marker);stroke-width:var(--stroke-focus);opacity:0}
.c-pavement__whole{opacity:0;font:700 14px Montserrat,sans-serif;fill:var(--illo-label)}
.c-pavement[data-highlight="5"] .c-pavement__whole{opacity:1}
.c-micro{opacity:0;fill:var(--illo-bitumen);stroke:var(--illo-outline);stroke-width:var(--illo-stroke);transform-box:fill-box;transform-origin:center;pointer-events:none}
.c-micro__aggregate{fill:var(--illo-aggregate)}
.c-micro__crack{stroke:var(--illo-marking);stroke-width:3;fill:none}
.c-micro text{font:700 14px Montserrat,sans-serif;stroke:none;fill:var(--illo-label)}
.c-pavement[data-highlight="6"] [data-pavement-block]{opacity:.25}
.c-pavement[data-highlight="6"] .c-micro{opacity:1}
.c-breakdown__caption{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-sm);color:var(--color-text-muted)}
.c-breakdown__caption>span:first-child{font-family:var(--font-heading);font-weight:var(--weight-bold);color:var(--color-heading)}
.c-breakdown__progress{height:var(--stroke-focus);background:var(--color-border);margin-top:var(--space-3);overflow:hidden}
.c-breakdown__progress span{display:block;width:100%;height:100%;background:var(--color-action);transform:scaleX(0);transform-origin:left}
.c-layer-list>li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-2);padding-block:var(--space-2);border-bottom:var(--border-hairline)}
.c-layer-list__number{font:var(--weight-bold) var(--text-sm)/var(--leading-body) var(--font-heading);color:var(--color-text-muted)}
.c-layer-list h3{font-size:var(--text-h4);line-height:var(--leading-tight)}
.c-layer-list p{font-size:var(--text-sm);margin-top:var(--space-1)}
.c-layer-list__links{display:flex;flex-wrap:wrap;gap:0 var(--space-2)}
.c-layer-list a{font-size:var(--text-sm);display:inline-flex;align-items:center;min-height:var(--tap-min)}
.c-layer-list .is-active h3,.c-layer-list .is-active .c-layer-list__number{color:var(--color-text-accent)}

/* === c-service-card === */
.c-service-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gutter)}
.c-service-grid>li{min-width:0;display:flex}
.c-service-card{display:flex;flex-direction:column;align-items:start;gap:var(--space-3);width:100%;height:100%;padding:var(--space-3);border:var(--border-hairline);color:var(--color-text);text-decoration:none;background:var(--color-surface)}
.c-service-card__top{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--space-3)}
.c-service-card__top .c-icon{color:var(--color-text-accent);width:var(--icon-feature);height:var(--icon-feature)}
.c-service-card h3{font-size:var(--text-h4);line-height:var(--leading-tight)}
.c-service-card p{font-size:var(--text-base)}
.c-service-card__bottom{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;margin-top:auto;padding-top:var(--space-3);font-size:var(--text-sm);color:var(--color-heading)}

/* === c-stat, c-logo-strip, c-industries === */
.c-stats{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5);margin-top:var(--space-6)}
.c-stat{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-sm);color:var(--color-on-band-muted)}
.c-stat__number{font:var(--weight-bold) var(--text-h1)/1 var(--font-heading);color:var(--color-on-band);margin-bottom:var(--space-2);font-variant-numeric:tabular-nums}
.c-stat small{font:inherit}
.c-logo-strip{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);padding-top:var(--space-4);margin-top:var(--space-6);border-top:var(--border-hairline);margin-bottom:var(--space-3)}
.c-logo-strip span{font:var(--weight-bold) var(--text-h4)/var(--leading-tight) var(--font-heading);color:var(--color-on-band-muted)}
.c-industries{display:grid;gap:var(--space-4) var(--space-3)}
.c-industries li{border-top:var(--border-hairline);padding-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}
.c-industries .c-icon{width:var(--icon-feature);height:var(--icon-feature);color:var(--color-heading);margin-bottom:var(--space-2)}
.c-industries h3{font-size:var(--text-h4);line-height:var(--leading-tight)}
.c-industries p{font-size:var(--text-base)}

/* === c-enquiry and c-field === */
.c-contact-layout,.c-contact-page{display:grid;gap:var(--space-5)}
.c-contact-intro .c-section-heading{margin-bottom:var(--space-4)}
.c-contact-note{display:flex;gap:var(--space-2);font-size:var(--text-sm);align-items:start}
.c-contact-note>.c-icon{color:var(--color-text-accent)}
.c-contact-note p{color:var(--color-text-muted);margin-top:var(--space-1)}
.c-enquiry{min-width:0}
.c-enquiry__demo{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-4);border-left:var(--stroke-focus) solid var(--color-border-strong);padding-left:var(--space-2)}
.c-enquiry__grid{display:grid;gap:var(--space-3)}
.c-field{min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}
.c-field label{font-weight:var(--weight-medium);font-size:var(--text-sm);margin-bottom:var(--space-1)}
.c-field label>span{font-weight:var(--weight-regular)}
.c-field input:not([type=checkbox]),.c-field select,.c-field textarea{display:block;min-width:0;width:100%;min-height:var(--space-5);padding:var(--space-2);background:var(--color-surface);border:var(--border-control);border-radius:var(--radius-control);color:var(--color-text);font-size:var(--text-base)}
.c-field textarea{resize:vertical;min-height:calc(var(--space-7) * 2)}
.c-field__hint,.c-field__error{font-size:var(--text-sm)}
.c-field__hint{color:var(--color-text-muted)}
.c-field__error{color:var(--color-error)}
.c-field [aria-invalid=true]{border:var(--stroke-focus) solid var(--color-error)}
.c-field--consent{margin-block:var(--space-4)}
.c-field--consent label{display:flex;align-items:start;gap:var(--space-2);min-height:var(--tap-min);cursor:pointer}
.c-field--consent input{width:var(--space-3);height:var(--space-3);flex-shrink:0;margin:0;accent-color:var(--color-action)}
.c-error-summary{padding:var(--space-3);border:var(--stroke-focus) solid var(--color-error);margin-bottom:var(--space-4);font-size:var(--text-sm)}
.c-error-summary h3{font-size:var(--text-h4);margin-bottom:var(--space-2);color:var(--color-error)}
.c-error-summary a{display:flex;min-height:var(--tap-min);align-items:center;color:var(--color-error)}
.c-truck-button{overflow:hidden;height:var(--space-6);width:100%;isolation:isolate}
.c-truck-button__label{position:relative;display:flex;align-items:center;justify-content:center;gap:var(--space-2);z-index:2}
.c-truck-button__asphalt{position:absolute;inset:0;background:var(--illo-surface);transform:scaleX(0);transform-origin:left;z-index:0}
.c-truck-button__truck{position:absolute;top:50%;left:0;width:var(--truck-width);height:var(--truck-height);max-width:none;opacity:0;z-index:1;transform:translate(-100%,-50%)}
.c-enquiry__status{margin-top:var(--space-3);padding:var(--space-3);border-left:var(--stroke-focus) solid var(--color-success);font-size:var(--text-sm)}
.c-contact-details{display:flex;flex-direction:column;align-items:start;gap:var(--space-3)}
.c-contact-details .c-placeholder{width:100%;margin-top:var(--space-3)}

/* === c-footer and inner page components === */
.c-footer{padding-block:var(--space-6) var(--space-3)}
.c-footer__grid{display:grid;gap:var(--space-5)}
.c-footer__grid>div{display:flex;flex-direction:column;align-items:start}
.c-footer__grid p{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-on-band-muted)}
.c-footer__title{font-size:var(--text-h4);margin-bottom:var(--space-2)}
.c-footer__grid a:not(.c-logo){display:inline-flex;min-height:var(--tap-min);align-items:center;text-decoration:none;font-size:var(--text-sm)}
.c-footer__bottom{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-3);border-top:var(--border-hairline);font-size:var(--text-sm)}
.c-footer__bottom nav{display:flex;flex-wrap:wrap;gap:0 var(--space-3)}
.c-footer__bottom a{display:inline-flex;gap:var(--space-2);align-items:center;min-height:var(--tap-min);text-decoration:none}
.c-footer__bottom>p{padding-block:var(--space-1)}
.c-footer__top .c-icon{transform:rotate(-90deg);width:var(--icon-inline);height:var(--icon-inline)}
.c-cta-band{text-align:center}
.c-cta-band p{margin:var(--space-3) auto var(--space-4)}
.c-cta-band h2{max-width:24ch;margin:auto}
.c-prose{max-width:var(--measure)}
.c-prose>*+*{margin-top:var(--space-3)}
.c-prose h2,.c-prose h3{margin-top:var(--space-5)}
.c-prose>:first-child{margin-top:0}
.c-standards>div{display:grid;gap:var(--space-2);padding-block:var(--space-3);border-bottom:var(--border-hairline)}
.c-standards dt{font-weight:var(--weight-bold);font-family:var(--font-heading);color:var(--color-heading);font-size:var(--text-sm)}
.c-standards dd{margin:0}
.c-placeholder{aspect-ratio:4/3;background:var(--color-bg-alt);border:var(--border-hairline);display:grid;place-items:center;padding:var(--space-3);color:var(--color-text-muted)}
.c-placeholder[data-ratio="1/1"]{aspect-ratio:1}
.c-placeholder>div{display:flex;align-items:center;flex-direction:column;gap:var(--space-2);text-align:center;font-size:var(--text-sm)}
.c-placeholder small{font:inherit}
.c-loader{position:fixed;inset:0;background:var(--color-band);color:var(--color-on-band);z-index:var(--z-loader);display:grid;place-content:center;justify-items:center;gap:var(--space-3);pointer-events:none}
.c-loader__paving{position:relative;width:min(78vw,24rem);height:7rem;overflow:hidden}
.c-loader__paving::before,.c-loader__asphalt{position:absolute;left:0;right:0;top:5rem;height:.75rem}
.c-loader__paving::before{content:"";background:rgba(255,255,255,.1)}
.c-loader__asphalt{background:var(--illo-surface) url("assets/img/materials/asphalt.webp") center/5rem;transform:scaleX(0);transform-origin:left}
.c-loader__truck{position:absolute;left:0;top:0;width:9rem;height:6rem;max-width:none;transform:translateX(-100%)}

@media(max-width:359px){.c-header .c-button{width:var(--tap-min);min-height:var(--tap-min);padding:var(--space-1)}}
@media(min-width:360px){.c-header__short{display:inline}.c-header .c-button .c-icon{display:none}.c-hero__actions{align-items:start}.c-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:600px){
 [data-road-side]{--journey-lane:calc((100% - 2 * var(--journey-margin))/3)}
 :root{--car-size:3.5rem;--road-width:3.5rem;--road-lane:8rem}
 .c-header__long{display:inline}.c-header__short{display:none}
 .c-header .c-button .c-icon{display:block}
 .c-hero__copy{width:100%;padding-right:0}
 .c-hero__actions{flex-direction:row;flex-wrap:wrap;align-items:center}
 .c-hero__road-note{display:flex;flex-direction:column;gap:var(--space-2);position:absolute;left:65%;bottom:var(--space-6);font-size:var(--text-sm);color:var(--color-on-band-muted)}
 .c-hero__road-note>span:first-child{font-family:var(--font-heading);font-weight:var(--weight-bold);letter-spacing:var(--tracking-eyebrow)}
 .c-service-grid,.c-industries,.l-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .c-journey-section .c-service-grid,.c-journey-section .c-industries{grid-template-columns:minmax(0,1fr)}
 .c-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .c-logo-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
 .c-breakdown__drawing{align-self:center}
 .c-breakdown__heading .c-lead{font-size:var(--text-base)}
 .c-breakdown__caption>span:last-child{display:none}
 .c-layer-list li{padding-block:var(--space-1)}
 .c-layer-list p{margin-top:0}
 .c-standards>div{grid-template-columns:1fr 2fr}
 .c-truck-button{width:auto;min-width:16rem}
}
@media(min-width:1024px){
 :root{--car-size:4.5rem;--road-width:5rem;--road-lane:10rem}
 .c-header__inner{flex-wrap:nowrap;gap:var(--space-4)}
 .is-enhanced .c-nav,.c-nav{display:flex;width:auto;order:0;margin-left:auto;padding:0;gap:var(--space-4);flex-wrap:nowrap}
 .c-header__cta{margin-left:var(--space-3)}.c-header .c-button{padding:var(--space-2) var(--space-3)}
 .c-menu-toggle{display:none}
 .c-hero__copy{width:100%}
 .c-hero__copy .c-lead{max-width:38ch}
 .c-hero--page .c-hero__inner:has(.c-hero__visual){grid-template-columns:7fr 5fr}
 .c-section-index{display:block}
 .l-split{grid-template-columns:1fr 1fr;gap:var(--space-7)}
 .c-service-grid,.c-industries{grid-template-columns:repeat(3,minmax(0,1fr))}
 [data-road-side] .c-service-grid,[data-road-side] .c-industries,[data-road-side] .c-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .c-service-card{padding:var(--space-4)}
 .c-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
 .c-breakdown__heading{flex-direction:column;align-items:center}
 .c-breakdown__heading>.c-text-link{white-space:nowrap}
 .c-breakdown__caption{flex-direction:row;justify-content:space-between}
 .c-breakdown__caption>span:last-child{display:block}
 .c-contact-layout{grid-template-columns:minmax(0,1fr);gap:var(--space-5)}
 .c-contact-layout .c-contact-intro{position:static}
 .c-contact-intro{position:sticky;top:calc(var(--header-height) + var(--space-5));align-self:start}
 .c-contact-page{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--space-7)}
 .c-enquiry__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .c-field--full{grid-column:1/-1}
 .c-footer__grid{grid-template-columns:1.3fr 1.2fr .8fr 1.2fr;gap:var(--space-5)}
 .c-footer__bottom{flex-direction:row;align-items:center;justify-content:space-between}
}
@media(min-width:1440px){.c-hero__scroll{margin-top:var(--space-6)}}
@media(hover:hover) and (pointer:fine){
 .c-button--primary:hover{background:var(--color-action-hover)}
 .c-button--inverse:hover{background:var(--color-on-band);color:var(--color-band)}
 .c-service-card:hover{border-color:var(--color-brand)}
 .c-nav a:hover,.c-footer a:hover{text-decoration:underline}
 .c-dropdown__panel a:hover{background:var(--color-bg-alt)}
 .c-text-link:hover span{text-decoration-thickness:var(--stroke-focus)}
 .c-field input:hover,.c-field select:hover,.c-field textarea:hover{border-color:var(--color-text)}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important}
 .c-loader{display:none}.c-truck-button__truck,.c-truck-button__asphalt{display:none}
}
