/* ══════════════════════════════════════════════════════════════════════════════
   GOV.UK Design System — Faithful CSS Replica
   Based on govuk-frontend 5.x
   ══════════════════════════════════════════════════════════════════════════════ */

@font-face {
    font-family: "GDS Transport";
    src: url("https://assets.publishing.service.gov.uk/static/fonts/bold-affa96571d-v2.woff2") format("woff2");
    font-weight: 700;
    font-display: swap;
}
@font-face {
    font-family: "GDS Transport";
    src: url("https://assets.publishing.service.gov.uk/static/fonts/light-94a07e06a1-v2.woff2") format("woff2");
    font-weight: 400;
    font-display: swap;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
    font-family: "GDS Transport", arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-weight: 400;
    font-size: 19px;
    line-height: 1.3157894737;
    color: #0b0c0c;
    background: #fff;
}

/* ─── Skip Link ───────────────────────────────────────────────────────────── */
.govuk-skip-link {
    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;
    color: #0b0c0c; font-size: 16px; font-family: inherit; text-decoration: underline;
}
.govuk-skip-link:active, .govuk-skip-link:focus {
    position: static !important; width: auto !important; height: auto !important;
    margin: inherit !important; padding: 10px 15px !important;
    overflow: visible !important; clip: auto !important; clip-path: none !important;
    background-color: #fd0; color: #0b0c0c; font-weight: 700;
    outline: 3px solid transparent; box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
    z-index: 999;
}

/* ─── Header ──────────────────────────────────────────────────────────────── */
.govuk-header {
    font-size: 16px; font-weight: 400;
    color: #fff; background: #1d70b8;
}
.govuk-header__container {
    position: relative;
    margin-bottom: -10px;
    padding-top: 15px;
}
.govuk-header__logo {
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 10px;
}
.govuk-header__link {
    display: inline-flex; align-items: center;
    text-decoration: none; color: #fff;
    font-weight: 700; font-size: 30px;
    line-height: 1;
}
.govuk-header__link:link, .govuk-header__link:visited { color: #fff; }
.govuk-header__link:hover { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: .1578em; }
.govuk-header__link:focus {
    outline: 3px solid transparent;
    color: #0b0c0c; background-color: #fd0;
    box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
    text-decoration: none;
}
.govuk-header__logotype { display: inline-flex; align-items: center; }
.govuk-header__logotype-crown { margin-right: 7px; fill: currentColor; }

/* ─── Layout ──────────────────────────────────────────────────────────────── */
.govuk-width-container {
    max-width: 960px; margin: 0 15px;
}
@media (min-width: 1020px) {
    .govuk-width-container { margin: 0 auto; }
}
.govuk-main-wrapper { display: block; padding-top: 40px; padding-bottom: 40px; }
.govuk-main-wrapper--l { padding-top: 50px; }
.govuk-grid-row { margin-right: -15px; margin-left: -15px; }
.govuk-grid-row::after { content: ""; display: block; clear: both; }
.govuk-grid-column-two-thirds {
    box-sizing: border-box; width: 100%; padding: 0 15px;
}
@media (min-width: 768px) {
    .govuk-grid-column-two-thirds { width: 66.6666%; float: left; }
}

/* ─── Phase Banner ────────────────────────────────────────────────────────── */
.govuk-phase-banner {
    padding-top: 10px; padding-bottom: 10px;
    border-bottom: 1px solid #b1b4b6;
}
.govuk-phase-banner__content {
    display: table; font-size: 16px; line-height: 1.25; color: #0b0c0c;
}
.govuk-tag {
    display: inline-block;
    outline: 2px solid transparent; outline-offset: -2px;
    color: #fff; background-color: #1d70b8;
    letter-spacing: 1px; text-decoration: none; text-transform: uppercase;
    font-family: inherit; font-size: 16px; font-weight: 700;
    padding: 4px 8px;
}
.govuk-phase-banner__content__tag { margin-right: 10px; }
.govuk-phase-banner__text { display: table-cell; vertical-align: middle; }

/* ─── Typography ──────────────────────────────────────────────────────────── */
.govuk-heading-xl {
    color: #0b0c0c; font-weight: 700;
    font-size: 32px; line-height: 1.09375;
    margin-top: 0; margin-bottom: 30px;
}
@media (min-width: 768px) {
    .govuk-heading-xl { font-size: 48px; line-height: 1.04166; margin-bottom: 50px; }
}
.govuk-heading-l {
    color: #0b0c0c; font-weight: 700;
    font-size: 24px; line-height: 1.04166;
    margin-top: 0; margin-bottom: 20px;
}
@media (min-width: 768px) {
    .govuk-heading-l { font-size: 36px; line-height: 1.11111; margin-bottom: 30px; }
}
.govuk-heading-m {
    color: #0b0c0c; font-weight: 700;
    font-size: 18px; line-height: 1.11111;
    margin-top: 0; margin-bottom: 15px;
}
@media (min-width: 768px) {
    .govuk-heading-m { font-size: 24px; line-height: 1.25; margin-bottom: 20px; }
}
.govuk-body, .govuk-body-m {
    color: #0b0c0c; font-size: 16px; line-height: 1.25;
    margin-top: 0; margin-bottom: 15px;
}
@media (min-width: 768px) {
    .govuk-body, .govuk-body-m { font-size: 19px; line-height: 1.3157894737; margin-bottom: 20px; }
}
.govuk-body-s { font-size: 14px; line-height: 1.14285; margin-top: 0; margin-bottom: 15px; }
@media (min-width: 768px) { .govuk-body-s { font-size: 16px; line-height: 1.25; } }

.govuk-link {
    font-family: inherit;
    text-decoration: underline;
    text-decoration-thickness: max(1px, .0625rem);
    text-underline-offset: .1578em;
    color: #1d70b8;
}
.govuk-link:hover { text-decoration-thickness: max(3px, .1875rem, .12em); color: #003078; }
.govuk-link:visited { color: #4c2c92; }
.govuk-link:focus {
    outline: 3px solid transparent;
    color: #0b0c0c; background-color: #fd0;
    box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
    text-decoration: none;
}

.govuk-hint {
    font-family: inherit; font-size: 16px; line-height: 1.25;
    margin-bottom: 15px; color: #505a5f;
}
@media (min-width: 768px) { .govuk-hint { font-size: 19px; line-height: 1.3157894737; } }

/* ─── Section Break ───────────────────────────────────────────────────────── */
.govuk-section-break { margin: 0; border: 0; }
.govuk-section-break--xl { margin-top: 40px; margin-bottom: 40px; }
.govuk-section-break--l { margin-top: 30px; margin-bottom: 30px; }
@media (min-width: 768px) { .govuk-section-break--l { margin-top: 30px; margin-bottom: 30px; } }
.govuk-section-break--m { margin-top: 15px; margin-bottom: 15px; }
@media (min-width: 768px) { .govuk-section-break--m { margin-top: 20px; margin-bottom: 20px; } }
.govuk-section-break--visible { border-bottom: 1px solid #b1b4b6; }

/* ─── Error Summary ───────────────────────────────────────────────────────── */
.govuk-error-summary {
    color: #0b0c0c; padding: 15px; margin-bottom: 30px;
    border: 5px solid #d4351c;
}
@media (min-width: 768px) { .govuk-error-summary { padding: 20px; margin-bottom: 50px; border-width: 5px; } }
.govuk-error-summary__title {
    font-size: 18px; line-height: 1.11111; font-weight: 700;
    margin-top: 0; margin-bottom: 15px;
}
@media (min-width: 768px) { .govuk-error-summary__title { font-size: 24px; line-height: 1.25; margin-bottom: 20px; } }
.govuk-error-summary__body p { margin-bottom: 15px; }
.govuk-error-summary__list { margin: 0; padding: 0; list-style: none; }
.govuk-error-summary__list a {
    color: #d4351c; font-weight: 700;
    text-decoration: underline; text-decoration-thickness: max(1px, .0625rem);
    text-underline-offset: .1578em;
}
.govuk-error-summary__list a:hover { text-decoration-thickness: max(3px, .1875rem, .12em); }
.govuk-error-summary__list a:focus {
    outline: 3px solid transparent; background-color: #fd0;
    box-shadow: 0 -2px #fd0, 0 4px #0b0c0c; color: #0b0c0c;
    text-decoration: none;
}

/* ─── Form Group ──────────────────────────────────────────────────────────── */
.govuk-form-group { margin-bottom: 20px; }
@media (min-width: 768px) { .govuk-form-group { margin-bottom: 30px; } }
.govuk-form-group--error { padding-left: 15px; border-left: 5px solid #d4351c; }

.govuk-label { display: block; margin-bottom: 5px; font-size: 19px; font-weight: 700; color: #0b0c0c; }

.govuk-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.govuk-fieldset__legend { font-weight: 700; font-size: 19px; color: #0b0c0c; margin-bottom: 10px; padding: 0; }
.govuk-fieldset__legend--l { font-size: 24px; margin-bottom: 15px; }
@media (min-width: 768px) { .govuk-fieldset__legend--l { font-size: 36px; } }

.govuk-error-message {
    font-size: 19px; line-height: 1.3157894737; font-weight: 700;
    color: #d4351c; margin-bottom: 15px; display: none;
}
.govuk-form-group--error .govuk-error-message { display: block; }
.govuk-visually-hidden {
    position: absolute !important; width: 1px !important; height: 1px !important;
    margin: 0 !important; padding: 0 !important; overflow: hidden !important;
    clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important;
    border: 0 !important; white-space: nowrap !important;
}

/* ─── Select ──────────────────────────────────────────────────────────────── */
.govuk-select {
    font-family: inherit; font-size: 16px; line-height: 1.25;
    font-weight: 400; box-sizing: border-box;
    width: 100%; max-width: 100%;
    height: 40px; padding: 5px;
    border: 2px solid #0b0c0c;
    color: #0b0c0c; background-color: #fff;
    appearance: auto;
}
@media (min-width: 768px) { .govuk-select { font-size: 19px; height: 44px; } }
.govuk-select:focus { outline: 3px solid #fd0; outline-offset: 0; box-shadow: inset 0 0 0 2px; }
.govuk-select--error { border-color: #d4351c; }

/* ─── Input ───────────────────────────────────────────────────────────────── */
.govuk-input {
    font-family: inherit; font-size: 16px; line-height: 1.25;
    font-weight: 400; box-sizing: border-box;
    width: 100%; height: 40px;
    margin-top: 0; padding: 5px;
    border: 2px solid #0b0c0c;
    border-radius: 0; appearance: none;
    color: #0b0c0c; background-color: #fff;
}
@media (min-width: 768px) { .govuk-input { font-size: 19px; height: 44px; } }
.govuk-input:focus { outline: 3px solid #fd0; outline-offset: 0; box-shadow: inset 0 0 0 2px; }
.govuk-input--width-10 { max-width: 230px; }
.govuk-input--error { border-color: #d4351c; }

/* ─── Radios ──────────────────────────────────────────────────────────────── */
.govuk-radios__item { font-size: 16px; line-height: 1.25; display: block; position: relative; min-height: 40px; margin-bottom: 10px; padding-left: 36px; clear: left; }
@media (min-width: 768px) { .govuk-radios__item { font-size: 19px; line-height: 1.3157894737; } }
.govuk-radios__input {
    position: absolute; z-index: 1; top: -2px; left: -2px;
    width: 44px; height: 44px;
    margin: 0; opacity: 0; cursor: pointer;
}
.govuk-radios__label {
    display: inline-block;
    margin-bottom: 0; padding: 7px 15px; padding-left: 14px;
    cursor: pointer; touch-action: manipulation;
    font-size: 16px; font-weight: 400; color: #0b0c0c;
}
@media (min-width: 768px) { .govuk-radios__label { font-size: 19px; } }
.govuk-radios__label::before {
    content: ""; box-sizing: border-box; position: absolute;
    top: 0; left: 0; width: 40px; height: 40px;
    border: 2px solid currentcolor; border-radius: 50%;
    background: transparent;
}
.govuk-radios__label::after {
    content: ""; position: absolute;
    top: 10px; left: 10px; width: 0; height: 0;
    border: 10px solid currentcolor; border-radius: 50%;
    opacity: 0; background: currentcolor;
}
.govuk-radios__input:checked + .govuk-radios__label::after { opacity: 1; }
.govuk-radios__input:focus + .govuk-radios__label::before {
    border-width: 4px;
    box-shadow: 0 0 0 4px #fd0;
}
.govuk-radios--inline::after { content: ""; display: block; clear: both; }
.govuk-radios--inline .govuk-radios__item {
    margin-right: 0; float: left; clear: none; margin-right: 20px;
}

/* ─── Button ──────────────────────────────────────────────────────────────── */
.govuk-button {
    font-family: inherit; font-weight: 400;
    font-size: 16px; line-height: 1;
    box-sizing: border-box; display: inline-block;
    position: relative; width: 100%; margin-top: 0; margin-bottom: 22px;
    padding: 8px 10px 7px; border: 2px solid transparent;
    border-radius: 0; color: #fff;
    background-color: #00703c;
    box-shadow: 0 2px 0 #002d18;
    text-align: center; vertical-align: top;
    cursor: pointer; -webkit-appearance: none;
}
@media (min-width: 768px) {
    .govuk-button { font-size: 19px; line-height: 1; width: auto; }
}
.govuk-button:hover { background-color: #005a30; }
.govuk-button:active { top: 2px; }
.govuk-button:focus {
    border-color: #fd0; outline: 3px solid transparent;
    box-shadow: inset 0 0 0 1px #fd0;
}
.govuk-button:focus:not(:active):not(:hover) {
    border-color: #fd0; color: #0b0c0c;
    background-color: #fd0; box-shadow: 0 2px 0 #0b0c0c;
}

/* ─── Panel ───────────────────────────────────────────────────────────────── */
.govuk-panel {
    font-family: inherit; box-sizing: border-box;
    margin-bottom: 15px; padding: 35px;
    border: 5px solid transparent;
    text-align: center; background: #00703c; color: #fff;
}
.govuk-panel--confirmation { background: #00703c; }
.govuk-panel--warning { background: #f47738; }
.govuk-panel--error { background: #d4351c; }
.govuk-panel__title {
    font-size: 32px; line-height: 1.09375;
    font-weight: 700; margin-top: 0; margin-bottom: 30px;
}
@media (min-width: 768px) { .govuk-panel__title { font-size: 48px; line-height: 1.04166; } }
.govuk-panel__body { font-size: 24px; line-height: 1.25; }
@media (min-width: 768px) { .govuk-panel__body { font-size: 36px; line-height: 1.11111; } }

/* ─── Inset Text ──────────────────────────────────────────────────────────── */
.govuk-inset-text {
    font-size: 16px; line-height: 1.25;
    color: #0b0c0c;
    padding: 15px; margin-top: 20px; margin-bottom: 20px;
    clear: both; border-left: 10px solid #b1b4b6;
    white-space: pre-wrap; font-family: inherit;
}
@media (min-width: 768px) { .govuk-inset-text { font-size: 19px; line-height: 1.3157894737; } }

/* ─── Details ─────────────────────────────────────────────────────────────── */
.govuk-details { font-size: 16px; line-height: 1.25; margin-bottom: 20px; }
@media (min-width: 768px) {
    .govuk-details { font-size: 19px; line-height: 1.3157894737; margin-bottom: 30px; }
}
.govuk-details__summary {
    display: inline-block; position: relative;
    margin-bottom: 5px; padding-left: 25px;
    color: #1d70b8; cursor: pointer;
    font-size: inherit; line-height: 1.25;
}
.govuk-details__summary:hover { color: #003078; }
.govuk-details__summary:focus {
    outline: 3px solid transparent; color: #0b0c0c;
    background-color: #fd0; box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
}
.govuk-details__summary::before {
    content: "\25B6"; position: absolute; top: 0; left: 0;
    font-size: .75em; line-height: 2;
}
.govuk-details[open] > .govuk-details__summary::before { content: "\25BC"; }
.govuk-details__text {
    padding: 15px; padding-left: 20px;
    border-left: 5px solid #b1b4b6;
}
.govuk-details__text p { margin-top: 0; margin-bottom: 15px; }
.govuk-details__text p:last-child { margin-bottom: 0; }

/* ─── Warning Text ────────────────────────────────────────────────────────── */
.govuk-warning-text {
    position: relative; margin-bottom: 20px; padding: 10px 0;
}
.govuk-warning-text__icon {
    font-weight: 700; box-sizing: border-box;
    display: inline-block; position: absolute; left: 0; min-width: 35px;
    min-height: 35px; margin-top: -7px; padding-top: 3px;
    border: 3px solid #0b0c0c; border-radius: 50%;
    color: #fff; background: #0b0c0c;
    font-size: 30px; line-height: 29px; text-align: center;
    -webkit-user-select: none; user-select: none;
}
.govuk-warning-text__text {
    display: block; padding-left: 45px;
    font-size: 16px; font-weight: 700;
}
@media (min-width: 768px) { .govuk-warning-text__text { font-size: 19px; } }

/* ─── Margin overrides ────────────────────────────────────────────────────── */
.govuk-\!-margin-top-6 { margin-top: 30px !important; }
@media (min-width: 768px) { .govuk-\!-margin-top-6 { margin-top: 40px !important; } }
.govuk-\!-margin-bottom-6 { margin-bottom: 30px !important; }
@media (min-width: 768px) { .govuk-\!-margin-bottom-6 { margin-bottom: 40px !important; } }

/* ─── Footer ──────────────────────────────────────────────────────────────── */
.govuk-footer {
    font-size: 14px; line-height: 1.14285;
    padding-top: 25px; padding-bottom: 15px;
    border-top: 1px solid #b1b4b6;
    color: #0b0c0c; background: #f3f2f1;
}
@media (min-width: 768px) { .govuk-footer { font-size: 16px; line-height: 1.25; padding-top: 40px; padding-bottom: 25px; } }
.govuk-footer__meta {
    display: flex; flex-wrap: wrap;
    align-items: flex-end; justify-content: center;
}
.govuk-footer__meta-item { margin-right: 15px; margin-bottom: 25px; }
.govuk-footer__meta-item--grow { flex: 1; }
@media (max-width: 768px) { .govuk-footer__meta-item--grow { flex-basis: 320px; } }
.govuk-footer__inline-list { margin: 0; padding: 0; list-style: none; }
.govuk-footer__inline-list-item { display: inline-block; margin-right: 15px; margin-bottom: 5px; }
.govuk-footer__link { color: #0b0c0c; }
.govuk-footer__link:link, .govuk-footer__link:visited { color: #0b0c0c; }
.govuk-footer__link:hover { color: rgba(11,12,12,.99); text-decoration-thickness: max(3px, .1875rem, .12em); }
.govuk-footer__link:focus {
    outline: 3px solid transparent; color: #0b0c0c;
    background-color: #fd0; box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
    text-decoration: none;
}
.govuk-footer__licence-logo { display: inline-block; margin-right: 10px; vertical-align: top; }
.govuk-footer__licence-description { display: inline-block; font-size: inherit; }
.govuk-footer__copyright-logo { display: inline-block; min-width: 125px; text-align: center; white-space: nowrap; }

/* ─── List ────────────────────────────────────────────────────────────────── */
.govuk-list { font-size: 16px; line-height: 1.25; margin-top: 0; margin-bottom: 15px; padding-left: 0; list-style-type: none; }
@media (min-width: 768px) { .govuk-list { font-size: 19px; line-height: 1.3157894737; margin-bottom: 20px; } }
.govuk-list > li { margin-bottom: 5px; }
.govuk-list--bullet { padding-left: 20px; list-style-type: disc; }
.govuk-list--number { padding-left: 20px; list-style-type: decimal; }
.govuk-list--bullet > li, .govuk-list--number > li { margin-bottom: 5px; }

/* ─── Start Button ────────────────────────────────────────────────────────── */
.govuk-button--start {
    font-weight: 700; font-size: 18px; line-height: 1;
    display: inline-flex; align-items: center;
    min-height: 44px; padding: 10px 15px;
    text-decoration: none;
}
@media (min-width: 768px) { .govuk-button--start { font-size: 24px; padding: 12px 20px; } }
.govuk-button__start-icon { margin-left: 10px; vertical-align: middle; flex-shrink: 0; }

/* ─── Checklist Table ─────────────────────────────────────────────────────── */
.checklist-table {
    width: 100%; border-collapse: collapse; margin-bottom: 20px;
    font-size: 16px; line-height: 1.25;
}
@media (min-width: 768px) { .checklist-table { font-size: 19px; } }
.checklist-table th, .checklist-table td {
    padding: 10px 15px 10px 0;
    border-bottom: 1px solid #b1b4b6;
    text-align: left; vertical-align: top;
}
.checklist-table th { font-weight: 700; }
.checklist-table td:first-child { width: 30px; text-align: center; padding-right: 10px; }
