/*
 * Government of Coral Island: shared design system (spec section 2).
 * Mobile first. Breakpoints 641px (tablet) and 1024px (desktop).
 * Square corners, one strong colour, no shadows except the focus ring.
 */

/* Fonts: self-hosted, OFL (see /static/fonts/OFL.txt) */
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("/static/fonts/public-sans-400.woff2") format("woff2"); }
@font-face { font-family: "Public Sans"; font-style: italic; font-weight: 400; font-display: swap; src: url("/static/fonts/public-sans-400i.woff2") format("woff2"); }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("/static/fonts/public-sans-600.woff2") format("woff2"); }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("/static/fonts/public-sans-700.woff2") format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-style: normal; font-weight: 400; font-display: swap; src: url("/static/fonts/source-serif-4-400.woff2") format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-style: italic; font-weight: 400; font-display: swap; src: url("/static/fonts/source-serif-4-400i.woff2") format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-style: normal; font-weight: 600; font-display: swap; src: url("/static/fonts/source-serif-4-600.woff2") format("woff2"); }

:root {
  --c-ink: #161B22;
  --c-ink-2: #48525E;
  --c-page: #FFFFFF;
  --c-panel: #F2F5F7;
  --c-tint: #E3F1F2;
  --c-hairline: #C9D1D9;
  --c-input: #5F6B78;
  --c-navy: #0B2A4A;
  --c-navy-strip: #07203A;
  --c-lagoon: #00606B;
  --c-lagoon-dark: #004952;
  --c-link: #0A5AA8;
  --c-link-hover: #083F75;
  --c-visited: #5B3A8C;
  --c-gold: #C8A13A;
  --c-warning: #A4161A;
  --c-watch: #A35200;
  --c-advisory: #FFD84D;
  --c-success: #1E6B3A;
  --c-focus: #FFBF47;
  --c-footer-text: #C9D1D9;
  --c-footer-link: #B8D7F5;
  --f-sans: "Public Sans", "Helvetica Neue", Arial, sans-serif;
  --f-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --f-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px;
  --w-page: 1140px;
  --w-text: 66ch;
  --gutter: 16px;
}
@media (min-width: 641px) { :root { --gutter: 24px; } }
@media (min-width: 1024px) { :root { --gutter: 32px; } }

/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; background: var(--c-navy); }
body {
  margin: 0; background: var(--c-page); color: var(--c-ink);
  font-family: var(--f-sans); font-size: 17px; line-height: 1.5; font-weight: 400;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  display: flex; flex-direction: column; min-height: 100vh;
}
@media (min-width: 641px) { body { font-size: 19px; } }
img, svg { max-width: 100%; }
svg { flex-shrink: 0; }
hr { border: 0; border-top: 1px solid var(--c-hairline); margin: var(--s-6) 0; }
[hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* Typography */
h1, h2, h3, h4, .heading-xl, .heading-l, .heading-m, .heading-s { font-family: var(--f-sans); font-weight: 700; color: var(--c-ink); margin: 0; }
h1, .heading-xl { font-size: 32px; line-height: 1.15; margin-bottom: var(--s-5); }
h2, .heading-l { font-size: 24px; line-height: 1.2; margin-top: var(--s-7); margin-bottom: var(--s-4); }
h3, .heading-m { font-size: 19px; line-height: 1.25; margin-top: var(--s-5); margin-bottom: var(--s-3); }
h4, .heading-s { font-size: 17px; line-height: 1.3; margin-top: var(--s-5); margin-bottom: var(--s-2); }
@media (min-width: 641px) {
  h1, .heading-xl { font-size: 48px; margin-bottom: var(--s-6); }
  h2, .heading-l { font-size: 32px; margin-bottom: var(--s-5); }
  h3, .heading-m { font-size: 24px; margin-bottom: var(--s-4); }
  h4, .heading-s { font-size: 19px; }
}
.main > h2:first-child, .main > :first-child { margin-top: 0; }
p, ul, ol, dl, blockquote, table, pre { margin-top: 0; margin-bottom: var(--s-4); }
p, li, dd { max-width: var(--w-text); }
ul, ol { padding-left: 1.25em; }
li { margin-bottom: var(--s-1); }
li > ul, li > ol { margin-top: var(--s-1); margin-bottom: 0; }
strong, b { font-weight: 700; }
.lede { font-size: 19px; line-height: 1.4; max-width: var(--w-text); margin-bottom: var(--s-6); }
@media (min-width: 641px) { .lede { font-size: 24px; } }
.caption { display: block; font-size: 17px; line-height: 1.3; color: var(--c-ink-2); margin-bottom: var(--s-2); }
@media (min-width: 641px) { .caption { font-size: 19px; } }
.meta, .small { font-size: 15px; line-height: 1.4; color: var(--c-ink-2); }
@media (min-width: 641px) { .meta, .small { font-size: 16px; } }
.small { color: inherit; }
.muted { color: var(--c-ink-2); }
.num, .mono { font-variant-numeric: tabular-nums; }
.mono { font-family: var(--f-sans); letter-spacing: 0.01em; }
code, kbd, samp { font-family: var(--f-mono); font-size: 0.88em; }
kbd { display: inline-block; padding: 0 var(--s-1); border: 1px solid var(--c-input); border-bottom-width: 2px; background: var(--c-page); color: var(--c-ink); line-height: 1.35; white-space: nowrap; }
code { background: var(--c-panel); padding: 0 var(--s-1); }
abbr[title] { text-decoration: underline dotted; }
.visually-hidden, .visually-hidden-focusable:not(:focus):not(:active) {
  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; border: 0 !important; white-space: nowrap !important;
}

/* Links and focus */
a { color: var(--c-link); text-decoration: underline; text-decoration-thickness: max(1px, 0.0625rem); text-underline-offset: 0.15em; }
a:visited { color: var(--c-visited); }
a:hover { color: var(--c-link-hover); text-decoration-thickness: max(3px, 0.1875rem); }
a:active { color: var(--c-ink); }
a:focus-visible {
  outline: 3px solid transparent; color: var(--c-ink); background-color: var(--c-focus);
  box-shadow: 0 -2px var(--c-focus), 0 4px var(--c-ink); text-decoration: none;
}
button:focus-visible, input:focus, select:focus, textarea:focus, summary:focus-visible, [tabindex]:focus-visible:not(main):not(a) {
  outline: 3px solid var(--c-ink); outline-offset: 0; box-shadow: 0 0 0 6px var(--c-focus);
}
main:focus { outline: none; }
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 100; padding: var(--s-3) var(--s-4);
  background: var(--c-focus); color: var(--c-ink); font-weight: 700; text-decoration: underline;
}
.skip-link:focus, .skip-link:focus-visible { left: 0; color: var(--c-ink); box-shadow: none; outline: 3px solid var(--c-ink); }

/* Layout */
.container { width: 100%; max-width: calc(var(--w-page) + var(--gutter) * 2); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.container--wide { max-width: calc(1440px + var(--gutter) * 2); }
.main .container, .page .container { max-width: none; padding-left: 0; padding-right: 0; }
.page { flex: 1 0 auto; padding-bottom: var(--s-7); }
.main { display: block; padding-top: var(--s-6); }
.breadcrumbs + .main, .breadcrumbs ~ .flash + .main { padding-top: var(--s-5); }
.main--narrow { max-width: 760px; }
.grid-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-5); }
.grid-row + .grid-row { margin-top: var(--s-5); }
@media (min-width: 641px) {
  .grid-row { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .col-full { grid-column: span 12; }
  .col-two-thirds { grid-column: span 12; }
  .col-one-third { grid-column: span 12; }
  .col-half { grid-column: span 6; }
  .col-quarter { grid-column: span 6; }
  .col-three-quarters { grid-column: span 12; }
  .grid-row--listing .col-quarter { grid-column: span 12; }
}
@media (min-width: 1024px) {
  .grid-row { gap: var(--s-6); }
  .col-two-thirds { grid-column: span 8; }
  .col-one-third { grid-column: span 4; }
  .col-quarter, .grid-row--listing .col-quarter { grid-column: span 3; }
  .col-three-quarters { grid-column: span 9; }
}
.col-full, .col-two-thirds, .col-one-third, .col-half, .col-quarter, .col-three-quarters { min-width: 0; }
.section { margin-top: var(--s-7); }
.section:first-child { margin-top: 0; }
.section-rule { border-top: 4px solid var(--c-lagoon); padding-top: var(--s-4); }
.section-rule > h2:first-child, .section-rule > .heading-l:first-child { margin-top: 0; }

/* Official strip */
.gov-strip { background: var(--c-navy-strip); color: #FFFFFF; font-size: 15px; line-height: 1.4; }
.gov-strip__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-1) var(--s-4); padding-top: var(--s-2); padding-bottom: var(--s-2); }
.gov-strip__text { margin: 0; }
.gov-strip__links { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-4); list-style: none; margin: 0; padding: 0; }
.gov-strip__links li { margin: 0; }
.gov-strip a, .gov-strip a:visited { color: #FFFFFF; }
.gov-strip__form { display: inline; margin: 0; }
.gov-strip__button {
  font: inherit; color: #FFFFFF; background: none; border: 0; padding: 0; cursor: pointer;
  text-decoration: underline; text-underline-offset: 0.15em; min-height: 24px;
}
.gov-strip__button:hover { text-decoration-thickness: 3px; }
.gov-strip__button:focus-visible { background: var(--c-focus); color: var(--c-ink); outline: 3px solid transparent; box-shadow: 0 -2px var(--c-focus), 0 4px var(--c-ink); text-decoration: none; }
@media (max-width: 640px) { .gov-strip__text { flex-basis: 100%; } }

/* Masthead */
.masthead { background: var(--c-page); border-bottom: 4px solid var(--c-navy); }
.masthead__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-4) var(--s-5); padding-top: var(--s-4); padding-bottom: var(--s-4); }
.masthead__brand { display: inline-flex; align-items: center; gap: var(--s-3); color: var(--c-navy); text-decoration: none; min-height: 48px; }
.masthead__brand:visited, .masthead__brand:hover { color: var(--c-navy); text-decoration: none; }
.masthead__brand:hover .masthead__wordmark { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.2em; }
.masthead__arms { display: inline-flex; }
.masthead__arms svg { height: 48px; width: auto; }
@media (min-width: 641px) { .masthead__arms svg { height: 56px; } }
.masthead__titles { display: flex; flex-direction: column; }
.masthead__wordmark { font-family: var(--f-serif); font-weight: 600; font-size: 17px; line-height: 1.2; letter-spacing: 0.06em; text-transform: uppercase; color: var(--c-navy); }
@media (min-width: 641px) { .masthead__wordmark { font-size: 21px; } }
.masthead__motto { font-size: 15px; line-height: 1.3; color: var(--c-ink-2); margin-top: 2px; }
.masthead__lockup { color: var(--c-ink); font-weight: 600; }
.masthead__search { display: flex; width: 100%; max-width: 100%; }
@media (min-width: 1024px) { .masthead__search { width: 360px; } }
.masthead__search-input, .home-task__search-input {
  flex: 1 1 auto; min-width: 0; height: 44px; margin: 0; padding: 6px 10px; font: inherit; font-size: 17px; color: var(--c-ink);
  background: var(--c-page); border: 2px solid var(--c-input); border-right: 0; border-radius: 0; -webkit-appearance: none; appearance: none;
}
.masthead__search-button, .home-task__search-button {
  height: 44px; margin: 0; padding: 0 var(--s-4); font: inherit; font-size: 17px; font-weight: 700; color: #FFFFFF;
  background: var(--c-lagoon); border: 2px solid var(--c-lagoon); border-radius: 0; cursor: pointer;
}
.masthead__search-button:hover, .home-task__search-button:hover { background: var(--c-lagoon-dark); border-color: var(--c-lagoon-dark); }

/* Navigation */
.nav { background: var(--c-navy); color: #FFFFFF; }
.nav__inner { position: relative; }
.nav__toggle {
  display: none; font: inherit; font-weight: 600; font-size: 17px; color: #FFFFFF; background: none; border: 0;
  padding: var(--s-3) 0; min-height: 44px; cursor: pointer;
}
.nav__toggle::after { content: ""; display: inline-block; width: 0; height: 0; margin-left: var(--s-2); vertical-align: middle; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 8px solid currentColor; }
.nav__toggle[aria-expanded="true"]::after { border-top: 0; border-bottom: 8px solid currentColor; }
.nav__toggle:focus-visible { background: var(--c-focus); color: var(--c-ink); box-shadow: none; outline: 3px solid transparent; }
.nav__list { list-style: none; margin: 0; padding: 0 0 var(--s-2); display: flex; flex-direction: column; }
.nav__item { margin: 0; max-width: none; border-top: 1px solid rgba(255, 255, 255, 0.18); }
.nav__link, .nav__link:visited { display: block; padding: var(--s-3) 0; color: #FFFFFF; font-weight: 600; font-size: 17px; line-height: 1.3; text-decoration: none; border-bottom: 4px solid transparent; }
.nav__link:hover { color: #FFFFFF; text-decoration: underline; text-decoration-thickness: 2px; }
.nav__link[aria-current] { border-bottom-color: var(--c-gold); }
.nav__link:focus-visible { box-shadow: none; border-bottom-color: var(--c-ink); }
@media (max-width: 640px) {
  .nav--collapsible .nav__toggle { display: inline-block; }
  .nav--collapsible:not(.nav--open) .nav__list { display: none; }
}
@media (min-width: 641px) {
  .nav__list { flex-direction: row; flex-wrap: wrap; gap: 0 var(--s-6); padding: 0; }
  .nav__item { border-top: 0; }
  .nav__link { padding: var(--s-3) 0 calc(var(--s-3) - 4px); }
}
.is-staff .masthead__search, .is-staff .nav { display: none; }

/* Alert banner */
.alert-banner { border-bottom: 1px solid rgba(0, 0, 0, 0.2); }
.alert-banner__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-1) var(--s-5); padding-top: var(--s-4); padding-bottom: var(--s-4); align-items: start; }
@media (min-width: 641px) { .alert-banner__inner { grid-template-columns: max-content minmax(0, 1fr) max-content; } }
.alert-banner__label { margin: 0; font-weight: 700; font-size: 17px; text-transform: none; }
.alert-banner__title { font-size: 19px; line-height: 1.3; margin: 0 0 var(--s-1); color: inherit; }
.alert-banner__body { margin: 0; }
.alert-banner a, .alert-banner a:visited, .alert-banner a:hover { color: inherit; }
.alert-banner a:focus-visible { color: var(--c-ink); }
.alert-banner--warning { background: var(--c-warning); color: #FFFFFF; }
.alert-banner--watch { background: var(--c-watch); color: #FFFFFF; }
.alert-banner--advisory { background: var(--c-advisory); color: var(--c-ink); }
.alert-banner__dismiss {
  font: inherit; font-size: 16px; color: inherit; background: none; border: 0; padding: var(--s-1) 0; min-height: 24px;
  text-decoration: underline; cursor: pointer; justify-self: start;
}

/* Breadcrumbs */
.breadcrumbs { padding-top: var(--s-4); font-size: 15px; line-height: 1.4; }
@media (min-width: 641px) { .breadcrumbs { font-size: 16px; } }
.breadcrumbs__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.breadcrumbs__item { margin: 0 var(--s-2) var(--s-1) 0; padding-left: 0; display: inline-flex; align-items: center; max-width: none; }
.breadcrumbs__item + .breadcrumbs__item::before {
  content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 12px; margin-left: 4px;
  border-style: solid; border-color: var(--c-ink-2); border-width: 1px 1px 0 0; transform: rotate(45deg);
}
.breadcrumbs a, .breadcrumbs a:visited { color: var(--c-ink); }

/* Flash messages */
.flash { margin: var(--s-5) 0 0; padding: var(--s-4); border: 0; border-left: 5px solid var(--c-link); background: var(--c-panel); }
.flash p { margin: 0; }
.flash--success { border-left-color: var(--c-success); background: #E8F3EC; }
.flash--info { border-left-color: var(--c-link); }
.flash--warning { border-left-color: var(--c-watch); background: #FFF1C2; }
.flash--error { border-left-color: var(--c-warning); background: #F6D7D7; }

/* Page heading */
.page-heading { margin-bottom: var(--s-6); }
.page-heading h1 { margin-bottom: var(--s-4); }
.page-heading .lede { margin-bottom: 0; }
.page-header { margin-bottom: var(--s-6); }

/* Buttons */
.button, a.button {
  display: inline-block; position: relative; margin: 0 0 var(--s-5); padding: 8px 14px 7px; min-height: 44px;
  font-family: var(--f-sans); font-size: 17px; font-weight: 700; line-height: 1.25; text-align: center; text-decoration: none;
  color: #FFFFFF; background: var(--c-lagoon); border: 2px solid transparent; border-radius: 2px;
  box-shadow: none; border-bottom-color: var(--c-lagoon-dark); cursor: pointer; -webkit-appearance: none; appearance: none; vertical-align: top;
}
@media (min-width: 641px) { .button, a.button { font-size: 19px; } }
.button:visited, a.button:visited { color: #FFFFFF; }
.button:hover, a.button:hover { background: var(--c-lagoon-dark); color: #FFFFFF; text-decoration: none; }
.button:active { top: 2px; }
.button:focus-visible, a.button:focus-visible { outline: 3px solid transparent; background: var(--c-focus); color: var(--c-ink); border-color: var(--c-focus); border-bottom-color: var(--c-ink); box-shadow: 0 2px 0 var(--c-ink); }
.button--secondary, a.button--secondary, .button--secondary:visited, a.button--secondary:visited { background: var(--c-panel); color: var(--c-ink); border-color: var(--c-panel); border-bottom-color: var(--c-input); }
.button--secondary:hover, a.button--secondary:hover { background: #DCE2E7; color: var(--c-ink); }
.button--warning, a.button--warning, a.button--warning:visited, .button--danger { background: var(--c-warning); border-bottom-color: #6F0F12; color: #FFFFFF; }
.button--warning:hover, a.button--warning:hover, .button--danger:hover { background: #7E1114; }
a.button--secondary:focus-visible, a.button--warning:focus-visible, .button--secondary:focus-visible, .button--warning:focus-visible { background: var(--c-focus); color: var(--c-ink); border-color: var(--c-focus); border-bottom-color: var(--c-ink); }
.button--start, a.button--start { font-size: 19px; padding: 10px 18px 9px; display: inline-flex; align-items: center; gap: var(--s-2); }
@media (min-width: 641px) { .button--start, a.button--start { font-size: 24px; } }
.button--start::after { content: ""; display: inline-block; width: 9px; height: 9px; border-style: solid; border-color: currentColor; border-width: 3px 3px 0 0; transform: rotate(45deg); margin-left: 4px; }
.button--small, a.button--small { font-size: 16px; padding: 4px 10px 3px; min-height: 36px; margin-bottom: 0; }
.button-group { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-4) var(--s-5); margin-bottom: var(--s-5); }
.button-group .button, .button-group a { margin-bottom: 0; }
.link-button {
  font: inherit; color: var(--c-link); background: none; border: 0; padding: 0; margin: 0; min-height: 24px;
  text-decoration: underline; text-underline-offset: 0.15em; cursor: pointer; text-align: left;
}
.link-button:hover { color: var(--c-link-hover); text-decoration-thickness: 3px; }
.link-button--warning { color: var(--c-warning); }
.inline-form { display: inline; margin: 0; }
.back-link { display: inline-block; position: relative; margin: 0 0 var(--s-4); padding-left: 14px; font-size: 16px; color: var(--c-ink); }
.back-link::before { content: ""; position: absolute; left: 3px; top: 0.55em; width: 7px; height: 7px; border-style: solid; border-color: currentColor; border-width: 1px 0 0 1px; transform: rotate(-45deg); }
.back-link:visited { color: var(--c-ink); }

/* Forms */
.form-group { margin-bottom: var(--s-6); }
.form-group .form-group:last-child { margin-bottom: 0; }
.form-group--error { padding-left: var(--s-4); border-left: 5px solid var(--c-warning); }
.label, .fieldset__legend { display: block; font-weight: 700; font-size: 17px; line-height: 1.3; margin-bottom: var(--s-2); color: var(--c-ink); max-width: var(--w-text); }
@media (min-width: 641px) { .label, .fieldset__legend { font-size: 19px; } }
.label--bold, .fieldset__legend--l { font-size: 24px; }
.label--regular { font-weight: 400; }
.hint { display: block; color: var(--c-ink-2); margin-bottom: var(--s-3); max-width: var(--w-text); font-size: 16px; }
@media (min-width: 641px) { .hint { font-size: 17px; } }
.error-message { display: block; color: var(--c-warning); font-weight: 700; margin: 0 0 var(--s-3); }
.input, .select, .textarea {
  display: block; width: 100%; max-width: var(--w-text); margin: 0; padding: 6px 8px; min-height: 44px;
  font: inherit; font-size: 17px; line-height: 1.3; color: var(--c-ink); background: var(--c-page);
  border: 2px solid var(--c-input); border-radius: 2px; -webkit-appearance: none; appearance: none;
}
@media (min-width: 641px) { .input, .select, .textarea { font-size: 19px; } }
.textarea { min-height: 120px; resize: vertical; line-height: 1.4; }
.select { background-image: linear-gradient(45deg, transparent 50%, var(--c-ink) 50%), linear-gradient(135deg, var(--c-ink) 50%, transparent 50%); background-position: calc(100% - 18px) 55%, calc(100% - 12px) 55%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 36px; width: auto; min-width: 12em; max-width: 100%; }
.input--w4 { max-width: 7em; }
.input--w10 { max-width: 14em; }
.input--w20 { max-width: 26em; }
.input--error, .select--error, .textarea--error, .form-group--error .input, .form-group--error .select, .form-group--error .textarea { border-color: var(--c-warning); }
.input:disabled, .select:disabled, .textarea:disabled { background: var(--c-panel); color: var(--c-ink-2); }
.fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.fieldset__legend { padding: 0; }
.radios__item, .checkboxes__item { position: relative; display: block; min-height: 40px; margin-bottom: var(--s-3); padding-left: 40px; max-width: var(--w-text); }
.radios--inline { display: flex; flex-wrap: wrap; gap: 0 var(--s-6); }
.radios__input, .checkboxes__input { position: absolute; z-index: 1; left: 0; top: 0; width: 40px; height: 40px; margin: 0; opacity: 0; cursor: pointer; }
.radios__label, .checkboxes__label { display: inline-block; padding: 8px 12px 5px; cursor: pointer; touch-action: manipulation; line-height: 1.3; }
.radios__label::before, .checkboxes__label::before { content: ""; position: absolute; left: 0; top: 0; width: 40px; height: 40px; border: 2px solid var(--c-ink); background: var(--c-page); }
.radios__label::before { border-radius: 50%; }
.radios__label::after { content: ""; position: absolute; top: 10px; left: 10px; width: 0; height: 0; border: 10px solid var(--c-ink); border-radius: 50%; opacity: 0; }
.checkboxes__label::after { content: ""; position: absolute; top: 11px; left: 9px; width: 23px; height: 12px; border: solid var(--c-ink); border-width: 0 0 5px 5px; transform: rotate(-45deg); border-top-color: transparent; opacity: 0; background: transparent; }
.radios__input:checked + .radios__label::after, .checkboxes__input:checked + .checkboxes__label::after { opacity: 1; }
.radios__input:focus + .radios__label::before, .checkboxes__input:focus + .checkboxes__label::before { border-width: 4px; outline: 3px solid transparent; box-shadow: 0 0 0 4px var(--c-focus); }
.radios__input:disabled + .radios__label, .checkboxes__input:disabled + .checkboxes__label { opacity: 0.5; cursor: default; }
.radios__hint { padding-left: 12px; margin-bottom: 0; }
.char-count { margin-top: var(--s-2); margin-bottom: 0; }
.char-count--over { color: var(--c-warning); font-weight: 700; }
.form-actions { display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-5); align-items: center; margin-top: var(--s-6); }
.form-actions .button { margin-bottom: 0; }

/* Error summary */
.error-summary { margin-bottom: var(--s-6); padding: var(--s-4); border: 5px solid var(--c-warning); color: var(--c-ink); }
@media (min-width: 641px) { .error-summary { padding: var(--s-5); } }
.error-summary:focus { outline: 3px solid var(--c-focus); box-shadow: none; }
.error-summary__title { margin: 0 0 var(--s-4); font-size: 19px; }
@media (min-width: 641px) { .error-summary__title { font-size: 24px; } }
.error-summary__list { list-style: none; margin: 0; padding: 0; }
.error-summary__list li:last-child { margin-bottom: 0; }
.error-summary__list a, .error-summary__list a:visited { color: var(--c-warning); font-weight: 700; }
.error-summary__list a:focus-visible { color: var(--c-ink); }

/* Summary list */
.summary-list { margin: 0 0 var(--s-6); max-width: none; }
.summary-list__row { border-bottom: 1px solid var(--c-hairline); padding: var(--s-3) 0; }
.summary-list__key, .summary-list__value, .summary-list__actions { margin: 0; max-width: none; }
.summary-list__key { font-weight: 700; margin-bottom: var(--s-1); }
.summary-list__value { overflow-wrap: anywhere; }
.summary-list__value > :last-child { margin-bottom: 0; }
.summary-list__actions { margin-top: var(--s-2); }
@media (min-width: 641px) {
  .summary-list { display: table; width: 100%; table-layout: fixed; border-collapse: collapse; }
  .summary-list__row { display: table-row; }
  .summary-list__key, .summary-list__value, .summary-list__actions { display: table-cell; padding: var(--s-3) var(--s-5) var(--s-3) 0; vertical-align: top; border-bottom: 1px solid var(--c-hairline); }
  .summary-list__key { width: 32%; margin: 0; }
  .summary-list__actions { width: 16%; text-align: right; padding-right: 0; margin: 0; }
}

/* Key facts */
.key-facts { margin: 0 0 var(--s-6); padding: var(--s-4) var(--s-5); background: var(--c-tint); border-left: 5px solid var(--c-lagoon); max-width: none; }
.key-facts__row { padding: var(--s-2) 0; border-bottom: 1px solid rgba(0, 96, 107, 0.25); }
.key-facts__row:last-child { border-bottom: 0; }
.key-facts dt { font-weight: 700; }
.key-facts dd { margin: 0; }
@media (min-width: 641px) {
  .key-facts__row { display: grid; grid-template-columns: 13em minmax(0, 1fr); gap: var(--s-4); }
}

/* Tables */
.table-scroll { overflow-x: auto; margin-bottom: var(--s-6); max-width: 100%; position: relative; }
.table-scroll > .table { margin-bottom: 0; }
.table-scroll:focus-visible { outline: 3px solid var(--c-focus); box-shadow: none; }
.table, .table-wrap table, .main table:not([class]) { width: 100%; border-collapse: collapse; border-spacing: 0; margin-bottom: var(--s-6); font-size: 16px; line-height: 1.4; }
@media (min-width: 641px) { .table, .table-wrap table, .main table:not([class]) { font-size: 17px; } }
.table caption, .table__caption { text-align: left; font-weight: 700; font-size: 19px; margin-bottom: var(--s-3); caption-side: top; }
.table th, .table td, .table-wrap th, .table-wrap td, .main table:not([class]) th, .main table:not([class]) td { padding: var(--s-2) var(--s-3); border-bottom: 1px solid var(--c-hairline); text-align: left; vertical-align: top; }
.table thead th, .table-wrap thead th, .main table:not([class]) thead th { background: var(--c-panel); font-weight: 700; border-bottom: 2px solid var(--c-input); }
.table tbody th, .table-wrap tbody th { font-weight: 700; }
.table .num, .table td.num, .table th.num { text-align: right; white-space: nowrap; }
.table--compact { font-size: 15px; }
.table--compact th, .table--compact td { padding: var(--s-1) var(--s-2); }
.table th a[aria-sort], .table th[aria-sort] a { color: var(--c-ink); }
.table tr.is-highlight td, .table tr.is-highlight th { background: var(--c-tint); }
.table-wrap { overflow-x: auto; margin-bottom: var(--s-6); position: relative; }
.table-wrap table { margin-bottom: 0; }

/* Status tags */
.tag { display: inline-block; padding: 2px 8px 1px; font-size: 15px; font-weight: 700; line-height: 1.35; letter-spacing: 0.01em; border-radius: 0; white-space: nowrap; vertical-align: baseline; max-width: 100%; }
.tag--grey { background: #E5E8EB; color: #2B323B; }
.tag--blue { background: #D6E6F5; color: #0A3C6E; }
.tag--green { background: #D9EEDF; color: #134E29; }
.tag--amber { background: #FFF1C2; color: #5C3B00; }
.tag--red { background: #F6D7D7; color: #7A1014; }
.tag--navy { background: var(--c-navy); color: #FFFFFF; }

/* Panels and callouts */
.panel { padding: var(--s-5); background: var(--c-panel); margin-bottom: var(--s-6); }
.panel > :last-child { margin-bottom: 0; }
.panel--confirmation { background: var(--c-lagoon); color: #FFFFFF; text-align: left; padding: var(--s-5); }
.panel--confirmation h1, .panel--confirmation h2 { color: #FFFFFF; margin-top: 0; }
.panel--confirmation .panel__body { font-size: 24px; }
.panel--confirmation .panel__reference { display: block; font-size: 32px; font-weight: 700; letter-spacing: 0.02em; }
.panel--confirmation a, .panel--confirmation a:visited { color: #FFFFFF; }
.callout, .inset { padding: var(--s-4); margin: 0 0 var(--s-6); border-left: 5px solid var(--c-hairline); background: none; max-width: var(--w-text); }
.callout { border-left-color: var(--c-lagoon); background: var(--c-tint); }
.callout > :last-child, .inset > :last-child { margin-bottom: 0; }
.callout h2, .callout h3 { margin-top: 0; font-size: 19px; }
.callout--warning { border-left-color: var(--c-warning); background: #FBEAEA; }
.callout--success { border-left-color: var(--c-success); background: #E8F3EC; }
.callout--rule { border-left-color: var(--c-navy); background: var(--c-panel); }
.callout--valid { border-left-color: var(--c-success); background: #E8F3EC; }
.callout--invalid { border-left-color: var(--c-warning); background: #FBEAEA; }
.callout--info { border-left-color: var(--c-link); background: var(--c-panel); }
.warning-text { display: flex; gap: var(--s-3); font-weight: 700; max-width: var(--w-text); margin-bottom: var(--s-5); }
.warning-text__icon { flex: 0 0 32px; height: 32px; border-radius: 50%; background: var(--c-ink); color: #FFFFFF; text-align: center; font-size: 24px; line-height: 32px; }
.declared-interest { padding: var(--s-4); margin: 0 0 var(--s-5); border-left: 5px solid var(--c-watch); background: #FFF1C2; color: #3D2800; max-width: var(--w-text); }
.declared-interest > :last-child { margin-bottom: 0; }
.declared-interest strong:first-child { display: block; margin-bottom: var(--s-1); }

/* Lists */
.list-plain { list-style: none; padding: 0; }
.list-plain li { max-width: none; }
.contents-list { margin: 0 0 var(--s-6); }
.contents-list__title { font-size: 17px; font-weight: 700; margin: 0 0 var(--s-2); color: var(--c-ink-2); }
.contents-list ol { list-style: none; padding: 0; margin: 0; }
.contents-list li { position: relative; padding-left: 24px; margin-bottom: var(--s-1); }
.contents-list li::before { content: ""; position: absolute; left: 0; top: 0.75em; width: 12px; border-top: 1px solid var(--c-ink); }
.steps { counter-reset: step; list-style: none; padding: 0; margin: 0 0 var(--s-6); max-width: var(--w-text); }
.steps > li { counter-increment: step; position: relative; padding: 0 0 var(--s-4) 48px; margin: 0; }
.steps > li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 32px; height: 32px; border: 2px solid var(--c-lagoon); color: var(--c-lagoon); font-weight: 700; text-align: center; line-height: 28px; background: var(--c-page); }
.steps > li:not(:last-child)::after { content: ""; position: absolute; left: 15px; top: 34px; bottom: 2px; border-left: 2px solid var(--c-hairline); }
.steps > li > :last-child { margin-bottom: 0; }
.steps__title { display: block; font-weight: 700; margin-bottom: var(--s-1); }
.doc-list { list-style: none; padding: 0; margin: 0 0 var(--s-6); border-top: 1px solid var(--c-hairline); }
.doc-list__item { padding: var(--s-4) 0; border-bottom: 1px solid var(--c-hairline); margin: 0; max-width: none; }
.doc-list__item > :last-child { margin-bottom: 0; }
.doc-list__title { font-size: 19px; font-weight: 700; margin: 0 0 var(--s-1); line-height: 1.3; }
.doc-list__summary { margin: var(--s-1) 0 var(--s-2); }
.doc-list__meta { font-size: 15px; color: var(--c-ink-2); margin: 0; display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-4); list-style: none; padding: 0; }
.doc-list__meta li { margin: 0; }
@media (min-width: 641px) { .doc-list__meta { font-size: 16px; } }
.task-list { list-style: none; padding: 0; margin: 0 0 var(--s-6); border-top: 1px solid var(--c-hairline); }
.task-list li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-2) var(--s-4); padding: var(--s-3) 0; border-bottom: 1px solid var(--c-hairline); margin: 0; max-width: none; }
.task-columns { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-5); margin: 0 0 var(--s-6); }
@media (min-width: 641px) { .task-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .task-columns { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.task-columns__col { border-top: 4px solid var(--c-lagoon); padding-top: var(--s-3); }
.task-columns__col h3 { margin: 0 0 var(--s-3); font-size: 19px; }
.task-columns__col ul { list-style: none; padding: 0; margin: 0; }
.topic-list { list-style: none; padding: 0; margin: 0 0 var(--s-6); display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 var(--s-6); border-top: 1px solid var(--c-hairline); }
@media (min-width: 641px) { .topic-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .topic-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.topic-list li { padding: var(--s-3) 0; border-bottom: 1px solid var(--c-hairline); margin: 0; }
.topic-list a { font-weight: 700; }
.topic-list p { margin: var(--s-1) 0 0; font-size: 16px; color: var(--c-ink-2); }
.link-columns { columns: 1; column-gap: var(--s-6); list-style: none; padding: 0; margin: 0 0 var(--s-6); }
@media (min-width: 641px) { .link-columns { columns: 2; } }
.link-columns li { break-inside: avoid; }
.related { border-top: 4px solid var(--c-lagoon); padding-top: var(--s-3); margin-bottom: var(--s-6); }
.related h2 { font-size: 19px; margin: 0 0 var(--s-3); }
.related ul { list-style: none; padding: 0; margin: 0; font-size: 16px; }
.related li { margin-bottom: var(--s-2); }
.az-letters { display: flex; flex-wrap: wrap; gap: var(--s-2); list-style: none; padding: 0; margin: 0 0 var(--s-6); }
.az-letters li { margin: 0; }
.az-letters a, .az-letters span { display: inline-block; min-width: 32px; padding: var(--s-1) var(--s-2); text-align: center; font-weight: 700; border: 1px solid var(--c-hairline); }
.az-letters span { color: var(--c-ink-2); }

/* Home */
.home-task { padding: var(--s-6) 0 var(--s-4); }
.home-task h1 { margin-bottom: var(--s-4); }
.home-task__search { display: flex; max-width: 640px; margin-bottom: var(--s-5); }
.home-task__search-input, .home-task__search-button { height: 52px; font-size: 19px; }
.home-task__popular h2 { font-size: 19px; margin: 0 0 var(--s-3); }
.popular-tasks { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 var(--s-6); }
@media (min-width: 641px) { .popular-tasks { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; } }
.popular-tasks li { padding: var(--s-2) 0; border-bottom: 1px solid var(--c-hairline); margin: 0; }
.popular-tasks a { font-weight: 600; }
.split-feed { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-6); }
@media (min-width: 1024px) { .split-feed { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.more-link { font-weight: 600; }

/* Figures */
.figure-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-5); margin: 0 0 var(--s-6); list-style: none; padding: 0; }
@media (min-width: 1024px) { .figure-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.figure-tile { border-top: 4px solid var(--c-lagoon); padding-top: var(--s-3); margin: 0; }
.figure-tile__value { display: block; font-size: 32px; font-weight: 700; line-height: 1.1; color: var(--c-ink); }
@media (min-width: 641px) { .figure-tile__value { font-size: 40px; } }
.figure-tile__value--text { font-size: 24px; }
.figure-tile__label { display: block; font-weight: 600; margin-top: var(--s-1); line-height: 1.3; }
.figure-tile__meta { display: block; font-size: 15px; color: var(--c-ink-2); margin-top: var(--s-1); }

/* Border status */
.border-status { border: 1px solid var(--c-hairline); border-left: 5px solid var(--c-ink-2); padding: var(--s-4) var(--s-5); margin: 0 0 var(--s-6); }
.border-status > :last-child { margin-bottom: 0; }
.border-status h2, .border-status h3 { margin-top: 0; font-size: 19px; }
.border-status__status { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-2) var(--s-3); margin-bottom: var(--s-3); }
.border-status__word { font-size: 24px; font-weight: 700; }
.border-status--open { border-left-color: var(--c-success); }
.border-status--alert { border-left-color: var(--c-watch); }
.border-status--closed { border-left-color: var(--c-warning); }
.border-status--lockdown { border-left-color: var(--c-navy); background: var(--c-panel); }
.border-status--unknown { border-left-color: var(--c-ink-2); }
.border-status__links { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); list-style: none; padding: 0; margin: 0; }
.border-status__links li { margin: 0; }

/* Pagination */
.pagination { margin: var(--s-6) 0; }
.pagination__list { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); list-style: none; padding: 0; margin: 0 0 var(--s-2); }
.pagination__list li { margin: 0; }
.pagination__item a, .pagination__prev a, .pagination__next a { display: inline-block; min-width: 40px; padding: var(--s-2) var(--s-3); text-align: center; font-weight: 600; }
.pagination__item a[aria-current] { background: var(--c-lagoon); color: #FFFFFF; text-decoration: none; }
.pagination__gap { padding: 0 var(--s-2); color: var(--c-ink-2); }

/* Tabs */
.tabs { margin: 0 0 var(--s-6); }
.tabs__list { display: flex; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; border-bottom: 1px solid var(--c-hairline); }
.tabs__item { margin: 0 var(--s-1) -1px 0; }
.tabs__item a { display: block; padding: var(--s-2) var(--s-4); border: 1px solid transparent; border-bottom: 0; font-weight: 600; }
.tabs__item a[aria-current] { border-color: var(--c-hairline); background: var(--c-page); color: var(--c-ink); text-decoration: none; border-top: 4px solid var(--c-lagoon); }

/* Timeline */
.timeline { list-style: none; padding: 0 0 0 var(--s-5); margin: 0 0 var(--s-6); border-left: 3px solid var(--c-lagoon); max-width: var(--w-text); }
.timeline__item { position: relative; margin: 0 0 var(--s-5); padding: 0; }
.timeline__item::before { content: ""; position: absolute; left: calc(-1 * var(--s-5) - 9px); top: 0.45em; width: 15px; border-top: 3px solid var(--c-lagoon); }
.timeline__title { font-size: 17px; margin: 0 0 var(--s-1); line-height: 1.3; }
@media (min-width: 641px) { .timeline__title { font-size: 19px; } }
.timeline__text > :last-child { margin-bottom: var(--s-1); }
.timeline__meta { font-size: 15px; color: var(--c-ink-2); margin: 0; }
.timeline__item--internal { padding-left: var(--s-3); border-left: 3px dotted var(--c-input); }
.timeline__dot { display: none; }

/* Instruments (gazette notices, laws, speeches) */
.instrument { font-family: var(--f-serif); font-size: 19px; line-height: 1.55; max-width: 70ch; margin: 0 0 var(--s-6); color: var(--c-ink); }
.instrument p, .instrument li, .instrument dd { max-width: none; }
.instrument h2, .instrument h3, .instrument h4 { font-family: var(--f-serif); font-weight: 600; }
.instrument h2 { font-size: 22px; margin-top: var(--s-6); }
.instrument h3 { font-size: 19px; }
.instrument ol { padding-left: 1.6em; }
.instrument ol > li { padding-left: 0.3em; margin-bottom: var(--s-3); }
.instrument .table { font-family: var(--f-sans); font-size: 16px; }
.instrument .callout { font-family: var(--f-sans); }
.instrument__masthead { font-family: var(--f-serif); font-weight: 600; font-size: 15px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-navy); border-top: 3px double var(--c-navy); border-bottom: 1px solid var(--c-navy); padding: var(--s-2) 0; margin-bottom: var(--s-5); display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-2); }
.instrument__masthead span:last-child { letter-spacing: 0.02em; text-transform: none; font-weight: 400; }
.instrument__number { font-family: var(--f-serif); font-size: 17px; font-weight: 600; margin: 0 0 var(--s-1); color: var(--c-ink-2); }
.instrument__title { font-family: var(--f-serif); font-weight: 600; font-size: 26px; line-height: 1.25; margin: 0 0 var(--s-5); }
@media (min-width: 641px) { .instrument__title { font-size: 32px; } }
.instrument__signature { margin-top: var(--s-6); padding-top: var(--s-4); border-top: 1px solid var(--c-hairline); }
.instrument__signature p { margin-bottom: var(--s-1); }
.instrument__signatory { font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; margin-top: var(--s-5) !important; }
.instrument__section { margin-bottom: var(--s-5); scroll-margin-top: var(--s-4); }
.instrument__section h2, .instrument__section h3 { margin-top: var(--s-5); }
.instrument__section-no { display: inline-block; min-width: 2.2em; }
.instrument--withdrawn .instrument__body { color: var(--c-ink-2); }
.citation-box { border: 1px solid var(--c-hairline); border-top: 4px solid var(--c-navy); padding: var(--s-4) var(--s-5); margin: 0 0 var(--s-6); font-size: 16px; }
.citation-box h2 { font-size: 19px; margin: 0 0 var(--s-3); }
.citation-box dl { margin: 0; }
.citation-box__row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 var(--s-4); padding: var(--s-2) 0; border-bottom: 1px solid var(--c-hairline); }
.citation-box__row:last-child { border-bottom: 0; }
.citation-box dt { font-weight: 700; font-size: 15px; color: var(--c-ink-2); }
.citation-box dd { margin: 0; overflow-wrap: anywhere; max-width: none; }
.gazette-masthead { text-align: left; border-top: 4px double var(--c-navy); border-bottom: 1px solid var(--c-navy); padding: var(--s-4) 0; margin-bottom: var(--s-6); display: flex; gap: var(--s-4); align-items: center; }
.gazette-masthead__title { font-family: var(--f-serif); font-weight: 600; font-size: 24px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--c-navy); margin: 0; line-height: 1.2; }
@media (min-width: 641px) { .gazette-masthead__title { font-size: 32px; } }
.gazette-masthead__sub { font-family: var(--f-serif); margin: var(--s-1) 0 0; font-size: 17px; }
.gazette-masthead__issue { font-family: var(--f-serif); font-weight: 600; margin: var(--s-1) 0 0; }
.law-contents { columns: 1; column-gap: var(--s-6); }
@media (min-width: 1024px) { .law-contents--long { columns: 2; } }
.contents-list .law-contents__part { padding-left: 0; font-weight: 700; margin: var(--s-4) 0 var(--s-1); break-after: avoid; break-inside: avoid; }
.contents-list .law-contents__part::before { content: none; }
.contents-list .law-contents__part:first-child { margin-top: 0; }
.instrument__part { font-family: var(--f-serif); font-weight: 600; font-size: 23px; letter-spacing: 0.06em; font-variant-caps: all-small-caps; color: var(--c-navy); border-top: 1px solid var(--c-navy); padding-top: var(--s-3); margin: var(--s-7) 0 0; }
.instrument__masthead + .instrument__part { margin-top: 0; }
.instrument__part + .instrument__section > h2:first-child { margin-top: var(--s-3); }
.instrument__section[id^="sch"] { border-top: 3px double var(--c-navy); margin-top: var(--s-7); }
.instrument__section[id^="sch"] + .instrument__section[id^="sch"] { margin-top: var(--s-6); }
.law-status { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); align-items: baseline; }

/* Page footer meta */
.page-footer-meta { margin-top: var(--s-7); padding-top: var(--s-4); border-top: 1px solid var(--c-hairline); display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-4) var(--s-6); }
.last-updated { margin: 0; }
.page-feedback { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-2) var(--s-4); font-size: 16px; }
.page-feedback p { margin: 0; }
.page-feedback__question { font-weight: 700; }
.page-feedback__links { display: flex; gap: var(--s-4); list-style: none; padding: 0; margin: 0; }
.page-feedback__links li { margin: 0; }
.page-feedback__links a { display: inline-block; min-width: 24px; font-weight: 600; }

/* Contact panel and sidebar */
.contact-panel { border-top: 4px solid var(--c-lagoon); padding-top: var(--s-3); margin-bottom: var(--s-6); font-size: 16px; }
.contact-panel h2 { font-size: 19px; margin: 0 0 var(--s-3); }
.contact-panel dl { margin: 0; }
.contact-panel dt { font-weight: 700; margin-top: var(--s-3); font-size: 15px; color: var(--c-ink-2); }
.contact-panel dt:first-child { margin-top: 0; }
.contact-panel dd { margin: 2px 0 0; }
.sidebar > :first-child { margin-top: 0; }

/* Filters */
.filters { background: var(--c-panel); padding: var(--s-4); margin-bottom: var(--s-6); }
.filters .form-group { margin-bottom: var(--s-4); }
.filters .label, .filters .fieldset__legend { font-size: 17px; }
.filters .input, .filters .select { max-width: 100%; width: 100%; font-size: 17px; }
.filters__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3) var(--s-4); }
.filters__actions .button { margin: 0; }
.filters__title { font-size: 19px; margin: 0 0 var(--s-3); }
.results-count { font-weight: 700; font-size: 19px; margin: 0 0 var(--s-3); }
.search-form { display: flex; max-width: 640px; margin-bottom: var(--s-5); }
.search-form .input { border-right: 0; max-width: none; }
.search-form .button { margin: 0; border-radius: 0; }

/* Directory */
.directory-head { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); align-items: baseline; }
.office-holder { font-size: 19px; }
.office-holder__name { font-weight: 700; }
.minister-card { border-top: 1px solid var(--c-hairline); padding: var(--s-4) 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-1) var(--s-5); }
@media (min-width: 641px) { .minister-card { grid-template-columns: 22em minmax(0, 1fr); } }
.minister-card__office { font-weight: 700; margin: 0; }
.minister-card__holder { margin: 0; }
.people-list { border-bottom: 1px solid var(--c-hairline); margin-bottom: var(--s-6); }
.symbols { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-6); align-items: start; }
@media (min-width: 641px) { .symbols { grid-template-columns: 200px minmax(0, 1fr); } }
.symbols__mark { display: flex; justify-content: flex-start; }
.symbols__flag { max-width: 300px; border: 1px solid var(--c-hairline); }
.president-head { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-5); align-items: start; margin-bottom: var(--s-6); }
@media (min-width: 641px) { .president-head { grid-template-columns: minmax(0, 1fr) 150px; } }
.president-head__arms { display: none; }
@media (min-width: 641px) { .president-head__arms { display: block; } }

/* Verification result */
.verify-result { border: 1px solid var(--c-hairline); border-left: 5px solid var(--c-success); padding: var(--s-5); margin-bottom: var(--s-6); display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-4); }
@media (min-width: 641px) { .verify-result { grid-template-columns: 64px minmax(0, 1fr); } }
.verify-result--bad { border-left-color: var(--c-warning); }
.verify-result--caution { border-left-color: var(--c-watch); }
.verify-result h2 { margin-top: 0; font-size: 24px; }
.verify-result .summary-list { margin-bottom: 0; }

/* Search results */
.search-results { list-style: none; padding: 0; margin: 0 0 var(--s-6); }
.search-results li { padding: var(--s-4) 0; border-bottom: 1px solid var(--c-hairline); margin: 0; max-width: none; }
.search-results__kind { font-size: 15px; color: var(--c-ink-2); margin: 0 0 var(--s-1); }
.search-results__title { font-size: 19px; font-weight: 700; margin: 0 0 var(--s-1); }
.search-results__summary { margin: 0; }

/* Error pages (centring allowed here only) */
.error-page { text-align: center; max-width: 640px; margin: var(--s-7) auto; }
.error-page p { margin-left: auto; margin-right: auto; }
.error-page__links { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s-2) var(--s-5); list-style: none; padding: 0; }

/* Footer */
.footer { flex-shrink: 0; background: var(--c-navy); color: var(--c-footer-text); font-size: 16px; line-height: 1.5; border-top: 4px solid var(--c-lagoon); }
.footer__inner { padding-top: var(--s-6); padding-bottom: var(--s-6); }
.footer a, .footer a:visited { color: var(--c-footer-link); }
.footer a:hover { color: #FFFFFF; }
.footer a:focus-visible { color: var(--c-ink); }
.footer__columns { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-5) var(--s-6); padding-bottom: var(--s-6); }
@media (min-width: 641px) { .footer__columns { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .footer__columns { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.footer__heading { color: #FFFFFF; font-size: 17px; margin: 0 0 var(--s-3); padding-bottom: var(--s-2); border-bottom: 1px solid rgba(255, 255, 255, 0.25); }
.footer__list { list-style: none; padding: 0; margin: 0; }
.footer__list li { margin-bottom: var(--s-2); }
.footer__meta { border-top: 1px solid rgba(255, 255, 255, 0.35); padding-top: var(--s-4); }
.footer__legal { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); list-style: none; padding: 0; margin: 0 0 var(--s-4); }
.footer__legal li { margin: 0; }
.footer__licence { display: flex; gap: var(--s-3); align-items: center; }
.footer__licence p { margin: 0; max-width: 72ch; }
.footer__seal { color: #FFFFFF; display: inline-flex; }
.footer__ooc { margin-top: var(--s-5); padding: var(--s-3) var(--s-4); border: 1px solid rgba(255, 255, 255, 0.35); font-size: 14px; line-height: 1.55; max-width: 92ch; }
.footer__ooc-heading { margin: 0 0 var(--s-2); font-size: 14px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #FFFFFF; }
.footer__ooc p { margin: 0 0 var(--s-2); max-width: none; }
.footer__ooc p:last-child { margin-bottom: 0; }

/* Staff shell (layout also styled here so every page shares one stylesheet) */
.staff-shell { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-5); }
@media (min-width: 1024px) { .staff-shell { grid-template-columns: 250px minmax(0, 1fr); gap: var(--s-6); } }
.staff-main { min-width: 0; }
.hos-console > section, .hos-console__section { border-top: 4px solid var(--c-navy); padding-top: var(--s-3); margin-bottom: var(--s-7); }
.hos-console h2 { margin-top: 0; }

/* Legacy classes kept while older views move to the components above */
.eyebrow { display: block; font-size: 17px; color: var(--c-ink-2); margin: 0 0 var(--s-2); }
.grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-6); }
@media (min-width: 1024px) { .grid--8-4 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } }
.rail h2 { font-size: 19px; margin-top: 0; border-top: 4px solid var(--c-lagoon); padding-top: var(--s-3); }
.rail h2 ~ h2 { margin-top: var(--s-6); }
.toc { list-style: none; padding: 0; font-size: 16px; }
.cards { list-style: none; padding: 0; margin: 0 0 var(--s-6); display: grid; gap: 0; border-top: 1px solid var(--c-hairline); }
.card { border-bottom: 1px solid var(--c-hairline); padding: var(--s-4) 0; margin: 0; background: none; max-width: none; }
.card h2, .card h3 { margin-top: 0; font-size: 19px; }
.card > :last-child { margin-bottom: 0; }
.datalist { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 0 0 var(--s-6); border-top: 1px solid var(--c-hairline); }
.datalist dt { font-weight: 700; padding-top: var(--s-2); }
.datalist dd { margin: 0; padding-bottom: var(--s-2); border-bottom: 1px solid var(--c-hairline); }
@media (min-width: 641px) {
  .datalist { grid-template-columns: minmax(8em, 30%) minmax(0, 1fr); }
  .datalist dt { padding: var(--s-2) var(--s-4) var(--s-2) 0; border-bottom: 1px solid var(--c-hairline); }
  .datalist dd { padding: var(--s-2) 0; }
}
.form .field, .field { margin-bottom: var(--s-5); }
.field label, .field legend { display: block; font-weight: 700; margin-bottom: var(--s-2); }
.field input[type="text"], .field input[type="number"], .field input[type="date"], .field input[type="datetime-local"], .field input[type="search"], .field input:not([type]), .field select, .field textarea, .form input[type="text"], .form select, .form textarea {
  display: block; width: 100%; max-width: var(--w-text); padding: 6px 8px; min-height: 44px; font: inherit; font-size: 17px;
  color: var(--c-ink); background: var(--c-page); border: 2px solid var(--c-input); border-radius: 2px;
}
.field--error { padding-left: var(--s-4); border-left: 5px solid var(--c-warning); }
.field--error input, .field--error select, .field--error textarea { border-color: var(--c-warning); }
.error { color: var(--c-warning); font-weight: 700; margin: var(--s-1) 0; }
.choice-list { list-style: none; padding: 0; }
.choice { display: flex; gap: var(--s-3); align-items: flex-start; padding: var(--s-3); border: 1px solid var(--c-hairline); margin-bottom: var(--s-2); cursor: pointer; }
.choice input { width: 24px; height: 24px; margin: 2px 0 0; flex: 0 0 auto; accent-color: var(--c-lagoon); }
.choice__body { display: flex; flex-direction: column; }
.fee-box { border-left: 5px solid var(--c-lagoon); background: var(--c-tint); padding: var(--s-4); margin-bottom: var(--s-5); }
.fee-box__amount { font-size: 24px; font-weight: 700; margin: 0 0 var(--s-2); }
.pill { display: inline-block; padding: 2px 8px 1px; font-size: 15px; font-weight: 700; background: #E5E8EB; color: #2B323B; }
.step-indicator { color: var(--c-ink-2); margin-bottom: var(--s-2); }
.notice-list { list-style: none; padding: 0; }
.ordinance { margin-bottom: var(--s-5); }
.result { margin-top: var(--s-6); }

/* Print (A4) */
@page { size: A4; margin: 18mm; }
@media print {
  html, body { background: #FFFFFF; color: #000000; font-size: 11pt; }
  .gov-strip, .masthead__search, .nav, .alert-banner, .breadcrumbs, .page-footer-meta, .footer__columns, .footer__legal, .button, button, .filters, .staff-rail, .skip-link, .flash, .pagination, .no-print, .tabs, .action-panel { display: none !important; }
  .masthead { border-bottom: 1px solid #000000; }
  .masthead__inner { padding: 0 0 4mm; }
  .masthead__brand::after { content: "  " attr(data-print-url); }
  .footer { background: #FFFFFF; color: #000000; border-top: 1px solid #000000; }
  .footer__seal { color: #000000; }
  .footer__ooc { border-color: #000000; }
  .footer__ooc-heading { color: #000000; }
  .footer a { color: #000000; }
  .container { max-width: none; padding: 0; }
  a, a:visited { color: #000000; text-decoration: underline; }
  .instrument a[href^="/"]::after, .doc-print a[href^="/"]::after { content: " (" attr(href) ")"; font-size: 0.9em; }
  .tag { background: none !important; color: #000000 !important; border: 1px solid #000000; }
  .key-facts, .callout, .panel, .citation-box, .border-status { background: none !important; border-color: #000000; }
  h1, h2, h3 { page-break-after: avoid; break-after: avoid; }
  table, figure, .instrument__signature { page-break-inside: avoid; break-inside: avoid; }
  .instrument { font-size: 11pt; max-width: none; }
  .instrument__running-footer { display: block !important; position: fixed; bottom: 0; left: 0; right: 0; font-size: 9pt; border-top: 1px solid #000000; padding-top: 2mm; }
  .doc-print { border: 0; padding: 0; }
  .main { padding-top: 0; }
}
.instrument__running-footer { display: none; }
@media print { @page { @bottom-center { content: "Coral Island Gazette, page " counter(page); } } }

/* Document print layout (visas, licences, clearances, decision letters) */
.doc-print { border: 1px solid var(--c-hairline); border-top: 4px solid var(--c-navy); padding: var(--s-5); margin-bottom: var(--s-6); display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-4); max-width: 760px; }
@media (min-width: 641px) { .doc-print { grid-template-columns: 80px minmax(0, 1fr) auto; } }
.doc-print__title { font-family: var(--f-serif); font-weight: 600; font-size: 24px; margin: 0 0 var(--s-1); }
.doc-print__issuer { font-family: var(--f-serif); margin: 0 0 var(--s-3); color: var(--c-ink-2); }
.doc-print__qr img, .doc-print__qr svg { width: 120px; height: 120px; }
.doc-print__verify { font-size: 15px; }

/* Refinements */
.filters .button--secondary { background: var(--c-page); border-color: var(--c-input); border-bottom-color: var(--c-ink); }
.filters .button--secondary:hover { background: var(--c-tint); }
.table th.num-left, .table td.nowrap, .table th.nowrap { white-space: nowrap; }
.prose > :first-child { margin-top: 0; }
.prose h2 { margin-top: var(--s-6); }
.prose--speech { font-family: var(--f-serif); font-size: 19px; line-height: 1.6; }
.prose--speech p { max-width: 64ch; }
.guide-section > h2 { margin-top: var(--s-6); }
.guide-section:first-of-type > h2 { margin-top: 0; }
.contents-list + .guide-section > h2 { margin-top: 0; }
.copy-button { margin-left: var(--s-1); font-size: 15px; }
.verify-result__seal { display: none; }
@media (min-width: 641px) { .verify-result__seal { display: block; } }
.office-holder__name { font-weight: 700; }
.stats-section .table { max-width: 760px; }
.page-heading .lede + .meta { margin-top: var(--s-3); }
.table .meta, .datalist .meta, .summary-list .meta, .metric .meta { display: block; }
.col-two-thirds > h2:first-child, .col-one-third > h2:first-child, .col-full > h2:first-child, .col-three-quarters > h2:first-child { margin-top: 0; }
.table .col-notice { width: 11em; }
.symbols__mark img { width: 100%; height: auto; }
