html {
    font-size: 16px;
}

@media screen and (0 <= width <= 640px) {
    html {
        font-size: 12px;
        overflow-x: hidden;
    }
}

@media screen and (640px < width <= 1024px) {
    html {
        font-size: 12px;
    }
}

@media screen and (1024px < width <= 1440px) {
    html {
        font-size: 14px;
    }
}

@media screen and (1440px < width <= 1920px) {
    html {
        font-size: 16px;
    }
}

body {
    margin: 0;
    padding: 0;
    /* Baseline UI font before the theme and brand fonts load: a system sans-serif stack,
           never the browser default serif (Times New Roman). The theme overrides this once loaded. */
    font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
    width: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    /* below is to match framework7 defaults */
    line-height: 1.5;
    /*-webkit-text-size-adjust: 100%;*/ /* this causes fonts to be blown out on small screen sizes for iOS devices! */
    -webkit-font-smoothing: antialiased;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

a,
a:hover,
a:visited,
a:link {
    text-decoration: none;
    color: inherit;
}

hr {
    margin: 1rem 0;
    color: inherit;
    border: 0;
    border-top: 1px solid;
    opacity: 0.25;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-top: 0;
    margin-bottom: 0.5rem;
    font-weight: 500;
    line-height: 1.2;
    color: inherit;
}

h1 {
    font-size: calc(1.375rem + 1.5vw);
}

@media (min-width: 1200px) {
    h1 {
        font-size: 2.5rem;
    }
}

h2 {
    font-size: calc(1.325rem + 0.9vw);
}

@media (min-width: 1200px) {
    h2 {
        font-size: 2rem;
    }
}

h3 {
    font-size: calc(1.3rem + 0.6vw);
}

@media (min-width: 1200px) {
    h3 {
        font-size: 1.75rem;
    }
}

h4 {
    font-size: calc(1.275rem + 0.3vw);
}

@media (min-width: 1200px) {
    h4 {
        font-size: 1.5rem;
    }
}

h5 {
    font-size: 1.25rem;
}

h6 {
    font-size: 1rem;
}

p {
    margin-top: 0;
    margin-bottom: 1rem;
}

ol,
ul {
    padding-left: 2rem;
}

dl,
ol,
ul {
    margin-top: 0;
    margin-bottom: 1rem;
}

    ol ol,
    ol ul,
    ul ol,
    ul ul {
        margin-bottom: 0;
    }

blockquote {
    margin: 0 0 1rem;
}

b,
strong {
    font-weight: bolder;
}

small {
    font-size: 0.875em;
}

sub,
sup {
    position: relative;
    font-size: 0.75em;
    line-height: 0;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

img,
svg {
    vertical-align: middle;
}

table {
    caption-side: bottom;
    border-collapse: collapse;
}

th {
    text-align: inherit;
    text-align: -webkit-match-parent;
}

tbody,
td,
tfoot,
th,
thead,
tr {
    border-color: inherit;
    border-style: solid;
    border-width: 0;
}

label {
    display: inline-block;
}

button {
    border-radius: 0;
}

    button:focus:not(:focus-visible) {
        outline: 0;
    }

button,
input,
optgroup,
select,
textarea {
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

button,
select {
    text-transform: none;
}

[role='button'] {
    cursor: pointer;
}

select {
    word-wrap: normal;
}

    select:disabled {
        opacity: 1;
    }

[list]:not([type='date']):not([type='datetime-local']):not([type='month']):not([type='week']):not( [type='time'] )::-webkit-calendar-picker-indicator {
    display: none !important;
}

[type='button'],
[type='reset'],
[type='submit'],
button {
    -webkit-appearance: button;
    appearance: button;
}

    [type='button']:not(:disabled),
    [type='reset']:not(:disabled),
    [type='submit']:not(:disabled),
    button:not(:disabled) {
        cursor: pointer;
    }

::-moz-focus-inner {
    padding: 0;
    border-style: none;
}

textarea {
    resize: vertical;
}

fieldset {
    min-width: 0;
    padding: 0;
    margin: 0;
    border: 0;
}

@font-face {
    font-family: 'FortressDisplay';
    src: url('../fonts/Fortress-Display.ac452393.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'FortressNumbers';
    src: url('../fonts/Fortress-Numbers.9c30ed60.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'DenimWD';
    src: url('../fonts/DenimWD-Light.481a003b.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'DenimWD';
    src: url('../fonts/DenimWD-LightItalic.e7573b90.woff2') format('woff2');
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'DenimWD';
    src: url('../fonts/DenimWD-Regular.0dbf0c3e.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'DenimWD';
    src: url('../fonts/DenimWD-RegularItalic.20fdb986.woff2') format('woff2');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'DenimWD';
    src: url('../fonts/DenimWD-Medium.d17250ce.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'DenimWD';
    src: url('../fonts/DenimWD-MediumItalic.a9ebf611.woff2') format('woff2');
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'DenimWD';
    src: url('../fonts/DenimWD-SemiBold.f3ad8214.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'DenimWD';
    src: url('../fonts/DenimWD-SemiBoldItalic.0542f1f0.woff2') format('woff2');
    font-weight: 600;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'DenimWD';
    src: url('../fonts/DenimWD-Bold.57233c32.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'DenimWD';
    src: url('../fonts/DenimWD-BoldItalic.ef4bd195.woff2') format('woff2');
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'DenimWD';
    src: url('../fonts/DenimWD-Heavy.392db5a1.woff2') format('woff2');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'DenimWD';
    src: url('../fonts/DenimWD-HeavyItalic.1db33c70.woff2') format('woff2');
    font-weight: 900;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'National2';
    src: url('../fonts/national-2-bold-italic.a17ab22c.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'National2';
    src: url('../fonts/national-2-bold-italic.a17ab22c.woff2') format('woff2');
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'National2Compressed';
    src: url('../fonts/National2Cmp-BlackItalic.3af76d7f.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'National2Compressed';
    src: url('../fonts/National2Cmp-BlackItalic.3af76d7f.woff2') format('woff2');
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}

/*
       * HiDPI display-scaling correction.
       * Windows fractional scaling (125–175% -> DPR 1.25–1.75) renders the
       * desktop layout in a cramped, physically-enlarged viewport, so the
       * header/hero read as oversized. Counter it with `zoom` scaled per DPR
       * step so the net on-screen size lands at a consistent ~108% (= the
       * validated 0.72 at 150%: zoom = 1.08 / DPR) regardless of the user's
       * scaling choice. `--hidpi-zoom` also drives the viewport-unit
       * compensation in responsiveCSS.ts so vh/vw sizes stay put.
       *
       * Scoped to HiDPI displays in the squeezed desktop width band with a fine
       * pointer. Deliberately untouched: normal 1x displays (min-resolution),
       * large/"more space" screens (max-width), phones/tablets (min-width +
       * pointer:fine). It partially corrects rather than fully cancels the
       * scaling, which is a user accessibility choice. DPR 2 (Retina) is
       * sharpness, not enlargement, so it gets a gentle fixed value, not 0.5.
       */
@media (min-resolution: 1.25dppx) and (max-resolution: 1.374dppx) and (min-width: 1000px) and (max-width: 1536px) and (pointer: fine) {
    body {
        /* ~125% */
        --hidpi-zoom: 0.864;
        zoom: var(--hidpi-zoom);
    }
}

@media (min-resolution: 1.375dppx) and (max-resolution: 1.624dppx) and (min-width: 1000px) and (max-width: 1536px) and (pointer: fine) {
    body {
        /* ~150% */
        --hidpi-zoom: 0.72;
        zoom: var(--hidpi-zoom);
    }
}

@media (min-resolution: 1.625dppx) and (max-resolution: 1.874dppx) and (min-width: 1000px) and (max-width: 1536px) and (pointer: fine) {
    body {
        /* ~175% */
        --hidpi-zoom: 0.617;
        zoom: var(--hidpi-zoom);
    }
}

@media (min-resolution: 1.875dppx) and (min-width: 1000px) and (max-width: 1536px) and (pointer: fine) {
    body {
        /* 200% / Retina — gentle */
        --hidpi-zoom: 0.72;
        zoom: var(--hidpi-zoom);
    }
}

#standalone-nav-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.92);
    z-index: 2147483000;
    display: none;
    padding: 0 3%;
    font-family: DenimWD,Arial,sans-serif;
    color: #5e0041
}

    #standalone-nav-overlay.is-open {
        display: block
    }

#standalone-nav-panel {
    background: #fff;
    width: 100%;
    max-height: 94vh;
    overflow: auto;
    border-radius: 0 0 34px 34px;
    padding: 20px 3.4% 48px;
    box-shadow: 0 18px 50px rgba(0,0,0,.3)
}

.sn-top {
    display: grid;
    grid-template-columns: 1fr repeat(5,minmax(90px,1fr)) 1fr;
    align-items: center;
    min-height: 55px;
    gap: 18px;
    font-size: 13px;
    font-weight: 600
}

    .sn-top a {
        text-align: center
    }

.sn-close {
    border: 0;
    background: none;
    color: #5e0041;
    font-size: 35px;
    line-height: 1;
    justify-self: start
}

.sn-crest {
    width: 34px;
    height: 44px;
    object-fit: contain;
    justify-self: center
}

.sn-account {
    justify-self: end;
    font-size: 25px
}

.sn-search {
    height: 46px;
    border: 1px solid #42baf5;
    border-radius: 30px;
    margin: 18px 0 34px;
    padding: 0 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 600
}

    .sn-search input {
        border: 0;
        outline: 0;
        width: 95%;
        color: #5e0041;
        font: inherit
    }

.sn-grid {
    display: grid;
    grid-template-columns: repeat(5,1fr);
    gap: 46px 7%;
}

.sn-group h3 {
    font-family: National2Compressed,Impact,sans-serif;
    font-size: 30px;
    font-style: italic;
    margin: 0 0 20px
}

.sn-group a {
    display: block;
    margin: 0 0 23px;
    font-size: 14px
}

.sn-group {
    break-inside: avoid
}

@media(max-width:640px) {
    #standalone-nav-overlay {
        padding: 0 5px 0 25px;
        background: rgba(0,0,0,.78)
    }

    #standalone-nav-panel {
        width: calc(100% - 20px);
        max-height: 94vh;
        border-radius: 0 0 30px 30px;
        padding: 10px 34px 35px
    }

    .sn-top {
        grid-template-columns: auto 1fr auto auto auto;
        gap: 10px;
        min-height: 48px
    }

        .sn-top .desktop-only {
            display: none
        }

        .sn-top a {
            font-size: 12px
        }

    .sn-close {
        order: 5;
        font-size: 30px
    }

    .sn-crest {
        justify-self: start;
        width: 27px;
        height: 35px
    }

    .sn-search {
        margin: 20px 0 36px;
        height: 38px
    }

    .sn-grid {
        display: block
    }

    .sn-group {
        border: 0;
        margin-bottom: 24px
    }

        .sn-group h3 {
            font-size: 31px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 0;
            padding: 0 0 12px
        }

            .sn-group h3:after {
                content: "\f054";
                font-family: "Font Awesome 5 Pro";
                font-weight: 300; /* Light */
                font-style: normal;
                font-size: 16px;
                display: inline-block;
                transform: none;
                -webkit-font-smoothing: antialiased;
                -moz-osx-font-smoothing: grayscale;
            }

        .sn-group.open h3:after {
            transform: rotate(-90deg);
        }

        .sn-group .sn-links {
            display: none;
            padding-top: 8px
        }

        .sn-group.open .sn-links {
            display: block
        }

        .sn-group a {
            font-size: 15px;
            margin-bottom: 28px
        }
}

body.sn-lock {
    overflow: hidden !important
}

/* Standalone footer accordion behaviour */
.footer-accordion-panel {
    display: none;
    width: 100%;
    padding: 12px 1rem 4px;
    grid-column: auto;
    box-sizing: border-box
}

    .footer-accordion-panel.is-open {
        display: block
    }

    .footer-accordion-panel a {
        display: block;
        color: #fff !important;
        font-family: DenimWD,Arial,sans-serif;
        font-size: .9rem;
        line-height: 1.35;
        margin: 0 0 10px;
        text-decoration: none
    }

.footer-accordion-trigger {
    cursor: pointer !important;
    user-select: none
}

    .footer-accordion-trigger svg, .footer-accordion-trigger .footer-chevron {
        transition: transform .2s ease
    }

    .footer-accordion-trigger[aria-expanded="true"] svg, .footer-accordion-trigger[aria-expanded="true"] .footer-chevron {
        transform: rotate(180deg)
    }

@media(min-width:641px) {
    .footer-accordion-panel {
        padding-left: 0
    }

        .footer-accordion-panel a {
            font-size: .82rem
        }
}