/* 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);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:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ut-red)}
.ut-band--dark .ut-eyebrow,.ut-band--red .ut-eyebrow,.ut-cover .ut-eyebrow{color:var(--ut-paper);opacity:.85}
.ut-pagetop .ut-eyebrow,.ut-band--sand .ut-eyebrow{color:var(--ut-red-hover)} /* base red on sand is 4.36:1; hover red clears AA */
.ut-head{max-width:68ch;margin-block-end:var(--ut-s5)}
.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-s2) 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:48px;padding:0 var(--ut-s3);border:2px solid transparent;border-radius:var(--ut-radius);background:var(--ut-ink);background-image:none;color:var(--ut-paper);font:500 16px/1.2 var(--ut-font);letter-spacing:0;text-transform:none;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);color:var(--ut-paper)}
.ut-btn--primary:hover{background:var(--ut-red-hover);color:var(--ut-paper)}
.ut-band--red .ut-btn--primary{background:var(--ut-paper);color:var(--ut-red)}
.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:flex-end;min-height:min(78vh,760px);padding:calc(117px + 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}
.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:18ch;margin:0;color:var(--ut-paper)}
.ut-cover .ut-lead{max-width:56ch}
.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{background:var(--ut-sand);padding-block:var(--ut-s7) var(--ut-s6)}
.ut-pagetop h1{margin:0;max-width:22ch}
.ut-pagetop .ut-lead{max-width:68ch}

/* ── 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:56px;height:56px;margin-block-end:var(--ut-s2);color:var(--ut-ink)}
.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)}
.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 h3{font-size:var(--ut-fs-md);margin:0}
.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.35;font-weight:500;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:56ch;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:var(--ut-fs-2xl);font-weight:900;line-height:1;color:var(--ut-paper);text-decoration:none;letter-spacing:-.01em}
.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:500;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-s3);border:0;border-radius:var(--ut-radius);background:var(--ut-red);background-image:none;color:var(--ut-paper);font:500 16px/1 var(--ut-font);text-transform:none}
.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:900;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);font-weight:500}
.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}
