/* The state sites (gov, assembly, law, war): shared furniture for a modern public-sector website.
   Loaded by site/shells/{gov,assembly,law,war}.html after base.css and before the section file.
   body.st carries the chrome; body.st-modern / body.st-gov turn on the modern content rules.
   (gov.html also frames sections that have no shell of their own yet: their body is st-<shell>, so only the
   chrome below applies to them, never the content rules.)
   Historical records are shown as .document panels: paper, a reference strip, and the type of their own decade. */

/* ---------- tokens ---------- */
html { --doc-body: var(--body-font); --doc-head: var(--head-font); }
:is(.st-modern, .st-gov) {
  --ui: var(--st-font);
  --body-font: var(--st-font); --head-font: var(--st-head, var(--st-font));
  --paper: #fff; --ink: #0b0c0c; --muted: #505a5f; --rule: #b1b4b6; --rule-soft: #dfe1e3; --panel: #f3f2f1;
  --accent: var(--st-brand); --h-weight: 700; --rule-w: 1px; --rule-style: solid; --measure: 72ch;
  --link: #1d70b8; --link-hover: #003078; --link-visited: #4c2c92; --focus: #ffdd00;
  --ok: #00703c; --ok-dark: #002d18; --warn: #d4351c; --amber: #f47738;
  font-family: var(--st-font); font-size: 1.06rem; line-height: 1.55; color: var(--ink); background: #fff;
  font-variant-numeric: normal; font-kerning: normal;
}
.st { margin: 0; }
.st-vh { position: absolute !important; width: 1px; height: 1px; margin: 0; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); border: 0; white-space: nowrap; }
.st-w { max-width: 1120px; margin: 0 auto; padding: 0 30px; }
@media (max-width: 640px) { .st-w { padding: 0 16px; } }

/* ---------- focus: one visible, high-contrast state everywhere ---------- */
.st a:focus-visible, .st summary:focus-visible { outline: 3px solid transparent; background: var(--focus, #ffdd00) !important; color: #0b0c0c !important;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c; text-decoration: none; }
.st input:focus-visible, .st select:focus-visible, .st textarea:focus-visible { outline: 3px solid #ffdd00; outline-offset: 0; box-shadow: inset 0 0 0 2px #0b0c0c; }
.st button:focus-visible, .st .btn:focus-visible { outline: 3px solid transparent; background: #ffdd00 !important; color: #0b0c0c !important; box-shadow: 0 2px 0 #0b0c0c !important; }

/* ---------- skip link and the official banner ---------- */
.st-skip { position: absolute; left: -9999px; top: 0; z-index: 10; font: 700 1rem/1.3 var(--st-font, system-ui); padding: .6rem 1rem; background: #ffdd00; color: #0b0c0c; }
.st-skip:focus { left: 0; }
.st-official { font: 13px/1.5 var(--st-font, system-ui); background: #f0f0f0; color: #1b1b1b; border-bottom: 1px solid #e0e0e0; }
.st-official > summary { list-style: none; cursor: pointer; padding: .3rem 0; }
.st-official > summary::-webkit-details-marker { display: none; }
.st-official .st-w { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.st-official svg { width: 16px; height: 16px; flex: none; }
.st-official .st-how { color: #005ea2; text-decoration: underline; text-underline-offset: 2px; }
.st-official .st-how::after { content: " ▾"; font-size: .8em; }
.st-official[open] .st-how::after { content: " ▴"; }
.st-official .st-official-body { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 2.5rem; padding: .8rem 30px 1.1rem; max-width: 1120px; margin: 0 auto; }
.st-official .st-official-body p { margin: 0; max-width: 46ch; }
.st-official .st-official-body b { display: block; }
@media (max-width: 640px) { .st-official .st-official-body { grid-template-columns: 1fr; padding: .6rem 16px .9rem; } }

/* ---------- the "Is this page useful?" prompt ---------- */
.st-feedback { font-family: var(--st-font); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .6rem 1rem;
  background: var(--st-feedback-bg, #1d70b8); color: #fff; padding: .9rem 1.2rem; margin: 2.5rem 0 0; }
.st .st-feedback h2 { font-size: 1.02rem; font-weight: 700; margin: 0; display: inline; font-family: inherit; border: 0; padding: 0; }
.st-feedback .st-fb-q { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.st-feedback button { font: 600 .95rem/1 var(--st-font); background: #fff; color: #0b0c0c; border: 0; padding: .55rem 1.1rem; box-shadow: 0 2px 0 rgba(0,0,0,.4); cursor: pointer; }
.st-feedback button:hover { background: #f3f2f1; }
.st-feedback .st-fb-report { background: transparent; color: #fff; text-decoration: underline; box-shadow: none; padding: .55rem 0; }
.st-feedback .st-fb-report:hover { background: transparent; text-decoration-thickness: 3px; }
.st-feedback .st-fb-thanks { margin: 0; font-weight: 600; }
.st-feedback[data-done] .st-fb-q, .st-feedback[data-done] .st-fb-report { display: none; }

/* ---------- the Vellmar Mean Time line in every footer ---------- */
.st .vmt { font: 13px/1.6 var(--st-font); color: inherit; opacity: .85; margin: .6rem 0 0; }
.st .vmt span { white-space: normal; }

/* ---------- modern page content (st-modern / st-gov bodies only) ---------- */
:is(.st-modern, .st-gov) main { max-width: 1120px; padding: 1.2rem 30px 3rem; }
:is(.st-modern, .st-gov) main p, :is(.st-modern, .st-gov) main li, :is(.st-modern, .st-gov) main dd { max-width: var(--measure); }
:is(.st-modern, .st-gov) h1, :is(.st-modern, .st-gov) h2, :is(.st-modern, .st-gov) h3, :is(.st-modern, .st-gov) h4 { font-family: var(--head-font); font-weight: 700; letter-spacing: -.01em; font-variant: normal; text-transform: none; }
:is(.st-modern, .st-gov) h1 { font-size: 2.35rem; line-height: 1.1; margin: .2rem 0 1rem; }
:is(.st-modern, .st-gov) h2 { font-size: 1.55rem; line-height: 1.2; margin: 2.2rem 0 .8rem; }
:is(.st-modern, .st-gov) h3 { font-size: 1.2rem; line-height: 1.25; margin: 1.5rem 0 .5rem; }
:is(.st-modern, .st-gov) h1 small { display: block; font-family: var(--st-font); font-size: .5em; font-weight: 400; color: var(--muted); letter-spacing: 0; margin-top: .45rem; line-height: 1.35; }
:is(.st-modern, .st-gov) a { color: var(--link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .15em; text-decoration-color: currentColor; }
:is(.st-modern, .st-gov) a:hover { color: var(--link-hover); text-decoration-thickness: 3px; }
:is(.st-modern, .st-gov) h1 a, :is(.st-modern, .st-gov) h2 a, :is(.st-modern, .st-gov) h3 a { color: var(--link); text-decoration: underline; text-decoration-thickness: 1px; }
:is(.st-modern, .st-gov) .kicker { font: 400 1.05rem/1.3 var(--st-font); color: var(--muted); letter-spacing: 0; text-transform: none; font-variant: normal; margin: 0 0 .3rem; }
:is(.st-modern, .st-gov) .kicker a { color: inherit; }
:is(.st-modern, .st-gov) .lede, :is(.st-modern, .st-gov) .standfirst { font-size: 1.3rem; line-height: 1.45; color: var(--ink); margin: 0 0 1.4rem; }
:is(.st-modern, .st-gov) .deck { font-style: normal; color: var(--muted); font-size: 1.05rem; }
:is(.st-modern, .st-gov) .meta, :is(.st-modern, .st-gov) .small, :is(.st-modern, .st-gov) .muted { color: var(--muted); }
:is(.st-modern, .st-gov) .sc { font-variant: normal; letter-spacing: 0; }
:is(.st-modern, .st-gov) hr { border-top: 1px solid var(--rule); }
:is(.st-modern, .st-gov) blockquote { border-left: 5px solid var(--rule); padding: .2rem 0 .2rem 1rem; }

/* tables: plain rules, left aligned, bold headers */
:is(.st-modern, .st-gov) table { font-size: .95rem; border: 0; margin: 0 0 1.6rem; }
:is(.st-modern, .st-gov) th, :is(.st-modern, .st-gov) td { padding: .6rem 1.1rem .6rem 0; border-bottom: 1px solid var(--rule-soft); text-align: left; vertical-align: top; }
:is(.st-modern, .st-gov) th { font: 700 .95rem/1.35 var(--st-font); color: var(--ink); letter-spacing: 0; font-variant: normal; border-bottom: 1px solid var(--rule); }
:is(.st-modern, .st-gov) td.num, :is(.st-modern, .st-gov) th.num { text-align: right; }
:is(.st-modern, .st-gov) caption { font: 700 1.1rem/1.3 var(--st-font); color: var(--ink); padding-bottom: .6rem; }
:is(.st-modern, .st-gov) tr.highlight td, :is(.st-modern, .st-gov) tr.incumbent td, :is(.st-modern, .st-gov) tr.landmark-row td { background: transparent; box-shadow: inset 0 -2px 0 var(--st-brand-light, #cce2d8); }

/* fact lists become summary lists */
:is(.st-modern, .st-gov) dl.facts { display: grid; grid-template-columns: minmax(9rem, 16rem) 1fr; gap: 0; border-top: 0; margin: 0 0 1.6rem; }
:is(.st-modern, .st-gov) dl.facts dt, :is(.st-modern, .st-gov) dl.facts dd { padding: .55rem 1rem .55rem 0; border-bottom: 1px solid var(--rule-soft); margin: 0; }
:is(.st-modern, .st-gov) dl.facts dt { font: 700 1rem/1.4 var(--st-font); color: var(--ink); font-variant: normal; letter-spacing: 0; }
@media (max-width: 640px) {
  :is(.st-modern, .st-gov) dl.facts { grid-template-columns: 1fr; }
  :is(.st-modern, .st-gov) dl.facts dt { border-bottom: 0; padding-bottom: 0; }
}

/* boxes: flat panels with a heavy left rule */
:is(.st-modern, .st-gov) :is(.box, .notice, .current-holder, .vote-record, .first-business, .licence-notice, .medal-box, .appropriation, .bulletin) {
  border: 0; border-left: 5px solid var(--st-brand); background: var(--panel); padding: 1rem 1.25rem; margin: 1.4rem 0; }
:is(.st-modern, .st-gov) .notice.chronology { border-left-color: #d4351c; background: #fdf2f0; max-width: none; }
:is(.st-modern, .st-gov) .notice.chronology :is(h1, h2) { color: #0b0c0c; font-variant: normal; letter-spacing: 0; font-weight: 700; }
:is(.st-modern, .st-gov) pre.verbatim, :is(.st-modern, .st-gov) .verbatim { font-family: var(--st-font); font-style: normal; border-left: 5px solid var(--rule); padding: .3rem 0 .3rem 1rem; font-size: 1.05rem; }
:is(.st-modern, .st-gov) .status { font: 700 .78rem/1.2 var(--st-font); letter-spacing: .02em; text-transform: none; padding: .3rem .5rem .25rem; border: 0; border-radius: 0; color: #005a30; background: #cce2d8; }
:is(.st-modern, .st-gov) .status.repealed { color: #942514; background: #f6d7d2; }
:is(.st-modern, .st-gov) .status.in-force { color: #005a30; background: #cce2d8; }
:is(.st-modern, .st-gov) .stamp { font: 700 .78rem/1.2 var(--st-font); letter-spacing: .03em; transform: none; border: 2px solid currentColor; }
:is(.st-modern, .st-gov) .links { gap: .5rem; }
:is(.st-modern, .st-gov) .links a { background: #fff; border: 1px solid var(--rule); padding: .45rem .8rem; font-size: .95rem; color: var(--link); }
:is(.st-modern, .st-gov) .links a:hover { border-color: var(--link-hover); }
:is(.st-modern, .st-gov) .prevnext, :is(.st-modern, .st-gov) .yearnav { font-size: 1rem; border-top: 1px solid var(--rule); padding-top: 1rem; gap: 1rem; flex-wrap: wrap; }
:is(.st-modern, .st-gov) .prevnext a, :is(.st-modern, .st-gov) .yearnav a { font-weight: 600; text-decoration: underline; }
:is(.st-modern, .st-gov) .stats b, :is(.st-modern, .st-gov) .war-stats b, :is(.st-modern, .st-gov) .code-stats b { font-family: var(--head-font); font-weight: 700; }
:is(.st-modern, .st-gov) .stats div, :is(.st-modern, .st-gov) .war-stats div, :is(.st-modern, .st-gov) .code-stats div { border-top: 4px solid var(--st-brand); border-bottom: 0; background: var(--panel); padding: .7rem .85rem; }
:is(.st-modern, .st-gov) .stats span, :is(.st-modern, .st-gov) .war-stats span, :is(.st-modern, .st-gov) .code-stats span { font-size: .88rem; color: var(--muted); }
:is(.st-modern, .st-gov) figure.chart img, :is(.st-modern, .st-gov) .chart img { border: 1px solid var(--rule-soft); }
:is(.st-modern, .st-gov) aside.poster { border: 0; padding: 0; background: transparent; box-shadow: 0 10px 30px -14px rgba(0,0,0,.45); }
:is(.st-modern, .st-gov) aside.infobox, :is(.st-modern, .st-gov) div.record > aside, :is(.st-modern, .st-gov) div.ministry-head > aside { border: 0; border-top: 4px solid var(--st-brand); background: var(--panel); font-size: .95rem; padding: 1rem 1.1rem; }
@media (max-width: 640px) {
  :is(.st-modern, .st-gov) main { padding: .8rem 16px 2.5rem; }
  :is(.st-modern, .st-gov) h1 { font-size: 1.8rem; }
  :is(.st-modern, .st-gov) h2 { font-size: 1.3rem; }
  :is(.st-modern, .st-gov) .lede { font-size: 1.12rem; }
}

/* ---------- components ---------- */
nav.breadcrumbs { font: .92rem/1.4 var(--st-font); margin: .2rem 0 1.4rem; }
nav.breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .2rem 0; }
nav.breadcrumbs li { margin: 0; max-width: none; display: inline-flex; align-items: center; }
nav.breadcrumbs li + li::before { content: ""; display: inline-block; width: .42em; height: .42em; border: solid var(--muted); border-width: 1.5px 1.5px 0 0; transform: rotate(45deg); margin: 0 .6rem 0 .5rem; }
nav.breadcrumbs a { color: var(--ink) !important; }
nav.breadcrumbs [aria-current] { color: var(--muted); }
.caption-l { display: block; font: 400 1.15rem/1.3 var(--st-font); color: var(--muted); margin-bottom: .25rem; }
.tag { display: inline-block; font: 700 .8rem/1.15 var(--st-font); letter-spacing: .01em; padding: .3rem .5rem .25rem; background: #d2e2f1; color: #0c2d4a; vertical-align: middle; white-space: nowrap; }
.tag.green { background: #cce2d8; color: #005a30; } .tag.red { background: #f4cdc6; color: #2a0b06; } .tag.grey { background: #e5e6e7; color: #0b0c0c; }
.tag.yellow { background: #fff7bf; color: #594d00; } .tag.purple { background: #dbd5e9; color: #3d2375; } .tag.orange { background: #fcd6c3; color: #6e3619; }
.tag.dark { background: #0b0c0c; color: #fff; }
.btn { display: inline-flex; align-items: center; gap: .5rem; font: 700 1.05rem/1.2 var(--st-font); padding: .65rem 1rem .6rem; background: var(--ok, #00703c); color: #fff !important;
  border: 2px solid transparent; box-shadow: 0 2px 0 var(--ok-dark, #002d18); text-decoration: none !important; cursor: pointer; margin: 0 .6rem .8rem 0; border-radius: 0; }
.btn:hover { background: #005a30; }
.btn.secondary { background: #f3f2f1; color: #0b0c0c !important; box-shadow: 0 2px 0 #929191; }
.btn.secondary:hover { background: #dbdad9; }
.btn.warning { background: #d4351c; box-shadow: 0 2px 0 #55150b; }
.btn.start { font-size: 1.2rem; padding: .75rem 1.2rem .7rem; }
.btn.start::after { content: ""; width: 1.1em; height: 1em; background: currentColor; clip-path: polygon(0 35%, 55% 35%, 55% 0, 100% 50%, 55% 100%, 55% 65%, 0 65%); }
.inset { border-left: 5px solid var(--rule); padding: .4rem 0 .4rem 1rem; margin: 1.4rem 0; max-width: var(--measure); }
.inset > :last-child { margin-bottom: 0; }
.warning-text { display: flex; gap: 1rem; align-items: flex-start; font-weight: 700; margin: 1.4rem 0; max-width: var(--measure); }
.warning-text::before { content: "!"; flex: none; display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: #0b0c0c; color: #fff; font: 700 1.4rem/1 var(--st-font); }
.panel-confirm { background: var(--ok, #00703c); color: #fff; text-align: center; padding: 1.6rem; margin: 1.5rem 0; }
.panel-confirm h2 { color: #fff; margin: 0 0 .4rem; }
.panel-confirm p { margin: 0 auto; }
dl.summary { display: grid; grid-template-columns: minmax(8rem, 15rem) 1fr; margin: 0 0 1.8rem; font-size: 1rem; }
dl.summary dt, dl.summary dd { margin: 0; padding: .6rem 1rem .6rem 0; border-bottom: 1px solid var(--rule-soft, #dfe1e3); max-width: none; }
dl.summary dt { font-weight: 700; }
@media (max-width: 640px) { dl.summary { grid-template-columns: 1fr; } dl.summary dt { border-bottom: 0; padding-bottom: 0; } }
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); gap: 1.4rem 1.8rem; margin: 0 0 2rem; padding: 0; list-style: none; }
.card-grid > li { margin: 0; max-width: none; }
.card { display: block; position: relative; }
.card h3 { margin: 0 0 .3rem; font-size: 1.15rem; }
.card p { margin: 0; font-size: .98rem; color: var(--muted); }
.figures { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); gap: 1rem; margin: 1.2rem 0 2rem; }
.figures > div { border-top: 5px solid var(--st-brand, #1d70b8); padding: .6rem 0 0; }
.figures b { display: block; font: 700 2.1rem/1.05 var(--head-font, var(--st-font)); letter-spacing: -.02em; color: var(--ink); }
.figures span { display: block; font-size: .95rem; color: var(--muted); margin-top: .25rem; }
.layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 0 3rem; align-items: start; }
.layout > aside { font-size: .95rem; }
.layout > aside h2 { font-size: 1.15rem; margin-top: 0; padding-top: .6rem; border-top: 3px solid var(--st-brand, #1d70b8); }
.layout > aside ul { list-style: none; padding: 0; }
.layout > aside li { margin: 0 0 .6rem; }
@media (max-width: 860px) { .layout { grid-template-columns: 1fr; } }
.person-card { display: grid; grid-template-columns: 5rem 1fr; gap: .9rem; align-items: start; }
.person-card img, img.portrait { width: 5rem; height: 5rem; object-fit: cover; object-position: 50% 20%; background: #dfe1e3; display: block; }
.person-card p { margin: 0; }
.person-card .role { font-size: .92rem; color: var(--muted); }
.person-card b { display: block; font-size: 1.05rem; }
.contents-list { list-style: none; padding: 0; margin: 0 0 1.8rem; }
.contents-list li { margin: 0 0 .35rem; padding-left: 1.4rem; position: relative; }
.contents-list li::before { content: "—"; position: absolute; left: 0; color: var(--muted); }
.pill-nav { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; padding: 0; margin: 0 0 1.4rem; }
.pill-nav li { margin: 0; }
.pill-nav a { display: inline-block; padding: .35rem .75rem; border: 1px solid var(--rule); border-radius: 999px; text-decoration: none !important; font-size: .92rem; color: var(--ink) !important; background: #fff; }
.pill-nav a:hover { border-color: var(--ink); }
.pill-nav a[aria-current] { background: var(--ink); color: #fff !important; border-color: var(--ink); }
.pager { display: flex; justify-content: space-between; gap: 1rem; margin: 2.2rem 0 1rem; flex-wrap: wrap; }
.pager a { display: flex; flex-direction: column; font-weight: 700; text-decoration: none !important; max-width: 45%; }
.pager a span { font-weight: 400; text-decoration: underline; }
.pager a.next { text-align: right; margin-left: auto; }
.pager a:hover span { text-decoration-thickness: 3px; }
.updated { font-size: .92rem; color: var(--muted); border-top: 1px solid var(--rule-soft); padding-top: .8rem; margin-top: 2rem; }

/* step by step: numbered circles on a rail */
ol.steps { list-style: none; padding: 0; margin: 1rem 0 2rem; counter-reset: step; }
ol.steps > li { position: relative; padding: 0 0 1.4rem 3.2rem; margin: 0; max-width: none; counter-increment: step; }
ol.steps > li::before { content: counter(step); position: absolute; left: 0; top: -.1rem; width: 2.2rem; height: 2.2rem; border-radius: 50%; border: 2px solid var(--rule); background: #fff;
  display: grid; place-items: center; font: 700 1rem/1 var(--st-font); z-index: 1; }
ol.steps > li::after { content: ""; position: absolute; left: calc(1.1rem - 1px); top: 2rem; bottom: 0; border-left: 2px solid var(--rule); }
ol.steps > li:last-child::after { display: none; }
ol.steps > li.or::before { content: "or"; font-weight: 400; font-size: .9rem; border-color: transparent; }
ol.steps h3 { margin: 0 0 .4rem; font-size: 1.2rem; }
ol.steps p, ol.steps ul { margin: 0 0 .5rem; }
ol.steps ul { padding-left: 1.1rem; }

/* stage tracker (bills) */
ol.stages { list-style: none; display: flex; padding: 0; margin: .8rem 0 1.4rem; counter-reset: stage; font: .82rem/1.25 var(--st-font); }
ol.stages li { flex: 1; position: relative; padding: 1.4rem .3rem 0 0; margin: 0; color: var(--muted); max-width: none; }
ol.stages li::before { content: ""; position: absolute; left: 0; top: .3rem; width: .85rem; height: .85rem; border-radius: 50%; border: 2px solid var(--rule); background: #fff; z-index: 1; }
ol.stages li::after { content: ""; position: absolute; left: .85rem; right: 0; top: .67rem; border-top: 2px solid var(--rule); }
ol.stages li:last-child::after { display: none; }
ol.stages li.done { color: var(--ink); }
ol.stages li.done::before { background: var(--st-brand); border-color: var(--st-brand); }
ol.stages li.done::after { border-color: var(--st-brand); }
ol.stages li b { display: block; font-weight: 700; }
@media (max-width: 640px) {
  ol.stages { flex-direction: column; }
  ol.stages li { padding: 0 0 .7rem 1.5rem; }
  ol.stages li::after { left: calc(.42rem - 1px); top: 1.1rem; bottom: 0; right: auto; border-top: 0; border-left: 2px solid var(--rule); }
  ol.stages li.done::after { border-color: var(--st-brand); }
  ol.stages li::before { top: .1rem; }
}

/* ---------- the record as a document: paper, a reference strip, the type of its decade ---------- */
.document { --doc-font: 'Source Serif 4', Georgia, serif; position: relative; font-family: var(--doc-font); color: #26221b; line-height: 1.6; font-size: 1.02rem;
  background-color: #fffdf8; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .34 0 0 0 0 .2 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  border: 1px solid #ddd3bf; box-shadow: 0 1px 1px rgba(60,45,20,.08), 0 14px 30px -18px rgba(60,45,20,.45); padding: 0 2.4rem 2rem; margin: 1.6rem 0 2rem; max-width: 52rem; }
.document :is(h1, h2, h3, h4) { font-family: var(--doc-font); color: #1d1a14; letter-spacing: 0; }
.document p, .document li, .document dd { max-width: none; }
.document a { color: #3b3a86; }
.document .doc-ref { display: flex; justify-content: space-between; align-items: center; gap: .4rem 1rem; flex-wrap: wrap; margin: 0 -2.4rem 1.6rem; padding: .55rem 2.4rem;
  font: 600 .74rem/1.4 var(--st-font, system-ui); letter-spacing: .06em; text-transform: uppercase; color: #6d6353; background: rgba(120,100,60,.07); border-bottom: 1px solid #e4dccb; }
.document .doc-ref span:last-child { font-family: 'Courier Prime', 'Courier New', monospace; letter-spacing: .02em; text-transform: none; font-size: .82rem; }
.document table { font-size: .92rem; }
.document th { font-family: var(--doc-font); color: #1d1a14; }
.document :is(td, th) { border-bottom-color: #e2d9c6; }
.document.era-early, .document.era-victorian { --doc-font: 'IM Fell English', 'Libre Caslon Text', Georgia, serif; background-color: #f7efdc; border-color: #d8c9a6; color: #2b2317; font-size: 1.06rem; }
.document.era-victorian { --doc-font: 'Libre Caslon Text', Georgia, serif; font-size: 1rem; }
.document.era-early :is(th), .document.era-victorian :is(th) { font-variant: small-caps; font-weight: 400; letter-spacing: .05em; }
.document.era-interwar, .document.era-midcentury { --doc-font: 'Courier Prime', 'Courier New', monospace; background-color: #f9f5ea; border-color: #ddd4bf; font-size: .98rem; line-height: 1.55; }
.document.era-late { --doc-font: 'Courier Prime', 'Courier New', monospace; background-color: #fcfbf7; font-size: .98rem; }
.document.era-modern { background-color: #fff; background-image: none; border-color: #d8dadc; }
.document .doc-foot { font: .85rem/1.5 var(--st-font, system-ui); color: #6d6353; border-top: 1px solid #e4dccb; margin: 1.6rem 0 0; padding-top: .7rem; }
.doc-note { font: .95rem/1.5 var(--st-font, system-ui); color: var(--muted); position: relative; padding-left: 1.4rem; margin: 1rem 0 .4rem; max-width: var(--measure); }
.doc-note::before { content: ""; position: absolute; left: 0; top: .3em; width: .7rem; height: .9rem; border: 1.5px solid currentColor; border-radius: 1px; }
.st .document :is(p, li, dd, dt, blockquote) { max-width: none; }
@media (max-width: 640px) {
  .document { padding: 0 1.1rem 1.4rem; margin-left: -4px; margin-right: -4px; }
  .document .doc-ref { margin: 0 -1.1rem 1.2rem; padding: .5rem 1.1rem; }
}
@media print { .st-official, .st-feedback, .st-skip { display: none; } }

/* ============================================================================================
   The national portal chrome (gov.html). Kept here because gov.html also frames other sections.
   ============================================================================================ */
.st-gov { --st-font: 'Public Sans', 'Helvetica Neue', Arial, sans-serif; --st-brand: #1f6b3b; --st-brand-light: #cce2d8; }
.gv-header { background: #0b0c0c; color: #fff; border-bottom: 10px solid #2e8540; font-family: 'Public Sans', Arial, sans-serif; }
.gv-header .st-w { display: flex; align-items: center; justify-content: space-between; gap: 1rem 2rem; padding-top: .8rem; padding-bottom: .8rem; flex-wrap: wrap; }
.gv-brand { display: inline-flex; align-items: center; gap: .55rem; color: #fff !important; text-decoration: none !important; font-weight: 700; font-size: 1.6rem; letter-spacing: -.01em; line-height: 1; }
.gv-brand svg { width: 34px; height: 34px; fill: #fff; flex: none; }
.gv-brand .gv-brand-sub { font-weight: 400; font-size: 1.1rem; padding-left: .6rem; margin-left: .15rem; border-left: 1px solid rgba(255,255,255,.5); opacity: .95; }
.gv-brand:hover .gv-brand-name { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 3px; }
.gv-hsearch { display: flex; min-width: min(100%, 18rem); flex: 0 1 22rem; }
.gv-hsearch input { flex: 1; min-width: 0; font: 1rem/1.25 'Public Sans', Arial, sans-serif; padding: .5rem .6rem; border: 2px solid #fff; border-right: 0; border-radius: 0; background: #fff; color: #0b0c0c; -webkit-appearance: none; }
.gv-hsearch button { width: 2.75rem; border: 0; background: #2e8540; color: #fff; display: grid; place-items: center; cursor: pointer; }
.gv-hsearch button:hover { background: #1f6b3b; }
.gv-hsearch svg { width: 20px; height: 20px; }
.gv-nav { background: #f3f2f1; border-bottom: 1px solid #b1b4b6; font-family: 'Public Sans', Arial, sans-serif; }
.gv-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 1.6rem; }
.gv-nav li { margin: 0; }
.gv-nav a { display: block; padding: .8rem 0 .7rem; color: #0b0c0c !important; font-weight: 600; font-size: 1rem; text-decoration: none !important; border-bottom: 4px solid transparent; }
.gv-nav a:hover { border-bottom-color: #2e8540; }
.gv-phase { display: flex; align-items: baseline; gap: .7rem; padding: .7rem 0; border-bottom: 1px solid #b1b4b6; font: .95rem/1.45 'Public Sans', Arial, sans-serif; color: #0b0c0c; }
.gv-phase .tag { flex: none; }
.gv-phase a { color: #1d70b8; }
.gv-footer { background: #f3f2f1; border-top: 1px solid #b1b4b6; color: #0b0c0c; font: .95rem/1.5 'Public Sans', Arial, sans-serif; padding: 2.2rem 0 2rem; margin-top: 0; }
.gv-footer a { color: #0b0c0c !important; }
.gv-footer h2 { font: 700 1.25rem/1.3 'Public Sans', Arial, sans-serif; margin: 0 0 1rem; padding-bottom: .9rem; border-bottom: 1px solid #b1b4b6; letter-spacing: 0; }
.gv-foot-nav { display: grid; grid-template-columns: 2fr 1fr; gap: 2rem 3rem; }
.gv-foot-nav ul { list-style: none; padding: 0; margin: 0; }
.gv-foot-nav ul.gv-cols { columns: 2 12rem; column-gap: 2rem; }
.gv-foot-nav li { margin: 0 0 .7rem; break-inside: avoid; }
.gv-foot-meta { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem 2.5rem; flex-wrap: wrap; border-top: 1px solid #b1b4b6; margin-top: 1.8rem; padding-top: 1.6rem; }
.gv-foot-meta > div { flex: 1 1 28rem; }
.gv-foot-meta ul { list-style: none; padding: 0; margin: 0 0 .9rem; display: flex; flex-wrap: wrap; gap: .3rem 1.4rem; }
.gv-foot-meta p { margin: 0 0 .4rem; max-width: 60ch; }
.gv-crest { display: flex; flex-direction: column; align-items: center; gap: .4rem; text-decoration: none !important; font-size: .9rem; text-align: center; }
.gv-crest img { width: 82px; height: 82px; }
@media (max-width: 760px) {
  .gv-foot-nav { grid-template-columns: 1fr; }
  .gv-brand { font-size: 1.35rem; } .gv-brand .gv-brand-sub { display: none; }
  .gv-hsearch { flex-basis: 100%; }
  .gv-nav ul { gap: 0 1.1rem; }
  .gv-nav a { font-size: .92rem; padding: .6rem 0 .5rem; }
  .gv-crest { align-items: flex-start; }
}
.layout > aside dl.summary { grid-template-columns: 1fr; font-size: .95rem; }
.layout > aside dl.summary dt { border-bottom: 0; padding-bottom: 0; }
.layout > aside dl.summary dd { padding-top: .1rem; }
.gv-table-wrap { overflow-x: auto; position: relative; }
.gv-table-wrap table { position: relative; }

/* ---------- working pages: applications, petitions, enlistment (gov, assembly, war) ---------- */
.panel-confirm .gv-ref, .panel-confirm .wp-ref { display: inline-block; font: 700 1.9rem/1.2 var(--st-font); letter-spacing: .04em; margin-top: .3rem; word-break: break-all; }
.panel-confirm.gv-withdrawn { background: #505a5f; }
.panel-confirm.held, .panel-confirm.wp-held { background: #594d00; }
.gv-timeline { list-style: none; padding: 0; margin: 0 0 1rem; border-left: 3px solid var(--rule); max-width: var(--measure); }
.gv-timeline li { position: relative; padding: 0 0 1.1rem 1.4rem; display: grid; gap: .1rem; }
.gv-timeline li::before { content: ""; position: absolute; left: -.6rem; top: .25rem; width: .9rem; height: .9rem; border-radius: 50%; background: #fff; border: 3px solid var(--rule); }
.gv-timeline li.done::before { background: var(--ok, #00703c); border-color: var(--ok, #00703c); }
.gv-timeline li.next::before { border-color: var(--ok, #00703c); }
.gv-timeline li.held::before { background: #d4351c; border-color: #d4351c; }
.gv-timeline .gv-tl-when { font-size: .9rem; color: var(--muted); }
.gv-timeline .gv-tl-note { font-size: .95rem; color: var(--ink); }
.gv-timeline li.held b { color: #942514; }
.gv-pay { display: flex; gap: 1.2rem; align-items: center; flex-wrap: wrap; border: 1px solid var(--rule); padding: 1rem; margin: 0 0 1.6rem; max-width: 46rem; }
.gv-pay > div { display: grid; gap: .3rem; text-align: center; font: 700 .9rem/1.2 'Courier Prime', 'Courier New', monospace; }
.gv-pay p { flex: 1 1 16rem; margin: 0; font-size: .95rem; }
.sz-barcode { width: 190px; height: 48px; display: block; }
.sz-qr { width: 132px; height: 132px; display: block; }
.gv-fees tr.total td { border-top: 2px solid var(--ink); }
.gv-actions { display: flex; gap: .8rem; flex-wrap: wrap; align-items: center; margin: 1.6rem 0; }
.gv-actions button { cursor: pointer; border: 0; }
.gv-plate { display: inline-block; font: 700 1.6rem/1 'Courier Prime', 'Courier New', monospace; letter-spacing: .08em; background: #fff; color: #0b0c0c; border: 3px solid #0b0c0c; border-radius: 6px; padding: .45rem .9rem .4rem; box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 4px #0b0c0c; }
.gv-plate::before { content: "SCZ"; display: inline-block; font-size: .5em; vertical-align: middle; background: #1f4d2a; color: #fff; padding: .35rem .3rem; margin: 0 .6rem 0 -.3rem; border-radius: 2px; letter-spacing: 0; }
.gv-plate.big { font-size: 2.2rem; }
.gov-form .hint { display: block; font-weight: 400; color: var(--muted); font-size: .95rem; }
.gov-form fieldset.radios label.check, .gov-form label.check { max-width: 40rem; }
.gov-form label.check input[type=radio] { width: 1.5rem; height: 1.5rem; }
.gov-form .actions a { font-size: 1rem; }

/* documents issued on approval: licence, certificate, passport data page */
.gv-document { max-width: 60rem; }
.gv-cert { position: relative; overflow: hidden; border: 1px solid #b9ab86; outline: 6px double #b9ab86; outline-offset: -14px; background: #fbf8ef; padding: 2.2rem 2.4rem; margin: 1.2rem 0 1.4rem; font-family: 'Source Serif 4', Georgia, serif; }
.gv-cert-head { display: flex; gap: 1.2rem; align-items: center; border-bottom: 1px solid #cdbf98; padding-bottom: 1rem; margin-bottom: 1rem; }
.gv-cert-head h1 { font: 600 1.7rem/1.2 'Source Serif 4', Georgia, serif; margin: .1rem 0 .3rem; }
.gv-cert-issuer { font: 700 .8rem/1.2 var(--st-font); text-transform: uppercase; letter-spacing: .12em; color: #5c4f2c; margin: 0; }
.gv-cert-act { margin: 0; font-size: .95rem; color: #5c4f2c; }
.gv-cert-no { font: 1.1rem/1.3 'Courier Prime', 'Courier New', monospace; }
.gv-cert-text { font-size: 1.08rem; line-height: 1.6; }
.gv-cert-conditions { font-size: .98rem; }
.gv-cert-facts { background: transparent; }
.gv-cert-foot { display: flex; gap: 1.4rem; align-items: center; flex-wrap: wrap; border-top: 1px solid #cdbf98; padding-top: 1rem; margin-top: 1rem; }
.gv-cert-foot > div { display: grid; gap: .25rem; font: .8rem/1.2 'Courier Prime', 'Courier New', monospace; text-align: center; }
.gv-cert-foot p { flex: 1 1 18rem; margin: 0; font-size: .95rem; }
.gv-specimen { position: absolute; right: -3.2rem; top: 1.6rem; transform: rotate(35deg); font: 700 .85rem/1 var(--st-font); letter-spacing: .2em; text-transform: uppercase; background: #1f4d2a; color: #fff; padding: .45rem 4rem; pointer-events: none; }
.is-held .gv-specimen { background: #d4351c; }
.gv-passport { position: relative; overflow: hidden; max-width: 40rem; border-radius: 14px; background: linear-gradient(135deg, #eef1e6 0%, #e3e9dc 50%, #eef0e4 100%); border: 1px solid #b7bfae; padding: 1.2rem 1.4rem 1rem; margin: 1.2rem 0; font-family: var(--st-font); box-shadow: 0 8px 28px -14px rgba(0,0,0,.4); }
.gv-pp-head { display: flex; align-items: center; gap: .8rem; border-bottom: 1px solid #b7bfae; padding-bottom: .6rem; margin-bottom: .8rem; }
.gv-pp-head b { display: block; text-transform: uppercase; letter-spacing: .14em; font-size: 1.05rem; }
.gv-pp-head span { font-size: .85rem; color: #4b5448; }
.gv-pp-type { margin-left: auto; font: 700 1.6rem/1 var(--st-font); color: #1f4d2a; }
.gv-pp-body { display: grid; grid-template-columns: 7.5rem 1fr; gap: 1.2rem; }
.gv-pp-photo svg { width: 100%; height: auto; border: 1px solid #9aa39a; display: block; }
.gv-pp-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem 1rem; margin: 0; }
.gv-pp-fields .wide { grid-column: 1 / -1; }
.gv-pp-fields dt { font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; color: #4b5448; }
.gv-pp-fields dd { margin: 0; font: 700 .98rem/1.25 'Courier Prime', 'Courier New', monospace; text-transform: uppercase; }
.gv-pp-chron { font-size: .8rem; color: #4b5448; margin: .8rem 0 .4rem; }
.gv-pp-mrz { font: 600 .92rem/1.35 'Courier Prime', 'Courier New', monospace; letter-spacing: .1em; background: rgba(255,255,255,.55); padding: .5rem .6rem; margin: 0; white-space: pre; overflow: hidden; border: 0; }
.gv-pp-mrz span { display: block; overflow: hidden; }
@media (max-width: 640px) {
  .gv-cert { padding: 1.4rem 1.1rem; outline-offset: -8px; }
  .gv-cert-head { flex-direction: column; align-items: flex-start; }
  .gv-cert-head h1 { font-size: 1.35rem; }
  .gv-pp-body { grid-template-columns: 1fr; }
  .gv-pp-photo { width: 6rem; }
  .gv-pp-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gv-pp-mrz { font-size: .62rem; letter-spacing: .02em; }
  .panel-confirm .gv-ref, .panel-confirm .wp-ref { font-size: 1.45rem; }
  .gv-plate.big { font-size: 1.6rem; }
}
@media print {
  .st-official, .gv-header, .gv-nav, .gv-phase, .st-feedback, .gv-footer, .as-header, .as-footer, .wr-header, .wr-footer, .breadcrumbs, .gv-related, .no-print, .gv-actions { display: none !important; }
  .layout { display: block; }
  .gv-cert, .gv-passport { break-inside: avoid; box-shadow: none; }
}

/* the form styles of the portal (gov.css), for forms on the Assembly and War Ministry sites */
:is(.st-assembly, .st-war) .gov-form { border: 0; background: transparent; padding: 0; margin: 2.5rem 0; border-top: 5px solid var(--st-brand); padding-top: 1rem; }
:is(.st-assembly, .st-war) .gov-form .form-head { display: flex; flex-direction: column; gap: .3rem; border: 0; margin-bottom: 1rem; }
:is(.st-assembly, .st-war) .gov-form .form-head h2 { margin: 0; font-size: 1.6rem; }
:is(.st-assembly, .st-war) .gov-form .form-no { font: .95rem/1.4 var(--st-font); color: var(--muted); letter-spacing: 0; white-space: normal; }
:is(.st-assembly, .st-war) .gov-form fieldset { border: 0; margin: 0 0 1.4rem; padding: 0; }
:is(.st-assembly, .st-war) .gov-form legend { font: 700 1.3rem/1.3 var(--st-font); color: var(--ink); padding: 0; margin-bottom: .8rem; letter-spacing: 0; }
:is(.st-assembly, .st-war) .gov-form label { display: grid; grid-template-columns: 1fr; gap: .3rem; margin: 0 0 1.2rem; font-weight: 700; font-size: 1.02rem; max-width: 36rem; }
:is(.st-assembly, .st-war) .gov-form label.check { grid-template-columns: auto 1fr; align-items: start; gap: .7rem; font-weight: 400; }
:is(.st-assembly, .st-war) .gov-form label.check input { width: 1.6rem; height: 1.6rem; margin: 0; accent-color: #0b0c0c; }
:is(.st-assembly, .st-war) .gov-form :is(input[type=text], :is(.st-assembly, .st-war) input[type=date], :is(.st-assembly, .st-war) input[type=number], :is(.st-assembly, .st-war) select, :is(.st-assembly, .st-war) textarea) { font: 400 1.05rem/1.3 var(--st-font); padding: .45rem .5rem; border: 2px solid #0b0c0c; border-radius: 0; background: #fff; width: 100%; max-width: 28rem; }
:is(.st-assembly, .st-war) .gov-form input[type=number], :is(.st-assembly, .st-war) .gov-form input[type=date] { max-width: 12rem; }
:is(.st-assembly, .st-war) .gov-form .form-note { font-size: 1rem; border-left: 5px solid var(--rule); padding: .2rem 0 .2rem 1rem; margin: 0 0 1.2rem; }
:is(.st-assembly, .st-war) .gov-form .fee { font-weight: 700; }
:is(.st-assembly, .st-war) .gov-form .actions { margin-top: 1rem; display: flex; gap: .8rem; align-items: center; flex-wrap: wrap; }
:is(.st-assembly, .st-war) .gov-form button { font: 700 1.05rem/1.2 var(--st-font); padding: .6rem 1rem; border: 0; background: var(--ok); color: #fff; box-shadow: 0 2px 0 var(--ok-dark); cursor: pointer; }
:is(.st-assembly, .st-war) .gov-form button.secondary { background: #f3f2f1; color: #0b0c0c; box-shadow: 0 2px 0 #929191; }
:is(.st-assembly, .st-war) .gov-form .office-use { border: 1px dashed var(--rule); margin-top: 1.2rem; padding: .7rem .9rem; font: .88rem/1.5 'Courier Prime', 'Courier New', monospace; color: var(--muted); }
:is(.st-assembly, .st-war) .gov-form textarea { font: 400 1.05rem/1.4 var(--st-font); padding: .45rem .5rem; border: 2px solid #0b0c0c; width: 100%; max-width: 36rem; }
