/* ==========================================================================
   State of San Andreas portal. tokens.css is linked first.
   Mobile first. Breakpoints: 640px (two columns), 900px (navigation), 1024px (full grid).
   White pages, one institutional blue, square corners, 1px borders.
   Flat colour only: no shade effects, no background art, no animation.
   ========================================================================== */

/* Base ------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; -webkit-text-size-adjust: 100%; scroll-padding-top: 1rem; }
body {
  margin: 0;
  background: var(--sa-bg);
  color: var(--sa-text);
  font-family: var(--sa-font);
  font-size: 1.0625rem;
  line-height: 1.5;
  overflow-wrap: break-word;
}
img, svg { max-width: 100%; }
img { height: auto; display: block; }
h1, h2, h3, h4 { margin: 0; color: var(--sa-text); font-weight: 700; }
h1, .sa-h1 { font-size: 1.75rem; line-height: 1.2; margin-bottom: var(--sa-space-4); }
h2, .sa-h2 { font-size: 1.375rem; line-height: 1.25; margin-top: 2.5rem; margin-bottom: var(--sa-space-3); }
h3, .sa-h3 { font-size: 1.1875rem; line-height: 1.3; margin-top: var(--sa-space-5); margin-bottom: var(--sa-space-2); }
h4, .sa-h4 { font-size: 1.0625rem; line-height: 1.4; margin-top: var(--sa-space-4); margin-bottom: var(--sa-space-2); }
h1 + h2, .sa-page-header + h2, .sa-panel > :first-child, .sa-inset > :first-child, .sa-grid__side > h2:first-child, .sa-details__body > :first-child, .sa-ooc__body > :first-child { margin-top: 0; }
.sa-grid__main > .sa-prose:first-child > h2:first-child { margin-top: 0; }
.sa-h2, .sa-h3 { font-weight: 700; }
p.sa-h2, p.sa-h3 { margin-top: 0; }
@media (min-width: 640px) {
  h1, .sa-h1 { font-size: 2rem; }
  h2, .sa-h2 { font-size: 1.5rem; }
}
p { margin: 0 0 var(--sa-space-4); }
ul, ol { margin: 0 0 var(--sa-space-4); padding-left: 1.5rem; }
li + li { margin-top: var(--sa-space-2); }
hr { border: 0; border-top: 1px solid var(--sa-border); margin: var(--sa-space-6) 0; }
strong, b { font-weight: 700; }
abbr[title] { text-decoration: none; }
blockquote { margin: 0 0 var(--sa-space-5); padding: 0 0 0 var(--sa-space-4); border-left: 4px solid var(--sa-border); font-style: italic; }
blockquote p:last-of-type { margin-bottom: var(--sa-space-2); }
blockquote footer { font-style: normal; font-size: 0.9375rem; color: var(--sa-text-muted); }
address { font-style: normal; }

/* Links */
a { color: var(--sa-link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.15em; transition: color 100ms; }
a:hover { color: var(--sa-link-hover); text-decoration-thickness: 2px; }
main a:visited { color: var(--sa-link-visited); }
main .sa-button:visited, main .sa-nav a:visited { color: inherit; }

/* Focus */
:focus { outline: none; }
:focus-visible { outline: 3px solid var(--sa-focus); outline-offset: 0; }
a:focus-visible { background: var(--sa-focus); color: #1b1b1b !important; text-decoration: none; outline: 3px solid var(--sa-focus); }
main:focus, main:focus-visible, [tabindex="-1"]:focus { outline: none; }
.sa-error-summary:focus { outline: 3px solid var(--sa-focus); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* Progressive enhancement helpers */
.sa-visually-hidden {
  position: absolute !important; width: 1px !important; height: 1px !important; margin: 0 !important; padding: 0 !important;
  overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; border: 0 !important;
}
.no-js .sa-js-only { display: none !important; }
.js .sa-nojs-only { display: none !important; }
[hidden] { display: none !important; }

/* Icons */
.sa-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.sa-sprite symbol { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.sa-icon { display: inline-block; flex: none; vertical-align: middle; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.sa-rotate-180 { transform: rotate(180deg); }
.sa-rotate-90 { transform: rotate(90deg); }

/* Utilities --------------------------------------------------------------- */
.sa-container { width: 100%; max-width: 75rem; margin: 0 auto; padding-left: var(--sa-gutter); padding-right: var(--sa-gutter); }
.sa-lead { font-size: 1.125rem; line-height: 1.45; margin-bottom: var(--sa-space-5); max-width: var(--sa-measure); }
@media (min-width: 640px) { .sa-lead { font-size: 1.25rem; } }
.sa-kicker { display: block; font-size: 0.9375rem; font-weight: 700; color: var(--sa-text-muted); margin-bottom: var(--sa-space-2); }
.sa-text-muted { color: var(--sa-text-muted); }
.sa-text-small { font-size: 0.9375rem; line-height: 1.4; }
.sa-mono, .sa-reference { font-family: var(--sa-font); font-variant-numeric: tabular-nums; font-weight: 600; }
.sa-reference { user-select: all; letter-spacing: 0.01em; }
.sa-nowrap { white-space: nowrap; }
.sa-break { word-break: break-all; }
.sa-prose { max-width: var(--sa-measure); }
.sa-stack > * { margin-top: 0; margin-bottom: 0; }
.sa-stack > * + * { margin-top: var(--sa-space-4); }
.sa-stack--lg > * { margin-top: 0; margin-bottom: 0; }
.sa-stack--lg > * + * { margin-top: var(--sa-space-6); }
.sa-cluster { display: flex; flex-wrap: wrap; gap: var(--sa-space-2) var(--sa-space-4); align-items: center; list-style: none; padding: 0; }
.sa-cluster > li { margin: 0; }
.sa-divider { border: 0; border-top: 1px solid var(--sa-border); margin: var(--sa-space-6) 0; }
.sa-mt-0 { margin-top: 0 !important; } .sa-mt-1 { margin-top: var(--sa-space-1) !important; } .sa-mt-2 { margin-top: var(--sa-space-2) !important; }
.sa-mt-3 { margin-top: var(--sa-space-3) !important; } .sa-mt-4 { margin-top: var(--sa-space-4) !important; } .sa-mt-5 { margin-top: var(--sa-space-5) !important; }
.sa-mt-6 { margin-top: var(--sa-space-6) !important; }
.sa-mb-0 { margin-bottom: 0 !important; } .sa-mb-1 { margin-bottom: var(--sa-space-1) !important; } .sa-mb-2 { margin-bottom: var(--sa-space-2) !important; }
.sa-mb-3 { margin-bottom: var(--sa-space-3) !important; } .sa-mb-4 { margin-bottom: var(--sa-space-4) !important; } .sa-mb-5 { margin-bottom: var(--sa-space-5) !important; }
.sa-mb-6 { margin-bottom: var(--sa-space-6) !important; }

/* Skip link, test strip --------------------------------------------------- */
.sa-skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; padding: var(--sa-space-2) var(--sa-space-4); background: var(--sa-focus); color: #1b1b1b; font-weight: 700; }
.sa-skip-link:focus, .sa-skip-link:focus-visible { left: var(--sa-space-2); top: var(--sa-space-2); color: #1b1b1b; }
.sa-test-strip { background: #1b1b1b; color: #fff; text-align: center; font-size: 0.875rem; font-weight: 700; padding: var(--sa-space-1) var(--sa-space-4); }

/* Official banner ----------------------------------------------------------- */
.sa-banner { background: var(--sa-bg-grey); font-size: 0.8125rem; line-height: 1.3; }
.sa-banner__header { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sa-space-1) var(--sa-space-2); min-height: 2rem; padding: var(--sa-space-1) 0; }
.sa-banner__mark { display: inline-flex; flex: none; }
.sa-banner__button { display: inline-flex; align-items: center; gap: 2px; padding: 0; margin: 0; border: 0; background: none; color: var(--sa-link); font: inherit; text-decoration: underline; text-underline-offset: 0.15em; cursor: pointer; }
.sa-banner__button:hover { color: var(--sa-link-hover); text-decoration-thickness: 2px; }
.sa-banner__button[aria-expanded="true"] .sa-icon { transform: rotate(180deg); }
.sa-banner__content { display: grid; gap: var(--sa-space-4); padding: var(--sa-space-4) 0 var(--sa-space-5); font-size: 0.9375rem; line-height: 1.45; }
.sa-banner__content p { margin: 0; max-width: 40rem; }
.sa-banner__guidance { display: flex; gap: var(--sa-space-3); align-items: flex-start; }
.sa-banner__guidance .sa-icon { color: var(--sa-blue); margin-top: 2px; }
.no-js .sa-banner__content { display: grid !important; }
@media (min-width: 640px) { .sa-banner__content { grid-template-columns: 1fr 1fr; gap: var(--sa-space-6); } }

/* Emergency strip ---------------------------------------------------------- */
.sa-emergency { background: var(--sa-emergency); color: #fff; font-size: 0.9375rem; line-height: 1.4; }
.sa-emergency__inner { padding-top: var(--sa-space-2); padding-bottom: var(--sa-space-2); }
.sa-emergency__text { margin: 0; }
.sa-emergency__label { font-weight: 700; }
.sa-emergency a, .sa-emergency a:visited { color: #fff; font-weight: 700; }
.sa-emergency a:hover { color: #fff; }

/* Header -------------------------------------------------------------------- */
.sa-header { background: var(--sa-bg); border-bottom: 1px solid var(--sa-border); }
.sa-header__inner {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "logo menu" "account account" "search search";
  align-items: center; gap: var(--sa-space-3) var(--sa-space-4); padding-top: var(--sa-space-4); padding-bottom: var(--sa-space-4);
}
.no-js .sa-header__inner { grid-template-areas: "logo logo" "account account" "search search"; }
.sa-logo { grid-area: logo; display: inline-flex; align-items: center; gap: var(--sa-space-3); color: var(--sa-text); text-decoration: none; justify-self: start; }
.sa-logo:hover { color: var(--sa-text); }
.sa-logo:hover .sa-logo__name { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.15em; }
.sa-logo__name { font-size: 1.125rem; font-weight: 700; line-height: 1.1; }
.sa-logo .sa-seal { width: 40px; height: 40px; }
.sa-header__tools { display: contents; }
.sa-account { grid-area: account; display: flex; flex-wrap: wrap; align-items: center; gap: var(--sa-space-1) var(--sa-space-4); font-size: 0.9375rem; line-height: 1.4; }
.sa-account form { display: inline; margin: 0; }
.sa-account__who { color: var(--sa-text); }
.sa-header .sa-search { grid-area: search; }
.sa-menu-button {
  grid-area: menu; display: inline-flex; align-items: center; gap: var(--sa-space-2); min-height: 44px; padding: 0 var(--sa-space-3);
  border: 2px solid var(--sa-blue); border-radius: 4px; background: var(--sa-bg); color: var(--sa-blue); font: inherit; font-size: 1rem; font-weight: 700; cursor: pointer;
}
.sa-menu-button:hover { background: var(--sa-bg-grey); }
.sa-menu-button[aria-expanded="true"] { background: var(--sa-blue); color: #fff; }
.sa-menu-button .sa-icon--close { display: none; }
.sa-menu-button[aria-expanded="true"] .sa-icon--close { display: inline-block; }
.sa-menu-button[aria-expanded="true"] .sa-icon--menu { display: none; }
@media (min-width: 640px) {
  .sa-logo__name { font-size: 1.375rem; }
  .sa-logo .sa-seal { width: 48px; height: 48px; }
}
@media (min-width: 900px) {
  .sa-header { border-bottom: 0; }
  .sa-header__inner, .no-js .sa-header__inner { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "logo account" "logo search"; gap: var(--sa-space-2) var(--sa-space-5); }
  .sa-account { justify-content: flex-end; }
  .sa-menu-button { display: none !important; }
  .sa-header .sa-search { width: 20.5rem; justify-self: end; }
}

/* Search form (header, home, search page, 404) */
.sa-search { display: flex; width: 100%; margin: 0; }
.sa-search__input {
  flex: 1 1 auto; min-width: 0; height: 2.5rem; margin: 0; padding: 0 var(--sa-space-2); border: 1px solid var(--sa-input-border); border-right: 0; border-radius: 0;
  background: #fff; color: var(--sa-text); font: inherit; font-size: 1rem; -webkit-appearance: none; appearance: none;
}
.sa-search__input:focus-visible { outline-offset: 0; }
.sa-search__button {
  flex: none; display: inline-flex; align-items: center; justify-content: center; gap: var(--sa-space-2); min-width: 2.5rem; height: 2.5rem; padding: 0 var(--sa-space-2);
  border: 0; border-radius: 0 4px 4px 0; background: var(--sa-blue); color: #fff; font: inherit; font-weight: 600; cursor: pointer;
}
.sa-search__button:hover { background: var(--sa-blue-dark); }
.sa-search--large .sa-search__input { height: 3rem; font-size: 1.0625rem; padding: 0 var(--sa-space-3); }
.sa-search--large .sa-search__button { height: 3rem; padding: 0 var(--sa-space-5); font-size: 1.0625rem; }
.sa-search--page { max-width: 40rem; }
.sa-search--page .sa-search__input { height: 3rem; }
.sa-search--page .sa-search__button { height: 3rem; min-width: 3rem; }

/* Main navigation ------------------------------------------------------------ */
.sa-nav { background: var(--sa-blue); color: #fff; position: relative; z-index: 20; }
.sa-nav__list { list-style: none; margin: 0; padding: 0; }
.sa-nav__list > li { margin: 0; }
.sa-nav__link, .sa-nav__button {
  display: flex; align-items: center; gap: var(--sa-space-1); min-height: 3rem; padding: 0 var(--sa-space-3); margin: 0;
  border: 0; border-bottom: 4px solid transparent; border-top: 4px solid transparent; background: none;
  color: #fff; font: inherit; font-size: 1rem; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer; white-space: nowrap;
}
.sa-nav__link:visited { color: #fff; }
.sa-nav__link:hover, .sa-nav__button:hover { background: var(--sa-blue-dark); color: #fff; text-decoration: none; }
.sa-nav__button[aria-expanded="true"] { background: var(--sa-blue-dark); }
.sa-nav__button[aria-expanded="true"] .sa-icon { transform: rotate(180deg); }
.sa-nav__item--current > .sa-nav__link, .sa-nav__item--current > .sa-nav__button { border-bottom-color: #fff; }
.sa-nav__panel { background: #fff; color: var(--sa-text); border: 1px solid var(--sa-border); border-top: 0; }
.sa-nav__links { list-style: none; margin: 0; padding: 0; }
.sa-nav__links li { margin: 0; }
.sa-nav__links a { color: var(--sa-link); }
.sa-nav__links a:visited { color: var(--sa-link); }

/* No JS, any width: the section links wrap in the blue bar */
.no-js .sa-nav__list { display: flex; flex-wrap: wrap; }
.no-js .sa-nav__panel { display: none !important; }

/* Mobile with JS: the Menu button opens the panel */
@media (max-width: 899.98px) {
  .js .sa-nav { display: none; }
  .js .sa-nav[data-open="true"] { display: block; }
  .js .sa-nav .sa-container { padding: 0; }
  .js .sa-nav__list > li { border-top: 1px solid rgba(255, 255, 255, 0.25); }
  .js .sa-nav__list > li:first-child { border-top: 0; }
  .js .sa-nav__link, .js .sa-nav__button { width: 100%; justify-content: space-between; min-height: 3rem; padding: 0 var(--sa-gutter); font-size: 1.0625rem; border-top: 0; border-bottom: 0; border-left: 4px solid transparent; }
  .js .sa-nav__item--current > .sa-nav__link, .js .sa-nav__item--current > .sa-nav__button { border-left-color: #fff; }
  .js .sa-nav__panel { border: 0; padding: var(--sa-space-2) var(--sa-gutter) var(--sa-space-4); }
  .sa-nav__links li { padding: var(--sa-space-2) 0; border-bottom: 1px solid var(--sa-border); }
  .sa-nav__links li:last-child { border-bottom: 0; }
}
/* Desktop: a single bar with click-to-open dropdowns */
@media (min-width: 900px) {
  .sa-nav__list { display: flex; flex-wrap: wrap; margin-left: calc(var(--sa-space-3) * -1); }
  .sa-nav__item { position: static; }
  .sa-nav__panel { position: absolute; left: 0; right: 0; top: 100%; }
  .sa-nav__panel-inner { padding-top: var(--sa-space-5); padding-bottom: var(--sa-space-5); }
  .sa-nav__links { columns: 3; column-gap: var(--sa-space-6); max-width: 60rem; }
  .sa-nav__links li { break-inside: avoid; padding: var(--sa-space-1) 0 var(--sa-space-2); }
}

/* Breadcrumbs -------------------------------------------------------------- */
.sa-breadcrumbs { font-size: 0.9375rem; line-height: 1.4; padding-top: var(--sa-space-4); padding-bottom: var(--sa-space-2); }
.sa-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; }
.sa-breadcrumbs li { margin: 0; display: inline-flex; align-items: center; }
.sa-breadcrumbs li + li::before { content: ""; display: inline-block; width: 0.4em; height: 0.4em; margin: 0 0.6em 0 0.45em; border-right: 1.5px solid var(--sa-text-muted); border-top: 1.5px solid var(--sa-text-muted); transform: rotate(45deg); }
.sa-breadcrumbs a, .sa-breadcrumbs a:visited { color: var(--sa-link); }
.sa-breadcrumbs__back { display: none; }
@media (max-width: 639.98px) {
  .sa-breadcrumbs--long ol { display: none; }
  .sa-breadcrumbs--long .sa-breadcrumbs__back { display: inline-flex; align-items: center; gap: 2px; }
}

/* Flash messages */
.sa-flashes { padding-top: var(--sa-space-4); }
.sa-flashes > * + * { margin-top: var(--sa-space-2); }

/* Main and layouts ----------------------------------------------------------- */
.sa-main { display: block; }
.sa-main__inner { padding-top: var(--sa-space-4); padding-bottom: var(--sa-space-7); }
.sa-main--home .sa-main__inner { padding-top: 0; }
.sa-main--narrow .sa-main__inner { max-width: calc(35rem + 2 * var(--sa-gutter)); }
.sa-main__inner > h1:first-child, .sa-grid__main > h1:first-child { margin-top: 0; }

/* Two columns: main first in the DOM, side navigation on the left from 1024px */
.sa-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sa-space-6); }
.sa-grid__main { min-width: 0; }
.sa-grid__side { min-width: 0; }
@media (min-width: 1024px) {
  .sa-grid { grid-template-columns: 16.25rem minmax(0, 1fr); gap: var(--sa-space-7); }
  .sa-grid__main { grid-column: 2; grid-row: 1; }
  .sa-grid__side { grid-column: 1; grid-row: 1; }
  .sa-grid--side-right { grid-template-columns: minmax(0, 1fr) 18rem; }
  .sa-grid--side-right .sa-grid__main { grid-column: 1; }
  .sa-grid--side-right .sa-grid__side { grid-column: 2; }
}
.sa-grid__main > .sa-prose, .sa-grid__main > p { max-width: var(--sa-measure); }
.sa-side-heading { font-size: 1.1875rem; margin: 0 0 var(--sa-space-3); }
@media (min-width: 1024px) { .sa-side-heading--mobile { display: none; } }

/* Section pages (full-width bands used on the home page) */
.sa-section { padding: var(--sa-space-6) 0; }
.sa-section--alt { background: var(--sa-bg-grey); }
.sa-section__header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--sa-space-2) var(--sa-space-4); margin-bottom: var(--sa-space-3); }
.sa-section__header h2 { margin: 0; }

/* Page header */
.sa-page-header { margin-bottom: var(--sa-space-5); }
.sa-page-header h1 { margin-bottom: var(--sa-space-3); max-width: 50rem; }
.sa-page-header .sa-lead:last-child { margin-bottom: 0; }
.sa-page-header__meta { margin: var(--sa-space-3) 0 0; font-size: 0.9375rem; display: flex; flex-wrap: wrap; gap: var(--sa-space-1) var(--sa-space-5); }
.sa-page-header__meta div { display: flex; gap: var(--sa-space-1); }
.sa-page-header__meta dt { font-weight: 700; }
.sa-page-header__meta dd { margin: 0; }

/* Side navigation */
.sa-sidenav { font-size: 1rem; line-height: 1.35; }
.sa-sidenav__title { margin: 0; padding: 0 0 var(--sa-space-2); font-weight: 700; font-size: 1.0625rem; border-bottom: 1px solid var(--sa-border); }
.sa-sidenav .sa-sidenav__title a, .sa-sidenav .sa-sidenav__title a:visited { display: inline; padding: 0; border: 0; color: var(--sa-text); text-decoration: none; }
.sa-sidenav .sa-sidenav__title a:hover { text-decoration: underline; }
.sa-sidenav ul { list-style: none; margin: 0; padding: 0; }
.sa-sidenav li { margin: 0; border-bottom: 1px solid var(--sa-border); }
.sa-sidenav a { display: block; padding: var(--sa-space-2) var(--sa-space-3); color: var(--sa-link); text-decoration: none; border-left: 4px solid transparent; }
.sa-sidenav a:visited { color: var(--sa-link); }
.sa-sidenav a:hover { text-decoration: underline; color: var(--sa-link-hover); }
.sa-sidenav a[aria-current="page"] { border-left-color: var(--sa-blue); color: var(--sa-text); font-weight: 700; }
.sa-sidenav li ul { border-top: 1px solid var(--sa-border); }
.sa-sidenav li ul li:last-child { border-bottom: 0; }
.sa-sidenav li ul a { padding-left: var(--sa-space-6); font-size: 0.9375rem; }
@media (max-width: 1023.98px) {
  .sa-grid__side { border-top: 4px solid var(--sa-blue); padding-top: var(--sa-space-3); }
}

/* On this page */
.sa-on-this-page { border-left: 4px solid var(--sa-blue); padding: var(--sa-space-1) 0 var(--sa-space-1) var(--sa-space-4); margin: 0 0 var(--sa-space-6); max-width: var(--sa-measure); }
.sa-on-this-page__title { margin: 0 0 var(--sa-space-2); font-size: 1.0625rem; font-weight: 700; }
.sa-on-this-page ul { list-style: none; margin: 0; padding: 0; }
.sa-on-this-page li { margin: 0; padding: 2px 0; }

/* Last updated */
.sa-last-updated { margin: var(--sa-space-6) 0 0; padding-top: var(--sa-space-5); border-top: 1px solid var(--sa-border); font-size: 0.9375rem; color: var(--sa-text-muted); }
@media (min-width: 1024px) {
  .sa-main__inner:has(> .sa-grid:not(.sa-grid--side-right)) > .sa-last-updated { margin-left: calc(16.25rem + var(--sa-space-7)); }
}

/* Page feedback bar */
.sa-feedback { margin-bottom: var(--sa-space-6); }
.sa-main:has(+ .sa-feedback) .sa-main__inner { padding-bottom: var(--sa-space-6); }
.sa-main--home:has(+ .sa-feedback) .sa-home { padding-bottom: var(--sa-space-6); }
.sa-feedback__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sa-space-3) var(--sa-space-5); padding: var(--sa-space-4) var(--sa-space-5); background: var(--sa-bg-grey); border-top: 1px solid var(--sa-border); }
.sa-feedback__ask { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sa-space-3) var(--sa-space-4); }
.sa-feedback__question { margin: 0; font-weight: 700; }
.sa-feedback__form { display: flex; gap: var(--sa-space-2); margin: 0; }
.sa-feedback__form .sa-button { min-height: 2.5rem; padding: 0.375rem 1rem; font-size: 1rem; background: #fff; }
.sa-feedback__form .sa-button:hover { background: var(--sa-bg-grey); }
.sa-feedback__thanks { margin: 0; font-weight: 700; }
.sa-feedback__report { font-size: 0.9375rem; }
.sa-feedback a:visited { color: var(--sa-link); }
@media (max-width: 639.98px) { .sa-feedback__inner { padding: var(--sa-space-4); } }

/* Footer ---------------------------------------------------------------- */
.sa-footer { font-size: 0.9375rem; line-height: 1.4; }
.sa-footer a, .sa-footer a:visited { color: var(--sa-link); }
.sa-footer__return { padding-bottom: var(--sa-space-3); text-align: right; }
.sa-footer__return a { display: inline-flex; align-items: center; gap: 2px; }
.sa-footer__nav { background: var(--sa-bg-grey); border-top: 4px solid var(--sa-blue); padding: 2.5rem 0 var(--sa-space-6); }
.sa-footer__cols { display: grid; gap: var(--sa-space-6); grid-template-columns: minmax(0, 1fr); }
.sa-footer__heading { font-size: 1.0625rem; margin: 0 0 var(--sa-space-3); }
.sa-footer__links { list-style: none; margin: 0; padding: 0; }
.sa-footer__links li { margin: 0 0 var(--sa-space-2); }
@media (min-width: 640px) { .sa-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .sa-footer__cols { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sa-space-6); } }
.sa-footer__bottom { border-top: 1px solid var(--sa-border); padding: var(--sa-space-5) 0; }
.sa-footer__bottom-inner { display: grid; gap: var(--sa-space-5); }
.sa-footer__brand { display: flex; gap: var(--sa-space-3); align-items: flex-start; }
.sa-footer__brand .sa-seal { flex: none; width: 48px; height: 48px; }
.sa-footer__state { font-weight: 700; font-size: 1.0625rem; margin: 0 0 var(--sa-space-1); }
.sa-footer__address { margin: 0; color: var(--sa-text); }
.sa-footer__legal { list-style: none; margin: 0 0 var(--sa-space-2); padding: 0; display: flex; flex-wrap: wrap; gap: var(--sa-space-2) var(--sa-space-4); }
.sa-footer__legal li { margin: 0; }
.sa-footer__copyright { margin: 0; color: var(--sa-text-muted); }
@media (min-width: 1024px) {
  .sa-footer__bottom-inner { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
  .sa-footer__meta { text-align: right; }
  .sa-footer__legal { justify-content: flex-end; }
}
.sa-footer__ooc { padding-bottom: var(--sa-space-5); color: var(--sa-text-muted); }
.sa-footer__ooc p { margin: 0; padding-top: var(--sa-space-3); border-top: 1px dashed var(--sa-border-dark); }

/* Buttons --------------------------------------------------------------- */
.sa-button {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--sa-space-2); min-height: 2.75rem; margin: 0; padding: 0.625rem 1.25rem;
  border: 0; border-radius: 4px; background: var(--sa-blue); color: #fff; font: inherit; font-size: 1.0625rem; font-weight: 600; line-height: 1.2;
  text-align: center; text-decoration: none; cursor: pointer; transition: background-color 100ms; -webkit-appearance: none; appearance: none;
}
.sa-button:hover { background: var(--sa-blue-dark); color: #fff; text-decoration: none; }
.sa-button:visited { color: #fff; }
.sa-button:focus-visible { outline: 3px solid var(--sa-focus); outline-offset: 0; background: var(--sa-blue-dark); color: #fff !important; }
.sa-button--secondary, .sa-button--outline { background: #fff; color: var(--sa-blue); border: 2px solid var(--sa-blue); padding: 0.5rem 1.125rem; }
.sa-button--secondary:hover, .sa-button--outline:hover { background: var(--sa-bg-grey); color: var(--sa-blue-dark); border-color: var(--sa-blue-dark); }
.sa-button--secondary:visited, .sa-button--outline:visited { color: var(--sa-blue); }
.sa-button--secondary:focus-visible, .sa-button--outline:focus-visible { background: #fff; color: var(--sa-blue-dark) !important; }
.sa-button--warning { background: var(--sa-emergency); }
.sa-button--warning:hover { background: #8b0a03; }
.sa-button--warning:focus-visible { background: #8b0a03; }
.sa-button--link { background: none; color: var(--sa-link); padding: 0; min-height: 0; font-weight: 400; text-decoration: underline; text-underline-offset: 0.15em; }
.sa-button--link:hover { background: none; color: var(--sa-link-hover); text-decoration: underline; text-decoration-thickness: 2px; }
.sa-button--link:visited { color: var(--sa-link); }
.sa-button--link:focus-visible { background: var(--sa-focus); color: #1b1b1b !important; }
.sa-button--start {
  background: var(--sa-green); color: #fff; font-size: 1.25rem; font-weight: 700; padding: 0.75rem 1.25rem 0.625rem; border-radius: 0;
  border-bottom: 2px solid var(--sa-green-edge); min-height: 3rem;
}
.sa-button--start:hover { background: var(--sa-green-dark); }
.sa-button--start:focus-visible { background: var(--sa-focus); color: #1b1b1b !important; border-bottom-color: #1b1b1b; }
.sa-button--start:visited { color: #fff; }
.sa-button-group { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sa-space-4); margin-top: var(--sa-space-5); }
.sa-button-group > * { margin: 0; }
@media (max-width: 639.98px) {
  .sa-button-group { flex-direction: column; align-items: stretch; }
  .sa-button-group > .sa-button { width: 100%; }
}
.sa-link-button { display: inline; margin: 0; padding: 0; border: 0; background: none; color: var(--sa-link); font: inherit; text-decoration: underline; text-underline-offset: 0.15em; cursor: pointer; }
.sa-link-button:hover { color: var(--sa-link-hover); text-decoration-thickness: 2px; }
.sa-link-button:focus-visible { background: var(--sa-focus); color: #1b1b1b; }

/* Forms ------------------------------------------------------------------ */
.sa-form { max-width: 40rem; }
.sa-form-group { margin: 0 0 var(--sa-space-5); }
.sa-form-group--error { border-left: 4px solid var(--sa-emergency); padding-left: var(--sa-space-4); }
.sa-label { display: block; font-weight: 600; margin-bottom: var(--sa-space-1); }
.sa-hint { display: block; font-size: 0.9375rem; color: var(--sa-text-muted); margin-bottom: var(--sa-space-2); }
.sa-error-message { display: block; font-weight: 700; color: var(--sa-emergency); margin-bottom: var(--sa-space-2); }
.sa-input, .sa-select, .sa-textarea {
  display: block; width: 100%; max-width: 30rem; min-height: 2.75rem; margin: 0; padding: var(--sa-space-2);
  border: 1px solid var(--sa-input-border); border-radius: 0; background: #fff; color: var(--sa-text); font: inherit; font-size: 1.0625rem; line-height: 1.3;
}
.sa-input, .sa-select { height: 2.75rem; }
.sa-textarea { max-width: 40rem; min-height: 8rem; resize: vertical; }
.sa-select { padding-right: 2.25rem; -webkit-appearance: none; appearance: none; }
.sa-select-wrap { position: relative; max-width: 30rem; }
.sa-select-wrap .sa-select { max-width: 100%; }
.sa-select-wrap::after { content: ""; position: absolute; right: 0.9rem; top: 50%; width: 0.5rem; height: 0.5rem; margin-top: -0.4rem; border-right: 2px solid var(--sa-text); border-bottom: 2px solid var(--sa-text); transform: rotate(45deg); pointer-events: none; }
.sa-filter .sa-select-wrap, .sa-law-search__row .sa-select-wrap { max-width: 100%; }
.sa-input--error, .sa-select--error, .sa-textarea--error { border: 2px solid var(--sa-emergency); }
.sa-input[readonly] { background: var(--sa-bg-grey); border-style: dashed; }
.sa-input--full { max-width: 100%; }
.sa-input--two-thirds { max-width: 30rem; }
.sa-input--half { max-width: 20rem; }
.sa-input--quarter { max-width: 10rem; }
.sa-fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.sa-legend { padding: 0; margin-bottom: var(--sa-space-2); font-weight: 600; }
.sa-legend--l, .sa-legend--l h1 { font-size: 1.75rem; font-weight: 700; line-height: 1.2; }
.sa-legend--m { font-size: 1.1875rem; font-weight: 700; }
.sa-legend--s { font-size: 1.0625rem; font-weight: 600; }
@media (min-width: 640px) { .sa-legend--l, .sa-legend--l h1 { font-size: 2rem; } }

.sa-radios, .sa-checkboxes { display: grid; gap: var(--sa-space-2); }
.sa-radio, .sa-checkbox { position: relative; min-height: 1.5rem; padding-left: 2.25rem; }
.sa-radio__input, .sa-checkbox__input { position: absolute; left: 0; top: 0; width: 1.5rem; height: 1.5rem; margin: 0; opacity: 0; cursor: pointer; }
.sa-radio__label, .sa-checkbox__label { display: block; cursor: pointer; padding: 1px 0; }
.sa-radio__label::before, .sa-checkbox__label::before { content: ""; position: absolute; left: 0; top: 0; width: 1.5rem; height: 1.5rem; border: 2px solid var(--sa-text); background: #fff; }
.sa-radio__label::before { border-radius: 1rem; }
.sa-radio__label::after { content: ""; position: absolute; left: 0.375rem; top: 0.375rem; width: 0.75rem; height: 0.75rem; border-radius: 1rem; background: var(--sa-text); opacity: 0; }
.sa-checkbox__label::after { content: ""; position: absolute; left: 0.4375rem; top: 0.1875rem; width: 0.5rem; height: 0.875rem; border: solid var(--sa-text); border-width: 0 3px 3px 0; transform: rotate(45deg); opacity: 0; }
.sa-radio__input:checked + .sa-radio__label::after, .sa-checkbox__input:checked + .sa-checkbox__label::after { opacity: 1; }
.sa-radio__input:focus-visible + .sa-radio__label::before, .sa-checkbox__input:focus-visible + .sa-checkbox__label::before { outline: 3px solid var(--sa-focus); outline-offset: 0; }
.sa-radio__hint, .sa-checkbox__hint { display: block; font-size: 0.9375rem; color: var(--sa-text-muted); margin-top: 2px; }
.sa-radio__tag { display: block; margin-top: var(--sa-space-1); }
.sa-radio--disabled { opacity: 0.6; }
.sa-radio--disabled .sa-radio__label { cursor: not-allowed; }
.sa-radios--cards { gap: 0; }
.sa-radios--cards .sa-radio { border: 1px solid var(--sa-border); padding: var(--sa-space-4) var(--sa-space-4) var(--sa-space-4) 3.25rem; }
.sa-radios--cards .sa-radio + .sa-radio { border-top: 0; }
.sa-radios--cards .sa-radio__input, .sa-radios--cards .sa-radio__label::before { left: var(--sa-space-4); top: var(--sa-space-4); }
.sa-radios--cards .sa-radio__label::after { left: calc(var(--sa-space-4) + 0.375rem); top: calc(var(--sa-space-4) + 0.375rem); }
.sa-radios--cards .sa-radio:has(.sa-radio__input:checked) { background: var(--sa-blue-lightest); }

/* Filter bar and inline forms (admin lists) */
.sa-filter { display: grid; gap: var(--sa-space-3) var(--sa-space-4); align-items: end; margin: 0 0 var(--sa-space-5); padding: var(--sa-space-4); background: var(--sa-bg-grey); border: 1px solid var(--sa-border); }
.sa-filter .sa-form-group { margin: 0; }
.sa-filter .sa-input, .sa-filter .sa-select { max-width: 100%; }
.sa-filter > .sa-button, .sa-filter > .sa-button-group { justify-self: start; margin-top: 0; }
@media (min-width: 900px) { .sa-filter { grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); } }
.sa-inline-form { display: inline-block; margin: 0; }

/* Error summary */
.sa-error-summary { border: 4px solid var(--sa-emergency); padding: var(--sa-space-4) var(--sa-space-5); margin-bottom: var(--sa-space-6); max-width: 45rem; }
.sa-error-summary h2 { margin: 0 0 var(--sa-space-3); font-size: 1.375rem; }
.sa-error-summary ul { list-style: none; padding: 0; margin: 0; }
.sa-error-summary a, .sa-error-summary a:visited { color: var(--sa-emergency); font-weight: 700; }

/* Alerts (USWDS shape) --------------------------------------------------------- */
.sa-alert { display: flex; gap: var(--sa-space-3); padding: var(--sa-space-4); border-left: 8px solid var(--sa-info-border); background: var(--sa-info-bg); margin: 0 0 var(--sa-space-5); max-width: 50rem; }
.sa-alert__icon { flex: none; display: inline-flex; margin-top: 1px; color: var(--sa-text); }
.sa-alert__body { min-width: 0; }
.sa-alert__body > :last-child { margin-bottom: 0; }
.sa-alert__title { margin: 0 0 var(--sa-space-1); font-size: 1.1875rem; font-weight: 700; line-height: 1.3; }
.sa-alert__text { margin: 0 0 var(--sa-space-2); }
.sa-alert__links { list-style: none; padding: 0; margin: var(--sa-space-2) 0 0; }
.sa-alert__links li { margin: 0; }
.sa-alert--success { border-left-color: var(--sa-success-border); background: var(--sa-success-bg); }
.sa-alert--warning { border-left-color: var(--sa-warning-border); background: var(--sa-warning-bg); }
.sa-alert--error, .sa-alert--emergency { border-left-color: var(--sa-emergency); background: var(--sa-error-bg); }
.sa-alert--slim { padding-top: var(--sa-space-2); padding-bottom: var(--sa-space-2); align-items: flex-start; }
.sa-alert--slim .sa-alert__icon { margin-top: 2px; }
.sa-alert--slim .sa-alert__title { font-size: 1.0625rem; margin: 0; }
.sa-alert--slim .sa-alert__text { margin: 0; }
.sa-flashes .sa-alert { margin: 0; }

/* Status tags */
.sa-tag { display: inline-block; padding: 2px 8px; border-radius: 2px; font-size: 0.875rem; font-weight: 700; line-height: 1.2; vertical-align: 0.1em; background: var(--sa-bg-grey); color: #3d4551; white-space: nowrap; }
.sa-tag--paid, .sa-tag--eligible, .sa-tag--active, .sa-tag--open, .sa-tag--published, .sa-tag--on, .sa-tag--running { background: var(--sa-success-bg); color: var(--sa-green-dark); }
.sa-tag--pending, .sa-tag--new, .sa-tag--scheduled { background: var(--sa-blue-lightest); color: var(--sa-blue); }
.sa-tag--held, .sa-tag--suspended, .sa-tag--paused { background: var(--sa-warning-bg); color: #5c4400; }
.sa-tag--failed, .sa-tag--rescinded, .sa-tag--revoked { background: var(--sa-error-bg); color: #8b0a03; }
.sa-tag--test { background: #1b1b1b; color: #fff; }

/* Summary list (GOV.UK) */
.sa-summary { margin: 0 0 var(--sa-space-5); max-width: 50rem; }
.sa-summary__row { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sa-space-1); padding: var(--sa-space-3) 0; border-bottom: 1px solid var(--sa-border); }
.sa-summary__key { font-weight: 700; margin: 0; }
.sa-summary__value, .sa-summary__action { margin: 0; }
.sa-summary__value > :last-child { margin-bottom: 0; }
@media (min-width: 640px) {
  .sa-summary__row { grid-template-columns: 30% minmax(0, 1fr) auto; gap: var(--sa-space-4); }
}
.sa-summary--compact .sa-summary__row { padding: var(--sa-space-2) 0; }
.sa-summary--no-border { margin-bottom: 0; max-width: none; }
.sa-summary--no-border .sa-summary__row:last-child { border-bottom: 0; }

/* Summary card */
.sa-summary-card { border: 1px solid var(--sa-border); margin: 0 0 var(--sa-space-5); max-width: 50rem; }
.sa-summary-card__header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sa-space-2) var(--sa-space-4); padding: var(--sa-space-3) var(--sa-space-4); background: var(--sa-bg-grey); border-bottom: 1px solid var(--sa-border); }
.sa-summary-card__title { margin: 0; font-size: 1.1875rem; font-weight: 700; line-height: 1.3; }
.sa-summary-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sa-space-2) var(--sa-space-4); }
.sa-summary-card__actions { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--sa-space-4); }
.sa-summary-card__actions li { margin: 0; }
.sa-summary-card__body { padding: 0 var(--sa-space-4); }
.sa-summary-card__body .sa-summary { margin: 0; max-width: none; }
.sa-summary-card__body .sa-summary__row:last-child { border-bottom: 0; }
.sa-summary-card__text { padding: var(--sa-space-3) 0; margin: 0; border-bottom: 1px solid var(--sa-border); }
.sa-summary-card__body > :last-child { border-bottom: 0; }

/* Tables ------------------------------------------------------------------- */
.sa-table-wrap { width: 100%; overflow-x: auto; margin: 0 0 var(--sa-space-5); }
.sa-table { width: 100%; border-collapse: collapse; font-size: 1rem; line-height: 1.4; }
.sa-table caption { text-align: left; font-weight: 700; font-size: 1.0625rem; padding: 0 0 var(--sa-space-2); }
.sa-table th, .sa-table td { padding: var(--sa-space-2) var(--sa-space-3); text-align: left; vertical-align: top; border-bottom: 1px solid var(--sa-border); }
.sa-table thead th { background: var(--sa-bg-grey); font-weight: 600; border-bottom: 2px solid var(--sa-border-dark); }
.sa-table tbody th { font-weight: 600; }
.sa-table--compact th, .sa-table--compact td { padding: var(--sa-space-1) var(--sa-space-2); }
.sa-table--striped tbody tr:nth-child(even) { background: #f7f7f7; }
.sa-table__num { text-align: right !important; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sa-table__actions { white-space: nowrap; }
.sa-table__actions > * + * { margin-left: var(--sa-space-3); }
@media (max-width: 639.98px) {
  .sa-table--stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .sa-table--stack, .sa-table--stack tbody, .sa-table--stack tr, .sa-table--stack th, .sa-table--stack td { display: block; width: 100%; }
  .sa-table--stack tr { border-bottom: 2px solid var(--sa-border-dark); padding: var(--sa-space-2) 0; }
  .sa-table--stack tbody tr:nth-child(even) { background: none; }
  .sa-table--stack th, .sa-table--stack td { border: 0; padding: var(--sa-space-1) 0; text-align: left !important; white-space: normal; }
  .sa-table--stack td[data-label]::before, .sa-table--stack th[data-label]::before { content: attr(data-label); display: block; font-size: 0.875rem; font-weight: 700; color: var(--sa-text-muted); }
  .sa-table__actions > * + * { margin-left: 0; }
}

/* Blocks ------------------------------------------------------------------- */
.sa-panel { border: 1px solid var(--sa-border); background: #fff; padding: var(--sa-space-4); margin: 0 0 var(--sa-space-5); }
.sa-panel > :last-child { margin-bottom: 0; }
.sa-panel--alt { background: var(--sa-bg-grey); }
.sa-panel__title { font-size: 1.1875rem; margin: 0 0 var(--sa-space-2); }
.sa-inset { border-left: 4px solid var(--sa-border); padding-left: var(--sa-space-4); margin: 0 0 var(--sa-space-5); max-width: var(--sa-measure); }
.sa-inset > :last-child { margin-bottom: 0; }
.sa-details { border-bottom: 1px solid var(--sa-border); margin: 0; }
.sa-details:first-of-type { border-top: 1px solid var(--sa-border); }
.sa-details > summary { display: flex; align-items: flex-start; gap: var(--sa-space-2); padding: var(--sa-space-3) 0; cursor: pointer; color: var(--sa-link); font-weight: 600; list-style: none; }
.sa-details > summary::-webkit-details-marker { display: none; }
.sa-details > summary::before { content: ""; flex: none; width: 0.5em; height: 0.5em; margin-top: 0.4em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); }
.sa-details[open] > summary::before { transform: rotate(45deg); }
.sa-details > summary:hover { text-decoration: underline; }
.sa-details__body { padding: 0 0 var(--sa-space-4) var(--sa-space-5); max-width: var(--sa-measure); }
.sa-details__body > :last-child { margin-bottom: 0; }
.sa-link-list { list-style: none; margin: 0 0 var(--sa-space-5); padding: 0; }
.sa-link-list > li { margin: 0; }
.sa-link-list > li + li { margin-top: var(--sa-space-2); }
.sa-link-list--arrows > li + li { margin-top: var(--sa-space-2); }
.sa-link-list__text { display: block; }
.sa-link-list__label { display: block; }
.sa-link-list__desc { display: block; font-size: 0.9375rem; color: var(--sa-text-muted); }
.sa-link-list--columns { columns: 1; column-gap: var(--sa-space-6); }
.sa-link-list--columns > li { break-inside: avoid; margin: 0 0 var(--sa-space-3) !important; }
@media (min-width: 640px) { .sa-link-list--columns { columns: 2; } }
@media (min-width: 1024px) { .sa-link-list--columns-3 { columns: 3; } }
.sa-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sa-space-3) var(--sa-space-4); margin-bottom: var(--sa-space-4); }
.sa-toolbar > h1, .sa-toolbar > h2 { margin: 0; }
.sa-toolbar__actions { display: flex; flex-wrap: wrap; gap: var(--sa-space-3); align-items: center; }
.sa-back-link { display: inline-flex; align-items: center; gap: var(--sa-space-1); margin-bottom: var(--sa-space-5); font-size: 0.9375rem; }
.sa-back-link::before { content: ""; width: 0.45em; height: 0.45em; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-right: 2px; }
.sa-empty { border: 1px solid var(--sa-border); padding: var(--sa-space-4); margin: 0 0 var(--sa-space-5); max-width: 50rem; }
.sa-empty__title { font-weight: 700; margin: 0 0 var(--sa-space-1); }
.sa-empty > :last-child { margin-bottom: 0; }

/* Out of character note */
.sa-ooc { border: 1px dashed var(--sa-border-dark); padding: var(--sa-space-3) var(--sa-space-4); margin: 0 0 var(--sa-space-5); max-width: 50rem; font-size: 0.9375rem; line-height: 1.45; color: var(--sa-text); background: #fff; }
.sa-ooc__title { display: flex; align-items: center; gap: var(--sa-space-1); margin: 0 0 var(--sa-space-1); font-weight: 700; color: var(--sa-text-muted); }
.sa-ooc__body > :last-child { margin-bottom: 0; }
.sa-ooc__body p { margin-bottom: var(--sa-space-2); }
.sa-ooc__body ul { margin-bottom: var(--sa-space-2); }
.sa-ooc__body li + li { margin-top: 2px; }

/* Stats (admin) */
.sa-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sa-space-3); margin: 0 0 var(--sa-space-5); }
@media (min-width: 1024px) { .sa-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.sa-stat { border: 1px solid var(--sa-border); border-top: 4px solid var(--sa-border); padding: var(--sa-space-3); background: #fff; }
.sa-stat--success { border-top-color: var(--sa-green); }
.sa-stat--warning { border-top-color: var(--sa-warning-border); }
.sa-stat--error { border-top-color: var(--sa-emergency); }
.sa-stat__label { margin: 0; font-size: 0.9375rem; color: var(--sa-text-muted); }
.sa-stat__value { margin: var(--sa-space-1) 0 0; font-size: 1.5rem; font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; }
.sa-stat__hint { margin: var(--sa-space-1) 0 0; font-size: 0.875rem; color: var(--sa-text-muted); }
@media (min-width: 640px) { .sa-stat__value { font-size: 1.75rem; } }

/* Admin -------------------------------------------------------------------- */
.sa-admin { font-size: 1rem; }
.sa-admin h1 { font-size: 1.75rem; }
.sa-admin h2 { font-size: 1.3125rem; margin-top: var(--sa-space-6); }
.sa-admin .sa-table th, .sa-admin .sa-table td { padding: var(--sa-space-1) var(--sa-space-2); }
.sa-admin .sa-summary, .sa-admin .sa-summary-card, .sa-admin .sa-alert, .sa-admin .sa-empty { max-width: none; }
.sa-admin__header { margin-bottom: var(--sa-space-3); }
.sa-admin__header p { margin: 0; }
.sa-admin-nav { border-bottom: 1px solid var(--sa-border); margin: 0 0 var(--sa-space-5); }
.sa-admin-nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: 0 var(--sa-space-1); margin: 0; padding: 0; }
.sa-admin-nav li { margin: 0; }
.sa-admin-nav a { display: block; padding: var(--sa-space-2) var(--sa-space-3); border-bottom: 4px solid transparent; font-weight: 600; text-decoration: none; }
.sa-admin-nav a:visited { color: var(--sa-link); }
.sa-admin-nav a:hover { text-decoration: underline; }
.sa-admin-nav a[aria-current="page"] { border-bottom-color: var(--sa-blue); color: var(--sa-text); }
.sa-switch-panel { display: grid; gap: var(--sa-space-3); align-items: center; border: 1px solid var(--sa-border); border-left: 4px solid var(--sa-border-dark); padding: var(--sa-space-4); margin: 0 0 var(--sa-space-4); background: #fff; }
.sa-switch-panel--on, .sa-switch-panel--open { border-left-color: var(--sa-green); }
.sa-switch-panel--off { border-left-color: var(--sa-border-dark); }
.sa-switch-panel__status > * { margin: 0; }
.sa-switch-panel__status > * + * { margin-top: var(--sa-space-1); }
.sa-switch-panel__title, .sa-switch-panel__status h2, .sa-switch-panel__status h3 { font-size: 1.1875rem; font-weight: 700; margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--sa-space-2); }
.sa-switch-panel__state { font-weight: 700; }
.sa-switch-panel__action { justify-self: start; }
@media (min-width: 640px) {
  .sa-switch-panel { grid-template-columns: minmax(0, 1fr) auto; }
  .sa-switch-panel__action { justify-self: end; }
}
.sa-danger-zone { border: 1px solid var(--sa-emergency); padding: var(--sa-space-4); margin: 0 0 var(--sa-space-5); }
.sa-danger-zone > :last-child { margin-bottom: 0; }

/* Pagination */
.sa-pagination { margin: var(--sa-space-5) 0; }
.sa-pagination ul { list-style: none; display: flex; flex-wrap: wrap; gap: var(--sa-space-1); margin: 0; padding: 0; }
.sa-pagination li { margin: 0; }
.sa-pagination a, .sa-pagination span[aria-current], .sa-pagination__gap { display: inline-flex; align-items: center; gap: 2px; min-width: 2.75rem; min-height: 2.75rem; justify-content: center; padding: 0 var(--sa-space-2); }
.sa-pagination a:visited { color: var(--sa-link); }
.sa-pagination span[aria-current] { background: var(--sa-blue); color: #fff; font-weight: 700; }

/* News lists (press releases, home, related) ---------------------------------- */
.sa-news-list { list-style: none; margin: 0 0 var(--sa-space-4); padding: 0; border-top: 1px solid var(--sa-border); max-width: 50rem; }
.sa-news-list > li { margin: 0; padding: var(--sa-space-4) 0; border-bottom: 1px solid var(--sa-border); }
.sa-news-list__meta { margin: 0 0 var(--sa-space-1); font-size: 0.9375rem; color: var(--sa-text-muted); }
.sa-news-list__meta .sa-tag { margin-left: var(--sa-space-2); }
.sa-news-list__title { margin: 0 0 var(--sa-space-1); font-size: 1.0625rem; font-weight: 600; line-height: 1.35; }
.sa-news-list--large .sa-news-list__title { font-size: 1.1875rem; font-weight: 700; }
.sa-news-list__standfirst { margin: 0; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.sa-news-list__standfirst--one { font-size: 0.9375rem; }
@media (min-width: 1024px) { .sa-news-list__standfirst--one { -webkit-line-clamp: 1; line-clamp: 1; } }
.sa-news-list__ref { margin: var(--sa-space-1) 0 0; font-size: 0.9375rem; color: var(--sa-text-muted); font-variant-numeric: tabular-nums; }
.sa-news-list--compact > li { padding: var(--sa-space-3) 0; }

/* Press release detail */
.sa-release-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sa-space-6); }
@media (min-width: 1024px) { .sa-release-layout { grid-template-columns: minmax(0, 1fr) 18rem; gap: var(--sa-space-7); } }
.sa-release { max-width: var(--sa-measure); }
.sa-release__label { margin: 0 0 var(--sa-space-2); font-size: 0.9375rem; font-weight: 700; color: var(--sa-text-muted); }
.sa-release__title { margin-bottom: var(--sa-space-3); }
.sa-release__meta { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: var(--sa-space-1) var(--sa-space-4); margin: 0 0 var(--sa-space-5); padding: var(--sa-space-3) 0; border-top: 1px solid var(--sa-border); border-bottom: 1px solid var(--sa-border); font-size: 0.9375rem; }
.sa-release__meta dt { font-weight: 700; }
.sa-release__meta dd { margin: 0; }
.sa-release__actions { display: flex; flex-wrap: wrap; gap: var(--sa-space-2) var(--sa-space-5); margin: 0 0 var(--sa-space-5); font-size: 0.9375rem; }
.sa-release__body h2 { font-size: 1.1875rem; margin-top: var(--sa-space-5); }
.sa-release__body ol li, .sa-release__body ul li { margin-top: var(--sa-space-3); }
.sa-release__body ol li strong { margin-right: 0.25em; }
.sa-release__dateline { font-weight: 400; }
.sa-release__dateline strong { font-weight: 700; }
.sa-release__signature { margin: var(--sa-space-5) 0; }
.sa-release__signature p { margin: 0; }
.sa-release__signed-name { font-weight: 700; }
.sa-release__signoff { font-weight: 700; }
.sa-release__footer { font-size: 0.9375rem; color: var(--sa-text-muted); }
.sa-release__footer p { margin-bottom: var(--sa-space-2); }
.sa-release__end { text-align: center; font-weight: 700; margin: var(--sa-space-5) 0; letter-spacing: 0.1em; }
.sa-release__print-head { display: none; }
.sa-media-box { border: 1px solid var(--sa-border); padding: var(--sa-space-4); margin: var(--sa-space-6) 0 0; max-width: var(--sa-measure); }
.sa-media-box h2 { font-size: 1.1875rem; margin: 0 0 var(--sa-space-2); }
.sa-media-box p:last-child { margin: 0; }
.sa-related { border-top: 4px solid var(--sa-blue); padding-top: var(--sa-space-3); }
.sa-related h2 { font-size: 1.1875rem; margin: 0 0 var(--sa-space-2); }
.sa-related .sa-news-list { border-top: 0; }
.sa-related .sa-news-list > li { padding: var(--sa-space-3) 0; }
.sa-related .sa-news-list__title { font-size: 1rem; }

/* Agencies A to Z */
.sa-az { list-style: none; display: flex; flex-wrap: wrap; gap: var(--sa-space-1); margin: 0 0 var(--sa-space-4); padding: 0; }
.sa-az li { margin: 0; }
.sa-az a, .sa-az span { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border: 1px solid var(--sa-border-dark); font-weight: 700; font-size: 1rem; text-decoration: none; }
.sa-az a { color: var(--sa-link); border-color: var(--sa-link); }
.sa-az a:visited { color: var(--sa-link); }
.sa-az a:hover { background: var(--sa-blue); color: #fff; }
.sa-az span { color: #565c65; border-color: var(--sa-border); background: #fff; }
.sa-az-letter { font-size: 1.5rem; margin: var(--sa-space-6) 0 var(--sa-space-2); padding-bottom: var(--sa-space-2); border-bottom: 1px solid var(--sa-border); }
.sa-directory { list-style: none; margin: 0 0 var(--sa-space-4); padding: 0; max-width: 50rem; }
.sa-directory > li { margin: 0; padding: var(--sa-space-3) 0; border-bottom: 1px solid var(--sa-border); }
.sa-directory > li:last-child { border-bottom: 0; }
.sa-directory__name { margin: 0; font-size: 1.0625rem; font-weight: 600; }
.sa-directory__abbr { font-weight: 400; color: var(--sa-text-muted); }
.sa-directory__summary { margin: 2px 0 0; font-size: 0.9375rem; color: var(--sa-text-muted); }
.sa-directory__summary .sa-tag { margin-left: var(--sa-space-1); }

/* Services list (GOV.UK services and information) */
.sa-service-list { list-style: none; margin: 0 0 var(--sa-space-5); padding: 0; border-top: 1px solid var(--sa-border); max-width: 50rem; }
.sa-service-list > li { margin: 0; border-bottom: 1px solid var(--sa-border); }
.sa-service-list a { display: flex; align-items: center; gap: var(--sa-space-4); padding: var(--sa-space-3) 0; text-decoration: none; }
.sa-service-list a:hover .sa-service-list__title { text-decoration: underline; text-decoration-thickness: 2px; }
.sa-service-list__text { flex: 1 1 auto; min-width: 0; }
.sa-service-list__title { display: block; font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
.sa-service-list__desc { display: block; margin-top: 2px; font-size: 0.9375rem; color: var(--sa-text); }
.sa-service-list .sa-icon { flex: none; color: var(--sa-text-muted); display: none; }
@media (min-width: 640px) { .sa-service-list .sa-icon { display: inline-block; } }
.sa-service-list a:focus-visible .sa-service-list__desc { color: #1b1b1b; }

/* Home page ----------------------------------------------------------------- */
.sa-home-search { background: var(--sa-bg-grey); padding: var(--sa-space-6) 0; }
.sa-home-search h1 { font-size: 1.5rem; margin: 0 0 var(--sa-space-4); }
.sa-home-search .sa-label { margin-bottom: var(--sa-space-2); }
.sa-home-search .sa-search { max-width: 40rem; }
.sa-home-search__popular { margin: var(--sa-space-3) 0 0; font-size: 0.9375rem; }
.sa-home-search__popular a { margin-right: var(--sa-space-3); white-space: nowrap; }
.sa-home-search__popular span { font-weight: 700; margin-right: var(--sa-space-2); }
@media (min-width: 640px) { .sa-home-search h1 { font-size: 1.75rem; } }
@media (max-width: 639.98px) { .sa-home-search__popular a { white-space: normal; display: inline-block; margin-bottom: var(--sa-space-1); } }
.sa-home { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sa-space-6); padding-top: var(--sa-space-6); padding-bottom: var(--sa-space-7); }
@media (min-width: 1024px) { .sa-home { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--sa-space-7); } }
.sa-home h2 { margin-top: 0; }
.sa-home__main > section + section { margin-top: var(--sa-space-6); }
.sa-home__side > * + * { margin-top: var(--sa-space-6); }
.sa-home__side h2 { font-size: 1.1875rem; margin: 0 0 var(--sa-space-3); padding-top: var(--sa-space-3); border-top: 4px solid var(--sa-blue); }
.sa-popular { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sa-space-3) var(--sa-space-5); }
.sa-popular li { margin: 0; }
@media (min-width: 640px) { .sa-popular { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .sa-popular { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sa-home__main > section > h2 { padding-bottom: var(--sa-space-2); border-bottom: 1px solid var(--sa-border); margin-bottom: var(--sa-space-4); }
.sa-home__main .sa-news-list { border-top: 0; }
.sa-home__main .sa-news-list > li:first-child { padding-top: 0; }
.sa-governor-block { overflow: hidden; }
.sa-governor-block img { float: left; width: 96px; height: 96px; object-fit: cover; margin: 0 var(--sa-space-4) var(--sa-space-2) 0; }
.sa-governor-block__name { margin: 0; font-weight: 700; }
.sa-governor-block__role { margin: 0 0 var(--sa-space-2); font-size: 0.9375rem; color: var(--sa-text-muted); }
.sa-governor-block ul { list-style: none; margin: 0; padding: 0; font-size: 0.9375rem; }
.sa-governor-block li { margin: 0 0 var(--sa-space-1); }
.sa-memoriam-note { border-left: 4px solid #1b1b1b; padding: 0 0 0 var(--sa-space-3); font-size: 0.9375rem; }
.sa-memoriam-note p { margin: 0 0 var(--sa-space-1); }

/* Governor pages */
.sa-portrait { display: flex; flex-wrap: wrap; gap: var(--sa-space-4); align-items: flex-start; margin: 0 0 var(--sa-space-5); }
.sa-portrait img { width: 160px; height: 160px; object-fit: cover; flex: none; border: 1px solid var(--sa-border); }
.sa-portrait__text { flex: 1 1 16rem; min-width: 0; max-width: var(--sa-measure); }
.sa-portrait__text > :last-child { margin-bottom: 0; }
.sa-portrait__name { font-size: 1.1875rem; font-weight: 700; margin: 0 0 var(--sa-space-1); }
.sa-memorial { max-width: var(--sa-measure); }
.sa-memorial h1 { margin-bottom: var(--sa-space-4); }
.sa-memorial blockquote { border-left-color: #1b1b1b; }

/* Status line (a paragraph with a tag) */
.sa-status-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sa-space-1) var(--sa-space-3); margin: 0 0 var(--sa-space-5); max-width: var(--sa-measure); }
.sa-status-line .sa-tag { flex: none; }
.sa-status-line span:last-child { flex: 1 1 18rem; }

/* Timeline (plain dated list) */
.sa-timeline { list-style: none; margin: 0 0 var(--sa-space-5); padding: 0; max-width: var(--sa-measure); border-left: 1px solid var(--sa-border-dark); }
.sa-timeline__item { position: relative; margin: 0; padding: 0 0 var(--sa-space-5) var(--sa-space-5); }
.sa-timeline__item::before { content: ""; position: absolute; left: -5px; top: 0.4em; width: 9px; height: 9px; background: var(--sa-blue); }
.sa-timeline__marker { display: none; }
.sa-timeline__at { display: block; font-size: 0.9375rem; font-weight: 700; color: var(--sa-text-muted); }
.sa-timeline__title { margin: 2px 0 var(--sa-space-1); font-weight: 700; }
.sa-timeline__text { margin: 0; }

/* Legacy card components (kept for any remaining view; plain and square) */
.sa-card-grid { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sa-space-4); margin: 0 0 var(--sa-space-5); padding: 0; }
.sa-card-grid > li { margin: 0; }
@media (min-width: 640px) { .sa-card-grid--2, .sa-card-grid--3, .sa-card-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .sa-card-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .sa-card-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.sa-card { height: 100%; border: 1px solid var(--sa-border); padding: var(--sa-space-4); background: #fff; }
.sa-card__icon { display: none; }
.sa-card__title { font-size: 1.0625rem; margin: 0 0 var(--sa-space-1); }
.sa-card__text { margin: 0 0 var(--sa-space-2); font-size: 0.9375rem; }
.sa-card__meta { margin: 0; font-size: 0.9375rem; color: var(--sa-text-muted); }
.sa-card__cta { display: none; }
.sa-steps { list-style: none; margin: 0 0 var(--sa-space-5); padding: 0; display: flex; flex-wrap: wrap; gap: var(--sa-space-1) var(--sa-space-4); font-size: 0.9375rem; }
.sa-steps li { margin: 0; color: var(--sa-text-muted); }
.sa-steps__current { color: var(--sa-text) !important; font-weight: 700; }

/* Confirmation (contact sent) */
.sa-confirmation { border-left: 8px solid var(--sa-success-border); background: var(--sa-success-bg); padding: var(--sa-space-5); margin: 0 0 var(--sa-space-6); max-width: 45rem; }
.sa-confirmation__title { margin: 0 0 var(--sa-space-3); }
.sa-confirmation__ref-label { margin: 0; }
.sa-confirmation__reference { font-size: 1.5rem; font-weight: 700; font-variant-numeric: tabular-nums; user-select: all; }
.sa-confirmation__text { margin: var(--sa-space-3) 0 0; }

/* Error pages, search, sitemap */
.sa-error-page { max-width: var(--sa-measure); }
.sa-error-page__code { margin: 0 0 var(--sa-space-2); font-size: 0.9375rem; font-weight: 700; color: var(--sa-text-muted); }
.sa-results { list-style: none; margin: 0 0 var(--sa-space-5); padding: 0; max-width: 50rem; }
.sa-results > li { margin: 0; padding: var(--sa-space-3) 0; border-bottom: 1px solid var(--sa-border); }
.sa-results__title { margin: 0; font-weight: 600; font-size: 1.0625rem; }
.sa-results__url { margin: 2px 0 0; font-size: 0.875rem; color: var(--sa-green-dark); word-break: break-all; }
.sa-results__snippet { margin: var(--sa-space-1) 0 0; font-size: 0.9375rem; }
.sa-results-heading { font-size: 1.1875rem; margin: var(--sa-space-6) 0 var(--sa-space-1); }
.sa-sitemap { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sa-space-5) var(--sa-space-6); }
@media (min-width: 900px) { .sa-sitemap { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sa-sitemap h2 { margin-top: 0; font-size: 1.1875rem; padding-bottom: var(--sa-space-2); border-bottom: 1px solid var(--sa-border); }
.sa-sitemap .sa-link-list > li + li { margin-top: var(--sa-space-1); }

/* Laws */
.sa-law-search { border: 1px solid var(--sa-border); background: var(--sa-bg-grey); padding: var(--sa-space-4); margin: 0 0 var(--sa-space-6); max-width: 60rem; }
.sa-law-search h2 { margin: 0 0 var(--sa-space-3); font-size: 1.1875rem; }
.sa-law-search__row { display: grid; gap: var(--sa-space-3) var(--sa-space-4); align-items: end; }
.sa-law-search__row .sa-form-group { margin: 0; }
.sa-law-search__row .sa-input, .sa-law-search__row .sa-select { max-width: 100%; }
.sa-law-search__row .sa-button { justify-self: start; }
@media (min-width: 900px) { .sa-law-search__row { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) auto; } }
.sa-law-code { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sa-code-list { list-style: none; margin: 0 0 var(--sa-space-5); padding: 0; border-top: 1px solid var(--sa-border); max-width: 60rem; }
.sa-code-list > li { margin: 0; padding: var(--sa-space-3) 0; border-bottom: 1px solid var(--sa-border); display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px var(--sa-space-4); }
.sa-code-list__name { font-weight: 600; }
.sa-code-list__meta { font-size: 0.9375rem; color: var(--sa-text-muted); }
@media (min-width: 640px) { .sa-code-list > li { grid-template-columns: 5rem minmax(0, 1fr) auto; align-items: baseline; } }

/* The seal */
.sa-seal { display: block; flex: none; }

/* Print --------------------------------------------------------------------- */
@media print {
  @page { margin: 18mm 16mm; }
  body { font-size: 11pt; color: #000; background: #fff; }
  .sa-banner, .sa-emergency, .sa-header, .sa-nav, .sa-breadcrumbs, .sa-flashes, .sa-feedback, .sa-footer, .sa-skip-link, .sa-test-strip,
  .sa-grid__side, .sa-release__actions, .sa-related, .sa-search, .sa-button, .sa-on-this-page { display: none !important; }
  .sa-grid, .sa-release-layout { display: block; }
  .sa-container { max-width: none; padding: 0; }
  .sa-main__inner { padding: 0; }
  a { color: #000; text-decoration: underline; }
  main a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; word-break: break-all; }
  .sa-release__print-head { display: flex; align-items: center; gap: 12pt; margin-bottom: 12pt; padding-bottom: 8pt; border-bottom: 1pt solid #000; }
  .sa-release__print-head p { margin: 0; font-size: 16pt; font-weight: 700; }
  .sa-alert { border: 1pt solid #000; border-left-width: 6pt; background: none; }
  .sa-tag { border: 1pt solid #000; background: none !important; color: #000 !important; }
  h1, h2, h3 { break-after: avoid; }
  table, blockquote, .sa-release__signature { break-inside: avoid; }
}

/* Home page: the search band replaces the header search */
.sa-page--home .sa-header .sa-search { display: none; }
.sa-signin { max-width: 50rem; margin: 0 0 var(--sa-space-5); }
.sa-signin h2 { margin-top: 0; }

/* Spacing fixes (review 2026-09-28) */
.sa-stack > .sa-ooc + *, .sa-stack > * + .sa-ooc { margin-top: var(--sa-space-4); }
.sa-stack + .sa-stack { margin-top: var(--sa-space-6); }
.sa-admin .sa-section { padding: 0; }
.sa-admin .sa-section > h2:first-child { margin-top: var(--sa-space-6); }
.sa-cluster.sa-link-list > li + li { margin-top: 0; }
.sa-col-10 { width: 10%; }
.sa-col-11 { width: 11%; }
.sa-col-12 { width: 12%; }
.sa-col-45 { width: 45%; }
