@font-face {
    font-family: 'Urbanist';
    src: url('../fonts/Urbanist-VariableFont_wght.ttf') format('truetype');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Urbanist';
    src: url('../fonts/Urbanist-Italic-VariableFont_wght.ttf') format('truetype');
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}

:root {
    --kendo-font-family: 'Urbanist', sans-serif;
    --blue: #005695;
    --blue-rgb: rgb(0, 86, 149);
    --green: #5C8001;
    --green-rgb: rgb(92, 128, 1);
    --red: #C60C46;
    --red-rgb: rgb(198, 12, 70);
    --cream: #E8D3A2;
    --cream-rgb: rgb(232, 211, 162);
    --light-grey: #f9f9f9;
    --light-grey-rgb: rgb(249 249 249);

    --focus-ring-inner: #E8D3A2;
    --focus-ring-outer: #003a61;
    --focus-ring-width: 3px;

    /* Fluid type scale (mobile min -> current desktop px as max) */
    --fs-hero: clamp(2.25rem, 1.4rem + 3.7vw, 4rem); /* 36px -> 64px */
    --fs-h2: clamp(1.5rem, 1.2rem + 1.3vw, 2.125rem); /* 24px -> 34px */
    --fs-h3: clamp(1.375rem, 1.15rem + 1vw, 1.875rem); /* 22px -> 30px */
    --fs-lead: clamp(1.25rem, 1.05rem + 0.85vw, 1.75rem); /* 20px -> 28px */
    --fs-body-lg: clamp(1.0625rem, 0.9rem + 0.7vw, 1.5rem); /* 17px -> 24px */
    --fs-body-md: clamp(1.0625rem, 0.95rem + 0.4vw, 1.25rem); /* 17px -> 20px */
    --fs-body: clamp(1rem, 0.93rem + 0.3vw, 1.0625rem); /* 16px -> 17px */

    /* Fluid section spacing */
    --space-section: clamp(2rem, 1.2rem + 3.5vw, 6.3125rem);
}

body {
    font-family: 'Urbanist', sans-serif;
    font-weight: 400;
    margin: 0;
}

/* Font weights */
.font-light    { font-weight: 300; }
.font-regular  { font-weight: 400; }
.font-medium   { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold     { font-weight: 700; }

/* Background colors */
.bg-blue { background-color: var(--blue); }
.bg-green { background-color: var(--green); }
.bg-cream { background-color: var(--cream); }
.bg-light-grey { background-color: var(--light-grey); }
.bg-red { background-color: var(--red); }

/* Text colors */
.text-blue { color: var(--blue); }
.text-green { color: var(--green); }
.text-cream { color: var(--cream); }
.text-light-grey { color: var(--light-grey); }
.text-red { color: var(--red); }

/* Fluid content container: caps at 1074px, adds side gutters below that */
.container-1074 {
    width: min(1074px, 100%);
    padding-inline: clamp(10px, calc(4vw - 0.5rem), 1.5rem);
    box-sizing: border-box;
}

::-ms-reveal {
    display: none;
}

.skip-link {
    position: absolute;
    top: -9999px;
    left: 0;
    z-index: 2000;
    padding: 12px 20px;
    background: var(--blue);
    color: #fff;
    text-decoration: none;
    font-weight: 600;
}

    .skip-link:focus-visible {
        top: 0;
    }

.k-button-solid-primary {
    background-color: var(--blue);
    border-color: var(--blue);
    color: #fff;
}

.k-button-solid-primary:hover,
.k-button-solid-primary.k-hover {
    background-color: #004676;
    border-color: #004676;
    color: #fff;
}

.k-button-solid-primary:active,
.k-button-solid-primary.k-active,
.k-button-solid-primary:focus,
.k-button-solid-primary.k-focus {
    background-color: #003a61;
    border-color: #003a61;
    color: #fff;
}

/* Global focus-ring token (GEN-310 / GEN-317 / GEN-313 / GEN-316):
   two-tone ring so it passes 3:1 contrast on white, light grey, blue and green. */
:focus-visible {
    outline: var(--focus-ring-width) solid var(--focus-ring-inner);
    outline-offset: 0;
    box-shadow: 0 0 0 calc(var(--focus-ring-width) + 2px) var(--focus-ring-outer);
}

/* Telerik components paint focus on a wrapper via box-shadow, not outline */
.k-input.k-focus,
.k-input:focus-within,
.k-picker.k-focus,
.k-picker:focus-within,
.k-button:focus-visible,
.k-button.k-focus {
    outline: var(--focus-ring-width) solid var(--focus-ring-inner);
    box-shadow: 0 0 0 calc(var(--focus-ring-width) + 2px) var(--focus-ring-outer) !important;
}

.k-input-inner:focus-visible {
    outline: none;
    box-shadow: none;
}