/* Our own look on top of GOV.UK Frontend's open-source components (vendor/govuk-frontend-6.5.1): their structure and
   tested patterns, never their branding (John, 31 Oct 2026). Neutral for now. Contrast checked (WCAG 2.2 AA):
   text 4.5:1 or more, controls and focus 3:1 or more, in light and dark. */
:root { --sf-ink: #1f2328; --sf-paper: #ffffff; --sf-soft: #f4f2ee; --sf-line: #6f6a63; --sf-accent: #2b4c6f;
        --sf-accent-dark: #1d3550; --sf-muted: #4d4a45; }
/* Poppins, the house font for now (John, 31 Oct 2026): SIL Open Font License 1.1 (vendor/poppins-5.3.0), served from
   our own server, never Google Fonts (no visitor's address goes to Google). */
@font-face { font-family: Poppins; font-style: normal; font-weight: 400; font-display: swap; src: url(/gb/my/assets/poppins-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: Poppins; font-style: italic; font-weight: 400; font-display: swap; src: url(/gb/my/assets/poppins-latin-400-italic.woff2) format("woff2"); }
@font-face { font-family: Poppins; font-style: normal; font-weight: 600; font-display: swap; src: url(/gb/my/assets/poppins-latin-600-normal.woff2) format("woff2"); }
@font-face { font-family: Poppins; font-style: normal; font-weight: 700; font-display: swap; src: url(/gb/my/assets/poppins-latin-700-normal.woff2) format("woff2"); }
body, .govuk-body, .govuk-body-l, .govuk-body-m, .govuk-body-s, .govuk-heading-xl, .govuk-heading-l, .govuk-heading-m, .govuk-heading-s,
.govuk-label, .govuk-hint, .govuk-fieldset__legend, .govuk-input, .govuk-textarea, .govuk-select, .govuk-button, .govuk-list,
.govuk-radios__label, .govuk-checkboxes__label, .govuk-error-summary, .govuk-error-message, .govuk-details, .govuk-inset-text,
.govuk-panel, .govuk-skip-link, .govuk-caption-l, .govuk-caption-m, .govuk-table, .govuk-summary-list, .govuk-tag, .govuk-link, a, button {
  font-family: Poppins, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
.sf-header { background: var(--sf-soft); border-bottom: 1px solid var(--sf-line); }
.sf-header__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 5px 20px; padding: 15px 0; }
.sf-brand { font-size: 1.5rem; font-weight: 700; line-height: 1.2; color: var(--sf-ink); text-decoration: none; }
.sf-brand:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.sf-brand__tag { display: block; font-size: 1rem; font-weight: 400; color: var(--sf-muted); }
.sf-footer { background: var(--sf-soft); border-top: 1px solid var(--sf-line); padding: 25px 0 35px; margin-top: 40px; }
.sf-footer__links { list-style: none; padding: 0; margin: 10px 0; display: flex; flex-wrap: wrap; gap: 5px 25px; }
/* our accent for buttons and links, in place of GOV.UK's green and blue */
.govuk-button { background-color: var(--sf-accent); box-shadow: 0 2px 0 var(--sf-accent-dark); }
.govuk-button:hover { background-color: var(--sf-accent-dark); }
.govuk-button:link, .govuk-button:visited, .govuk-button:active, .govuk-button:hover { color: #ffffff; }
.govuk-button:focus:not(:active):not(:hover) { color: #0b0c0c; }
a.govuk-button:link, a.govuk-button:visited, a.govuk-button:hover, a.govuk-button:active { color: #ffffff; text-decoration: none; }
a.govuk-button--secondary:link, a.govuk-button--secondary:visited, a.govuk-button--secondary:hover { color: var(--sf-ink); }
a.govuk-button:focus:not(:active):not(:hover) { color: #0b0c0c; }
.govuk-button--secondary { background-color: #e7e4de; color: var(--sf-ink); box-shadow: 0 2px 0 #a39e95; }
.govuk-button--secondary:hover { background-color: #d6d2ca; }
.govuk-link:not(.govuk-button):link, .govuk-body a:not(.govuk-button):link, .govuk-list a:not(.govuk-button):link { color: var(--sf-accent); }
.govuk-body a:not(.govuk-button):visited, .govuk-link:not(.govuk-button):visited { color: #5a3d6f; }
@media (prefers-color-scheme: dark) {
  :root { --sf-ink: #f1f1f1; --sf-paper: #161616; --sf-soft: #222222; --sf-line: #9a958e; --sf-accent: #8fbde6; --sf-accent-dark: #6ea4d4; --sf-muted: #cfcac2; }
  body.govuk-template__body, .govuk-template { background: var(--sf-paper); }
  body, .govuk-body, .govuk-body-l, .govuk-body-m, .govuk-body-s, .govuk-heading-xl, .govuk-heading-l, .govuk-heading-m, .govuk-heading-s,
  .govuk-caption-l, .govuk-caption-m, .govuk-label, .govuk-fieldset__legend, .govuk-fieldset__heading, .govuk-list, .govuk-radios__label,
  .govuk-checkboxes__label, .govuk-error-summary__title, .govuk-details__text, .govuk-summary-list__key, .govuk-summary-list__value,
  .govuk-warning-text__text, .govuk-inset-text, .govuk-panel__title, .govuk-panel__body, p, li, dt, dd, strong, legend { color: var(--sf-ink); }
  .govuk-summary-list__row { border-color: #6f6a63; }
  .govuk-warning-text__icon { background: var(--sf-ink); color: var(--sf-paper); border-color: var(--sf-ink); }
  .govuk-error-summary { border-color: #ff8d84; }
  .govuk-error-message, .govuk-error-summary__list a, .govuk-error-message .govuk-visually-hidden { color: #ff8d84; }
  .govuk-form-group--error { border-color: #ff8d84; }
  .govuk-input--error, .govuk-textarea--error { border-color: #ff8d84; }
  .govuk-hint { color: #c4c4c4; }
  .govuk-input, .govuk-textarea, .govuk-select { background: #1e1e1e; color: var(--sf-ink); border-color: #c8c8c8; }
  .govuk-radios__label::before, .govuk-checkboxes__label::before { background: #1e1e1e; border-color: #e0e0e0; }
  .govuk-radios__label::after { border-color: #ffffff; }
  .govuk-checkboxes__label::after { border-color: #ffffff; }
  .govuk-button { color: #0b0c0c; box-shadow: 0 2px 0 #3e6a92; }
  .govuk-button:link, .govuk-button:visited, .govuk-button:active, .govuk-button:hover,
  a.govuk-button:link, a.govuk-button:visited, a.govuk-button:hover, a.govuk-button:active { color: #0b0c0c; }
  .govuk-link:not(.govuk-button):link, .govuk-body a:not(.govuk-button):link, .govuk-list a:not(.govuk-button):link { color: var(--sf-accent); }
  .govuk-body a:not(.govuk-button):visited, .govuk-link:not(.govuk-button):visited { color: #c9a6e4; }
  .govuk-error-summary { background: #1e1e1e; }
  .govuk-error-summary__list a, .govuk-error-message { color: #ff8d84; }
  .govuk-inset-text { border-color: #8a8a8a; }
  .govuk-panel--confirmation { background: #24543e; }
  .govuk-details__summary { color: var(--sf-accent); }
  .govuk-radios__conditional { border-color: #8a8a8a; }
}
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }
/* John's click-list extension adds a status line to every /gb/ page; on the customer pages it means nothing (they carry
   no capture token), so it is hidden here. The extension's next update runs only on John's pages (docs/status.md). */
html:not(:has(meta[name=gb-token])) p.ext { display: none !important; }
.sf-qr { display: inline-block; background: #ffffff; padding: 12px; margin: 0 0 20px; line-height: 0; }
.sf-qr svg { width: 240px; height: 240px; }
