@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex-sans/ibm-plex-sans-v23-cyrillic_cyrillic-ext_latin_latin-ext-300.woff2") format("woff2");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex-sans/ibm-plex-sans-v23-cyrillic_cyrillic-ext_latin_latin-ext-300italic.woff2") format("woff2");
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex-sans/ibm-plex-sans-v23-cyrillic_cyrillic-ext_latin_latin-ext-regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex-sans/ibm-plex-sans-v23-cyrillic_cyrillic-ext_latin_latin-ext-italic.woff2") format("woff2");
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex-sans/ibm-plex-sans-v23-cyrillic_cyrillic-ext_latin_latin-ext-500.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex-sans/ibm-plex-sans-v23-cyrillic_cyrillic-ext_latin_latin-ext-500italic.woff2") format("woff2");
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex-sans/ibm-plex-sans-v23-cyrillic_cyrillic-ext_latin_latin-ext-600.woff2") format("woff2");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex-sans/ibm-plex-sans-v23-cyrillic_cyrillic-ext_latin_latin-ext-600italic.woff2") format("woff2");
    font-weight: 600;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex-sans/ibm-plex-sans-v23-cyrillic_cyrillic-ext_latin_latin-ext-700.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex-sans/ibm-plex-sans-v23-cyrillic_cyrillic-ext_latin_latin-ext-700italic.woff2") format("woff2");
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}

:root {
    color-scheme: light;
    --utef-font-sans: "IBM Plex Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --utef-page-bg: #fff;
    --utef-surface: #fff;
    --utef-surface-alt: #fff;
    --utef-ink: #1f2830;
    --utef-muted: #6a7178;
    --utef-border: #d8d2c5;
    --utef-dark-blue: #002D48;
    --utef-divider-blue: #8096a3;
    --utef-nav-underline: #007AC1;
    --utef-header: var(--utef-dark-blue);
    --utef-header-border: var(--utef-divider-blue);
    --utef-footer: var(--utef-dark-blue);
    --utef-footer-bottom: var(--utef-dark-blue);
    --utef-accent: #0c8ddb;
    --utef-accent-strong: #1d9ceb;
    --utef-link: #0a73b4;
    --bs-font-sans-serif: var(--utef-font-sans);
    --bs-body-font-family: var(--utef-font-sans);
}

html,
body {
    min-height: 100%;
}

body.site-body {
    margin: 0;
    color: var(--utef-ink);
    background: #fff;
    font-family: var(--utef-font-sans);
}

.site-body :where(h1, .h1),
.site-body :where(h2, .h2),
.site-body :where(h3, .h3),
.site-body :where(h4, .h4),
.site-body :where(h5, .h5) {
    font-weight: 600;
}

a {
    color: var(--utef-link);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.16em;
}

a:hover {
    color: var(--utef-accent);
}

.site-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 2.55rem;
    padding: 0.7rem 1.15rem;
    border: 0;
    border-radius: 0;
    background: #144A6A;
    color: #fff;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color 160ms ease;
}

.site-cta:hover,
.site-cta:focus {
    background: #0f3b55;
    color: #fff;
}

.site-main {
    min-height: 45vh;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1050;
    background: var(--utef-header);
    color: #fff;
    transition: background-color 180ms ease, box-shadow 180ms ease;
}

.site-header a,
.site-header button,
.site-header .nav-link {
    color: #fff;
}

.site-header-border {
    height: 1px;
    background: var(--utef-header-border);
}

.site-navbar {
    position: relative;
    height: 75px;
    min-height: 75px;
    padding-block: 0;
}

.site-brand {
    display: flex;
    align-items: center;
    gap: 1rem;
    height: 75px;
    padding-block: 0;
    margin-right: 1.5rem;
    color: #fff;
    text-decoration: none;
}

.site-brand:hover {
    color: #fff;
}

.site-brand-logos {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-shrink: 0;
}

.site-brand-logo,
.site-brand-mark {
    width: 3.25rem;
    height: 3.25rem;
    border: 0;
    object-fit: contain;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
}

.site-brand-mark {
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.site-brand-copy {
    display: inline-flex;
    flex-direction: column;
    gap: 0.18rem;
    justify-content: center;
    min-width: 0;
    min-height: 3.25rem;
}

.site-brand-title {
    display: block;
    width: 100%;
    max-width: 100%;
    font-size: 8.8pt;
    line-height: 1.02;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 0.04em;
    overflow-wrap: break-word;
    white-space: pre-line;
}

.site-navbar-toggler {
    border-color: rgba(255, 255, 255, 0.38);
}

.site-navbar-toggler:focus {
    box-shadow: 0 0 0 0.25rem rgba(12, 141, 219, 0.28);
}

.site-navbar-toggler .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.95%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.site-navbar-collapse {
    align-items: stretch;
}

.site-nav {
    align-items: stretch;
    gap: 0.25rem;
}

.site-nav-item {
    position: static;
}

.site-nav-link-row {
    display: flex;
    align-items: center;
    height: 75px;
}

.site-nav-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    height: 75px;
    padding: 0 0.7rem;
    color: #fff;
    font-size: 12pt;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
    text-decoration: none;
    text-transform: uppercase;
    transition: color 0.18s ease;
}

.site-nav-link::after {
    content: "";
    position: absolute;
    left: 0.7rem;
    right: 0.7rem;
    bottom: calc(50% - 0.5em - 3px);
    height: 1px;
    background: var(--utef-nav-underline);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.18s ease;
}

.site-nav-link:hover,
.site-nav-item.is-open > .site-nav-link-row > .site-nav-link {
    color: var(--utef-nav-underline);
}

.site-nav-link:hover::after,
.site-nav-item.is-open > .site-nav-link-row > .site-nav-link::after {
    transform: scaleX(1);
}

.site-nav-item.is-active > .site-nav-link-row > .site-nav-link {
    color: #fff;
}

.site-mega-menu {
    width: 100%;
    color: #fff;
}

.site-mega-menu-inner {
    padding: 1rem 0 1.8rem;
    border-top: 1px solid var(--utef-header-border);
}

.site-mega-column {
    min-height: 100%;
}

.site-mega-heading {
    margin-bottom: 0.85rem;
    font-size: 1rem;
    font-weight: 800;
}

.site-mega-heading a {
    position: relative;
    display: inline-block;
    color: #fff;
    text-decoration: none;
}

.site-mega-heading-list {
    display: grid;
    gap: 0.85rem;
    font-size: 1rem;
    font-weight: 800;
}

.site-mega-heading-list a {
    position: relative;
    display: inline-block;
    color: #fff;
    text-decoration: none;
}

.site-mega-heading a::after,
.site-mega-heading-list a::after,
.site-mega-links a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -2px;
    height: 1px;
    background: var(--utef-nav-underline);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.18s ease;
}

.site-mega-heading a:hover,
.site-mega-heading a[aria-current="page"],
.site-mega-heading-list a:hover,
.site-mega-heading-list a[aria-current="page"] {
    color: #fff;
}

.site-mega-heading a:hover::after,
.site-mega-heading a[aria-current="page"]::after,
.site-mega-heading-list a:hover::after,
.site-mega-heading-list a[aria-current="page"]::after,
.site-mega-links a:hover::after,
.site-mega-links a[aria-current="page"]::after {
    transform: scaleX(1);
}

.site-mega-links {
    display: grid;
    gap: 0.55rem;
    margin: 0;
}

.site-mega-links a,
.site-mega-links span {
    position: relative;
    display: inline-block;
    color: rgba(255, 255, 255, 0.8);
    font-size: 1rem;
    text-decoration: none;
}

.site-mega-links a:hover,
.site-mega-links a[aria-current="page"] {
    color: #fff;
}

.site-mega-links-simple {
    grid-template-columns: repeat(auto-fit, minmax(14rem, max-content));
    gap: 1rem 2rem;
    padding-top: 0.25rem;
}
