/* Design system components (spec 2026-10-08 §2). Loaded after style.css.
   Colours only via tokens. */
button,input,select,textarea{font:inherit;color:inherit;box-sizing:border-box}
.ut-wrap{width:min(100% - 2 * var(--ut-gutter), var(--ut-container));margin-inline:auto}
.ut-prose{max-width:68ch}
.ut-prose > * + *{margin-block-start:1em}
.ut-prose :is(h2,h3){margin-block-start:1.6em}
.ut-prose a:not(.ut-btn){color:var(--ut-red)}
.ut-prose ul{padding-left:0;list-style:none}
.ut-prose ul li{position:relative;padding-left:28px;margin-block:6px}
.ut-prose ul li::before{content:"";position:absolute;left:4px;top:.55em;width:12px;height:7px;border-left:2px solid var(--ut-red);border-bottom:2px solid var(--ut-red);transform:rotate(-45deg)}
.ut-prose ul li > p{margin:0}
.ut-prose img{max-width:100%;height:auto;border-radius:var(--ut-radius)}
.ut-prose ol{padding-left:1.4em}
.ut-prose h1{margin-block-end:.6em}
.ut-prose strong{font-weight:500;color:var(--ut-ink)}
:is(.ut-band--dark,.ut-band--red) .ut-prose strong{color:inherit}

/* ── Bands ─────────────────────────────────────────────────────── */
.ut-band{padding-block:var(--ut-section);background:var(--ut-paper)}
.ut-band--sand{background:var(--ut-sand)}
.ut-band--dark{background:var(--ut-ink);color:var(--ut-paper)}
.ut-band--red{background:var(--ut-red-hover);background-image:var(--ut-red-grad-band);color:var(--ut-paper)}
.ut-band--dark :is(h1,h2,h3,h4),.ut-band--red :is(h1,h2,h3,h4){color:var(--ut-paper)}
.ut-band--tight{padding-block:var(--ut-s6)}
/* Consecutive bands on the SAME background must not stack both paddings: the
   next band drops its top padding, so the gap is the previous bottom padding
   (a tight predecessor is topped up so every same-background gap equals
   --ut-section). Different backgrounds keep both paddings. */
.ut-band:not(.ut-band--sand,.ut-band--dark,.ut-band--red) + .ut-band:not(.ut-band--sand,.ut-band--dark,.ut-band--red),
.ut-band--sand + .ut-band--sand,.ut-band--dark + .ut-band--dark,.ut-band--red + .ut-band--red{padding-block-start:0}
.ut-band--tight:not(.ut-band--sand,.ut-band--dark,.ut-band--red) + .ut-band:not(.ut-band--sand,.ut-band--dark,.ut-band--red),
.ut-band--tight.ut-band--sand + .ut-band--sand,.ut-band--tight.ut-band--dark + .ut-band--dark,.ut-band--tight.ut-band--red + .ut-band--red{padding-block-start:calc(var(--ut-section) - var(--ut-s6))}
.ut-band--dark,.ut-band--red{--ut-text:var(--ut-paper);--ut-muted:var(--ut-line)}

/* ── Section head ──────────────────────────────────────────────── */
.ut-eyebrow{margin:0 0 var(--ut-s2);font-size:15px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--ut-red-hover)}
.ut-band--dark .ut-eyebrow,.ut-band--red .ut-eyebrow,.ut-cover .ut-eyebrow{color:var(--ut-paper);opacity:.85}
.ut-pagetop .ut-eyebrow{color:var(--ut-paper);opacity:.85}
.ut-head{max-width:72ch;margin-block-end:var(--ut-s5)}
.ut-head--center{max-width:60rem}
.ut-head h2{margin:0}
.ut-head--center{margin-inline:auto;text-align:center}
.ut-lead{font-size:var(--ut-fs-md);line-height:1.5;color:var(--ut-text);margin:var(--ut-s3) 0 0}
.ut-band--dark .ut-lead,.ut-band--red .ut-lead,.ut-cover .ut-lead{color:var(--ut-paper)}

/* Long pull quote under a section title (an h3 for outline, a lead in looks). */
.ut-quote-lead{margin:var(--ut-s2) 0 var(--ut-s3);font-size:var(--ut-fs-md);font-style:italic;font-weight:400;line-height:1.45;text-transform:none;letter-spacing:0;color:var(--ut-paper)}

/* ── Buttons ───────────────────────────────────────────────────── */
.ut-actions{display:flex;flex-wrap:wrap;gap:var(--ut-s2);margin-block-start:var(--ut-s4)}
.ut-head--center .ut-actions,.ut-sos .ut-actions{justify-content:center}
.ut-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 var(--ut-s4);border:2px solid transparent;border-radius:var(--ut-pill);background:var(--ut-ink);background-image:none;color:var(--ut-paper);font:700 15px/1.2 var(--ut-font);letter-spacing:.01em;text-transform:uppercase;text-decoration:none;cursor:pointer;filter:none;transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.ut-btn svg{width:18px;height:18px;flex:none}
.ut-btn:hover{filter:none}
.ut-btn--primary{background:var(--ut-red-hover);background-image:var(--ut-red-grad);color:var(--ut-paper)}
.ut-btn--primary:hover{background:var(--ut-red-hover);background-image:none;color:var(--ut-paper)}
.ut-band--red .ut-btn--primary{background:var(--ut-paper);background-image:none;color:var(--ut-red-hover)}
.ut-band--red .ut-btn--primary:hover{background:var(--ut-sand);color:var(--ut-red-hover)}
.ut-btn--secondary{background:var(--ut-ink);color:var(--ut-paper)}
.ut-btn--secondary:hover{background:var(--ut-text);color:var(--ut-paper)}
.ut-btn--ghost{background:transparent;border-color:currentColor;color:var(--ut-ink)}
.ut-btn--ghost:hover{background:var(--ut-ink);border-color:var(--ut-ink);color:var(--ut-paper)}
:is(.ut-band--dark,.ut-band--red,.ut-cover) .ut-btn--secondary{background:var(--ut-paper);color:var(--ut-ink)}
:is(.ut-band--dark,.ut-band--red,.ut-cover) .ut-btn--secondary:hover{background:var(--ut-sand);color:var(--ut-ink)}
:is(.ut-band--dark,.ut-band--red,.ut-cover) .ut-btn--ghost{color:var(--ut-paper)}
:is(.ut-band--dark,.ut-band--red,.ut-cover) .ut-btn--ghost:hover{background:var(--ut-paper);border-color:var(--ut-paper);color:var(--ut-ink)}
.ut-btn:focus-visible{outline:3px solid var(--ut-red);outline-offset:3px}
:is(.ut-band--dark,.ut-band--red,.ut-cover,.site-header) .ut-btn:focus-visible{outline-color:var(--ut-paper)}

/* ── Cover (photo hero) ────────────────────────────────────────── */
.ut-cover{position:relative;isolation:isolate;display:flex;align-items:center;min-height:min(92vh,1030px);padding:calc(120px + var(--ut-s6)) 0 var(--ut-s7);color:var(--ut-paper);background:var(--ut-ink)}
.ut-cover__bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.ut-cover::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--ut-scrim-1) 0,var(--ut-scrim-2) 30%,var(--ut-scrim-3) 55%,var(--ut-scrim-4) 100%)}
.ut-cover h1{max-width:24ch;margin:0;color:var(--ut-paper)}
.ut-cover .ut-lead{max-width:36ch;font-size:clamp(18px,1.6vw,24px)}
.ut-cover__note{margin:var(--ut-s2) 0 0;font-size:var(--ut-fs-xs);opacity:.8}
@media(max-width:781px){.ut-cover{min-height:auto;padding:calc(88px + var(--ut-s5)) 0 var(--ut-s6)}}

/* ── Page top (no photo) ───────────────────────────────────────── */
.ut-pagetop{position:relative;isolation:isolate;background:var(--ut-ink);color:var(--ut-paper);padding-block:var(--ut-s6);text-align:center}
.ut-pagetop__bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.ut-pagetop:has(.ut-pagetop__bg)::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ut-scrim-3)}
.ut-pagetop:has(.ut-pagetop__bg){padding-block:var(--ut-s7)}
body.has-photo-hero .ut-pagetop:has(.ut-pagetop__bg){padding-block:calc(120px + var(--ut-s4)) var(--ut-s6)}
.ut-pagetop h1{margin:0 auto;max-width:24ch;color:var(--ut-paper)}
.ut-pagetop h1::after{content:"";display:block;width:56px;height:3px;margin:var(--ut-s2) auto 0;background:var(--ut-red)}
.ut-pagetop .ut-lead{max-width:68ch;margin-inline:auto;color:var(--ut-paper)}

/* ── Pair (image | text) ───────────────────────────────────────── */
.ut-pair{display:grid;gap:var(--ut-s5);align-items:center}
.ut-pair + .ut-pair{margin-block-start:var(--ut-s7)}
.ut-pair__media{margin:0}
.ut-pair__media img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--ut-radius)}
.ut-pair__text > :first-child{margin-block-start:0}
@media(min-width:900px){.ut-pair{grid-template-columns:1fr 1fr;gap:var(--ut-s7)}.ut-pair--reverse .ut-pair__media{order:2}}

/* ── Trio (features) ───────────────────────────────────────────── */
.ut-trio{display:grid;gap:var(--ut-s5);margin:0;padding:0;list-style:none}
@media(min-width:781px){.ut-trio{grid-template-columns:repeat(var(--ut-trio-cols,3),1fr)}}
.ut-trio__icon{display:inline-flex;width:64px;height:64px;margin-block-end:var(--ut-s2);color:var(--ut-red)}
.ut-trio__icon :is(svg,img){width:100%;height:100%;object-fit:contain}
.ut-trio h3{font-size:var(--ut-fs-md);margin:0 0 var(--ut-s1);text-transform:uppercase}
.ut-trio p{margin:0;color:var(--ut-text)}
.ut-band--dark .ut-trio__icon{color:var(--ut-paper)}

/* ── Tiles (cards) ─────────────────────────────────────────────── */
.ut-tiles{display:grid;gap:var(--ut-s4);margin:0;padding:0;list-style:none;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.ut-tile{display:flex}
.ut-tile__link{display:flex;flex-direction:column;width:100%;overflow:hidden;border-radius:var(--ut-radius);background:var(--ut-paper);box-shadow:var(--ut-shadow);color:inherit;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}
.ut-tile__link:hover{transform:translateY(-2px);box-shadow:var(--ut-shadow-lg)}
div.ut-tile__link:hover{transform:none;box-shadow:var(--ut-shadow)}
.ut-tile__link:focus-visible{outline:3px solid var(--ut-red);outline-offset:3px}
.ut-tile__media{margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--ut-sand)}
.ut-tile__media img{width:100%;height:100%;object-fit:cover;display:block}
.ut-tile__body{padding:var(--ut-s3)}
.ut-tile__meta{margin:0 0 var(--ut-s1);font-size:var(--ut-fs-xs);color:var(--ut-muted)}
.ut-tile :is(h2,h3){font-size:var(--ut-fs-md);margin:0;text-transform:none}
.ut-tile p{margin:var(--ut-s1) 0 0;font-size:var(--ut-fs-xs);color:var(--ut-text)}
@media(prefers-reduced-motion:reduce){.ut-tile__link{transition:none}.ut-tile__link:hover{transform:none}}

/* ── Photos (gallery) ──────────────────────────────────────────── */
.ut-photos{display:grid;gap:var(--ut-s2);margin:0;padding:0;list-style:none;grid-template-columns:repeat(3,1fr)}
.ut-photos li{margin:0}
.ut-photos img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--ut-radius)}
.ut-photos--2{grid-template-columns:repeat(2,1fr)}
.ut-photos--1{grid-template-columns:1fr}
@media(max-width:899px){.ut-photos{grid-template-columns:repeat(2,1fr)}}
@media(max-width:599px){.ut-photos{grid-template-columns:1fr}}

/* ── Testimonial ───────────────────────────────────────────────── */
.ut-testimonial{max-width:44ch;margin:0 auto;text-align:center}
.ut-testimonial blockquote{margin:0;font-size:var(--ut-fs-lg);line-height:1.4;font-weight:400;font-style:italic;color:var(--ut-ink)}
.ut-testimonial figcaption{margin-top:var(--ut-s3);font-size:var(--ut-fs-xs);color:var(--ut-muted)}
:is(.ut-band--dark,.ut-band--red) .ut-testimonial blockquote{color:var(--ut-paper)}
:is(.ut-band--dark,.ut-band--red) .ut-testimonial figcaption{color:var(--ut-line)}

/* ── SOS (emergency band content) ──────────────────────────────── */
.ut-sos{text-align:center;max-width:64rem;margin-inline:auto}
.ut-sos > p{max-width:60ch;margin-inline:auto}
.ut-sos h2{margin:0}
.ut-sos p{margin:var(--ut-s2) 0 0}
.ut-sos__phone{display:inline-block;margin-top:var(--ut-s3);font-size:clamp(40px,7vw,96px);font-weight:700;line-height:1;color:var(--ut-paper);text-decoration:none;letter-spacing:-.01em;white-space:nowrap}
.ut-sos__phone:hover{text-decoration:underline;text-underline-offset:.12em}
.ut-sos__phone:focus-visible{outline:3px solid var(--ut-paper);outline-offset:4px}

/* ── Lists of places, etc. ─────────────────────────────────────── */
.ut-cols{columns:3 12rem;column-gap:var(--ut-s4);padding:0;list-style:none}
.ut-cols li{break-inside:avoid;padding-block:6px;border-bottom:1px solid var(--ut-line)}

/* ── Forms ─────────────────────────────────────────────────────── */
.ut-form{display:grid;gap:var(--ut-s3)}
.ut-form__row{display:grid;gap:var(--ut-s3)}
@media(min-width:700px){.ut-form__row{grid-template-columns:1fr 1fr}}
.ut-form label,.apigoat-nl label{display:block;margin:0 0 6px;font-size:var(--ut-fs-xs);font-weight:600;color:var(--ut-ink);letter-spacing:0;text-transform:none}
.ut-form :is(input[type=text],input[type=email],input[type=tel],select,textarea),
.apigoat-nl :is(input[type=text],input[type=email]){width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--ut-line);border-radius:var(--ut-radius);background:var(--ut-paper);color:var(--ut-text);font:400 16px/1.4 var(--ut-font);box-shadow:none}
.ut-form textarea{min-height:160px;resize:vertical}
.ut-form :is(input,select,textarea):focus-visible,.apigoat-nl input:focus-visible{outline:3px solid var(--ut-red);outline-offset:1px;border-color:var(--ut-red)}
.ut-form__consent{display:flex;gap:var(--ut-s1);align-items:flex-start;font-size:var(--ut-fs-xs);font-weight:400}
.ut-form__consent input{margin-top:4px;width:18px;height:18px;accent-color:var(--ut-red)}
.ut-form__consent a{color:var(--ut-red)}
.apigoat-nl__consent input[type=checkbox]{flex:none;width:18px;height:18px;margin-top:3px;accent-color:var(--ut-red)}
.ut-form .ut-btn{justify-self:start}
.ut-form__hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.ut-notice--err{padding:var(--ut-s2);border-left:4px solid var(--ut-red);background:var(--ut-sand);color:var(--ut-ink);border-radius:var(--ut-radius)}
.ut-formcard{background:var(--ut-paper);border-radius:var(--ut-radius);box-shadow:var(--ut-shadow);padding:clamp(24px,4vw,48px)}

/* Newsletter band (apigoat-newsletter inline variant): name + email, consent, then the submit row. */
.ut-footer-newsletter{max-width:var(--ut-container);margin:0 auto;padding:6px 0 var(--ut-s4);border-bottom:1px solid var(--ut-rule-dark);display:grid;gap:var(--ut-s3);align-items:center}
@media(min-width:900px){.ut-footer-newsletter{grid-template-columns:2fr 4.6fr;gap:var(--ut-s5)}}
.ut-footer-newsletter__text h2{margin-bottom:6px}
.ut-footer-newsletter__text p{margin:0;color:var(--ut-paper);opacity:.85}
.site-footer .apigoat-nl{max-width:none;margin:0;padding:0;border:0;background:none;font-family:var(--ut-font)}
.site-footer .apigoat-nl__title,.site-footer .apigoat-nl__subtitle{display:none}
.site-footer .apigoat-nl__consent a{color:var(--ut-paper);text-decoration:underline}
.site-footer .apigoat-nl.apigoat-nl--inline .apigoat-nl__notice{flex:0 0 100%}
.ut-footer-newsletter .apigoat-nl form{display:flex;flex-wrap:wrap;gap:var(--ut-s2);align-items:flex-end}
.ut-footer-newsletter .apigoat-nl .apigoat-nl__row:not(.apigoat-nl__consent):not(.apigoat-nl__actions){flex:1 1 220px}
.ut-footer-newsletter .apigoat-nl label{color:var(--ut-paper)}
.ut-footer-newsletter .apigoat-nl .apigoat-nl__consent{flex:0 0 100%;color:var(--ut-line)}
.ut-footer-newsletter .apigoat-nl .apigoat-nl__actions{flex:0 0 100%}
.ut-footer-newsletter .apigoat-nl .apigoat-nl__submit{min-height:48px;padding:0 var(--ut-s4);border:0;border-radius:var(--ut-pill);background:var(--ut-red-hover);background-image:var(--ut-red-grad);color:var(--ut-paper);font:700 15px/1 var(--ut-font);text-transform:uppercase}
.ut-footer-newsletter .apigoat-nl .apigoat-nl__submit:hover{background:var(--ut-red-hover)}

/* Footer bottom line links must not rely on colour alone (axe link-in-text-block). */
.site-footer-bottom a{text-decoration:underline;text-underline-offset:.2em}

/* ── Entry (privacy, posts) ────────────────────────────────────── */
.ut-entry .ut-prose{max-width:68ch}
.ut-entry .wp-block-post-featured-image{max-width:var(--ut-container);margin:var(--ut-s5) auto 0;padding-inline:var(--ut-gutter)}
.ut-entry .wp-block-post-featured-image img{border-radius:var(--ut-radius)}

/* ── Form page ─────────────────────────────────────────────────── */
.ut-formpage{display:grid;gap:var(--ut-s5);align-items:start}
@media(min-width:960px){.ut-formpage{grid-template-columns:3fr 2fr}}
.ut-formcard h2{font-size:var(--ut-fs-xl)}
@media(max-width:959px){
  .ut-formcard h2{font-size:var(--ut-fs-lg)}
  /* Phone number before the form on small screens. */
  .ut-formpage > .ut-infopanel,.ut-formpage > :has(> .ut-infopanel){order:-1}
}
.ut-infopanel{background:var(--ut-ink);color:var(--ut-paper);border-radius:var(--ut-radius);padding:clamp(24px,4vw,48px)}
.ut-infopanel h2{color:var(--ut-paper);font-size:var(--ut-fs-lg);margin:0}
.ut-infopanel__phone{display:block;margin:var(--ut-s2) 0;font-size:clamp(32px,4vw,44px);font-weight:700;color:var(--ut-paper);text-decoration:none}
.ut-infopanel dl{margin:var(--ut-s4) 0 0;display:grid;gap:var(--ut-s2)}
.ut-infopanel dt{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ut-line)}
.ut-infopanel dd{margin:0}
.ut-infopanel a{color:var(--ut-paper)}
.ut-infopanel .ut-eyebrow{color:var(--ut-paper);opacity:.85}
.ut-aside-note{margin-top:var(--ut-s3)}

/* ── Blog grid (core query loop) ───────────────────────────────── */
.ut-postgrid > li{display:flex;flex-direction:column;border-radius:var(--ut-radius);overflow:hidden;background:var(--ut-paper);box-shadow:var(--ut-shadow)}
.ut-postgrid .wp-block-post-featured-image{margin:0;aspect-ratio:4/3}
.ut-postgrid .wp-block-post-featured-image{overflow:hidden}
.ut-postgrid .wp-block-post-featured-image img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.ut-postgrid .ut-post-meta,.ut-postgrid .wp-block-post-title,.ut-postgrid .wp-block-read-more{margin:0;padding:0 var(--ut-s3)}
.ut-postgrid .ut-post-meta{padding-top:var(--ut-s3);font-size:var(--ut-fs-xs);color:var(--ut-muted);gap:var(--ut-s1)}
.ut-postgrid .ut-post-meta a{color:var(--ut-muted)}
.ut-postgrid .wp-block-post-title{font-size:var(--ut-fs-md);margin-block:var(--ut-s1)}
.ut-postgrid .wp-block-post-title a{color:var(--ut-ink);text-decoration:none}
.ut-postgrid .wp-block-read-more{padding-bottom:var(--ut-s3);margin-top:auto;color:var(--ut-red-hover);font-weight:600}
.ut-posts{padding-block:var(--ut-section)}
.ut-posts__inner{width:min(100% - 2 * var(--ut-gutter),var(--ut-container));margin-inline:auto}
.wp-block-query-pagination{display:flex;flex-wrap:wrap;gap:var(--ut-s2);font-size:var(--ut-fs-xs)}
.wp-block-query-pagination:empty{display:none}

/* ══ Maquettes 2026-11 components ════════════════════════════════ */

/* Centred statement under the hero, over the red helmet watermark. */
.ut-statement{position:relative;isolation:isolate;overflow:hidden;text-align:center}
.ut-statement::before{content:"";position:absolute;z-index:-1;top:50%;left:50%;width:min(760px,90vw);aspect-ratio:1;transform:translate(-20%,-50%);background:var(--ut-watermark);-webkit-mask:url(../img/helmet-mask.png) center/contain no-repeat;mask:url(../img/helmet-mask.png) center/contain no-repeat}
.ut-statement h2{max-width:22ch;margin:0 auto;color:var(--ut-red-hover)}
.ut-statement .ut-lead{max-width:52ch;margin-inline:auto}
.ut-statement .ut-actions{justify-content:center}

/* Services strip: names separated by red slashes, full-bleed, scrolls on small screens. */
.ut-marquee{border-block:1px solid var(--ut-line);background:var(--ut-paper);overflow-x:auto;scrollbar-width:none}
.ut-marquee::-webkit-scrollbar{display:none}
.ut-marquee ul{display:flex;justify-content:center;gap:0;width:max-content;min-width:100%;margin:0;padding:var(--ut-s3) var(--ut-gutter);list-style:none}
.ut-marquee li{display:flex;align-items:center;white-space:nowrap}
.ut-marquee li + li::before{content:"\\";padding-inline:var(--ut-s5);color:var(--ut-red);font-weight:400;font-size:22px}
.ut-marquee a{color:var(--ut-ink);font-weight:700;font-size:var(--ut-fs-md);text-transform:uppercase;text-decoration:none}
.ut-marquee a:hover{color:var(--ut-red-hover)}

/* Split: full-bleed half photo | half panel (sand, red, dark or paper). */
.ut-split{display:grid;background:var(--ut-sand)}
.ut-split--red{background:var(--ut-red-hover);background-image:var(--ut-red-grad-band);color:var(--ut-paper);--ut-text:var(--ut-paper)}
.ut-split--dark{background:var(--ut-ink);color:var(--ut-paper);--ut-text:var(--ut-paper)}
.ut-split--paper{background:var(--ut-paper)}
.ut-split :is(.ut-split--red,.ut-split--dark) :is(h2,h3),.ut-split--red :is(h2,h3),.ut-split--dark :is(h2,h3){color:var(--ut-paper)}
.ut-split--red .ut-eyebrow,.ut-split--dark .ut-eyebrow{color:var(--ut-paper);opacity:.9}
.ut-split__media{margin:0;min-height:320px;position:relative}
.ut-split__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ut-split__text{padding:clamp(40px,6vw,96px) var(--ut-gutter)}
.ut-split__text > :first-child{margin-block-start:0}
.ut-split__text h2{margin:0 0 var(--ut-s2)}
.ut-split__text h3{font-size:var(--ut-fs-md);margin:0 0 var(--ut-s2);text-transform:none}
.ut-split__text p{margin:0 0 var(--ut-s2);max-width:52ch}
.ut-split--center .ut-split__text{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ut-split--center .ut-actions{justify-content:center}
.ut-split__logo{width:min(300px,70%);height:auto;margin:0 auto var(--ut-s3)}
@media(min-width:900px){
  .ut-split{grid-template-columns:var(--ut-split-cols,1fr 1fr)}
  .ut-split--reverse .ut-split__media{order:2}
  .ut-split__media{min-height:520px}
  .ut-split__text{display:flex;flex-direction:column;justify-content:center;padding-inline:clamp(40px,6vw,96px)}
}

/* Steps: numbered process, big red numbers, hairlines between items. */
.ut-process{display:grid;gap:var(--ut-s5)}
.ut-process__aside .ut-pair__media,.ut-process__aside figure{margin:var(--ut-s5) 0 0}
.ut-process__aside img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--ut-radius)}
@media(min-width:960px){.ut-process{grid-template-columns:1fr 1.7fr;gap:var(--ut-s7)}.ut-process__aside{position:sticky;top:var(--ut-s4);align-self:start}}
.ut-steps{margin:0;padding:0;list-style:none;border-top:1px solid var(--ut-line)}
.ut-steps li{display:grid;grid-template-columns:72px 1fr;gap:var(--ut-s2);padding-block:var(--ut-s3);border-bottom:1px solid var(--ut-line)}
.ut-steps__num{font-family:var(--ut-font-display);font-weight:700;font-size:clamp(36px,3.4vw,48px);line-height:1;color:var(--ut-red-hover)}
.ut-steps h3{margin:0 0 6px;font-size:var(--ut-fs-md);color:var(--ut-ink)}
.ut-steps p{margin:0;color:var(--ut-muted)}

/* Trio variants: lined columns (priority) and boxed icons (conditions). */
.ut-trio--lined .ut-trio__item{padding-inline-start:var(--ut-s3);border-inline-start:1px solid var(--ut-line)}
.ut-trio--lined .ut-trio__icon{width:28px;height:28px}
.ut-trio--lined h3{font-size:18px;text-transform:none}
.ut-trio--lined p{color:var(--ut-muted)}
.ut-trio--boxed{text-align:center}
.ut-trio--boxed .ut-trio__icon{width:112px;height:112px;padding:var(--ut-s2);background:var(--ut-paper);border-radius:var(--ut-radius);box-shadow:var(--ut-shadow)}
.ut-trio--boxed h3{font-size:17px;text-transform:none;max-width:24ch;margin-inline:auto}
.ut-trio--center{text-align:center}
.ut-trio--center .ut-trio__icon{margin-inline:auto}

/* Situations: quote on the left, answer on the right (grey band). */
.ut-situations{display:grid;gap:var(--ut-s5);align-items:center}
.ut-situations__quote{margin:0;font-size:clamp(20px,2vw,28px);font-style:italic;line-height:1.4;color:var(--ut-muted);text-align:center}
.ut-situations h2{margin:0 0 var(--ut-s2)}
.ut-situations__answer{margin:0 0 var(--ut-s2);font-size:var(--ut-fs-md);color:var(--ut-red-hover)}
@media(min-width:900px){.ut-situations{grid-template-columns:1fr 1fr;gap:var(--ut-s7)}}

/* Quote band: dark photo, quote | call to action. */
.ut-quoteband{position:relative;isolation:isolate;color:var(--ut-paper);background:var(--ut-ink)}
.ut-quoteband__bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.ut-quoteband::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ut-scrim-1)}
.ut-quoteband__grid{display:grid;gap:var(--ut-s5);align-items:center}
.ut-quoteband .ut-testimonial{max-width:none}
.ut-quoteband .ut-testimonial blockquote{color:var(--ut-paper);font-size:clamp(18px,1.7vw,24px)}
.ut-quoteband .ut-testimonial figcaption{color:var(--ut-line)}
.ut-quoteband h2{margin:0;color:var(--ut-paper)}
@media(min-width:900px){.ut-quoteband__grid{grid-template-columns:1.2fr 1fr;gap:var(--ut-s7)}.ut-quoteband__cta{padding-inline-start:var(--ut-s7);border-inline-start:1px solid var(--ut-rule-dark)}}

/* Note box beside prose (about page). */
.ut-notebox{padding:clamp(24px,4vw,56px);background:var(--ut-sand);border-radius:var(--ut-radius);text-align:center;font-size:var(--ut-fs-md);line-height:1.5;color:var(--ut-ink)}
.ut-notebox p{margin:0 0 var(--ut-s2)}
.ut-notebox p:last-child{margin:0}
.ut-cols2{display:grid;gap:var(--ut-s5);align-items:center}
@media(min-width:900px){.ut-cols2{grid-template-columns:1fr 1fr;gap:var(--ut-s7)}}

/* Mosaic: team photos, one tall photo either side of a stacked pair. */
.ut-mosaic{display:grid;gap:0;grid-template-columns:repeat(2,1fr);margin:0;padding:0;list-style:none}
.ut-mosaic li{margin:0;min-height:220px;position:relative}
.ut-mosaic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
@media(min-width:900px){
  .ut-mosaic{grid-template-columns:1fr 1.12fr 1fr;grid-template-rows:repeat(2,minmax(260px,400px))}
  .ut-mosaic li:nth-child(1){grid-column:1;grid-row:1/3}
  .ut-mosaic li:nth-child(2){grid-column:2;grid-row:1}
  .ut-mosaic li:nth-child(3){grid-column:2;grid-row:2}
  .ut-mosaic li:nth-child(4){grid-column:3;grid-row:1/3}
  .ut-mosaic li:nth-child(n+5){display:none}
}

/* SOS with a photo: red text half | photo half. */
.ut-sos-split{display:grid;background:var(--ut-red-hover);background-image:var(--ut-red-grad-band);color:var(--ut-paper)}
.ut-sos-split .ut-sos{text-align:left;margin:0;padding:clamp(48px,6vw,96px) var(--ut-gutter);max-width:none}
.ut-sos-split .ut-sos h2{color:var(--ut-paper)}
.ut-sos-split .ut-sos .ut-actions{justify-content:flex-start}
.ut-sos-split .ut-sos__phone{font-size:clamp(36px,4vw,56px)}
.ut-sos-split__media{margin:0;position:relative;min-height:300px}
.ut-sos-split__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(min-width:900px){.ut-sos-split{grid-template-columns:44fr 56fr}.ut-sos-split .ut-sos{padding-inline:clamp(40px,7vw,120px)}}
.ut-sos-split .ut-btn--secondary,.ut-sos .ut-btn--secondary{background:var(--ut-paper);color:var(--ut-red-hover)}
.ut-sos-split .ut-btn--secondary:hover,.ut-sos .ut-btn--secondary:hover{background:var(--ut-ink);color:var(--ut-paper)}
.ut-sos__kicker{margin:0 0 var(--ut-s2);font-size:var(--ut-fs-md)}

/* Contact details card (contact page). */
.ut-coords{display:grid;gap:var(--ut-s2);align-content:start}
.ut-coords h2{margin:0}
.ut-coords hr{width:48px;margin:var(--ut-s1) 0;border:0;border-top:3px solid var(--ut-red)}
.ut-coords p{margin:0}
.ut-coords a:not(.ut-btn){color:var(--ut-ink)}

/* Radio group in forms. */
.ut-form__choices{display:flex;flex-wrap:wrap;gap:var(--ut-s1) var(--ut-s3);margin:0;padding:0;border:0}
.ut-form__choices legend{margin:0 0 6px;padding:0;font-size:var(--ut-fs-xs);font-weight:600;color:var(--ut-ink)}
.ut-form .ut-form__choices label{display:inline-flex;align-items:center;gap:8px;margin:0;font-weight:400;font-size:var(--ut-fs-base)}
.ut-form__choices input{width:18px;height:18px;accent-color:var(--ut-red)}
.ut-split__text .ut-split__title--red{color:var(--ut-red-hover)}
:is(.ut-quoteband,.ut-split--dark,.ut-split--red) .ut-btn--secondary{background:var(--ut-paper);color:var(--ut-ink)}
:is(.ut-quoteband,.ut-split--dark,.ut-split--red) .ut-btn--secondary:hover{background:var(--ut-sand);color:var(--ut-ink)}
:is(.ut-quoteband,.ut-split--dark,.ut-split--red,.ut-sos-split) .ut-btn:focus-visible{outline-color:var(--ut-paper)}
.ut-coords.ut-formcard{background:var(--ut-sand);box-shadow:none}

/* ── Text/image balance in content pairs (service pages) ──────────
   Section titles inside a two-column layout are one step smaller than a
   band title, so they don't outweigh the photo and the body copy. */
.ut-pair__text h2,.ut-textpair h2,.ut-band > .ut-wrap > .ut-prose h2{font-size:clamp(24px,2.5vw,34px);margin-block-end:var(--ut-s2)}
.ut-pair__text h3,.ut-textpair h3{font-size:var(--ut-fs-md)}
.ut-pair__text p,.ut-textpair .ut-prose p{font-size:17px;line-height:1.65}
@media(min-width:900px){
  .ut-pair{grid-template-columns:1fr 1fr;gap:var(--ut-s6)}
  .ut-pair__media img{aspect-ratio:5/4}
  .ut-pair--long{align-items:start}
  .ut-pair--long .ut-pair__media{position:sticky;top:var(--ut-s4)}
  .ut-pair--long .ut-pair__media img{aspect-ratio:4/5}
}
.ut-textpair{display:grid;gap:var(--ut-s3)}
.ut-textpair__head h2{margin:0}
.ut-textpair__head h2::after{content:"";display:block;width:56px;height:3px;margin-top:var(--ut-s2);background:var(--ut-red)}
.ut-textpair .ut-prose{max-width:none}
@media(min-width:900px){.ut-textpair{grid-template-columns:5fr 7fr;gap:var(--ut-s7);align-items:start}.ut-textpair__head{position:sticky;top:var(--ut-s4)}}
.ut-photos--1 img{aspect-ratio:21/9}
.ut-photos--2 img{aspect-ratio:3/2}
/* Cookie banner (apigoat-consent): skinned through its --acx-* tokens only, so plugin
   updates keep applying. Ink bar like the header, red pill like .ut-btn--primary. */
.acx{--acx-bg:var(--ut-ink);--acx-rule:var(--ut-rule-dark-strong);--acx-shadow:var(--ut-shadow-up);--acx-accent-bar:var(--ut-red-grad);--acx-font:var(--ut-font);--acx-text-size:var(--ut-fs-xs);--acx-text:var(--ut-line);--acx-link:var(--ut-paper);--acx-link-hover:var(--ut-paper);--acx-link-underline:var(--ut-red);--acx-btn-size:14px;--acx-btn-weight:700;--acx-btn-transform:uppercase;--acx-btn-tracking:.04em;--acx-btn-pad:12px 26px;--acx-radius:var(--ut-pill);--acx-ghost-ink:var(--ut-paper);--acx-ghost-ink-hover:var(--ut-paper);--acx-ghost-border-hover:var(--ut-paper);--acx-ghost-bg-hover:var(--ut-tint-dark);--acx-accept-bg:var(--ut-red-hover);--acx-accept-bg-hover:var(--ut-red);--acx-accept-ink:var(--ut-paper);--acx-focus:var(--ut-paper);--acx-maxw:var(--ut-container);--acx-pad:var(--ut-gutter);--acx-z:90}
