/* The national portal (gov.<domain>): a public-sector design system. Also frames the national front page and the directory.
   Chrome (header, service navigation, phase banner, feedback, footer) is in state.css; this file is the page furniture. */

/* ---------- the front page of the portal ---------- */
.gv-hero { background: #1f4d2a; color: #fff; box-shadow: 0 0 0 100vmax #1f4d2a; clip-path: inset(0 -100vmax); padding: 2.2rem 0 2.4rem; margin: -1.2rem 0 2.2rem; }
.gv-hero h1 { color: #fff; font-size: 2.9rem; margin: 0 0 .7rem; max-width: 20ch; }
.gv-hero .lede { color: #fff; max-width: 38ch; }
.gv-hero-motto { font-size: .95rem; margin: 0 0 .6rem; opacity: .85; }
.gv-hero a { color: #fff !important; }
.gv-bigsearch { display: flex; max-width: 40rem; margin: 0 0 1rem; }
.gv-bigsearch input { flex: 1; min-width: 0; font: 1.15rem/1.3 var(--st-font); padding: .7rem .8rem; border: 3px solid #0b0c0c; border-right: 0; background: #fff; color: #0b0c0c; border-radius: 0; -webkit-appearance: none; }
.gv-bigsearch button { font: 700 1.1rem/1 var(--st-font); padding: 0 1.3rem; border: 0; background: #0b0c0c; color: #fff; cursor: pointer; }
.gv-bigsearch button:hover { background: #333; }
.gv-popular { margin: 0; font-size: 1rem; }
.gv-section { margin: 0 0 1rem; }
.gv-section > h2 { margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--rule); }
.gv-hero + .gv-section > h2 { border-top: 0; padding-top: 0; margin-top: 0; }
.gv-service { display: flex; flex-direction: column; gap: .35rem; height: 100%; padding: 1rem 1.1rem 1.1rem; border: 1px solid var(--rule); border-top: 5px solid var(--st-brand); text-decoration: none !important; background: #fff; }
.gv-service b { color: var(--link); font-size: 1.12rem; line-height: 1.3; text-decoration: underline; text-underline-offset: .15em; }
.gv-service span { color: var(--muted); font-size: .92rem; }
.gv-service:hover { border-color: var(--link-hover); border-top-color: var(--st-brand); }
.gv-service:hover b { text-decoration-thickness: 3px; color: var(--link-hover); }
.gv-topics { list-style: none; padding: 0; margin: 0 0 1.5rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 2rem; }
.gv-topics li { border-top: 1px solid var(--rule); padding: .9rem 0 1.1rem; margin: 0; max-width: none; }
.gv-topics a { font-weight: 700; font-size: 1.08rem; }
.gv-topics p { margin: .3rem 0 0; color: var(--muted); font-size: .95rem; }
.gv-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem 3rem; align-items: start; }
.gv-leader { margin: 0 0 1.2rem; grid-template-columns: 6rem 1fr; }
.gv-leader img { width: 6rem; height: 6rem; }
.gv-leader b { font-size: 1.2rem; }
.gv-frontline { border-left: 5px solid #0b0c0c; padding: .1rem 0 .1rem 1rem; margin: 1.4rem 0; }
.gv-frontline pre.verbatim { border: 0; padding: 0; margin: 0 0 .4rem; font-size: 1.1rem; font-weight: 600; }
.gv-count { font-size: 1.1rem; margin: 0 0 1rem; }
.gv-count b { font-size: 1.6rem; }
@media (max-width: 860px) { .gv-topics { grid-template-columns: 1fr 1fr; } .gv-two { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .gv-topics { grid-template-columns: 1fr; } .gv-hero h1 { font-size: 2rem; } .gv-bigsearch input { font-size: 1rem; } }

/* the national front page (home.html) in the portal's clothes */
.st-gov .hero { display: flex; gap: 2rem; align-items: center; border-bottom: 1px solid var(--rule); padding-bottom: 1.6rem; margin-bottom: 2rem; }
.st-gov .hero h1 { font-size: 2.6rem; margin: 0 0 .3rem; }
.st-gov .hero img.flag { width: 200px; border: 1px solid var(--rule-soft); flex: none; }
.st-gov .hero img.seal { width: 140px; height: 140px; flex: none; }
.st-gov .motto { font-size: 1.2rem; font-weight: 600; color: var(--st-brand); margin: 0 0 .6rem; font-style: normal; }
.st-gov .hero .frontline { font-size: .98rem; color: var(--muted); font-style: normal; }
.st-gov figure.map img { border: 1px solid var(--rule-soft); }
.st-gov .tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 1rem 1.6rem; margin-bottom: 2rem; }
.st-gov .tile { display: block; border-top: 4px solid var(--st-brand); padding: .7rem 0 .9rem; text-decoration: none; }
.st-gov .tile b { display: block; margin-bottom: .2rem; font-weight: 700; color: var(--link); text-decoration: underline; text-underline-offset: .15em; }
.st-gov .tile span { font-size: .92rem; color: var(--muted); }
.st-gov .tile:hover b { text-decoration-thickness: 3px; }
@media (max-width: 760px) { .st-gov .hero { flex-direction: column; align-items: flex-start; gap: 1rem; } .st-gov .hero img.flag { width: 140px; } }

/* ---------- departments, cabinet ---------- */
.ministry-list { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.ministry-list li { border-top: 1px solid var(--rule-soft); padding: .7rem 0; max-width: none; font-size: 1rem; }
.ministry-list li > a b { font-weight: 700; font-size: 1.05rem; }
.ministry-list li span { display: block; color: var(--muted); font-size: .92rem; margin-top: .15rem; }
.cabinet .minister { margin: 0; }
.cabinet .minister .role { font-size: .9rem; }
.cabinet .minister b { font-size: 1.05rem; }
.appropriation { display: block; }
.appropriation .sum { font: 700 2.4rem/1.05 var(--head-font); letter-spacing: -.02em; margin: .2rem 0 .6rem; }
.appropriation img { width: 100%; height: auto; margin-top: .6rem; background: #fff; border: 1px solid var(--rule-soft); }

/* ---------- the organisation page (a ministry or agency) ---------- */
.gv-org-head { display: flex; align-items: center; gap: 1rem; margin: 0 0 1.4rem; }
.gv-org-logo { margin: 0 0 1.2rem; display: flex; align-items: center; gap: .8rem; border-left: 4px solid var(--st-brand); padding: .25rem 0 .25rem .8rem; font-weight: 700; font-size: 1.1rem; line-height: 1.2; max-width: 16rem; }
.gv-org-logo img { width: 52px; height: 52px; flex: none; }
.gov-page.ministry header h1 { margin-bottom: .6rem; }
div.ministry-head { grid-template-columns: minmax(0, 1fr) 20rem; gap: 0 3rem; margin-bottom: 1.5rem; }
div.ministry-head aside img.logo { max-width: 110px; border: 0; background: transparent; margin: 0 0 .8rem; }
div.ministry-head aside dl.facts { grid-template-columns: 1fr; }
div.ministry-head aside dl.facts dt { border-bottom: 0; padding-bottom: 0; font-size: .9rem; }
div.ministry-head aside dl.facts dd { padding-top: .1rem; }
.current-holder { display: block; }
.current-holder .kicker { font-size: .95rem; margin-bottom: .2rem; }
.current-holder b { font-size: 1.2rem; }
.holders td.dates { white-space: nowrap; color: var(--muted); }
.gov-page ul.timeline li { text-indent: 0; padding-left: 0; border-bottom: 1px solid var(--rule-soft); padding-bottom: .6rem; margin-bottom: .6rem; }
.gov-page ul.timeline .sc { display: block; font-size: .9rem; color: var(--muted); font-weight: 600; }
.gv-contact { background: var(--panel); padding: 1rem 1.2rem; margin: 1rem 0 1.5rem; }
.gv-contact > :last-child { margin-bottom: 0; }
.gv-ministers { margin-bottom: 1.5rem; }

/* ---------- chancellors ---------- */
table.chancellors td.n { color: var(--muted); text-align: right; width: 2.5rem; }
table.chancellors td.term { white-space: nowrap; }
table.chancellors tr.incumbent td { font-weight: 700; }
table.chancellors img.portrait { width: 2.6rem; height: 2.6rem; }
table.chancellors td.pic { width: 3.2rem; padding-right: .6rem; }
.gv-table-wrap { overflow-x: auto; }

/* ---------- budget ---------- */
.budget-figure { font: 700 2.8rem/1.05 var(--head-font); margin: .1rem 0 .8rem; letter-spacing: -.02em; }
.budget-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: start; }
.budget-grid img { width: 100%; height: auto; border: 1px solid var(--rule-soft); background: #fff; }
.vote-record .tally { font: 700 1.9rem/1.1 var(--head-font); margin: 0 0 .4rem; }
.gov-page.budget header.with-poster { grid-template-columns: minmax(0, 1fr) 150px; }

/* ---------- step-by-step service pages ---------- */
.gv-service-page .gv-meta-line { color: var(--muted); font-size: .95rem; margin: -.4rem 0 1.4rem; }
.gv-fees { margin: 1.2rem 0 1.8rem; }
.gv-related h2 { font-size: 1.15rem; }
.gv-related ul { list-style: none; padding: 0; }
.gv-related li { margin: 0 0 .6rem; }

/* ---------- forms ---------- */
.gov-form { border: 0; background: transparent; padding: 0; margin: 2.5rem 0; border-top: 5px solid var(--st-brand); padding-top: 1rem; }
.gov-form .form-head { display: flex; flex-direction: column; gap: .3rem; border: 0; margin-bottom: 1rem; }
.gov-form .form-head h2 { margin: 0; font-size: 1.6rem; }
.gov-form .form-no { font: .95rem/1.4 var(--st-font); color: var(--muted); letter-spacing: 0; white-space: normal; }
.gov-form fieldset { border: 0; margin: 0 0 1.4rem; padding: 0; }
.gov-form legend { font: 700 1.3rem/1.3 var(--st-font); color: var(--ink); padding: 0; margin-bottom: .8rem; letter-spacing: 0; }
.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; }
.gov-form label.check { grid-template-columns: auto 1fr; align-items: start; gap: .7rem; font-weight: 400; }
.gov-form label.check input { width: 1.6rem; height: 1.6rem; margin: 0; accent-color: #0b0c0c; }
.gov-form :is(input[type=text], input[type=date], input[type=number], select, 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; }
.gov-form input[type=number], .gov-form input[type=date] { max-width: 12rem; }
.gov-form .form-note { font-size: 1rem; border-left: 5px solid var(--rule); padding: .2rem 0 .2rem 1rem; margin: 0 0 1.2rem; }
.gov-form .fee { font-weight: 700; }
.gov-form .actions { margin-top: 1rem; display: flex; gap: .8rem; align-items: center; flex-wrap: wrap; }
.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; }
.gov-form button.secondary { background: #f3f2f1; color: #0b0c0c; box-shadow: 0 2px 0 #929191; }
.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); }
table.fees td.num { white-space: nowrap; }

/* ---------- examination papers: the paper itself is a document ---------- */
.exam .exam-paper.document { padding-bottom: 2.2rem; }
.exam .exam-paper .rubric { border-bottom: 1px solid #e2d9c6; padding-bottom: .8rem; margin-bottom: 1rem; font-size: .98rem; }
.exam .exam-paper h2.paper-title { text-align: center; font-size: 1.35rem; margin: .4rem 0 .2rem; font-weight: 400; }
.exam .exam-paper .paper-sub { text-align: center; margin: 0 0 1.2rem; font-size: .95rem; }
.exam .exam-section h2 { border: 0; font-size: 1.1rem; margin: 1.4rem 0 .5rem; font-weight: 600; }
.exam .exam-section h2 small { font-weight: 400; color: #6d6353; font-size: .85rem; margin-left: .5rem; display: inline; }
.exam ol.questions { padding-left: 1.4rem; }
.exam ol.questions li { margin-bottom: .6rem; }
.exam ol.questions li i { color: #6d6353; font-style: normal; font-size: .85rem; }
.exam .answers { border-top: 5px solid var(--st-brand); margin-top: 2rem; padding-top: .6rem; }
.exam .answers h2 { border: 0; margin-top: .4rem; }
.exam .answers ol { padding-left: 1.4rem; }
.exam .answers ol li { margin-bottom: .35rem; }

/* ---------- letter books: each letter is a document ---------- */
.gov-page.letterbook .letter { margin: 1.4rem 0; max-width: 46rem; }
.gov-page.letterbook .letter.document { padding-top: 0; }
.gov-page.letterbook .letter .ref { margin: 0 0 .5rem; font-size: .85rem; color: #6d6353; }
.gov-page.letterbook .letter .parties { margin: 0 0 .2rem; font-weight: 600; }
.gov-page.letterbook .letter .subject { margin: 0 0 .7rem; font-style: italic; }
.gov-page.letterbook .letter .salutation { margin: .6rem 0 .3rem; }
.gov-page.letterbook .letter .signoff { margin: .9rem 0 0; }
.gov-page.letterbook .letter .signed { margin: .15rem 0 0 2rem; font-variant: small-caps; letter-spacing: .03em; }
.gov-page.letterbook .letter.in { border-left: 4px solid #cbbd9e; }
.gov-page.letterbook .letter.out { border-left: 4px solid #1f4d2a; }
.gov-page.letterbook .letter:not(.document) { border-top: 1px solid var(--rule); padding: .8rem 0 .4rem 1rem; }

/* ---------- the directory of public websites (/services/) ---------- */
.directory ul.dir { list-style: none; padding: 0; columns: 2 20rem; column-gap: 2rem; }
.directory ul.dir li { break-inside: avoid; padding: .5rem 0; border-bottom: 1px solid var(--rule-soft); }
.directory ul.dir li a { font-weight: 700; }
.directory ul.dir .muted { display: block; font-size: .92rem; }

@media (max-width: 760px) {
  .budget-grid, div.ministry-head { grid-template-columns: 1fr; }
  .gov-page.budget header.with-poster { grid-template-columns: 1fr; }
  .gov-form .form-head h2 { font-size: 1.3rem; }
}
