/* ===== base.css — modern defaults =====
   Base-layer audit result (map §6): normalize-era reset replaced with ~30 lines. */

/* Self-hosted Montserrat — woff2 + woff only, font-display: swap (map §5) */
@font-face
{
    font-family: 'Montserrat-Bold';
    src: url('../fonts/Montserrat-Bold.woff2') format('woff2'), url('../fonts/Montserrat-Bold.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face
{
    font-family: 'Montserrat-Regular';
    src: url('../fonts/Montserrat-Regular.woff2') format('woff2'), url('../fonts/Montserrat-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face
{
    font-family: 'Montserrat-Italic';
    src: url('../fonts/Montserrat-Italic.woff2') format('woff2'), url('../fonts/Montserrat-Italic.woff') format('woff');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face
{
    font-family: 'Montserrat-SemiBold';
    src: url('../fonts/Montserrat-SemiBold.woff2') format('woff2'), url('../fonts/Montserrat-SemiBold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

*,
*::before,
*::after
{
    box-sizing: border-box;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
figure,
blockquote,
dl,
dd
{
    margin: 0;
}

body
{
    font-family: var(--font-body);
    color: var(--color-black);
    background: var(--color-blue);
    -webkit-font-smoothing: antialiased;
}

/* typography weights + line-heights — matches the original CMSMS base layer.
   h1–h6 + p were font-weight: 100; only Montserrat-Regular (400) is loaded, so 100
   renders as Regular. WITHOUT this, headings default to bold (700) = looks "fatter". */
h1,
h2
{
    font-weight: 100;
    line-height: 110%;
}

h3,
h4,
h5
{
    font-weight: 100;
    line-height: 125%;
}

h6,
p
{
    font-weight: 100;
    line-height: 150%;
}

img,
picture,
video,
canvas,
svg
{
    display: block;
    max-width: 100%;
}

input,
button,
textarea,
select
{
    font: inherit;
    color: inherit;
}

a
{
    color: var(--color-grey);
    text-decoration: none;
}

a:hover
{
    color: var(--color-black);
}

/* modern visually-hidden (was .accessibility top:-999em) */
.visually-hidden
{
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* a11y-correct focus (was a:focus { outline: 0 } — the anti-pattern) */
:focus-visible
{
    outline: 2px solid var(--color-blue);
    outline-offset: 2px;
}

/* keep the currentColor icon pattern */
.svgicon
{
    display: inline-block;
    width: 1em;
    height: 1em;
    fill: currentColor;
}