/*
    Theme Name: Valla Valsusa
    Author: Egloo
    Author URI: https://egloo.it
    Version: 1.0.0
    Text Domain: eg-valla-valsusa
    Description: A custom WordPress theme for Valla Valsusa, designed by Egloo.
    License: GNU General Public License v2 or later
    License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

@font-face {
    font-family: "Instrument Sans";
    src: url("assets/fonts/instrument-sans/instrument-sans-400.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Instrument Sans";
    src: url("assets/fonts/instrument-sans/instrument-sans-500.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Instrument Sans";
    src: url("assets/fonts/instrument-sans/instrument-sans-600.woff2") format("woff2");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Instrument Sans";
    src: url("assets/fonts/instrument-sans/instrument-sans-700.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}



* {
    box-sizing: border-box;
    padding: 0;
    margin: 0;
}

dialog {
    margin: auto;
}

a,
input,
textarea,
select,
button,
h1,
h2,
h3,
h4,
h5,
h6 {
    font: inherit;
    color: inherit;
}

a {
    text-decoration: none;
}

img,
video,
iframe {
    display: block;
    inline-size: 100%;
    block-size: auto;
}

button,
label,
input {
    cursor: pointer;
}

input[type="reset"],
input[type="submit"],
button {
    border: none;
    background-color: transparent;
}

span:has(> svg:only-child),
svg {
    line-height: 0;
}

ul {
    list-style-type: none;
}

html {
    scroll-behavior: smooth;
    scroll-padding: 6.25rem;
    -webkit-tap-highlight-color: transparent;
}

body:has(dialog[open]) {
    overflow: hidden;
}

:focus-visible {
    outline-offset: 4px;
    outline: 0px solid var(--on-surface, currentColor);
    animation:
        focus-ring-in 0.2s forwards,
        focus-ring-out 0.2s 0.2s forwards;
}

@keyframes focus-ring-in {
    to {
        outline-width: 8px;
    }
}

@keyframes focus-ring-out {
    to {
        outline-width: 4px;
    }
}

/* ======================================== */
/* UTILS */
/* ======================================== */

nav.breadcrumbs ul {
    --_gap: 1.25rem;
    display: block;
}

nav.breadcrumbs li {
    display: inline-block;
    position: relative;
}

nav.breadcrumbs li:not(:last-child) {
    margin-inline-end: var(--_gap);
}

nav.breadcrumbs li svg {
    position: absolute;
    inset-block-start: 50%;
    inset-inline-end: calc((var(--_gap) * -1) / 2);
    translate: 50% -50%;
}

nav.breadcrumbs [aria-current] {
    color: rgb(from currentColor r g b / 0.3);
}

.rich-text > *:not(:last-child) {
    margin-block-end: 1lh;
}

.rich-text strong {
    font-weight: 700;
}

.rich-text ul {
    list-style-type: disc;
}

.rich-text ol {
    list-style-type: decimal;
}

.rich-text ul,
.rich-text ol {
    padding-inline-start: 1rem;
}

.rich-text a {
    text-decoration: underline;
}

.sr-only {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    padding: 0;
    margin: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border-width: 0;
    inset-inline-end: 0;
    inset-block-end: 0;
}

.skip-link:focus {
    position: fixed;
    inset-block-start: 1rem;
    inset-inline-start: 1rem;
    z-index: 9999;
    inline-size: fit-content;
    block-size: fit-content;
    padding: 0.75rem 1.25rem;
    overflow: visible;
    clip-path: none;
    white-space: normal;
    background-color: var(--on-surface, #000);
    color: var(--surface, #fff);
    border-radius: 0.25rem;
    outline: 2px solid transparent;
}

.img-wrapper.img-wrapper-ratio > picture,
.img-wrapper.img-wrapper-ratio {
    overflow: hidden;
    position: relative;
}

.img-wrapper.img-wrapper-ratio > picture {
    block-size: 100%;
    display: block;
}

.img-wrapper.img-wrapper-ratio > video,
.img-wrapper.img-wrapper-ratio > picture > video,
.img-wrapper.img-wrapper-ratio > picture > img,
.img-wrapper.img-wrapper-ratio > img {
    inline-size: 100%;
    block-size: 100%;
    position: absolute;
    object-fit: cover;
    inset: 0;
}

.layers {
    display: grid;
}

.layers > .layer {
    grid-column: -1/1;
    grid-row: -1/1;
}

.layers > .layer.layer-bg {
    position: relative;
}

.layers > .layer.layer-bg > .img-wrapper.img-wrapper-ratio:only-child {
    block-size: 100%;
}

.layers > .layer.layer-bg::before,
.layers > .layer.layer-bg::after {
    content: "";
    pointer-events: none;
    inset-block-start: 0;
    inset-inline-start: 0;
    inline-size: 100%;
    block-size: 100%;
    position: absolute;
}

.layers > .layer.layer-fg {
    position: relative;
    z-index: 1;
}

:root {
    --container-columns: 12;
    --container-gap: 1.25rem;
    --container-column-width: 6.0625rem;
    --container-x-padding: 2rem;

    --form-gap-row: 1.875rem;
    --form-gap-col: var(--container-gap);
    --form-field-min-width: 14.375rem;
    --form-checkbox-size: 0.8125rem;
    --form-checkbox-bg: #ebebeb;
    --form-checkbox-checked-bg: var(--accent);
    --form-input-bg: #eff9f9;
    --form-input-border: transparent;
    --form-input-font-size: 1rem;
    --form-input-weight: 400;
    --form-input-padding-block: 0.9375rem 0.875rem;
    --form-input-padding-inline: 1.25rem;
    --form-label-weight: 500;
    --form-border-radius-input: 0.625rem;
    --form-border-radius-checkbox: 0.125rem;
    --form-border-radius-radio: 50%;
    --form-label-field-gap: 0.625rem;
    --form-icon-check: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMC44NzUiIGhlaWdodD0iNy4xOTciIHZpZXdCb3g9IjAgMCAxMC44NzUgNy4xOTciPgogIDxwYXRoIGlkPSJUcmFjY2lhdG9fMjA4ODUiIGRhdGEtbmFtZT0iVHJhY2NpYXRvIDIwODg1IiBkPSJNLTE1NjA2LjA3Niw2ODc4LjMwN2wzLjI2MywzLjI2Myw0Ljc4NC00Ljc4NCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTU2MDcuNDkgLTY4NzUuMzczKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4K");
    --form-icon-file: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMy4zNjIiIGhlaWdodD0iMTkuNzQ4IiB2aWV3Qm94PSIwIDAgMjMuMzYyIDE5Ljc0OCI+CiAgPGcgaWQ9IlJhZ2dydXBwYV8xNTc4IiBkYXRhLW5hbWU9IlJhZ2dydXBwYSAxNTc4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNzM4LjA4NiAtNjU0Mi41MDEpIj4KICAgIDxwYXRoIGlkPSJUcmFjY2lhdG9fMjA5MDkiIGRhdGEtbmFtZT0iVHJhY2NpYXRvIDIwOTA5IiBkPSJNMzQuMzM2LDU3LjQ1N2EuNjE2LjYxNiwwLDAsMC0uNjIyLjYyMnYyLjk2NUEyLjMyLDIuMzIsMCwwLDEsMzEuNCw2My4zNjJIMTYuMTQ4YTIuMzEyLDIuMzEyLDAsMCwxLTIuMzE3LTIuMzE3VjU4LjA3OWEuNjIyLjYyMiwwLDAsMC0xLjI0NSwwdjIuOTY1YTMuNTYzLDMuNTYzLDAsMCwwLDMuNTYzLDMuNTYzSDMxLjM4NWEzLjU2MywzLjU2MywwLDAsMCwzLjU2My0zLjU2M1Y1OC4wNzlhLjYuNiwwLDAsMC0uNjEyLS42MjJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3MjYgNjQ5Ny4xNDEpIiBmaWxsPSIjYmI4ZWY4IiBzdHJva2U9IiNiYjhlZjgiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgPHBhdGggaWQ9IlRyYWNjaWF0b18yMDkxMCIgZGF0YS1uYW1lPSJUcmFjY2lhdG8gMjA5MTAiIGQ9Ik0zOS43NTcsMzIuMTZhLjYxNi42MTYsMCwwLDAsLjYyMi0uNjIyVjIwLjg2MWwyLjY2NiwyLjgyN2EuNjQ1LjY0NSwwLDAsMCwuNDQ4LjIuNTY4LjU2OCwwLDAsMCwuNDI0LS4xNzQuNjI4LjYyOCwwLDAsMCwuMDI1LS44ODRsLTMuNzM3LTMuOTc0YS42NDguNjQ4LDAsMCwwLS45MSwwTDM1LjU1OCwyMi44M2EuNjI1LjYyNSwwLDEsMCwuOTA5Ljg2bDIuNjY2LTIuODI3VjMxLjUzOGEuNjE4LjYxOCwwLDAsMCwuNjI0LjYyMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcxMC4wMTYgNjUyNC4zMzIpIiBmaWxsPSIjYmI4ZWY4IiBzdHJva2U9IiNiYjhlZjgiIHN0cm9rZS13aWR0aD0iMSIvPgogIDwvZz4KPC9zdmc+Cg==");
    --form-icon-select: url("data:image/svg+xml,%3Csvg width='8' height='5' viewBox='0 0 8 5' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.02359 2.04426C3.41412 2.43477 4.04727 2.43476 4.43779 2.04424L6.27879 0.203241C6.54961 -0.0675785 6.98869 -0.067596 7.25953 0.203202C7.5304 0.47403 7.53042 0.91317 7.25957 1.18402L4.43781 4.00578C4.04728 4.39631 3.41412 4.39631 3.02359 4.00578L0.201758 1.18395C-0.069058 0.913131 -0.0690589 0.474051 0.201757 0.203234C0.472569 -0.0675773 0.911639 -0.0675829 1.18246 0.203222L3.02359 2.04426Z' fill='%23181818'/%3E%3C/svg%3E");
}

.container {
    inline-size: 100%;
    max-inline-size: calc((var(--container-x-padding) * 2) + ((var(--container-columns) - 1) * var(--container-gap)) + (var(--container-columns) * var(--container-column-width)));
    margin-inline: auto;
    padding-inline: var(--container-x-padding);
}
.container.container-10 {
    --container-columns: 10;
}
.container.container-8 {
    --container-columns: 8;
}
.container.container-6 {
    --container-columns: 6;
}
.container.container-5 {
    --container-columns: 5;
}
.container.container-4 {
    --container-columns: 4;
}

/* ======================================== */
/* WPCF7 */
/* ======================================== */

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration,
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    display: none;
}

input[type="checkbox"],
input[type="radio"] {
    appearance: none;
    inline-size: var(--form-checkbox-size);
    block-size: var(--form-checkbox-size);
    background-color: var(--form-checkbox-bg);
    flex-shrink: 0;
    cursor: pointer;
}

input[type="checkbox"] {
    border-radius: var(--form-border-radius-checkbox);
}

input[type="radio"] {
    border-radius: var(--form-border-radius-radio);
}

input[type="checkbox"]:checked,
input[type="radio"]:checked {
    background-color: var(--form-checkbox-checked-bg);
    background-image: var(--form-icon-check);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 72%;
}

input[type="checkbox"]:focus-visible,
input[type="radio"]:focus-visible {
    outline: 2px solid var(--on-surface);
    outline-offset: 2px;
}

input:is([type="text"], [type="number"], [type="email"], [type="tel"]),
.wpcf7-styled select,
.wpcf7-styled textarea {
    inline-size: 100%;
    padding-block: var(--form-input-padding-block);
    padding-inline: var(--form-input-padding-inline);
    border: 1px solid var(--form-input-border);
    background-color: var(--form-input-bg);
    border-radius: var(--form-border-radius-input);
    font-size: var(--form-input-font-size);
    font-weight: var(--form-input-weight);
    outline: none;
}

.wpcf7-styled select {
    appearance: none;
    background-image: var(--form-icon-select);
    background-repeat: no-repeat;
    background-position: calc(100% - var(--form-input-padding-inline)) center;
    padding-inline-end: calc(var(--form-input-padding-inline) + 1.5rem);
}

input::placeholder,
textarea::placeholder,
.wpcf7-styled label:has(input[type="file"]) > span:first-child {
    color: rgb(from var(--on-surface) r g b / 0.4);
}

.wpcf7-styled textarea {
    min-block-size: 6.875rem;
    field-sizing: content;
    resize: vertical;
}

input:is([type="text"], [type="number"], [type="email"], [type="tel"]):focus-visible,
.wpcf7-styled select:focus-visible,
.wpcf7-styled textarea:focus-visible {
    border-color: var(--accent);
    outline: 1px solid var(--accent);
    outline-offset: 0;
}

.wpcf7-styled label {
    font-size: 0.875rem;
    line-height: 1.571;
    letter-spacing: -0.01em;
    font-weight: var(--form-label-weight);
    display: flex;
    flex-direction: column;
    gap: var(--form-label-field-gap);
}

.wpcf7-styled .align-center {
    text-align: center;
}

.wpcf7-styled label:has(input[type="file"]) {
    overflow: hidden;
    display: grid;
    background-image: var(--form-icon-file);
    background-repeat: no-repeat;
    background-position: calc(100% - 1rem) center;
    background-color: rgb(from currentColor r g b / 0.1);
    border: 1px solid transparent;
    border-radius: var(--form-border-radius-input);
    padding-block: var(--form-input-padding-block);
    padding-inline: var(--form-input-padding-inline);
    cursor: pointer;
}

.wpcf7-styled label:has(input[type="file"]) > span:first-child {
    overflow: hidden;
    max-inline-size: calc(100% - 3rem);
    white-space: nowrap;
    text-overflow: ellipsis;
    display: block;
}

.wpcf7-styled label:has(input[type="file"]) input[type="file"] {
    opacity: 0;
    width: 0.1px;
    height: 0.1px;
    position: absolute;
    z-index: -1;
}

.wpcf7-styled label:has([aria-required="true"]) .label-title::after {
    content: " *";
    color: currentColor;
}

.wpcf7-styled :is([data-class="wpcf7cf_group"], form) > p {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(var(--form-field-min-width), 100%), 1fr));
    row-gap: var(--form-gap-row);
    column-gap: var(--form-gap-col);
}

.wpcf7-styled :is([data-class="wpcf7cf_group"], form) > p .wide {
    grid-column: 1 / -1;
}

.wpcf7-styled :is([data-class="wpcf7cf_group"], form) .wpcf7-submit {
    inline-size: 100%;
    margin-inline: auto;
    border-radius: var(--form-border-radius-input);
}

.wpcf7-styled :is([data-class="wpcf7cf_group"], form) > p br,
.wpcf7-styled :is([data-class="wpcf7cf_group"], form) .wpcf7-spinner {
    display: none;
}

.wpcf7-styled :is([data-class="wpcf7cf_group"], form) .wpcf7-not-valid-tip {
    font-size: 0.75rem;
    margin-top: 0.25rem;
}

.wpcf7-styled .wpcf7-acceptance label {
    flex-direction: row;
    align-items: flex-start;
    gap: 0.75rem;
}

.wpcf7-styled .wpcf7-acceptance label span {
    text-box: trim-both cap alphabetic;
}

.wpcf7-styled .wpcf7-acceptance label span a {
    text-decoration: underline;
}

.wpcf7-styled .wide [data-name="acceptance"] {
    display: block;
    margin-block: var(--form-gap-row);
}

.wpcf7-styled [data-name="acceptance"] .wpcf7-list-item {
    margin-inline-start: 0;
}

.wpcf7-styled .wpcf7-response-output {
    padding: 1rem;
    text-wrap: balance;
    font-size: 0.875rem;
    inline-size: 100%;
    border: 1px solid transparent;
    margin-block-start: 3rem;
    border-radius: var(--form-border-radius-input);
}

.wpcf7-styled form.sent .wpcf7-response-output {
    background-color: #5ad66521;
    border-color: #5ad6659e;
}

.wpcf7-styled form.invalid .wpcf7-response-output {
    border-color: #ffb900cc;
}

.eg-pagination ul {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    align-items: center;
}

.eg-pagination .page-btn:disabled,
.eg-pagination .page-separator,
.eg-pagination .page:not(.page-current) {
    opacity: 0.4;
}

.eg-pagination :disabled {
    pointer-events: none;
}

/* ======================================== */
/* PROJECT: TOKENS & BASE */
/* ======================================== */

:root {
    --navy-700: #003366;
    --sky-500: #0396ea;
    --sky-100: #e6f2fc;
    --ink: #0b1b2e;
    --text: #0f1e33;
    --text-muted: #5a6b80;
    --border: #d9e2ec;
    --surface: #f4f7fb;
    --white: #ffffff;

    --accent: var(--sky-500);
    --on-surface: var(--navy-700);

    --ff-primary: "Instrument Sans", system-ui, sans-serif;

    /* Sizes are the Figma values at 1440px, scaled down to ~375px */
    --fs-display: clamp(2.75rem, 1.78rem + 4.13vw, 5.5rem);
    --fs-banner: clamp(2.25rem, 1.63rem + 2.63vw, 4rem);
    --fs-h2: clamp(2.25rem, 1.81rem + 1.88vw, 3.5rem);
    --fs-card: clamp(2rem, 1.78rem + 0.94vw, 2.625rem);
    --fs-h3: clamp(1.5rem, 1.41rem + 0.38vw, 1.75rem);
    --fs-feature: clamp(1.375rem, 1.29rem + 0.38vw, 1.625rem);
    --fs-body-l: clamp(1.125rem, 1.08rem + 0.19vw, 1.25rem);
    --fs-body-m: 1.125rem;
    --fs-body: 1rem;
    --fs-small: 0.875rem;
    --fs-label: 0.8125rem;

    --radius-l: 1.75rem;
    --radius-m: 0.875rem;
    --radius-pill: 999px;

    --section-space: clamp(4rem, 3rem + 4.27vw, 6.25rem);

    /* Figma grid: 12 × 88.33px, gutter 20px, content 1280px, side margin 80px */
    --container-column-width: 5.5208rem;
    --container-gap: 1.25rem;
    --container-x-padding: clamp(1.25rem, 5.56vw, 5rem);

    --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

body {
    font-family: var(--ff-primary);
    font-size: var(--fs-body);
    line-height: 1.55;
    color: var(--text);
    background-color: var(--white);
    -webkit-font-smoothing: antialiased;
}

/* Clip here, not on body: body overflow propagates to the viewport and becomes "hidden", still pannable on mobile */
main {
    overflow-x: clip;
}

html {
    scroll-padding-block-start: 7rem;
}

/* Nested containers only cap the width (N columns), the outer one owns the side padding */
.container .container {
    --container-x-padding: 0rem;
}

.container.container-7 {
    --container-columns: 7;
}

.container.container-3 {
    --container-columns: 3;
}

.container.container-2 {
    --container-columns: 2;
}

.hl {
    color: var(--sky-500);
}

.rich-text strong {
    font-weight: 600;
}

/* ======================================== */
/* PROJECT: ENTER ANIMATIONS */
/* ======================================== */

/* Hidden state is only the negation of [data-entered]: when JS sets it, elements fall back to their own style */
@media (prefers-reduced-motion: no-preference) {
    .js [data-reveal-group]:not([data-entered]) [data-reveal],
    .js [data-reveal-group][data-reveal]:not([data-entered]) {
        opacity: 0;
        translate: var(--reveal-x, 0) var(--reveal-y, 2.5rem);
    }

    [data-reveal] {
        transition:
            opacity 0.7s var(--ease-out),
            translate 0.9s var(--ease-out);
        transition-delay: calc(max(var(--reveal-step, 1) - 1, 0) * 0.15s);
    }
}

/* ======================================== */
/* PROJECT: COMPONENTS */
/* ======================================== */

.eg-eyebrow {
    font-size: var(--fs-label);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy-700);
}

.eg-heading .eg-heading-titles {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.eg-heading .eg-heading-title {
    font-size: var(--fs-h2);
    font-weight: 500;
    line-height: 1.02;
    letter-spacing: -0.03em;
    color: var(--navy-700);
}

.eg-heading .eg-heading-text {
    margin-block-start: 1.875rem;
    font-size: var(--fs-body-m);
    line-height: 1.4;
    letter-spacing: -0.005em;
    color: var(--text-muted);
    text-wrap: pretty;
}

/* Button V2: pill + round arrow badge. 1px transparent border on every variant (Figma padding minus 1px) */
.eg-btn {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    padding-block: calc(0.5rem - 1px);
    padding-inline: calc(1.625rem - 1px) calc(0.5rem - 1px);
    border: 1px solid transparent;
    border-radius: var(--radius-pill);
    background-color: var(--ink);
    color: var(--white);
    font-size: var(--fs-body);
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    transition:
        background-color 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease;
}

.eg-btn .eg-btn-badge {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    inline-size: 2.5rem;
    block-size: 2.5rem;
    border-radius: 50%;
    background-color: var(--sky-500);
    color: var(--white);
    overflow: hidden;
    transition:
        inline-size 0.3s var(--ease-out),
        background-color 0.25s ease;
}

.eg-btn .eg-btn-badge svg {
    transition: rotate 0.3s var(--ease-out);
}

.eg-btn.eg-btn-light {
    background-color: var(--white);
    color: var(--ink);
}

.eg-btn.eg-btn-light .eg-btn-badge {
    background-color: var(--ink);
    color: var(--white);
}

.eg-btn.eg-btn-accent {
    background-color: var(--sky-500);
}

.eg-btn.eg-btn-accent .eg-btn-badge {
    background-color: var(--white);
    color: var(--sky-500);
}

.eg-btn.eg-btn-ghost {
    background-color: rgb(255 255 255 / 0.04);
    border-color: rgb(255 255 255 / 0.35);
    backdrop-filter: blur(5px);
}

.eg-btn.eg-btn-ghost .eg-btn-badge {
    background-color: var(--white);
    color: var(--ink);
}

.eg-btn.eg-btn-arrow-down .eg-btn-badge svg {
    rotate: 135deg;
}

/* Badge collapsed (nav button), as in Figma: zero width, the gap stays */
.eg-btn.eg-btn-arrow-reveal .eg-btn-badge {
    inline-size: 0;
}

@media (hover: hover) {
    .eg-btn:hover .eg-btn-badge svg {
        rotate: 45deg;
    }

    .eg-btn.eg-btn-arrow-down:hover .eg-btn-badge svg {
        rotate: 180deg;
    }

    .eg-btn.eg-btn-accent:hover {
        background-color: var(--navy-700);
    }

    .eg-btn.eg-btn-ghost:hover {
        background-color: rgb(255 255 255 / 0.14);
    }

    .eg-btn.eg-btn-arrow-reveal:hover .eg-btn-badge {
        inline-size: 2.5rem;
    }
}

.eg-btn.eg-btn-arrow-reveal:focus-visible .eg-btn-badge {
    inline-size: 2.5rem;
}

.eg-chip {
    display: inline-block;
    padding-block: calc(0.5rem - 1px);
    padding-inline: calc(0.875rem - 1px);
    border: 1px solid rgb(255 255 255 / 0.3);
    border-radius: var(--radius-pill);
    background-color: rgb(255 255 255 / 0.16);
    color: var(--white);
    font-size: var(--fs-label);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Contact item: base = inline (contacts section); the hero overrides to stacked */
.eg-contact-item {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.eg-contact-item .eg-contact-item-icon {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    inline-size: 3.25rem;
    block-size: 3.25rem;
    border: 1px solid var(--border);
    border-radius: 50%;
    background-color: var(--white);
    color: var(--navy-700);
}

.eg-contact-item .eg-contact-item-texts {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.eg-contact-item .eg-contact-item-label {
    font-size: var(--fs-small);
    line-height: 1.5;
    color: var(--text-muted);
}

.eg-contact-item .eg-contact-item-value {
    font-size: var(--fs-body-m);
    font-weight: 500;
    line-height: 1.2;
    color: var(--navy-700);
}

@media (hover: hover) {
    .eg-contact-item a.eg-contact-item-value:hover {
        text-decoration: underline;
    }
}

/* Product card: picture + gradient, "+" expands the description over a blurred picture */
.eg-product-card {
    position: relative;
    display: grid;
    align-items: end;
    min-block-size: 34.375rem;
    border-radius: var(--radius-l);
    overflow: hidden;
    color: var(--white);
    isolation: isolate;
}

.eg-product-card .eg-product-card-media,
.eg-product-card .eg-product-card-media::after,
.eg-product-card .eg-product-card-media::before {
    position: absolute;
    inset: 0;
    z-index: -1;
}

.eg-product-card .eg-product-card-media img {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
}

.eg-product-card .eg-product-card-media::after {
    content: "";
    z-index: 0;
    background-image: linear-gradient(180deg, rgb(0 51 102 / 0) 32.123%, var(--navy-700) 79.182%);
}

.eg-product-card .eg-product-card-media::before {
    content: "";
    z-index: 1;
    background-color: rgb(0 0 0 / 0.3);
    backdrop-filter: blur(10px);
    opacity: 0;
    transition: opacity 0.4s ease;
}

.eg-product-card .eg-product-card-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
    padding: 2.5rem;
}

.eg-product-card .eg-product-card-title {
    font-size: var(--fs-card);
    font-weight: 500;
    line-height: 1.02;
    letter-spacing: -0.03em;
}

.eg-product-card .eg-product-card-text {
    display: grid;
    grid-template-rows: 1fr;
    margin-block-start: -1.25rem;
    color: rgb(255 255 255 / 0.8);
    transition:
        grid-template-rows 0.45s var(--ease-out),
        opacity 0.45s ease;
}

.eg-product-card .eg-product-card-text > p {
    overflow: hidden;
    padding-block-start: 1.25rem;
}

.eg-product-card .eg-product-card-text[inert] {
    grid-template-rows: 0fr;
    opacity: 0;
}

.eg-product-card:has(.eg-product-card-toggle[aria-expanded="true"]) .eg-product-card-media::before {
    opacity: 1;
}

.eg-product-card .eg-product-card-toggle {
    position: absolute;
    inset-block-start: 2.5rem;
    inset-inline-end: 2.5rem;
    display: grid;
    place-items: center;
    inline-size: 3rem;
    block-size: 3rem;
    border: 1px solid transparent;
    border-radius: 50%;
    background-color: var(--white);
    color: var(--navy-700);
    cursor: pointer;
}

.eg-product-card .eg-product-card-toggle svg path:first-child {
    transform-origin: center;
    transition: scale 0.3s var(--ease-out);
}

.eg-product-card .eg-product-card-toggle[aria-expanded="true"] svg path:first-child {
    scale: 1 0;
}

/* ======================================== */
/* PROJECT: HEADER */
/* ======================================== */

.site-header {
    position: fixed;
    inset-block-start: 0;
    inset-inline: 0;
    z-index: 50;
    padding-block-start: 1.5rem;
}

.site-header::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: linear-gradient(180deg, rgb(10 51 102 / 0.1), rgb(10 51 102 / 0) 60%);
    backdrop-filter: blur(2px);
    pointer-events: none;
}

.site-header .site-header-pill {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1rem;
    min-block-size: 4.5rem;
    padding-block: 0.5rem;
    padding-inline: 1.75rem 0.5rem;
    border-radius: var(--radius-pill);
    background-color: var(--white);
}

.site-header .site-header-brand {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    inline-size: fit-content;
    color: var(--navy-700);
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.01em;
    white-space: nowrap;
}

.site-header .site-header-brand img {
    inline-size: 5.625rem;
    block-size: 2rem;
    object-fit: contain;
}

.site-header .site-menu-list {
    display: flex;
    gap: 2.25rem;
}

.site-header .site-header-nav a {
    color: #393939;
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
}

@media (hover: hover) {
    .site-header .site-header-nav a:hover {
        color: var(--sky-500);
    }
}

.site-header .site-header-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.5rem;
}

.site-header .site-header-toggle {
    display: none;
    place-items: center;
    inline-size: 3.5rem;
    block-size: 3.5rem;
    border: 1px solid transparent;
    border-radius: 50%;
    background-color: var(--surface);
    cursor: pointer;
}

.site-header .site-header-toggle > span,
.site-header .site-header-toggle > span::before,
.site-header .site-header-toggle > span::after {
    display: block;
    inline-size: 1.125rem;
    block-size: 2px;
    border-radius: 2px;
    background-color: var(--navy-700);
}

.site-header .site-header-toggle > span {
    position: relative;
}

.site-header .site-header-toggle > span::before,
.site-header .site-header-toggle > span::after {
    content: "";
    position: absolute;
    inset-inline-start: 0;
}

.site-header .site-header-toggle > span::before {
    inset-block-start: -0.375rem;
}

.site-header .site-header-toggle > span::after {
    inset-block-start: 0.375rem;
}

.site-header .site-header-popover {
    inset: auto;
    inset-block-start: 6.5rem;
    inset-inline: var(--container-x-padding);
    margin: 0;
    padding: 1.5rem 1.75rem;
    border: 0;
    border-radius: var(--radius-l);
    background-color: var(--white);
    box-shadow: 0 1rem 2.5rem rgb(10 36 66 / 0.12);
}

.site-header .site-header-popover .site-menu-list {
    flex-direction: column;
    gap: 0;
}

.site-header .site-header-popover a {
    display: block;
    padding-block: 0.75rem;
    color: var(--navy-700);
    font-size: 1.25rem;
    font-weight: 500;
}

@media (width < 64rem) {
    .site-header .site-header-nav {
        display: none;
    }

    .site-header .site-header-pill {
        grid-template-columns: 1fr auto;
        padding-inline-start: 1.25rem;
    }

    .site-header .site-header-toggle {
        display: grid;
    }
}

@media (width < 30rem) {
    .site-header .site-header-actions .eg-btn {
        display: none;
    }
}

/* Very narrow screens: logo only, the name stays as the link's accessible text */
@media (width < 24rem) {
    .site-header .site-header-brand span {
        position: absolute;
        inline-size: 1px;
        block-size: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
}

/* ======================================== */
/* PROJECT: HERO */
/* ======================================== */

.hero {
    --on-surface: var(--white);
    padding-block-end: var(--section-space);
}

.hero .hero-top {
    position: relative;
    isolation: isolate;
    padding-block: 13.3125rem 12.125rem;
    background-color: var(--navy-700);
    color: var(--white);
}

/* Picture covers the lower part (Figma: from 44% down): navy fade on top, white fade into the page below */
.hero .hero-bg {
    position: absolute;
    inset-inline: 0;
    inset-block: 44% 0;
    z-index: -1;
    overflow: hidden;
}

.hero .hero-bg img {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
}

.hero .hero-bg::before,
.hero .hero-bg::after {
    content: "";
    position: absolute;
    inset-inline: 0;
}

.hero .hero-bg::before {
    inset-block-start: 0;
    block-size: 78%;
    background-image: linear-gradient(180deg, rgb(0 51 102) 0%, rgb(0 51 102 / 0.92) 18.6%, rgb(0 51 102 / 0.65) 43.4%, rgb(0 51 102 / 0.3) 69.76%, rgb(0 51 102 / 0.08) 96.11%, rgb(0 51 102 / 0) 116.27%);
}

.hero .hero-bg::after {
    inset-block-end: 0;
    block-size: 42.7%;
    background-image: linear-gradient(180deg, rgb(255 255 255 / 0), var(--white));
}

.hero .hero-title {
    margin-inline: 0;
    font-size: var(--fs-display);
    font-weight: 500;
    line-height: 0.96;
    letter-spacing: -0.045em;
    text-wrap: balance;
}

.hero .hero-text {
    margin-inline: 0;
    margin-block-start: 1.875rem;
    font-size: var(--fs-body-l);
    line-height: 1.5;
    letter-spacing: -0.005em;
    color: rgb(255 255 255 / 0.8);
}

.hero .hero-cta {
    margin-block-start: 1.875rem;
}

.hero .hero-contacts {
    --on-surface: var(--navy-700);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.25rem;
    margin-block-start: 3.6875rem;
}

.hero .hero-contacts .eg-contact-item {
    flex-direction: column;
    gap: 1.875rem;
    flex: 0 1 calc(3 * var(--container-column-width) + 2 * var(--container-gap));
    text-align: center;
}

.hero .hero-contacts .eg-contact-item-icon {
    inline-size: 3.5rem;
    block-size: 3.5rem;
    border-color: transparent;
    background-color: var(--navy-700);
    color: var(--white);
}

.hero .hero-contacts .eg-contact-item-value {
    font-size: var(--fs-h3);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.01em;
    color: var(--ink);
}

@media (width < 48rem) {
    .hero .hero-top {
        padding-block: 9.5rem 10rem;
    }
}

/* ======================================== */
/* PROJECT: ABOUT */
/* ======================================== */

.about {
    padding-block: 6.3125rem;
    background-color: var(--sky-100);
}

/* Two halves of the grid (6 + 6 columns); the picture bleeds to the left edge of the viewport */
.about .about-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--container-gap);
    align-items: center;
    container-type: inline-size;
}

.about .about-media {
    position: relative;
    margin-inline-start: calc((100cqi - 100vw) / 2);
    border-start-end-radius: var(--radius-l);
    border-end-end-radius: var(--radius-l);
    overflow: hidden;
    align-self: stretch;
    min-block-size: 40.625rem;
}

/* Out of flow, so the portrait photo does not set the row height */
.about .about-media img {
    position: absolute;
    inset: 0;
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
}

.about .about-content {
    margin-inline-start: calc(var(--container-column-width) + var(--container-gap));
}

.about .about-text {
    margin-block-start: 1.875rem;
    font-size: var(--fs-body-m);
    line-height: 1.4;
    letter-spacing: -0.005em;
    color: var(--text-muted);
}

.about .about-text > *:not(:last-child) {
    margin-block-end: 1.4em;
}

@media (width < 64rem) {
    .about .about-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 3rem;
    }

    .about .about-media {
        min-block-size: 0;
        aspect-ratio: 4 / 3;
    }

    .about .about-content {
        margin-inline-start: 0;
    }
}

/* ======================================== */
/* PROJECT: SERVICES */
/* ======================================== */

.services {
    padding-block: var(--section-space);
}

.services .services-heading {
    text-align: center;
}

.services .services-heading .eg-heading-titles {
    align-items: center;
}

.services .services-features {
    margin-block-start: 4.75rem;
    padding-block: 3rem;
    border-radius: var(--radius-l);
    background-color: var(--navy-700);
    color: var(--white);
    overflow: hidden;
}

/* Separators: border on every item, the -1px offset hides the one at the start of each row */
.services .services-features ul {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
    row-gap: 2.5rem;
    margin-inline-start: -1px;
}

.services .services-features li {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding-inline: 1.5rem;
    border-inline-start: 1px solid rgb(255 255 255 / 0.15);
    text-align: center;
}

.services .services-features li svg {
    margin-block-end: 1rem;
}

.services .services-features h3 {
    font-size: var(--fs-feature);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.01em;
}

.services .services-features p {
    font-size: var(--fs-small);
    line-height: 1.5;
    color: rgb(255 255 255 / 0.7);
}

.services .services-products {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(20rem, 100%), 1fr));
    gap: var(--container-gap);
    margin-block-start: 6.5625rem;
}

.services .services-products > li {
    display: grid;
}

.services .services-boxes > ul {
    display: grid;
    grid-auto-rows: 1fr;
    gap: var(--container-gap);
}

.services .services-box {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 2rem;
    min-block-size: 16.5625rem;
    padding: 2.5rem;
    border-radius: var(--radius-l);
    overflow: hidden;
    isolation: isolate;
    color: var(--white);
}

.services .services-box img {
    position: absolute;
    inset: 0;
    z-index: -2;
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
}

.services .services-box::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: linear-gradient(180deg, rgb(0 51 102 / 0.05), rgb(0 51 102 / 0.25) 45%, rgb(0 51 102 / 0.9));
}

.services .services-box-icon {
    display: grid;
    place-items: center;
    inline-size: 4.5rem;
    block-size: 4.5rem;
    border-radius: 50%;
    background-color: rgb(255 255 255 / 0.18);
}

.services .services-box h3 {
    font-size: var(--fs-card);
    font-weight: 500;
    line-height: normal;
    letter-spacing: -0.02em;
}

/* ======================================== */
/* PROJECT: CONTACTS */
/* ======================================== */

.contacts {
    padding-block: var(--section-space);
    background-color: var(--sky-100);
}

.contacts .contacts-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 3rem var(--container-gap);
}

.contacts .contacts-info,
.contacts .contacts-form {
    margin-inline: 0;
}

.contacts .contacts-info .eg-heading-titles {
    gap: 1.25rem;
}

.contacts .contacts-text {
    margin-block-start: 1.25rem;
    font-size: var(--fs-body-l);
    line-height: 1.5;
    letter-spacing: -0.005em;
    color: var(--text-muted);
}

.contacts .contacts-text a {
    font-weight: 600;
    color: var(--navy-700);
    text-decoration: underline;
}

.contacts .contacts-list {
    display: flex;
    flex-direction: column;
    gap: 1.125rem;
    margin-block-start: 2.25rem;
}

.contacts .contacts-form {
    padding: clamp(1.5rem, 1rem + 2.13vw, 2.5rem);
    border-radius: var(--radius-l);
    background-color: var(--white);
    box-shadow: 0 1rem 2.5rem rgb(10 36 66 / 0.08);
}

.contacts .contacts-form-title {
    margin-block-end: 1.25rem;
    font-size: var(--fs-h3);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.01em;
    color: var(--navy-700);
}

/* ======================================== */
/* PROJECT: FORM (CF7) */
/* ======================================== */

.eg-form .hidden-fields-container {
    display: none;
}

/* WP Armour honeypot: the plugin only shrinks it to 1px, screen readers would still read and fill it */
.eg-form #altEmail_container {
    display: none !important;
}

.eg-form .eg-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(13rem, 100%), 1fr));
    gap: 1.25rem;
}

.eg-form .eg-field-wide {
    grid-column: 1 / -1;
}

.eg-form .eg-field {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    cursor: default;
}

.eg-form .eg-field-label {
    font-size: var(--fs-small);
    line-height: 1.5;
    color: var(--text);
}

.eg-form .eg-field :is(input, textarea) {
    inline-size: 100%;
    min-block-size: 3.5rem;
    padding-block: 0.875rem;
    padding-inline: calc(1.125rem + 1px);
    border: 1px solid var(--border);
    border-radius: var(--radius-m);
    background-color: var(--surface);
    color: var(--text);
    font-size: var(--fs-body);
    line-height: 1.55;
    cursor: text;
}

.eg-form .eg-field textarea {
    display: block;
    min-block-size: 8rem;
    resize: vertical;
}

.eg-form .eg-field :is(input, textarea)::placeholder {
    color: var(--text-muted);
    opacity: 1;
}

.eg-form .eg-field :is(input, textarea):focus-visible {
    border-color: var(--accent);
    outline: 1px solid var(--accent);
    outline-offset: 0;
    animation: none;
}

.eg-form .eg-field-privacy .wpcf7-list-item {
    margin: 0;
}

.eg-form .eg-field-privacy label {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: var(--fs-small);
    line-height: 1.5;
    color: var(--text-muted);
}

.eg-form .eg-field-privacy input[type="checkbox"] {
    inline-size: 1.25rem;
    block-size: 1.25rem;
    border: 1.5px solid var(--border);
    border-radius: 0.375rem;
    background-color: var(--white);
}

.eg-form .eg-field-privacy input[type="checkbox"]:checked {
    border-color: var(--sky-500);
    background-color: var(--sky-500);
}

.eg-form .wpcf7-not-valid-tip {
    margin-block-start: 0.25rem;
    font-size: var(--fs-small);
    color: #b3261e;
}

.eg-form .wpcf7-spinner {
    display: none;
}

.eg-form .wpcf7-response-output {
    margin: 1.25rem 0 0;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-m);
    font-size: var(--fs-small);
}

.eg-form.sent .wpcf7-response-output {
    border-color: #5ad6659e;
    background-color: #5ad66521;
}

.eg-form.invalid .wpcf7-response-output,
.eg-form.failed .wpcf7-response-output {
    border-color: #ffb900cc;
}

.eg-form .wpcf7-response-output:empty {
    display: none;
}

/* ======================================== */
/* PROJECT: BANNER */
/* ======================================== */

.banner {
    padding-block: var(--section-space);
}

.banner .banner-box {
    position: relative;
    isolation: isolate;
    border-radius: var(--radius-l);
    overflow: hidden;
    color: var(--white);
}

.banner .banner-media {
    position: absolute;
    inset: 0;
    z-index: -1;
}

.banner .banner-media img {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
    object-position: 50% 85%;
}

.banner .banner-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: rgb(0 0 0 / 0.2);
}

.banner .banner-content {
    --on-surface: var(--white);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
    gap: 2rem;
    min-block-size: 21.5625rem;
    padding: clamp(2rem, 1.2rem + 3.4vw, 4.5rem);
}

.banner .banner-texts {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin-inline: 0;
}

.banner .eg-eyebrow {
    color: rgb(255 255 255 / 0.75);
}

.banner .banner-title {
    font-size: var(--fs-banner);
    font-weight: 500;
    line-height: 1.02;
    letter-spacing: -0.03em;
}

/* ======================================== */
/* PROJECT: FOOTER */
/* ======================================== */

.site-footer {
    --on-surface: var(--white);
    padding-block: 5rem 2.5rem;
    background-color: var(--navy-700);
    color: rgb(255 255 255 / 0.85);
    font-size: var(--fs-small);
    line-height: 1.5;
}

.site-footer .site-footer-columns {
    display: flex;
    flex-wrap: wrap;
    gap: 2.5rem var(--container-gap);
    padding-block-end: 1.5rem;
}

.site-footer .site-footer-columns > .container {
    flex: 1 1 auto;
    margin-inline: 0;
}

.site-footer .site-footer-brand {
    flex-basis: calc(4 * var(--container-column-width) + 3 * var(--container-gap));
}

.site-footer .site-footer-columns > .container-3 {
    flex-basis: calc(3 * var(--container-column-width) + 2 * var(--container-gap));
}

.site-footer .site-footer-columns > .container-2 {
    flex-basis: calc(2 * var(--container-column-width) + var(--container-gap));
}

.site-footer .site-footer-name {
    font-size: var(--fs-h3);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.01em;
    color: var(--white);
}

.site-footer .site-footer-tagline {
    margin-block-start: 1rem;
    color: rgb(255 255 255 / 0.6);
}

.site-footer .eg-eyebrow {
    color: rgb(255 255 255 / 0.5);
}

.site-footer .site-footer-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-block-start: 0.75rem;
}

.site-footer .site-footer-bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem 2rem;
    margin-block-start: 2rem;
    padding-block-start: 2rem;
    border-block-start: 1px solid rgb(255 255 255 / 0.12);
    color: rgb(255 255 255 / 0.5);
}

.site-footer .site-footer-bottom button {
    color: inherit;
    cursor: pointer;
}

@media (hover: hover) {
    .site-footer a:hover,
    .site-footer .site-footer-bottom button:hover {
        color: var(--white);
        text-decoration: underline;
    }
}

/* ======================================== */
/* PROJECT: USER PREFERENCES */
/* ======================================== */

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }
}

/* Design accent (#0396ea) is 3.2:1 with white: stronger blues only for who asks for more contrast */
@media (prefers-contrast: more) {
    .eg-btn.eg-btn-accent {
        background-color: #0067a8;
    }

    .eg-btn.eg-btn-accent .eg-btn-badge {
        color: #0067a8;
    }

    .hl {
        color: #0067a8;
    }

    .hero .hl {
        color: #8fd0ff;
    }
}

@media (forced-colors: active) {
    .eg-btn,
    .eg-chip,
    .site-header .site-header-pill,
    .contacts .contacts-form {
        border-color: CanvasText;
    }
}
