:root {
    --hg-na-navy: #071f45;
    --hg-na-navy-2: #0d326c;
    --hg-na-gold: #e5b53b;
    --hg-na-gold-soft: #fff7df;
    --hg-na-ink: #172033;
    --hg-na-muted: #647085;
    --hg-na-border: #dbe2ec;
    --hg-na-surface: #ffffff;
    --hg-na-bg: #f4f7fb;
}

.hg-na-intro,
.hg-na-adapted {
    max-width: 1120px;
    margin-left: auto;
    margin-right: auto;
}

.hg-na-intro {
    display: flex;
    gap: 24px;
    align-items: center;
    padding: 30px;
    margin-bottom: 22px;
    color: #fff;
    background: linear-gradient(135deg, var(--hg-na-navy), var(--hg-na-navy-2));
    border: 1px solid rgba(229,181,59,.45);
    border-radius: 22px;
    box-shadow: 0 18px 48px rgba(7,31,69,.16);
}

.hg-na-intro img {
    width: 108px;
    height: 108px;
    object-fit: contain;
    padding: 8px;
    background: #fff;
    border-radius: 18px;
}

.hg-na-intro h1 {
    margin: 2px 0 8px;
    color: #fff;
    font-size: clamp(28px, 4vw, 46px);
    line-height: 1.08;
}

.hg-na-intro p { margin: 5px 0; color: rgba(255,255,255,.88); }
.hg-na-eyebrow { color: var(--hg-na-gold) !important; font-weight: 800; letter-spacing: .14em; font-size: 12px; }
.hg-na-notice { display: inline-block; margin-top: 10px !important; padding: 7px 11px; border-radius: 999px; background: rgba(229,181,59,.14); border: 1px solid rgba(229,181,59,.35); }

.hg-na-adapted {
    padding: 0;
    background: transparent;
}

.hg-na-adapted .wlsm-registration-section {
    overflow: hidden;
    margin: 0 0 20px;
    background: var(--hg-na-surface);
    border: 1px solid var(--hg-na-border);
    border-radius: 18px;
    box-shadow: 0 10px 30px rgba(20,42,80,.06);
}

.hg-na-adapted .wlsm-registration-section-header {
    margin: 0;
    padding: 16px 22px;
    background: linear-gradient(90deg, var(--hg-na-navy), #123c79);
    border-bottom: 3px solid var(--hg-na-gold);
}

.hg-na-adapted .wlsm-registration-section-title {
    margin: 0 !important;
    color: #fff !important;
    font-size: 18px !important;
    letter-spacing: .01em;
}

.hg-na-adapted .wlsm-registration-section > .wlsm-row,
.hg-na-adapted .wlsm-registration-section > div:not(.wlsm-registration-section-header),
.hg-na-section-body {
    padding: 20px 22px 8px;
}

.hg-na-adapted label {
    display: block;
    margin-bottom: 7px;
    color: var(--hg-na-ink);
    font-weight: 700;
    font-size: 13px;
}

.hg-na-adapted .wlsm-form-control,
.hg-na-control {
    min-height: 46px;
    border: 1px solid #cbd5e1 !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: none !important;
    color: var(--hg-na-ink) !important;
}

.hg-na-adapted textarea.wlsm-form-control { min-height: 94px; }
.hg-na-adapted .wlsm-form-control:focus,
.hg-na-control:focus {
    border-color: var(--hg-na-gold) !important;
    box-shadow: 0 0 0 3px rgba(229,181,59,.18) !important;
    outline: none !important;
}

.hg-na-required,
.hg-na-check strong { color: #b42318; }

.hg-na-check {
    display: flex !important;
    gap: 11px;
    align-items: flex-start;
    padding: 13px 15px;
    margin: 0 0 10px !important;
    background: #f8fafc;
    border: 1px solid var(--hg-na-border);
    border-radius: 11px;
    font-weight: 600 !important;
    line-height: 1.45;
}

.hg-na-check input { margin-top: 3px; width: 18px; height: 18px; flex: 0 0 18px; }
.hg-na-declarations { padding: 20px 22px 8px; }
.hg-na-service-row .hg-na-check { min-height: 54px; align-items: center; }

.hg-na-adapted #wlsm-submit-registration-btn {
    display: block;
    width: min(100%, 420px);
    min-height: 54px;
    margin: 26px auto 10px;
    border: 0 !important;
    border-radius: 12px !important;
    background: linear-gradient(135deg, var(--hg-na-gold), #f4cf6b) !important;
    color: var(--hg-na-navy) !important;
    font-weight: 900 !important;
    font-size: 16px !important;
    box-shadow: 0 10px 24px rgba(188,137,17,.22);
}

.hg-na-success-reference {
    margin-top: 16px;
    padding: 18px;
    text-align: center;
    background: var(--hg-na-gold-soft);
    border: 1px solid var(--hg-na-gold);
    border-radius: 12px;
}
.hg-na-success-reference span,
.hg-na-success-reference small { display: block; }
.hg-na-success-reference strong { display: block; margin: 5px 0; color: var(--hg-na-navy); font-size: 24px; letter-spacing: .05em; }

@media (max-width: 700px) {
    .hg-na-intro { align-items: flex-start; padding: 22px; border-radius: 16px; }
    .hg-na-intro img { width: 72px; height: 72px; }
    .hg-na-adapted .wlsm-registration-section-header { padding: 14px 16px; }
    .hg-na-adapted .wlsm-registration-section > .wlsm-row,
    .hg-na-adapted .wlsm-registration-section > div:not(.wlsm-registration-section-header),
    .hg-na-section-body,
    .hg-na-declarations { padding-left: 15px; padding-right: 15px; }
}


/* ==========================================================
   Form control typography and alignment — v1.0.1
   The premium theme may apply decorative heading fonts to
   native select controls. Keep every application value clear,
   vertically centred and consistent without changing WLSM's
   field names, IDs, routes or JavaScript behaviour.
   ========================================================== */
.hg-na-adapted input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.hg-na-adapted select,
.hg-na-adapted textarea,
.hg-na-adapted .wlsm-form-control,
.hg-na-control {
    box-sizing: border-box !important;
    width: 100%;
    max-width: 100%;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
    font-size: 15px !important;
    font-style: normal !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-indent: 0 !important;
}

.hg-na-adapted input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.hg-na-adapted select,
.hg-na-control:not(textarea) {
    height: 52px !important;
    min-height: 52px !important;
}

.hg-na-adapted input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.hg-na-adapted textarea,
.hg-na-adapted .hg-na-control:not(select) {
    padding: 12px 15px !important;
    line-height: 1.4 !important;
}

.hg-na-adapted select,
.hg-na-adapted select.wlsm-form-control,
.hg-na-adapted select.hg-na-control {
    padding: 0 42px 0 15px !important;
    line-height: normal !important;
    vertical-align: middle !important;
    background-position: right 14px center !important;
    background-size: 16px auto !important;
    cursor: pointer;
}

.hg-na-adapted select option {
    color: var(--hg-na-ink) !important;
    background: #fff !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
    font-size: 15px !important;
    font-style: normal !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.hg-na-adapted input::placeholder,
.hg-na-adapted textarea::placeholder,
.hg-na-control::placeholder {
    color: #6b7280 !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
    font-size: 15px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    opacity: 1 !important;
}

.hg-na-adapted input[type="date"] {
    padding-right: 12px !important;
    line-height: normal !important;
    color-scheme: light;
}

.hg-na-adapted input[type="file"] {
    width: 100%;
    max-width: 100%;
    min-height: 48px;
    padding: 8px !important;
    color: var(--hg-na-ink) !important;
    background: #fff !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 10px !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
}

.hg-na-adapted label,
.hg-na-adapted .wlsm-form-group > label {
    min-height: 18px;
    line-height: 1.4 !important;
    overflow-wrap: anywhere;
}

.hg-na-adapted .wlsm-form-group {
    min-width: 0;
    margin-bottom: 18px;
}

.hg-na-adapted .wlsm-row {
    align-items: flex-start;
}

@media (max-width: 700px) {
    .hg-na-adapted input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    .hg-na-adapted select,
    .hg-na-control:not(textarea) {
        height: 50px !important;
        min-height: 50px !important;
        font-size: 16px !important;
    }

    .hg-na-adapted select option,
    .hg-na-adapted input::placeholder,
    .hg-na-adapted textarea::placeholder,
    .hg-na-control::placeholder {
        font-size: 16px !important;
    }
}

/* ==========================================================
   Royal Premium Admissions Presentation — v1.0.2
   Visual refinement only. WLSM field names, IDs, AJAX routes,
   nonces, fee retrieval, submission handlers and tables remain
   untouched.
   ========================================================== */
:root {
    --hg-na-royal-navy: #061a3a;
    --hg-na-royal-navy-2: #0b2f67;
    --hg-na-royal-blue: #123f82;
    --hg-na-royal-gold: #d6a928;
    --hg-na-royal-gold-light: #f3d77a;
    --hg-na-royal-ivory: #fffaf0;
    --hg-na-royal-paper: #fbfcff;
    --hg-na-royal-line: #dbe3ef;
    --hg-na-royal-shadow: 0 18px 50px rgba(6, 26, 58, .10);
}

/* Form canvas */
.hg-na-adapted {
    counter-reset: hg-na-section-counter;
    position: relative;
    padding: 18px 18px 28px;
    border: 1px solid rgba(11, 47, 103, .12);
    border-radius: 28px;
    background:
        radial-gradient(circle at 10% 0%, rgba(214, 169, 40, .08), transparent 28%),
        radial-gradient(circle at 100% 30%, rgba(18, 63, 130, .06), transparent 32%),
        linear-gradient(180deg, #ffffff 0%, var(--hg-na-royal-paper) 100%);
    box-shadow: 0 24px 70px rgba(6, 26, 58, .08);
    isolation: isolate;
}

.hg-na-adapted::before,
.hg-na-adapted::after {
    content: "";
    position: absolute;
    z-index: -1;
    pointer-events: none;
}

.hg-na-adapted::before {
    inset: 8px;
    border: 1px solid rgba(214, 169, 40, .24);
    border-radius: 22px;
}

.hg-na-adapted::after {
    top: 0;
    left: 50%;
    width: 92px;
    height: 4px;
    transform: translateX(-50%);
    border-radius: 0 0 20px 20px;
    background: linear-gradient(90deg, transparent, var(--hg-na-royal-gold), transparent);
}

/* Royal introduction banner: no duplicate logo; the site header already carries it. */
.hg-na-intro {
    position: relative;
    display: block;
    overflow: hidden;
    padding: 38px clamp(24px, 5vw, 58px) 34px;
    text-align: center;
    border: 1px solid rgba(243, 215, 122, .52);
    border-radius: 26px;
    background:
        radial-gradient(circle at 15% 20%, rgba(243, 215, 122, .15), transparent 28%),
        radial-gradient(circle at 90% 85%, rgba(255, 255, 255, .08), transparent 30%),
        linear-gradient(135deg, var(--hg-na-royal-navy) 0%, var(--hg-na-royal-navy-2) 58%, #123d78 100%);
    box-shadow: 0 22px 55px rgba(6, 26, 58, .22);
}

.hg-na-intro::before,
.hg-na-intro::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.hg-na-intro::before {
    inset: 10px;
    border: 1px solid rgba(243, 215, 122, .26);
    border-radius: 18px;
}

.hg-na-intro::after {
    left: 50%;
    bottom: 18px;
    width: min(68%, 520px);
    height: 1px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, transparent, rgba(243, 215, 122, .9), transparent);
}

.hg-na-intro > div {
    position: relative;
    z-index: 1;
    max-width: 850px;
    margin: 0 auto;
}

.hg-na-intro img { display: none !important; }

.hg-na-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 10px !important;
    color: var(--hg-na-royal-gold-light) !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: .19em !important;
    text-transform: uppercase;
}

.hg-na-eyebrow::before,
.hg-na-eyebrow::after {
    content: "";
    width: 28px;
    height: 1px;
    background: currentColor;
    opacity: .85;
}

.hg-na-intro h1 {
    margin: 0 0 11px !important;
    color: #fff !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(30px, 4.6vw, 50px) !important;
    font-weight: 700 !important;
    line-height: 1.08 !important;
    letter-spacing: -.025em !important;
    text-shadow: 0 2px 18px rgba(0, 0, 0, .18);
}

.hg-na-intro p:not(.hg-na-eyebrow):not(.hg-na-notice) {
    max-width: 720px;
    margin: 0 auto 12px !important;
    color: rgba(255, 255, 255, .88) !important;
    font-size: 15px;
    line-height: 1.65;
}

.hg-na-notice {
    position: relative;
    z-index: 1;
    padding: 9px 16px !important;
    color: #fff8df !important;
    background: rgba(214, 169, 40, .13) !important;
    border: 1px solid rgba(243, 215, 122, .48) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .10);
    font-size: 13px;
    line-height: 1.45;
}

/* Royal section cards */
.hg-na-adapted .wlsm-registration-section {
    counter-increment: hg-na-section-counter;
    position: relative;
    margin: 0 0 24px;
    border: 1px solid rgba(11, 47, 103, .15);
    border-radius: 20px;
    background: rgba(255, 255, 255, .98);
    box-shadow: var(--hg-na-royal-shadow);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

@media (hover: hover) {
    .hg-na-adapted .wlsm-registration-section:hover {
        transform: translateY(-2px);
        border-color: rgba(214, 169, 40, .48);
        box-shadow: 0 22px 58px rgba(6, 26, 58, .13);
    }
}

.hg-na-adapted .wlsm-registration-section-header {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 72px;
    padding: 17px 26px 18px 82px;
    border: 0;
    border-bottom: 1px solid rgba(243, 215, 122, .48);
    background:
        linear-gradient(90deg, rgba(255,255,255,.035), transparent 38%),
        linear-gradient(120deg, var(--hg-na-royal-navy) 0%, var(--hg-na-royal-blue) 100%);
}

.hg-na-adapted .wlsm-registration-section-header::before {
    content: counter(hg-na-section-counter, decimal-leading-zero);
    position: absolute;
    left: 24px;
    top: 50%;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    transform: translateY(-50%);
    border: 1px solid rgba(243, 215, 122, .82);
    border-radius: 50%;
    color: var(--hg-na-royal-gold-light);
    background: rgba(255, 255, 255, .055);
    box-shadow: inset 0 0 0 4px rgba(214, 169, 40, .08);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .03em;
}

.hg-na-adapted .wlsm-registration-section-header::after {
    content: "";
    position: absolute;
    left: 82px;
    right: 26px;
    bottom: 13px;
    height: 1px;
    background: linear-gradient(90deg, var(--hg-na-royal-gold), rgba(243,215,122,.22), transparent);
}

.hg-na-adapted .wlsm-registration-section-title {
    position: relative;
    z-index: 1;
    width: 100%;
    margin: 0 0 5px !important;
    color: #fff !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(17px, 2.1vw, 21px) !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: .025em !important;
    text-align: left;
    text-transform: uppercase;
    text-shadow: 0 1px 12px rgba(0, 0, 0, .15);
}

.hg-na-adapted .wlsm-registration-section-content,
.hg-na-adapted .hg-na-section-body,
.hg-na-adapted .wlsm-registration-section > .wlsm-row,
.hg-na-adapted .wlsm-registration-section > div:not(.wlsm-registration-section-header) {
    padding: 26px 26px 10px;
}

/* Field labels and groups */
.hg-na-adapted .wlsm-form-group {
    margin-bottom: 21px;
}

.hg-na-adapted label,
.hg-na-adapted .wlsm-form-group > label {
    margin-bottom: 8px;
    color: #12213a;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 750 !important;
    line-height: 1.42 !important;
    letter-spacing: .005em !important;
}

.hg-na-required,
.hg-na-adapted label .wlsm-text-danger {
    color: #b42318 !important;
}

/* Premium controls */
.hg-na-adapted input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.hg-na-adapted select,
.hg-na-adapted textarea,
.hg-na-adapted .wlsm-form-control,
.hg-na-control {
    border: 1px solid #cfd9e7 !important;
    border-radius: 13px !important;
    color: #132238 !important;
    background: linear-gradient(180deg, #ffffff 0%, #fcfdff 100%) !important;
    box-shadow:
        0 1px 2px rgba(6, 26, 58, .03),
        inset 0 1px 0 rgba(255, 255, 255, .92) !important;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease, transform .18s ease;
}

.hg-na-adapted input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):hover,
.hg-na-adapted select:hover,
.hg-na-adapted textarea:hover,
.hg-na-adapted .wlsm-form-control:hover {
    border-color: #aebdd2 !important;
}

.hg-na-adapted input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus,
.hg-na-adapted select:focus,
.hg-na-adapted textarea:focus,
.hg-na-adapted .wlsm-form-control:focus,
.hg-na-control:focus {
    border-color: var(--hg-na-royal-gold) !important;
    background: #fff !important;
    box-shadow:
        0 0 0 4px rgba(214, 169, 40, .16),
        0 8px 22px rgba(6, 26, 58, .08) !important;
    transform: translateY(-1px);
}

.hg-na-adapted input[readonly],
.hg-na-adapted input:disabled,
.hg-na-adapted select:disabled,
.hg-na-adapted textarea:disabled {
    color: #5e6b7d !important;
    background: #f4f7fb !important;
    border-color: #dce3ed !important;
    cursor: not-allowed;
}

.hg-na-adapted input::placeholder,
.hg-na-adapted textarea::placeholder,
.hg-na-control::placeholder {
    color: #7a8799 !important;
}

/* Native radio and checkbox controls */
.hg-na-adapted input[type="radio"],
.hg-na-adapted input[type="checkbox"] {
    accent-color: var(--hg-na-royal-navy-2);
}

.hg-na-adapted .wlsm-form-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 9px 13px;
    margin: 0 8px 9px 0;
    border: 1px solid #d8e0eb;
    border-radius: 999px;
    background: #f9fbfe;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.hg-na-adapted .wlsm-form-check:hover {
    border-color: rgba(214, 169, 40, .65);
    background: var(--hg-na-royal-ivory);
    box-shadow: 0 5px 14px rgba(6, 26, 58, .06);
}

.hg-na-adapted .wlsm-form-check input {
    width: 18px;
    height: 18px;
    margin: 0 !important;
}

.hg-na-adapted .wlsm-form-check label {
    margin: 0 !important;
    min-height: 0;
}

.hg-na-check {
    min-height: 58px;
    padding: 14px 16px;
    border: 1px solid #d7e0eb;
    border-radius: 14px;
    background: linear-gradient(180deg, #fbfcff, #f7f9fc);
    box-shadow: inset 4px 0 0 rgba(214, 169, 40, .72);
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.hg-na-check:hover {
    border-color: rgba(214, 169, 40, .65);
    background: var(--hg-na-royal-ivory);
    box-shadow: inset 4px 0 0 var(--hg-na-royal-gold), 0 7px 18px rgba(6, 26, 58, .06);
}

.hg-na-check input {
    width: 19px;
    height: 19px;
}

/* File upload presentation */
.hg-na-adapted input[type="file"] {
    min-height: 54px;
    padding: 7px !important;
    border: 1px dashed #b8c5d7 !important;
    border-radius: 13px !important;
    background: #fbfcff !important;
}

.hg-na-adapted input[type="file"]::file-selector-button {
    min-height: 38px;
    padding: 8px 15px;
    margin-right: 12px;
    border: 1px solid rgba(214, 169, 40, .55);
    border-radius: 9px;
    color: var(--hg-na-royal-navy);
    background: linear-gradient(180deg, #fff9e8, #f5df9b);
    font-weight: 750;
    cursor: pointer;
}

/* Royal fee schedule */
#registration_fees .wlsm-registration-section-content {
    padding-bottom: 24px;
}

#registration_fees #wlsm_fees {
    position: relative;
    overflow-x: auto;
    padding: 4px 2px 10px;
    scrollbar-color: var(--hg-na-royal-gold) #edf1f7;
    scrollbar-width: thin;
}

#registration_fees #wlsm_fees table {
    width: 100%;
    min-width: 690px;
    overflow: hidden;
    border: 1px solid #d6dfeb;
    border-spacing: 0;
    border-collapse: separate;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 13px 32px rgba(6, 26, 58, .08);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

#registration_fees #wlsm_fees thead th {
    padding: 14px 16px;
    border: 0;
    border-right: 1px solid rgba(255, 255, 255, .12);
    color: #fff;
    background: linear-gradient(135deg, var(--hg-na-royal-navy), var(--hg-na-royal-blue));
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: .055em;
    text-align: left;
    text-transform: uppercase;
}

#registration_fees #wlsm_fees thead th:last-child { border-right: 0; }

#registration_fees #wlsm_fees tbody td {
    padding: 14px 16px;
    border: 0;
    border-right: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
    color: #23324a;
    background: #fff;
    font-size: 14px;
    line-height: 1.45;
    vertical-align: middle;
}

#registration_fees #wlsm_fees tbody tr:nth-child(even) td {
    background: #f8fafd;
}

#registration_fees #wlsm_fees tbody tr:hover td {
    background: #fffaf0;
}

#registration_fees #wlsm_fees tbody td:last-child { border-right: 0; }
#registration_fees #wlsm_fees tbody tr:last-child td { border-bottom: 0; }

#registration_fees #wlsm_fees tbody tr:last-child td {
    color: var(--hg-na-royal-navy);
    background: linear-gradient(180deg, #fff9e8, #fff2c8);
    font-weight: 800;
}

#registration_fees #wlsm_fees th:nth-child(3),
#registration_fees #wlsm_fees th:nth-child(4),
#registration_fees #wlsm_fees td:nth-child(3),
#registration_fees #wlsm_fees td:nth-child(4) {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* Messages and validation */
.hg-na-adapted .wlsm-alert,
.hg-na-adapted .wlsm-alert-success,
.hg-na-adapted .wlsm-alert-danger,
.hg-na-adapted .wlsm-text-danger {
    border-radius: 13px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.hg-na-adapted .wlsm-alert-success {
    padding: 18px !important;
    border: 1px solid #9bc7a7 !important;
    background: #eff9f2 !important;
    color: #135b2d !important;
}

.hg-na-adapted .wlsm-alert-danger,
.hg-na-adapted .wlsm-text-danger {
    padding: 11px 13px;
    border: 1px solid #efb6b2 !important;
    background: #fff3f2 !important;
    color: #9f241d !important;
}

.hg-na-success-reference {
    padding: 22px 18px;
    border: 1px solid var(--hg-na-royal-gold);
    border-radius: 15px;
    background:
        radial-gradient(circle at 50% 0%, rgba(214,169,40,.16), transparent 55%),
        linear-gradient(180deg, #fffaf0, #fff4ce);
    box-shadow: 0 10px 24px rgba(151, 109, 15, .10);
}

.hg-na-success-reference strong {
    color: var(--hg-na-royal-navy);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(22px, 4vw, 29px);
}

/* Submit area */
.hg-na-adapted + .wlsm-border-top,
#wlsm-submit-registration-form > .wlsm-border-top {
    position: relative;
    margin-top: 4px !important;
    padding: 25px 0 3px !important;
    border-top: 1px solid rgba(214, 169, 40, .42) !important;
}

.hg-na-adapted #wlsm-submit-registration-btn {
    position: relative;
    overflow: hidden;
    min-height: 58px;
    border: 1px solid #bd8d13 !important;
    border-radius: 14px !important;
    background: linear-gradient(135deg, #f3d77a 0%, var(--hg-na-royal-gold) 52%, #f6df91 100%) !important;
    box-shadow:
        0 13px 28px rgba(171, 123, 12, .25),
        inset 0 1px 0 rgba(255, 255, 255, .65);
    color: var(--hg-na-royal-navy) !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    letter-spacing: .075em;
    text-transform: uppercase;
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.hg-na-adapted #wlsm-submit-registration-btn:hover {
    transform: translateY(-2px);
    filter: saturate(1.05);
    box-shadow:
        0 17px 34px rgba(171, 123, 12, .31),
        inset 0 1px 0 rgba(255, 255, 255, .72);
}

.hg-na-adapted #wlsm-submit-registration-btn:focus-visible {
    outline: 3px solid rgba(214, 169, 40, .34) !important;
    outline-offset: 4px;
}

.hg-na-adapted #wlsm-submit-registration-btn:disabled {
    opacity: .65;
    transform: none;
    cursor: wait;
}

/* Tablet and mobile refinements */
@media (max-width: 900px) {
    .hg-na-adapted {
        padding: 14px 13px 22px;
        border-radius: 22px;
    }

    .hg-na-adapted .wlsm-registration-section-header {
        padding-left: 75px;
    }

    .hg-na-adapted .wlsm-registration-section-header::before {
        left: 20px;
    }

    .hg-na-adapted .wlsm-registration-section-header::after {
        left: 75px;
    }
}

@media (max-width: 700px) {
    .hg-na-intro {
        padding: 30px 20px 29px;
        border-radius: 20px;
    }

    .hg-na-eyebrow::before,
    .hg-na-eyebrow::after {
        width: 16px;
    }

    .hg-na-notice {
        border-radius: 12px;
    }

    .hg-na-adapted {
        padding: 10px 9px 18px;
        border-radius: 18px;
    }

    .hg-na-adapted::before {
        inset: 5px;
        border-radius: 14px;
    }

    .hg-na-adapted .wlsm-registration-section {
        margin-bottom: 18px;
        border-radius: 16px;
    }

    .hg-na-adapted .wlsm-registration-section-header {
        min-height: 66px;
        padding: 15px 15px 16px 66px;
    }

    .hg-na-adapted .wlsm-registration-section-header::before {
        left: 15px;
        width: 38px;
        height: 38px;
        font-size: 12px;
    }

    .hg-na-adapted .wlsm-registration-section-header::after {
        left: 66px;
        right: 15px;
        bottom: 11px;
    }

    .hg-na-adapted .wlsm-registration-section-title {
        font-size: 16px !important;
        line-height: 1.28 !important;
    }

    .hg-na-adapted .wlsm-registration-section-content,
    .hg-na-adapted .hg-na-section-body,
    .hg-na-adapted .wlsm-registration-section > .wlsm-row,
    .hg-na-adapted .wlsm-registration-section > div:not(.wlsm-registration-section-header) {
        padding: 20px 15px 6px;
    }

    .hg-na-adapted .wlsm-form-check {
        display: flex;
        width: 100%;
        margin-right: 0;
        border-radius: 12px;
    }

    #registration_fees #wlsm_fees {
        margin: 0 -2px;
        padding-bottom: 12px;
    }

    .hg-na-adapted #wlsm-submit-registration-btn {
        width: 100%;
        min-height: 56px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hg-na-adapted *,
    .hg-na-adapted *::before,
    .hg-na-adapted *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* ==========================================================
   Balanced Full-Width Sans Presentation — v1.0.3
   Layout and typography only. WLSM routes, field names,
   nonces, AJAX handlers, fees and database logic are unchanged.
   ========================================================== */
:root {
    --hg-na-font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --hg-na-page-max: 1320px;
}

/* Release the application page from Astra/sidebar content constraints. */
body.hg-na-application-page .site-content > .ast-container,
body.hg-na-application-page .site-content .ast-container,
body.hg-na-application-page #primary,
body.hg-na-application-page .content-area,
body.hg-na-application-page main#main,
body.hg-na-application-page article.ast-article-single,
body.hg-na-application-page .entry-content {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body.hg-na-application-page #secondary,
body.hg-na-application-page aside.widget-area {
    display: none !important;
}

body.hg-na-application-page .site-content > .ast-container,
body.hg-na-application-page .site-content .ast-container {
    padding-left: clamp(12px, 2.5vw, 36px) !important;
    padding-right: clamp(12px, 2.5vw, 36px) !important;
}

body.hg-na-application-page .wlsm.wlsm-grid,
body.hg-na-application-page #wlsm-submit-registration-section,
body.hg-na-application-page #wlsm-submit-registration-form {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    float: none !important;
    clear: both !important;
    box-sizing: border-box !important;
}

body.hg-na-application-page .hg-na-intro,
body.hg-na-application-page .hg-na-adapted {
    width: min(100%, var(--hg-na-page-max)) !important;
    max-width: var(--hg-na-page-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

/* One clean sans-serif family throughout the public application. */
body.hg-na-application-page .hg-na-intro,
body.hg-na-application-page .hg-na-intro *,
body.hg-na-application-page .hg-na-adapted,
body.hg-na-application-page .hg-na-adapted * {
    font-family: var(--hg-na-font-sans) !important;
}

body.hg-na-application-page .hg-na-intro h1 {
    font-family: var(--hg-na-font-sans) !important;
    font-size: clamp(31px, 4.4vw, 52px) !important;
    font-weight: 800 !important;
    line-height: 1.08 !important;
    letter-spacing: -.035em !important;
}

body.hg-na-application-page .hg-na-eyebrow {
    font-family: var(--hg-na-font-sans) !important;
    font-weight: 800 !important;
    letter-spacing: .16em !important;
}

/* Beat WLSM's high-specificity !important section rules. */
body.hg-na-application-page .hg-na-adapted .wlsm-registration-section {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 24px !important;
    overflow: hidden !important;
    border: 1px solid rgba(11, 47, 103, .15) !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 16px 42px rgba(6, 26, 58, .09) !important;
}

body.hg-na-application-page .hg-na-adapted .wlsm-registration-section-header {
    display: flex !important;
    align-items: center !important;
    min-height: 68px !important;
    margin: 0 !important;
    padding: 16px 24px 17px 78px !important;
    text-align: left !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(243, 215, 122, .52) !important;
    background: linear-gradient(112deg, #061a3a 0%, #0b326d 62%, #15498f 100%) !important;
}

body.hg-na-application-page .hg-na-adapted .wlsm-registration-section-header::before {
    left: 22px !important;
    width: 40px !important;
    height: 40px !important;
    font-family: var(--hg-na-font-sans) !important;
    font-weight: 800 !important;
}

body.hg-na-application-page .hg-na-adapted .wlsm-registration-section-header::after {
    left: 78px !important;
    right: 24px !important;
}

body.hg-na-application-page .hg-na-adapted .wlsm-registration-section-title {
    width: 100% !important;
    margin: 0 0 4px !important;
    color: #fff !important;
    font-family: var(--hg-na-font-sans) !important;
    font-size: clamp(16px, 1.8vw, 20px) !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    letter-spacing: .025em !important;
    text-align: left !important;
    text-transform: uppercase !important;
}

body.hg-na-application-page .hg-na-adapted .wlsm-registration-section-content,
body.hg-na-application-page .hg-na-adapted .hg-na-section-body,
body.hg-na-application-page .hg-na-adapted .wlsm-registration-section > .wlsm-row,
body.hg-na-application-page .hg-na-adapted .wlsm-registration-section > div:not(.wlsm-registration-section-header) {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 26px 26px 8px !important;
    background: #fff !important;
    box-sizing: border-box !important;
}

/* True twelve-column layout, not a narrow Bootstrap strip. */
body.hg-na-application-page .hg-na-adapted .wlsm-row {
    display: grid !important;
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    gap: 0 24px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: start !important;
    box-sizing: border-box !important;
}

body.hg-na-application-page .hg-na-adapted .wlsm-row > .wlsm-col-4,
body.hg-na-application-page .hg-na-adapted .wlsm-row > .wlsm-col-6,
body.hg-na-application-page .hg-na-adapted .wlsm-row > .wlsm-col-12 {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    flex: none !important;
    box-sizing: border-box !important;
}

body.hg-na-application-page .hg-na-adapted .wlsm-row > .wlsm-col-4 { grid-column: span 4 !important; }
body.hg-na-application-page .hg-na-adapted .wlsm-row > .wlsm-col-6 { grid-column: span 6 !important; }
body.hg-na-application-page .hg-na-adapted .wlsm-row > .wlsm-col-12 { grid-column: 1 / -1 !important; }

/* Rows containing one or two visible controls are balanced rather than stuck left. */
body.hg-na-application-page .hg-na-adapted .wlsm-row.hg-na-row-1 > .wlsm-form-group {
    grid-column: 1 / -1 !important;
    width: min(100%, 720px) !important;
    justify-self: center !important;
}

body.hg-na-application-page .hg-na-adapted .wlsm-row.hg-na-row-2 > .wlsm-form-group {
    grid-column: span 6 !important;
}

/* Labels and values remain readable, with no decorative or broken lettering. */
body.hg-na-application-page .hg-na-adapted label,
body.hg-na-application-page .hg-na-adapted .wlsm-form-group > label {
    color: #12213a !important;
    font-family: var(--hg-na-font-sans) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

body.hg-na-application-page .hg-na-adapted input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.hg-na-application-page .hg-na-adapted select,
body.hg-na-application-page .hg-na-adapted textarea,
body.hg-na-application-page .hg-na-adapted .wlsm-form-control,
body.hg-na-application-page .hg-na-control {
    font-family: var(--hg-na-font-sans) !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
}

/* Gender and any future radio group: horizontal, spacious and never letter-stacked. */
body.hg-na-application-page .hg-na-adapted .hg-na-choice-group {
    display: flex !important;
    flex-wrap: wrap !important;
    align-content: flex-start !important;
    align-items: center !important;
    gap: 8px 10px !important;
}

body.hg-na-application-page .hg-na-adapted .hg-na-choice-group > label:first-child {
    flex: 0 0 100% !important;
    width: 100% !important;
}

body.hg-na-application-page .hg-na-adapted .wlsm-form-check,
body.hg-na-application-page .hg-na-adapted .wlsm-form-check-inline {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    width: auto !important;
    min-width: 104px !important;
    min-height: 42px !important;
    margin: 0 8px 8px 0 !important;
    padding: 9px 13px !important;
    white-space: nowrap !important;
    border: 1px solid #d8e0eb !important;
    border-radius: 11px !important;
    background: #f8fafc !important;
    box-sizing: border-box !important;
}

body.hg-na-application-page .hg-na-adapted .wlsm-form-check label,
body.hg-na-application-page .hg-na-adapted .wlsm-form-check-label {
    display: inline !important;
    width: auto !important;
    min-width: max-content !important;
    margin: 0 !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
}

body.hg-na-application-page .hg-na-adapted .wlsm-form-check input[type="radio"] {
    flex: 0 0 18px !important;
    width: 18px !important;
    height: 18px !important;
    margin: 0 !important;
}

/* Declarations and service choices use full readable lines. */
body.hg-na-application-page .hg-na-adapted .hg-na-check,
body.hg-na-application-page .hg-na-adapted .hg-na-check span {
    font-family: var(--hg-na-font-sans) !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}

/* Fee schedule and success reference also use Inter. */
body.hg-na-application-page #registration_fees #wlsm_fees table,
body.hg-na-application-page #registration_fees #wlsm_fees th,
body.hg-na-application-page #registration_fees #wlsm_fees td,
body.hg-na-application-page .hg-na-success-reference strong {
    font-family: var(--hg-na-font-sans) !important;
}

@media (max-width: 980px) {
    body.hg-na-application-page .hg-na-adapted .wlsm-row > .wlsm-col-4,
    body.hg-na-application-page .hg-na-adapted .wlsm-row > .wlsm-col-6,
    body.hg-na-application-page .hg-na-adapted .wlsm-row.hg-na-row-2 > .wlsm-form-group {
        grid-column: span 6 !important;
    }

    body.hg-na-application-page .hg-na-adapted .wlsm-row.hg-na-row-1 > .wlsm-form-group {
        width: min(100%, 680px) !important;
    }
}

@media (max-width: 680px) {
    body.hg-na-application-page .site-content > .ast-container,
    body.hg-na-application-page .site-content .ast-container {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    body.hg-na-application-page .hg-na-adapted {
        padding: 8px 7px 16px !important;
        border-radius: 16px !important;
    }

    body.hg-na-application-page .hg-na-adapted .wlsm-registration-section-header {
        min-height: 62px !important;
        padding: 14px 14px 15px 62px !important;
    }

    body.hg-na-application-page .hg-na-adapted .wlsm-registration-section-header::before {
        left: 13px !important;
        width: 36px !important;
        height: 36px !important;
    }

    body.hg-na-application-page .hg-na-adapted .wlsm-registration-section-header::after {
        left: 62px !important;
        right: 14px !important;
    }

    body.hg-na-application-page .hg-na-adapted .wlsm-registration-section-content,
    body.hg-na-application-page .hg-na-adapted .hg-na-section-body,
    body.hg-na-application-page .hg-na-adapted .wlsm-registration-section > .wlsm-row,
    body.hg-na-application-page .hg-na-adapted .wlsm-registration-section > div:not(.wlsm-registration-section-header) {
        padding: 19px 14px 5px !important;
    }

    body.hg-na-application-page .hg-na-adapted .wlsm-row {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }

    body.hg-na-application-page .hg-na-adapted .wlsm-row > .wlsm-col-4,
    body.hg-na-application-page .hg-na-adapted .wlsm-row > .wlsm-col-6,
    body.hg-na-application-page .hg-na-adapted .wlsm-row > .wlsm-col-12,
    body.hg-na-application-page .hg-na-adapted .wlsm-row.hg-na-row-1 > .wlsm-form-group,
    body.hg-na-application-page .hg-na-adapted .wlsm-row.hg-na-row-2 > .wlsm-form-group {
        grid-column: 1 !important;
        width: 100% !important;
        max-width: none !important;
        justify-self: stretch !important;
    }

    body.hg-na-application-page .hg-na-adapted .wlsm-form-check,
    body.hg-na-application-page .hg-na-adapted .wlsm-form-check-inline {
        min-width: 112px !important;
    }
}

/* ==========================================================
   Stable Centred Application Layout — v1.0.4
   Restores the proven v1.0.3 single-page form, centres the
   existing premium card, and removes the unused side column.
   No multi-step/wizard JavaScript is used in this release.
   ========================================================== */
body.hg-na-application-page .hg-application-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1040px) !important;
    justify-content: center !important;
    align-items: start !important;
    width: 100% !important;
    max-width: 1180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body.hg-na-application-page .hg-application-card {
    width: 100% !important;
    max-width: 1040px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body.hg-na-application-page .hg-application-sidebar {
    display: none !important;
}

body.hg-na-application-page .hg-online-application-content,
body.hg-na-application-page .hg-online-application-content > .entry-content,
body.hg-na-application-page .hg-online-application-content .wlsm,
body.hg-na-application-page .hg-online-application-content #wlsm-submit-registration-section {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body.hg-na-application-page .hg-na-intro,
body.hg-na-application-page .hg-na-adapted {
    --hg-na-page-max: 920px;
}

body.hg-na-application-page .hg-na-year-field input[readonly] {
    background: #f7f9fc !important;
    color: #082a52 !important;
    font-weight: 750 !important;
    cursor: default !important;
}

body.hg-na-application-page .hg-na-year-field small {
    display: block;
    margin-top: 7px;
    color: #66758a;
    font-size: 11px;
    line-height: 1.45;
}

@media (max-width: 1080px) {
    body.hg-na-application-page .hg-application-layout {
        grid-template-columns: minmax(0, 1fr) !important;
        max-width: 1040px !important;
    }
}
