@import url('https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,400;0,700;1,400;1,700&family=Roboto+Condensed:wght@400;700&display=swap');

/* Variables -------------------------- */
:root,:host {
    /*Colours*/
    --black: #373737;
    --white: white;
    --blue: #2a69a1;
    --blue2: #6C9ECC;
    --blue3: #C3E0FC;
    --blue4: #DAE9F7;
    --blue5: #EBF4FC;
    --blue6: #a3beda;
    --yellow: #F0E438;
    --orange: #D87448;
    --grey1: #808080;
    --grey2: #ABABAB;
    --grey3: #CFCFCF;
    --grey4: #E6E6E6;
    --grey5: #F2F2F2;
    --focus: #4fcd90;
    --error: #d0021b;

    /*Misc*/
    --boxShadow: rgba(99, 99, 99, 0.3) 4px 8px 8px 0;
    --sideBar: 220px;
    --searchWidth: 80px;
    --logoHeight: 67px;
    --logoPaddingTop: 8px;
    --pageMarginTop: 65px;

    /*Breaks*/
    --breakSm: 576px;
    --breakMd: 768px;
    --breakLg: 992px;
    --breakXl: 1400px;

    /*Type*/
    --min: 16;
    --max: 18;
    --minScreen: 400;
    --maxScreen: 2000;
    --minScale: 1.067;
    --maxScale: 1.125;
    --minScaled: 16;
    --maxScaled: 18;
    --fluidFontSize: clamp(var(--minScaled) * 1px, calc(var(--minScaled) * 1px + (var(--maxScaled) - var(--minScaled)) * (100vw - var(--minScreen) * 1px) / (var(--maxScreen) - var(--minScreen))), var(--maxScaled) * 1px);
}

/* Global Styles -------------------------- */

html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 15px;
    scroll-behavior: smooth;
}
html * { box-sizing: border-box; }


body {
    margin: 0;
    font-family: "Halyard Text", sans-serif;
    color: var(--black);
    background-color: var(--white);
}

.roboto {
    font-family: "Roboto Condensed", sans-serif;
}

.roboto-uppercase {
    font-family: "Roboto Condensed", sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-variant-numeric: normal;
}

.serif {
    font-family: Baskerville, Baskerville Old Face, Hoefler Text, Garamond, Times New Roman, serif;
}

p,
ol, ul, li,
code, kbd, pre, samp {
    line-height: 1.5;
    margin-top: 0;
    margin-bottom: 15px;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    line-height: 1.1;
    font-weight: bold;
    margin-bottom: 3px;
}

h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
.h1 a, .h2 a, .h3 a, .h4 a, .h5 a, .h6 a {
    text-decoration: none;
}

h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
.h1 a:hover, .h2 a:hover, .h3 a:hover, .h4 a:hover, .h5 a:hover, .h6 a:hover {
    text-decoration: none;
}

h1, .h1 {
    font-weight: bold;
    color: var(--blue);
    font-family: "Roboto Condensed", sans-serif;
    text-transform: uppercase;
    margin-top: 30px;
    margin-bottom: 30px;
}
h2, .h2 {
    margin-top: 30px;
}
h3, .h3,
h4, .h4 {
    margin-top: 20px;
}
h5, .h5,
h6, .h6 {
    margin-top: 10px;
}

p { font-variant-numeric: oldstyle-nums; }

.type-size-4, h1, .h1 { font-size : 24px; }
.type-size-3, h2, .h2 { font-size: 20px; }
.type-size-2, h3, .h3 { font-size: 18px; }
.type-size-1, h4, .h4 { font-size: 17px; }
.type-size-0, h5, .h5 { font-size: 16px; }
.type-size--1, p, h6, .h6, small { font-size: 15px; }
.type-size--2 { font-size: 14px; }
.type-size--3 { font-size: 13px; }
.type-size--4 { font-size: 12px; }

h2.news-item { font-size: 25px; }
.news-container p { font-size: 16px; }

.anchor:before {
    content: "";
    display: block;
    padding-top: 80px;
    margin-top: -80px;
}
.anchor#top:before {
    padding-top: 180px;
    margin-top: -180px;
}

li {
    margin-top: 0;
    margin-bottom: 0;
    font-variant-numeric: oldstyle-nums;
}

small {
    display: block;
}

code, kbd, pre, samp {
    font-family: monospace;
    white-space: normal;
}

ul {
    padding-left: 10px;
    list-style-type: disc;
}

ol {
    padding-left: 10px;
    list-style-type: decimal;
}

video {
    width: 100%;
    height: auto;
    margin-bottom: 10px;
}

em, i { font-style: italic; }

strong, b { font-weight: bold; }

blockquote {
    padding-left: 10px;
}

a { color: inherit; }

label {
    font-size: 15px;
    line-height: 1.2;
    font-weight: normal;
}

.text-input,
input[type="text"],
input[type="password"],
input[type="date"],
input[type="datetime-local"],
input[type="email"],
input[type="month"],
input[type="number"],
input[type="range"],
input[type="search"],
input[type="tel"],
input[type="time"],
input[type="url"],
input[type="week"],
textarea {
    display: block;
    font-family: inherit;
    font-size: 16px;
    padding: 2px 5px;
    margin-top: 10px;
    margin-bottom: 10px;
    border: 1px solid;
    border-radius: 2px;
    line-height: 1.6;
    background-color: transparent;
    -webkit-appearance: none;
}

.file-input,
input[type="file"],
.radio-input,
input[type="radio"],
.checkbox-input,
input[type="checkbox"],
select {
    font-family: inherit;
}

.button,
button,
input[type="submit"],
input[type="button"],
input[type="reset"] {
    display: inline-block;

    padding: 0 10px;

    font-family: inherit;
    font-size: 16px;
    line-height: 2;
    text-decoration: none;
    white-space: nowrap;
    border: 1px solid;
    border-radius: 2px;

    color: inherit;
    background-color: transparent;
    cursor: pointer;
}

.button:hover {
    text-decoration: none;
}
button.link {
    border: none;
    padding: 0;
    background-color: transparent;
    white-space: normal;
    line-height: inherit;
    font-size: inherit;
}
button.icon,
.button.icon {
    border: none;
    padding: 0;
    background-color: transparent;
}
button.icon svg,
.button.icon svg {
    height: 15px;
    width: auto;
    display: block;
}

.errorMsg {
    color: var(--error);
}

/* Atoms -------------------------- */

sup, sub, .rend-superscript {
    vertical-align: baseline;
    position: relative;
    top: -0.4em;
    font-size: 0.8em;
}
sup.in-text {
    font-size: 0.6em;
    text-decoration: underline;
    color: var(--blue);
}

sub { top: 0.4em; }

.container {
    max-width: var(--maxScreen) px;
    margin: 0 auto;
    padding: 0 10px;
}
.container > :first-child { margin-top: 0; }
.container > :last-child { margin-bottom: 0; }

.page-holder {
    background-color: var(--white);
    padding: 20px 0;
    min-height: 100vh;
}
@media ( min-width: 992px ) {
    .page-holder {
        padding: var(--pageMarginTop) 0 140px 0;
    }
}
.page-holder.is-grey {
    background-color: var(--grey5);
}
.page-holder.is-blue {
    background-color: var(--blue5);
}
@media ( min-width: 992px ) {
    .page-holder--inner {
        margin-left: calc(var(--sideBar) + 10px);
        overflow-x: hidden;
    }
    .home .page-holder--inner {
        margin: 0;
        display: grid;
        grid-template-columns: var(--sideBar) 1fr;
        grid-gap: 10px;
    }
}
.page-holder--inner.has-max-width > :nth-child(2) { max-width: 800px; }

.page-holder--inner h2 {
    margin-top: 0;
}

.page-holder--inner a {
    text-decoration: underline;
}
.page-holder--inner a:hover { text-decoration: underline; }

.anchor-links--holder {
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    background-color: var(--blue);
    color: var(--white);
    overflow: scroll;
    max-height: 50vh;
}
@media ( min-width: 992px ) {
    .anchor-links--holder {
        top: calc( var(--logoHeight) + var(--pageMarginTop) );
        left: 10px;
        width: calc( var( --sideBar ) - 10px);
        background-color: transparent;
        color: inherit;
        max-height: none;
    }
}
.anchor-links--toggle.link {
    padding: 10px;
    width: 100%;
    text-align: right;
}
.anchor-links--toggle.link:before {
    content: 'Show ';
}
.anchor-links--holder.active .anchor-links--toggle.link:before {
    content: 'Hide ';
}
@media ( min-width: 992px ) {
    .anchor-links--toggle { display: none; }
}
.anchor-links--inner {
    list-style: none;
    padding: 0 0 100px 0;
    display: none;
}
.anchor-links--holder.active .anchor-links--inner {
    display: block;
}
@media ( min-width: 992px ) {
    .anchor-links--inner {
        display: block;
        margin: 0;
        padding: 0 0 100px 0;
    }
}
.anchor-links--inner a {
    text-decoration: none;
}
.anchor-links--inner .hide-on-sm-screen {
    display: none;
}
@media ( min-width: 992px ) {
    .anchor-links--inner .hide-on-sm-screen {
        display: block;
    }
}

.anchor-link {
    font-family: "Roboto Condensed", sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 14px;
    padding-left: 0;
    line-height: 18px;
}

.anchor-link.is-level-2, .anchor-link.is-level-3 {
    display: none;
    padding-left: 10px;
}

.anchor-link.is-level-3 {
    padding-left: 20px;
}

@media ( min-width: 992px ) {
    .anchor-link {
        margin: 3px 0;
    }
    .anchor-link.is-level-2, .anchor-link.is-level-3 {
        display: block;
    }
    .anchor-link.mobile-only {
        display: none;
    }
}
.anchor-link a {
    position: relative;
    cursor: pointer;
    padding-left: 22px;
    display: inline-block;
}
.anchor-link a:before {
    content: "";
    width: 11px;
    height: 11px;
    display: block;
    opacity: 0;
    position: absolute;
    top: 3px;
    left: 0;
    background-color: var(--blue);
    border-radius: 2px;
}

.anchor-link.first a:before {
    display: none;
}

.anchor-link a:hover {
    text-decoration: none;
    color: var(--grey4);
}
@media ( min-width: 992px ) {
    .anchor-link a:hover {
        color: var(--blue);
    }
}
.anchor-link.active a {
    color: var(--grey4);
    font-weight: bold;
}
@media ( min-width: 992px ) {
    .anchor-link.active a {
        color: var(--blue);
    }
}
.anchor-link.active a:before { opacity: 1; }

.embed-container {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    max-width: 100%;
}

.embed-container iframe,
.embed-container object,
.embed-container embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.page-title {
    background-color: var(--white);
    padding: 10px;
}

@media ( min-width: 992px ) {
    .page-title {
        padding: 14px 10px 10px calc(var(--sideBar) + 20px);
        position: sticky;
        top: 34px;
        left: 0;
        z-index: 10;
    }
}

.page-title.is-grey {
    background-color: var(--grey5);
}
.page-title.is-blue {
    background-color: var(--blue5);
}

.page-title h1 {
    margin: 0;
}

@media ( min-width: 992px ) {
    .page-title h1 {
        line-height: 1;
    }
}

.edition-header {
    color: var(--black);
}

.edition-header svg {
    width: 10px;
    height: auto;
    display: inline-block;
    margin: 0 5px;
}

.edition-header--title {
    color: var(--blue);
}
