/* Generated by scripts/build-css.mjs. Edit the source files, then run npm run build:css. */

/* Source: tokens.css */
:root {
    --color-navy-900: #172333;
    --color-navy-800: #1e364e;
    --color-navy-700: #2b435d;
    --color-accent: #af1f29;
    --color-accent-dark: #8f1821;
    --color-page: #f9f9f9;
    --color-surface: #ffffff;
    --color-surface-warm: #f8f7f4;
    --color-text: #293746;
    --color-muted: #6f7b83;
    --color-on-dark: #f8fafb;
    --color-border: #e5e8e9;
    --color-star: #d7a12b;

    --font-display: "Playfair Display", Georgia, serif;
    --font-body: "Josefin Sans", "Trebuchet MS", sans-serif;

    --container-max-width: 79rem;
    --container-gutter: clamp(1.25rem, 4vw, 3rem);
    --header-height: 5.5rem;

    --space-1: 0.375rem;
    --space-2: 0.625rem;
    --space-3: 0.875rem;
    --space-4: 1.25rem;
    --space-5: 1.75rem;
    --space-6: 2.5rem;
    --space-7: 3.5rem;
    --space-8: 5rem;
    /* Public section rhythm: 30% tighter for a more compact business layout. */
    --space-section: clamp(3.15rem, 6.3vw, 5.6rem);

    --radius-sm: 0.125rem;
    --radius-md: 0.25rem;
    --radius-lg: 0.5rem;
    --shadow-soft: 0 0.75rem 2.5rem rgb(23 35 51 / 0.08);
    --shadow-hover: 0 1rem 2.5rem rgb(23 35 51 / 0.12);

    --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
    --transition-fast: 180ms var(--ease-out);
    --transition-base: 300ms var(--ease-out);
}

/* Source: fonts.css */
/* Public fonts are self-hosted to avoid external DNS/TLS requests. */
@font-face {
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('/assets/fonts/josefin-sans-vietnamese.woff2') format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('/assets/fonts/josefin-sans-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('/assets/fonts/josefin-sans-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url('/assets/fonts/playfair-display-cyrillic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url('/assets/fonts/playfair-display-vietnamese.woff2') format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url('/assets/fonts/playfair-display-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url('/assets/fonts/playfair-display-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Source: base.css */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

:where([id]) {
    scroll-margin-top: calc(var(--header-height) + var(--space-5));
}

body {
    min-width: 320px;
    margin: 0;
    background: var(--color-page);
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.65;
    text-rendering: optimizeLegibility;
}

body,
button,
input,
select,
textarea {
    font-family: var(--font-body);
}

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

img {
    height: auto;
}

a {
    color: inherit;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.2em;
}

button,
input,
select,
textarea {
    font-size: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

button {
    cursor: pointer;
}

:focus-visible {
    outline: 0.1875rem solid var(--color-accent);
    outline-offset: 0.25rem;
}

::selection {
    background: var(--color-accent);
    color: var(--color-surface);
}

h1,
h2,
h3,
h4,
p,
ul,
ol {
    margin-top: 0;
}

h1,
h2,
h3,
h4 {
    margin-bottom: var(--space-4);
    color: var(--color-text);
    font-family: var(--font-display);
    font-weight: 500;
    line-height: 1.12;
}

h1 {
    font-size: clamp(2.75rem, 7vw, 5.5rem);
}

h2 {
    font-size: clamp(2rem, 4vw, 3.25rem);
}

h3 {
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
}

p,
ul,
ol {
    margin-bottom: var(--space-4);
}

ul,
ol {
    padding-left: 1.25rem;
}

.skip-link {
    position: fixed;
    z-index: 100;
    top: var(--space-3);
    left: var(--space-3);
    transform: translateY(-200%);
    padding: var(--space-2) var(--space-3);
    background: var(--color-surface);
    color: var(--color-navy-900);
    box-shadow: var(--shadow-soft);
}

.skip-link:focus {
    transform: translateY(0);
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.eyebrow {
    margin-bottom: var(--space-3);
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    line-height: 1.3;
    text-transform: uppercase;
}

.placeholder {
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #aeb8bf, #c9ced1);
    color: rgb(23 35 51 / 0.68);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-align: center;
    text-transform: uppercase;
}

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

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }

    .brand:hover .brand__placeholder,
    .brand:focus-visible .brand__placeholder,
    .site-navigation__dropdown a:hover,
    .site-navigation__dropdown a:focus-visible,
    .site-footer__links a:hover,
    .site-footer__links a:focus-visible,
    .site-header__menu-toggle:hover,
    .site-header__menu-toggle:active {
        transform: none;
    }

    .site-header__menu-toggle:hover .site-header__menu-icon {
        transform: none;
    }
}

/* Source: layout.css */
.container {
    width: min(100% - (var(--container-gutter) * 2), var(--container-max-width));
    margin-inline: auto;
}

.site-header {
    position: relative;
    z-index: 20;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface);
    /* Its sticky height changes while scrolling; do not use it as an anchor. */
    overflow-anchor: none;
}

.site-header--overlay {
    position: absolute;
    inset: 0 0 auto;
    border-bottom-color: rgb(255 255 255 / 0.16);
    background: transparent;
    color: var(--color-on-dark);
}

.site-header__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3) var(--space-4);
    min-height: var(--header-height);
    padding-block: var(--space-3);
}

.brand {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    color: inherit;
    text-decoration: none;
}

.brand__placeholder {
    display: block;
    width: 8.5rem;
    height: 2.4rem;
    border-radius: var(--radius-sm);
    background: linear-gradient(135deg, #aeb8bf 0%, #d3d8db 48%, #a0abb2 100%);
    transition: box-shadow var(--transition-fast), transform var(--transition-fast);
}

.brand__image {
    display: block;
    width: auto;
    max-width: 11rem;
    height: 2.4rem;
    object-fit: contain;
    object-position: left center;
    transition: filter var(--transition-fast), transform var(--transition-fast);
}

.brand__logo-switcher {
    display: grid;
    width: max-content;
    max-width: 100%;
    height: 2.4rem;
}

.brand__logo-switcher .brand__image {
    grid-area: 1 / 1;
    transition: opacity var(--transition-fast), filter var(--transition-fast), transform var(--transition-fast);
}

.site-header--overlay .brand__logo-switcher .brand__image--dark {
    opacity: 1;
}

.site-header--overlay .brand__logo-switcher .brand__image--light {
    opacity: 0;
}

.site-header--overlay.is-away-from-top .brand__logo-switcher .brand__image--dark {
    opacity: 0;
}

.site-header--overlay.is-away-from-top .brand__logo-switcher .brand__image--light {
    opacity: 1;
}

.brand:hover .brand__image,
.brand:focus-visible .brand__image {
    transform: translateY(-0.1rem);
}

.brand:hover .brand__placeholder,
.brand:focus-visible .brand__placeholder {
    box-shadow: 0 0.5rem 1rem rgb(23 35 51 / 0.14);
    transform: translateY(-0.1rem);
}

.site-header__menu-toggle {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-left: auto;
    border: 1px solid currentColor;
    border-radius: var(--radius-sm);
    background: transparent;
    color: inherit;
    padding: 0.55rem 0.75rem;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.site-header__menu-icon {
    display: block;
    width: 1.1rem;
    height: 1.1rem;
    background: none;
    transition: transform var(--transition-fast);
}

@media (hover: hover) and (pointer: fine) {
    .site-header__menu-toggle:hover {
        border-color: var(--color-accent);
        color: var(--color-accent);
        transform: translateY(-0.1rem);
    }

    .site-header__menu-toggle:hover .site-header__menu-icon {
        transform: scaleX(1.12);
    }
}

.site-header__menu-toggle:active {
    transform: translateY(0) scale(0.985);
}

.site-navigation {
    order: 3;
    flex-basis: 100%;
}

.site-navigation__list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-navigation__link,
.site-navigation__summary {
    display: flex;
    align-items: center;
    min-height: 2.75rem;
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color var(--transition-fast);
}

.site-navigation__link {
    position: relative;
}

.site-navigation__link::after {
    position: absolute;
    right: 0;
    bottom: 0.15rem;
    left: 0;
    height: 1px;
    background: var(--color-accent);
    content: "";
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition-fast);
}

.site-navigation__link:hover,
.site-navigation__link:focus-visible,
.site-navigation__summary:hover,
.site-navigation__summary:focus-visible {
    color: var(--color-accent);
}

.site-navigation__link--active {
    color: var(--color-accent);
}

.site-navigation__link:hover::after,
.site-navigation__link:focus-visible::after,
.site-navigation__link--active::after {
    transform: scaleX(1);
}

.site-navigation__item--dropdown {
    position: relative;
}

.site-navigation__summary {
    position: relative;
    cursor: pointer;
    list-style: none;
}

.site-navigation__summary--active {
    color: var(--color-accent);
}

.site-navigation__summary--active::before {
    position: absolute;
    right: 0;
    bottom: 0.15rem;
    left: 0;
    height: 1px;
    background: var(--color-accent);
    content: "";
}

.site-navigation__summary::-webkit-details-marker {
    display: none;
}

.site-navigation__summary::after {
    width: 0.4rem;
    height: 0.4rem;
    margin-left: var(--space-2);
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(45deg) translateY(-0.15rem);
    content: "";
    transition: transform var(--transition-fast);
}

.site-navigation__item--dropdown details[open] .site-navigation__summary {
    color: var(--color-accent);
}

.site-navigation__item--dropdown details[open] .site-navigation__summary::after {
    transform: rotate(225deg) translateY(-0.15rem);
}

.site-navigation__dropdown {
    margin: 0;
    padding: 0 0 var(--space-3) var(--space-4);
    list-style: none;
}

.site-navigation__dropdown a {
    display: block;
    padding-block: var(--space-1);
    font-size: 0.75rem;
    font-weight: 700;
    text-decoration: none;
    transition: color var(--transition-fast), transform var(--transition-fast);
}

.site-navigation__dropdown a:hover,
.site-navigation__dropdown a:focus-visible {
    color: var(--color-accent);
    transform: translateX(0.2rem);
}

.site-navigation__mega-menu-footer {
    display: none;
}

.site-header__cta {
    display: inline-flex;
    flex: 0 0 auto;
    margin-left: auto;
}

.site-header__mobile-cta {
    display: none;
}

.breadcrumbs {
    padding-block: var(--space-4);
    color: var(--color-muted);
    font-size: 0.8rem;
}

.breadcrumbs a {
    color: var(--color-text);
}

.site-footer {
    background: var(--color-navy-900);
    color: rgb(248 250 251 / 0.78);
    padding-block: var(--space-8) var(--space-5);
}

.site-footer__grid {
    display: grid;
    gap: var(--space-7);
}

.site-footer__brand {
    display: grid;
    align-content: start;
    gap: var(--space-3);
}

.site-footer .brand__placeholder {
    width: 11rem;
    height: 3.1rem;
}

.site-footer .brand__image {
    max-width: 11rem;
    height: 3.1rem;
}

.site-footer__brand p {
    max-width: 13rem;
    margin-bottom: 0;
    color: rgb(248 250 251 / 0.58);
    font-size: 0.72rem;
    line-height: 1.4;
}

.site-footer__navigation {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-6);
}

.site-footer__links {
    display: grid;
    align-content: start;
    gap: var(--space-1);
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer__links--full {
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--space-6);
}

.site-footer__links a {
    display: inline-flex;
    color: inherit;
    font-size: 0.75rem;
    line-height: 1.4;
    text-decoration: none;
    transition: color var(--transition-fast), transform var(--transition-fast);
}

.site-footer__links a:hover,
.site-footer__links a:focus-visible {
    color: var(--color-surface);
    transform: translateX(0.2rem);
}

.site-footer__links a.is-active {
    color: var(--color-surface);
}

.site-footer__social {
    display: flex;
    align-items: start;
    gap: var(--space-3);
}

.site-footer__social-link {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border: 1px solid rgb(255 255 255 / 0.18);
    border-radius: 50%;
    color: var(--color-surface);
    text-decoration: none;
    transition: border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);
}

.site-footer__social-link:hover,
.site-footer__social-link:focus-visible {
    border-color: rgb(255 255 255 / 0.62);
    background: rgb(255 255 255 / 0.1);
    transform: translateY(-0.15rem);
}

.site-footer__social-link--placeholder {
    opacity: 0.72;
}

.site-footer__social-icon,
.site-footer__contact-icon {
    display: block;
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 50%;
    background: linear-gradient(135deg, #aeb8bf 0%, #d3d8db 48%, #8f9ba4 100%);
}

.site-footer__contact {
    display: grid;
    align-content: start;
    gap: var(--space-3);
    margin: 0;
    font-size: 0.72rem;
    font-style: normal;
    line-height: 1.4;
}

.site-footer__contact-item {
    display: grid;
    grid-template-columns: 1rem minmax(0, 1fr);
    align-items: start;
    gap: var(--space-2);
}

.site-footer__contact-icon {
    width: 0.8rem;
    height: 0.8rem;
    margin-top: 0.2rem;
}

.site-footer__contact a {
    overflow-wrap: anywhere;
    color: inherit;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.site-footer__contact a:hover,
.site-footer__contact a:focus-visible {
    color: var(--color-surface);
}

.site-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--space-3);
    margin-top: var(--space-7);
    padding-top: var(--space-4);
    border-top: 1px solid rgb(255 255 255 / 0.14);
    font-size: 0.75rem;
}

.site-footer__bottom-copy {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem 1.25rem;
}

.site-footer__credit {
    color: rgb(255 255 255 / .62);
}

.site-footer__credit a {
    color: var(--color-surface);
    font-weight: 700;
    letter-spacing: .02em;
}

.site-footer__bottom nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
}

.site-footer__bottom a {
    color: inherit;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.site-footer__bottom a:hover,
.site-footer__bottom a:focus-visible {
    color: var(--color-surface);
}

@media (min-width: 48rem) {
    .site-header__inner {
        position: relative;
        flex-wrap: nowrap;
        gap: var(--space-5);
    }

    .site-header__menu-toggle {
        display: none;
    }

    .site-navigation {
        order: initial;
        flex-basis: auto;
        flex-grow: 1;
    }

    .site-navigation__list {
        flex-direction: row;
        align-items: center;
        justify-content: center;
        gap: clamp(0.75rem, 2vw, 2rem);
    }

    .site-navigation__link,
    .site-navigation__summary {
        min-height: 2rem;
        font-size: 0.65rem;
    }

    .site-navigation__dropdown {
        position: absolute;
        z-index: 5;
        top: calc(100% + 0.5rem);
        left: 50%;
        width: 15rem;
        padding: var(--space-3);
        transform: translateX(-50%);
        border: 1px solid var(--color-border);
        background: var(--color-surface);
        color: var(--color-text);
        box-shadow: var(--shadow-soft);
    }

    .site-navigation__item--dropdown {
        position: static;
    }

    .site-navigation__mega-menu {
        position: fixed;
        z-index: 5;
        inset: calc(var(--header-height) + 0.75rem - 12px) 0 0;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(min(20rem, 100%), 1fr));
        gap: 0;
        width: auto;
        max-height: none;
        overflow-y: auto;
        padding: var(--space-4) max(var(--space-4), calc((100vw - 72rem) / 2 + var(--space-4)));
        transform: none;
        border-top: 2px solid var(--color-accent);
        animation: site-mega-menu-in 180ms ease both;
    }

    .site-navigation__mega-menu.is-closing {
        pointer-events: none;
        animation: site-mega-menu-out 180ms ease both;
    }

    .site-navigation__mega-menu-head {
        grid-column: 1 / -1;
        margin-bottom: var(--space-3);
        padding-bottom: var(--space-3);
        border-bottom: 1px solid var(--color-border);
    }

    .site-navigation__mega-menu-head a {
        display: inline-flex;
        align-items: center;
        gap: .45rem;
        padding: 0;
        color: var(--color-accent-dark);
        font-size: .68rem;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .site-navigation__mega-menu-column {
        display: flex;
        flex-direction: column;
        min-width: 0;
        padding: 0 var(--space-4);
        border-left: 0;
    }

    .site-navigation__mega-menu-column:first-child {
        padding-left: 0;
    }

    .site-navigation__mega-menu-column + .site-navigation__mega-menu-column {
        border-left: 1px solid rgb(164 128 43 / .42);
    }

    .site-navigation__mega-menu-column:last-child {
        padding-right: 0;
    }

    .site-navigation__mega-menu-column h3 {
        margin: 0 0 var(--space-2);
        color: var(--color-accent-dark);
        font-family: var(--font-display);
        padding-top: 9px;
        font-size: 26px;
        font-weight: 700;
        line-height: 1.12;
        letter-spacing: .02em;
        overflow-wrap: anywhere;
        text-transform: uppercase;
    }

    .site-navigation__mega-menu-column > ul {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .site-navigation__mega-menu-column a {
        padding: .78rem 0;
        border-bottom: 1px solid var(--color-border);
        font-size: 1rem;
        font-weight: 600;
        line-height: 1.35;
        overflow-wrap: anywhere;
    }

    .site-navigation__mega-menu-column li:last-child a {
        border-bottom: 0;
    }

    .site-navigation__mega-menu-featured {
        margin-top: 0;
        border: 1px solid rgb(164 128 43 / .34);
        background: linear-gradient(145deg, var(--color-surface-warm), var(--color-surface));
        box-shadow: 0 .7rem 1.4rem rgb(23 35 51 / .06);
        transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
    }

    .site-navigation__mega-menu-featured:hover,
    .site-navigation__mega-menu-featured:focus-within {
        border-color: rgb(164 128 43 / .72);
        box-shadow: 0 1rem 1.8rem rgb(23 35 51 / .12);
        transform: translateY(-.2rem);
    }

    .site-navigation__mega-menu-featured-icon {
        transition: background-color var(--transition-base), color var(--transition-base), transform var(--transition-base);
    }

    .site-navigation__mega-menu-featured:hover .site-navigation__mega-menu-featured-icon,
    .site-navigation__mega-menu-featured:focus-within .site-navigation__mega-menu-featured-icon {
        background: var(--color-accent);
        color: var(--color-surface);
        transform: translateY(-.1rem) scale(1.06) rotate(-4deg);
    }

    .site-navigation__mega-menu-featured-separator {
        display: flex;
        flex: 1 1 auto;
        min-height: var(--space-5);
        align-items: center;
    }

    .site-navigation__mega-menu-featured-separator::before {
        width: 100%;
        height: 1px;
        background: rgb(164 128 43 / .58);
        content: '';
    }

    .site-navigation__mega-menu-featured a,
    .site-navigation__mega-menu-featured a:hover,
    .site-navigation__mega-menu-featured a:focus-visible {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: start;
        gap: .8rem;
        padding: 1rem;
        border-bottom: 0;
        color: var(--color-text);
        font-size: .92rem;
        font-weight: 400;
        line-height: 1.45;
        transform: none;
    }

    .site-navigation__mega-menu-featured-icon {
        display: grid;
        width: 2.55rem;
        height: 2.55rem;
        flex: 0 0 auto;
        place-items: center;
        border: 1px solid var(--color-accent);
        border-radius: 50%;
        color: var(--color-accent-dark);
    }

    .site-navigation__mega-menu-featured-icon svg {
        width: 1.35rem;
        height: 1.35rem;
    }

    .site-navigation__mega-menu-featured-copy {
        display: grid;
        gap: .45rem;
        min-width: 0;
    }

    .site-navigation__mega-menu-featured-copy strong {
        color: var(--color-accent-dark);
        font-family: var(--font-display);
        font-size: 1.12rem;
        font-weight: 600;
        line-height: 1.2;
        overflow-wrap: anywhere;
    }

    .site-navigation__mega-menu-featured-copy span {
        color: var(--color-muted);
        font-size: .82rem;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .site-navigation__mega-menu-footer {
        display: flex;
        grid-column: 1 / -1;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        margin-top: var(--space-4);
        padding-top: var(--space-4);
        border-top: 1px solid var(--color-border);
    }

    .site-navigation__mega-menu-actions {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--space-4);
    }

    .site-navigation__mega-menu-actions .button {
        flex: 0 0 auto;
        min-height: 2.7rem;
        padding: .7rem 1rem;
        font-size: .78rem;
    }

    .site-navigation__mega-menu-overview {
        margin-left: auto;
    }

    .site-navigation__mega-menu-actions .button.button--primary,
    .site-navigation__mega-menu-actions .button.button--primary:hover,
    .site-navigation__mega-menu-actions .button.button--primary:focus-visible {
        color: var(--color-surface);
    }

    .site-navigation__mega-menu-cta-label {
        display: inline-block;
        transform: translateY(2px);
    }

    .site-navigation__mega-menu-contact {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-end;
        gap: .65rem 1.25rem;
        margin: var(--space-3) 0 0;
        padding-top: var(--space-3);
        border-top: 1px solid var(--color-border);
        color: var(--color-muted);
        font-size: .86rem;
        font-style: normal;
    }

    .site-navigation__mega-menu-contact a,
    .site-navigation__mega-menu-contact > span {
        display: inline-flex;
        align-items: center;
        gap: .4rem;
        padding: 0;
        border: 0;
        line-height: 1.35;
    }

    .site-navigation__mega-menu-contact a:hover,
    .site-navigation__mega-menu-contact a:focus-visible {
        transform: none;
    }

    .site-navigation__mega-menu-contact svg {
        width: .95rem;
        height: .95rem;
        flex: 0 0 auto;
        color: var(--color-accent-dark);
    }

    @keyframes site-mega-menu-in {
        from { opacity: 0; transform: translateY(-.35rem); }
        to { opacity: 1; transform: translateY(0); }
    }

    @keyframes site-mega-menu-out {
        from { opacity: 1; transform: translateY(0); }
        to { opacity: 0; transform: translateY(-.35rem); }
    }

    .site-footer__grid {
        grid-template-columns: 1.45fr 1.65fr 0.75fr 1.25fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .brand__placeholder,
    .site-header__menu-toggle,
    .site-header__menu-icon,
    .site-navigation__link::after,
    .site-navigation__summary::after,
    .site-navigation__dropdown a,
    .site-navigation__mega-menu-featured,
    .site-navigation__mega-menu-featured-icon,
    .site-footer__links a,
    .site-footer__social-link,
    .site-footer__contact a,
    .site-footer__bottom a {
        transition: none;
    }

    .site-navigation__mega-menu {
        animation: none;
    }

    .brand:hover .brand__placeholder,
    .brand:focus-visible .brand__placeholder,
    .site-header__menu-toggle:hover,
    .site-header__menu-toggle:active,
    .site-navigation__dropdown a:hover,
    .site-navigation__dropdown a:focus-visible,
    .site-navigation__mega-menu-featured:hover,
    .site-navigation__mega-menu-featured:focus-within,
    .site-navigation__mega-menu-featured:hover .site-navigation__mega-menu-featured-icon,
    .site-navigation__mega-menu-featured:focus-within .site-navigation__mega-menu-featured-icon,
    .site-footer__links a:hover,
    .site-footer__links a:focus-visible {
        transform: none;
    }

    .site-footer__social-link:hover,
    .site-footer__social-link:focus-visible {
        transform: none;
    }
}

/* Source: components.css */
.button {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    padding: 0.75rem 1.25rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.button--primary {
    background: var(--color-accent);
    color: var(--color-surface);
}

.button--primary:hover,
.button--primary:focus-visible {
    background: var(--color-accent-dark);
}

.button--outline {
    border-color: currentColor;
    color: inherit;
}

.button--outline:hover,
.button--outline:focus-visible {
    background: var(--color-surface);
    color: var(--color-navy-900);
}

@media (hover: hover) and (pointer: fine) {
    .button:hover {
        box-shadow: var(--shadow-hover);
        transform: translateY(-0.15rem);
    }
}

.button:active {
    box-shadow: none;
    transform: translateY(0) scale(0.985);
}

.contact-hero {
    position: relative;
    display: grid;
    min-height: clamp(18rem, 34vw, 25rem);
    overflow: hidden;
    isolation: isolate;
    background: var(--color-navy-800);
    color: var(--color-on-dark);
}

.contact-hero__background,
.contact-hero__overlay {
    position: absolute;
    inset: 0;
}

.contact-hero__background {
    background: linear-gradient(125deg, #687783 0%, #aeb8bf 45%, #506273 100%);
}

.contact-hero__overlay {
    z-index: 1;
    background: linear-gradient(90deg, rgb(23 35 51 / 0.88), rgb(23 35 51 / 0.44) 68%, rgb(23 35 51 / 0.7));
}

.contact-hero__inner {
    position: relative;
    z-index: 2;
    align-self: end;
    padding-block: clamp(4rem, 9vw, 7rem) clamp(3rem, 6vw, 5rem);
}

.contact-hero .eyebrow {
    color: rgb(255 255 255 / 0.78);
}

.contact-hero h1 {
    margin-bottom: var(--space-4);
    color: var(--color-surface);
    font-size: clamp(3rem, 7vw, 5.5rem);
}

.contact-hero__description {
    max-width: 34rem;
    margin-bottom: 0;
    color: rgb(255 255 255 / 0.84);
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}

.contact-details {
    padding-block: clamp(3.5rem, 7vw, 6rem) clamp(2.5rem, 5vw, 4rem);
    background: var(--color-surface);
}

.contact-details__grid {
    display: grid;
    gap: var(--space-7);
}

.contact-location__map {
    aspect-ratio: 1.65 / 1;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, #aeb8bf 0%, #d3d8db 48%, #929ea7 100%);
    box-shadow: var(--shadow-soft);
}

.contact-location__map iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: inherit;
}

.contact-location__address {
    max-width: 30rem;
    margin: var(--space-4) 0 var(--space-2);
    color: var(--color-text);
    font-style: normal;
    white-space: pre-line;
}

.contact-information {
    display: grid;
    align-content: start;
}

.contact-information__item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: var(--space-4);
    padding-block: var(--space-4);
    border-bottom: 1px solid var(--color-border);
}

.contact-information__item:first-child {
    padding-top: 0;
}

.contact-information__icon {
    display: block;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-navy-700), var(--color-navy-900));
    box-shadow: 0 0.5rem 1.25rem rgb(23 35 51 / 0.12);
}

.contact-information__item h3,
.contact-social h3 {
    margin-bottom: var(--space-1);
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 700;
}

.contact-information__item a {
    overflow-wrap: anywhere;
    color: var(--color-text);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.contact-information__item a:hover,
.contact-information__item a:focus-visible {
    color: var(--color-accent);
}

.contact-social {
    padding-top: var(--space-5);
}

.contact-social__links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
}

.contact-social__link {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border: 1px solid var(--color-border);
    border-radius: 50%;
    background: var(--color-surface);
    text-decoration: none;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}

.contact-social__link:hover,
.contact-social__link:focus-visible {
    border-color: rgb(175 31 41 / 0.45);
    box-shadow: var(--shadow-hover);
    transform: translateY(-0.15rem);
}

.contact-social__link--placeholder {
    opacity: 0.76;
}

.contact-social__icon {
    display: block;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background: linear-gradient(135deg, #aeb8bf 0%, #d3d8db 48%, #8f9ba4 100%);
}

.contact-form-section {
    padding-bottom: var(--space-section);
    background: var(--color-surface);
}

.contact-form-card {
    max-width: 52rem;
    margin-inline: auto;
    padding: clamp(var(--space-5), 5vw, var(--space-7));
    border: 1px solid var(--color-border);
    border-top: 0.2rem solid var(--color-accent);
    background: var(--color-surface);
    box-shadow: var(--shadow-soft);
}

.contact-form-card__intro {
    max-width: 34rem;
    margin-inline: auto;
    text-align: center;
}

.contact-form-card__intro h2 {
    margin-bottom: var(--space-2);
}

.contact-form-card__intro > p:last-child {
    margin-bottom: var(--space-6);
    color: var(--color-muted);
}

.contact-form {
    display: grid;
    gap: var(--space-5);
}

.contact-form__fields {
    display: grid;
    gap: var(--space-4);
}

.contact-form__field {
    display: grid;
    gap: var(--space-2);
}

.contact-form__field label {
    color: var(--color-text);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.contact-form__field input,
.contact-form__field select,
.contact-form__field textarea {
    width: 100%;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-page);
    color: var(--color-text);
    padding: 0.8rem 0.95rem;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);
}

.contact-form__field textarea {
    min-height: 10rem;
    resize: vertical;
}

.contact-form__field input:focus,
.contact-form__field select:focus,
.contact-form__field textarea:focus {
    border-color: var(--color-accent);
    background: var(--color-surface);
    box-shadow: 0 0 0 0.2rem rgb(175 31 41 / 0.1);
    outline: 0;
}

.contact-form__actions {
    display: flex;
    justify-content: center;
}

.form-status {
    margin-bottom: var(--space-5);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-border);
}

.form-status p,
.form-status ul {
    margin-bottom: 0;
}

.form-status ul {
    margin-top: var(--space-2);
}

.form-status--success {
    border-color: rgb(57 125 87 / 0.35);
    background: rgb(57 125 87 / 0.07);
}

.form-status--error {
    border-color: rgb(175 31 41 / 0.35);
    background: rgb(175 31 41 / 0.06);
}

.blog-hero,
.article-hero {
    position: relative;
    display: grid;
    overflow: hidden;
    isolation: isolate;
    background: var(--color-navy-800);
    color: var(--color-on-dark);
}

.blog-hero {
    min-height: clamp(19rem, 36vw, 27rem);
}

.blog-hero__background,
.blog-hero__overlay,
.article-hero__background,
.article-hero__overlay {
    position: absolute;
    inset: 0;
}

.blog-hero__background,
.article-hero__background {
    background: linear-gradient(125deg, #657582 0%, #aeb8bf 46%, #4e6171 100%);
}

.blog-hero__overlay,
.article-hero__overlay {
    z-index: 1;
    background: linear-gradient(90deg, rgb(23 35 51 / 0.88), rgb(23 35 51 / 0.42) 62%, rgb(23 35 51 / 0.72));
}

.blog-hero__inner,
.article-hero__inner {
    position: relative;
    z-index: 2;
    align-self: end;
    padding-block: clamp(4rem, 9vw, 7rem) clamp(3rem, 6vw, 5rem);
    text-align: center;
}

.blog-hero .eyebrow,
.article-hero .eyebrow {
    color: rgb(255 255 255 / 0.78);
}

.blog-hero h1,
.article-hero h1 {
    margin-bottom: var(--space-4);
    color: var(--color-surface);
    font-size: clamp(3rem, 7vw, 5.75rem);
}

.blog-hero__description {
    max-width: 37rem;
    margin: 0 auto;
    color: rgb(255 255 255 / 0.84);
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}

.blog-listing {
    background: var(--color-surface);
}

.blog-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: var(--space-2);
    margin-bottom: var(--space-7);
}

.blog-filter {
    display: inline-flex;
    min-height: 2.5rem;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    padding: 0.55rem 1rem;
    color: var(--color-text);
    font-size: 0.76rem;
    text-decoration: none;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.blog-filter:hover,
.blog-filter:focus-visible {
    border-color: rgb(175 31 41 / 0.45);
    box-shadow: var(--shadow-soft);
    color: var(--color-accent);
    transform: translateY(-0.1rem);
}

.blog-filter--active {
    border-color: var(--color-navy-900);
    background: var(--color-navy-900);
    color: var(--color-surface);
}

.blog-filter--active:hover,
.blog-filter--active:focus-visible {
    background: var(--color-navy-800);
    color: var(--color-surface);
}

.blog-grid {
    display: grid;
    gap: var(--space-4);
    align-items: stretch;
}

.blog-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    box-shadow: 0 0.5rem 1.5rem rgb(23 35 51 / 0.05);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.blog-card__media {
    aspect-ratio: 1.75 / 1;
    background: linear-gradient(135deg, #aeb8bf 0%, #d3d8db 48%, #929ea7 100%);
    background-position: center;
    background-size: cover;
}

.blog-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    padding: var(--space-4);
}

.blog-card__category {
    display: inline-flex;
    margin-bottom: var(--space-3);
    border-radius: 999px;
    background: var(--color-accent);
    color: var(--color-surface);
    padding: 0.3rem 0.6rem;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.2;
    text-transform: uppercase;
}

.blog-card h2 {
    margin-bottom: var(--space-2);
    font-family: var(--font-body);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.25;
}

.blog-card h2 a {
    color: inherit;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.blog-card h2 a:hover,
.blog-card h2 a:focus-visible {
    color: var(--color-accent);
}

.blog-card__excerpt {
    width: 100%;
    margin-bottom: var(--space-4);
    color: var(--color-muted);
    font-size: 0.82rem;
}

.blog-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-3);
    width: 100%;
    margin-top: auto;
    padding-top: var(--space-3);
    border-top: 1px solid var(--color-border);
    color: var(--color-muted);
    font-size: 0.7rem;
}

.blog-card__meta a {
    color: var(--color-accent);
    font-weight: 700;
    text-decoration: none;
    transition: color var(--transition-fast), transform var(--transition-fast);
}

.blog-card__meta a:hover,
.blog-card__meta a:focus-visible {
    color: var(--color-accent-dark);
    transform: translateX(0.15rem);
}

.blog-empty {
    max-width: 34rem;
    margin-inline: auto;
    color: var(--color-muted);
    text-align: center;
}

.blog-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    margin-top: var(--space-7);
    color: var(--color-text);
    font-size: 0.8rem;
}

.blog-pagination a,
.blog-pagination > span[aria-disabled="true"] {
    color: inherit;
    text-decoration: none;
}

.blog-pagination > span[aria-disabled="true"] {
    color: var(--color-muted);
}

.blog-pagination a:hover,
.blog-pagination a:focus-visible {
    color: var(--color-accent);
}

.blog-pagination__pages {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.blog-pagination__pages a,
.blog-pagination__current {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
}

.blog-pagination__current {
    background: var(--color-navy-900);
    color: var(--color-surface);
}

.article-hero {
    min-height: clamp(22rem, 42vw, 34rem);
}

.article-hero__inner {
    max-width: 58rem;
    margin-inline: auto;
}

.article-hero h1 {
    max-width: 54rem;
    margin-inline: auto;
    font-size: clamp(2.5rem, 6vw, 5rem);
}

.article-hero__excerpt {
    max-width: 42rem;
    margin: 0 auto var(--space-4);
    color: rgb(255 255 255 / 0.84);
    font-size: clamp(1rem, 1.5vw, 1.12rem);
}

.article-hero__meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-2) var(--space-4);
    color: rgb(255 255 255 / 0.72);
    font-size: 0.78rem;
}

.article-hero__meta a {
    color: inherit;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.article-hero__meta a:hover,
.article-hero__meta a:focus-visible {
    color: var(--color-surface);
}

.article-layout {
    display: grid;
    gap: var(--space-7);
    padding-block: var(--space-section);
}

.article-main {
    min-width: 0;
}

.article-body {
    color: var(--color-text);
    font-size: 1.05rem;
    line-height: 1.85;
}

.rich-content > :first-child { margin-top: 0; }
.rich-content > :last-child { margin-bottom: 0; }
.rich-content p, .rich-content h1, .rich-content h2, .rich-content h3, .rich-content h4, .rich-content h5, .rich-content h6, .rich-content blockquote, .rich-content table { margin: 0 0 var(--space-4); }
.rich-content h1, .rich-content h2, .rich-content h3, .rich-content h4, .rich-content h5, .rich-content h6 { color: var(--color-navy-900); font-family: var(--font-display); font-weight: 500; line-height: 1.2; }
.rich-content h1 { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.rich-content h2 { font-size: clamp(1.45rem, 2vw, 1.9rem); }
.rich-content h3 { font-size: 1.25rem; }
.rich-content h4 { font-size: 1.1rem; }
.rich-content h5 { font-size: 1rem; }
.rich-content h6 { color: var(--color-muted); font-family: var(--font-body); font-size: .9rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.rich-content ul, .rich-content ol { margin: 0 0 var(--space-4); padding-left: 1.5rem; }
.rich-content blockquote { border-left: .2rem solid var(--color-accent); color: var(--color-muted); padding-left: var(--space-4); }
.rich-content a { color: var(--color-accent); }
.rich-content img { display: block; width: auto; max-width: 100%; height: auto; margin: var(--space-5) 0; border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); }
.rich-content table { width: 100%; border-collapse: collapse; }
.rich-content th, .rich-content td { border: 1px solid var(--color-border); padding: .7rem .8rem; text-align: left; vertical-align: top; }
.rich-content th { background: var(--color-surface-warm); font-weight: 700; }

.article-attachments {
    margin-top: var(--space-7);
    padding-top: var(--space-5);
    border-top: 1px solid var(--color-border);
}

.article-attachments h2 {
    font-size: 1.75rem;
}

.article-attachments ul {
    margin-bottom: 0;
}

.article-attachments a {
    color: var(--color-accent);
}

.article-sidebar {
    display: grid;
    align-content: start;
    gap: var(--space-5);
}

.article-sidebar__card {
    padding: var(--space-5);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    box-shadow: 0 0.5rem 1.5rem rgb(23 35 51 / 0.05);
}

.article-sidebar__card h2 {
    font-size: 1.75rem;
}

.resources-hero {
    position: relative;
    display: grid;
    min-height: clamp(19rem, 36vw, 27rem);
    overflow: hidden;
    isolation: isolate;
    background: var(--color-navy-800);
    color: var(--color-on-dark);
}

.resources-hero__background,
.resources-hero__overlay {
    position: absolute;
    inset: 0;
}

.resources-hero__background {
    background: linear-gradient(125deg, #627682 0%, #aeb8bf 46%, #4b6170 100%);
}

.resources-hero__overlay {
    z-index: 1;
    background: linear-gradient(90deg, rgb(23 35 51 / 0.86), rgb(23 35 51 / 0.4) 62%, rgb(23 35 51 / 0.72));
}

.resources-hero__inner {
    position: relative;
    z-index: 2;
    align-self: end;
    padding-block: clamp(4rem, 9vw, 7rem) clamp(3rem, 6vw, 5rem);
    text-align: center;
}

.resources-hero .eyebrow {
    color: rgb(255 255 255 / 0.78);
}

.resources-hero h1 {
    margin-bottom: var(--space-4);
    color: var(--color-surface);
    font-size: clamp(2.75rem, 6vw, 5.25rem);
}

.resources-hero__description {
    max-width: 38rem;
    margin: 0 auto;
    color: rgb(255 255 255 / 0.84);
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}

.resources-listing {
    background: var(--color-surface);
}

.resources-listing > .container > h2 {
    max-width: 48rem;
    margin-inline: auto;
    margin-bottom: var(--space-3);
    text-align: center;
}

.information-date-note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    max-width: 42rem;
    margin: 0 auto var(--space-7);
    color: #9b7b1c;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .03em;
    line-height: 1.5;
    text-align: center;
}

.information-date-note::before,
.information-date-note::after {
    flex: 0 1 4rem;
    width: clamp(1.5rem, 8vw, 4rem);
    height: 1px;
    background: rgb(155 123 28 / .45);
    content: "";
}

.resources-download-grid {
    display: grid;
    gap: var(--space-4);
    align-items: stretch;
}

.resource-download-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    min-height: 19rem;
    padding: var(--space-6) var(--space-5) var(--space-5);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    box-shadow: 0 0.5rem 1.5rem rgb(23 35 51 / 0.05);
    text-align: center;
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.resource-download-card__media {
    width: calc(100% + (var(--space-5) * 2));
    min-height: 8rem;
    margin: calc(var(--space-6) * -1) calc(var(--space-5) * -1) var(--space-5);
    background: linear-gradient(135deg, #aeb8bf 0%, #d3d8db 48%, #a0abb2 100%);
    background-position: center;
    background-size: cover;
}

.resource-download-card__icon {
    display: grid;
    width: 2.35rem;
    height: 2.85rem;
    margin-bottom: var(--space-5);
    place-items: center;
    background: var(--color-accent);
    color: var(--color-surface);
    clip-path: polygon(0 0, 70% 0, 100% 25%, 100% 100%, 0 100%);
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1;
}

.resource-download-card__body {
    display: flex;
    width: 100%;
    flex: 1;
    flex-direction: column;
    align-items: center;
}

.resource-download-card h3 {
    max-width: 15rem;
    margin-bottom: var(--space-3);
    font-size: 1.4rem;
}

.resource-download-card__description {
    max-width: 18rem;
    margin-bottom: var(--space-4);
    color: var(--color-muted);
    font-size: 0.82rem;
}

.resource-download-card__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: auto;
    color: var(--color-text);
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    transition: color var(--transition-fast), transform var(--transition-fast);
}

.resource-download-card__link:hover,
.resource-download-card__link:focus-visible {
    color: var(--color-accent);
    transform: translateY(-0.1rem);
}

.resources-empty {
    color: var(--color-muted);
    text-align: center;
}

/* Keep the editorial heroes on public listing pages as one shared visual component. */
.contact-hero,
.blog-hero,
.resources-hero,
.faq-hero,
.about-hero,
.services-hero {
    position: relative;
    display: grid;
    overflow: hidden;
    isolation: isolate;
    min-height: clamp(19rem, 36vw, 27rem);
    background: var(--color-navy-800);
    color: var(--color-on-dark);
}

.faq-hero__background,
.faq-hero__overlay,
.about-hero__background,
.about-hero__overlay {
    position: absolute;
    inset: 0;
}

.faq-hero__overlay,
.about-hero__overlay {
    z-index: 1;
}

.contact-hero__background,
.blog-hero__background,
.resources-hero__background,
.faq-hero__background,
.about-hero__background,
.services-hero__background {
    background: linear-gradient(125deg, #627682 0%, #aeb8bf 46%, #4e6171 100%);
}

.contact-hero__overlay,
.blog-hero__overlay,
.resources-hero__overlay,
.faq-hero__overlay,
.about-hero__overlay,
.services-hero__overlay {
    background: linear-gradient(90deg, rgb(23 35 51 / 0.86), rgb(23 35 51 / 0.42) 62%, rgb(23 35 51 / 0.72));
}

.contact-hero__inner,
.blog-hero__inner,
.resources-hero__inner,
.faq-hero__inner,
.about-hero__inner,
.services-hero__inner {
    position: relative;
    z-index: 2;
    align-self: end;
    padding-block: clamp(4rem, 9vw, 7rem) clamp(3rem, 6vw, 5rem);
    text-align: center;
}

.contact-hero h1,
.blog-hero h1,
.resources-hero h1,
.faq-hero h1,
.about-hero h1,
.services-hero h1 {
    color: var(--color-surface);
    font-size: clamp(2.75rem, 6vw, 5.25rem);
}

.contact-hero__description,
.blog-hero__description,
.resources-hero__description,
.faq-hero__description,
.about-hero__description,
.services-hero__description {
    max-width: 38rem;
    margin-right: auto;
    margin-left: auto;
}

.faq-content {
    background: var(--color-surface);
}

.faq-content__body {
    max-width: 52rem;
    margin-inline: auto;
}

.faq-content__intro {
    max-width: 39rem;
    margin: 0 auto var(--space-7);
    color: var(--color-navy-900);
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    line-height: 1.45;
    text-align: center;
}

.faq-list {
    border-top: 1px solid var(--color-border);
}

.faq-item {
    border-bottom: 1px solid var(--color-border);
}

.faq-item__trigger {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    border: 0;
    background: transparent;
    padding: var(--space-4) 0;
    color: var(--color-navy-900);
    cursor: pointer;
    font: inherit;
    font-size: clamp(0.95rem, 1.5vw, 1.1rem);
    font-weight: 700;
    line-height: 1.45;
    text-align: left;
}

.faq-item__trigger:focus-visible {
    outline-offset: -0.2rem;
}

.faq-item__icon {
    position: relative;
    flex: 0 0 1.15rem;
    width: 1.15rem;
    height: 1.15rem;
    color: var(--color-accent);
}

.faq-item__icon::before,
.faq-item__icon::after {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.9rem;
    height: 0.125rem;
    border-radius: 999px;
    background: currentColor;
    content: "";
    transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.faq-item__icon::before {
    transform: translate(-50%, -50%);
}

.faq-item__icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.faq-item--open .faq-item__icon::after {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(90deg) scaleY(0);
}

.faq-item__answer {
    height: 0;
    max-width: 44rem;
    overflow: hidden;
    color: var(--color-muted);
    transition: height 520ms var(--ease-out);
    will-change: height;
}

.faq-item__answer-inner {
    min-height: 0;
    overflow: hidden;
    padding: 0 3rem var(--space-4) 0;
    opacity: 0;
    transform: translateY(-0.35rem);
    transition: opacity 180ms var(--ease-out), transform 420ms var(--ease-out);
}

.faq-item--open .faq-item__answer-inner {
    opacity: 1;
    transform: none;
}

.faq-item__answer p {
    margin-bottom: 0;
    font-size: 1.05rem;
    line-height: 1.65;
}

.faq-empty {
    color: var(--color-muted);
    text-align: center;
}

.faq-cta {
    background: #eaf4fc;
}

.faq-cta__inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: var(--space-4) var(--space-5);
    padding-block: clamp(2.5rem, 5vw, 4rem);
}

.faq-cta__icon {
    display: grid;
    width: 3.25rem;
    height: 3.25rem;
    place-items: center;
    border: 0.15rem solid var(--color-accent);
    border-radius: 50%;
    color: var(--color-accent);
    font-family: var(--font-display);
    font-size: 2.3rem;
    line-height: 1;
}

.faq-cta__copy h2 {
    margin-bottom: var(--space-1);
    font-size: clamp(1.8rem, 3.5vw, 2.6rem);
}

.faq-cta__copy p {
    margin-bottom: 0;
    color: var(--color-text);
}

.faq-cta__inner .button {
    grid-column: 1 / -1;
    justify-self: start;
}

@media (min-width: 48rem) {
    .faq-cta__inner {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .faq-cta__inner .button {
        grid-column: auto;
        justify-self: end;
    }
}

@media (prefers-reduced-motion: reduce) {
    .faq-item__answer,
    .faq-item__answer-inner {
        transition: none;
    }

    .faq-item__answer-inner,
    .faq-item--open .faq-item__answer-inner {
        opacity: 1;
        transform: none;
    }

    .faq-item__icon::before,
    .faq-item__icon::after {
        transition: none;
    }
}

.about-story {
    background: var(--color-surface);
}

.about-story__grid {
    display: grid;
    gap: var(--space-7);
    align-items: stretch;
}

.about-story__media {
    position: relative;
    display: grid;
    min-height: 25rem;
    overflow: hidden;
    isolation: isolate;
    background: var(--color-navy-800);
    box-shadow: var(--shadow-soft);
}

.about-story__media-placeholder,
.about-story__media-overlay {
    position: absolute;
    inset: 0;
}

.about-story__media-placeholder {
    background:
        linear-gradient(145deg, rgb(197 205 208 / 0.94), rgb(114 133 145 / 0.7) 44%, rgb(30 54 78 / 0.92)),
        linear-gradient(35deg, #aeb8bf 0%, #d3d8db 48%, #73818b 100%);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    transform: translate3d(var(--about-media-x, 0rem), var(--about-media-y, 0rem), 0) scale(1.02);
    transition: transform 700ms var(--ease-out), filter 700ms var(--ease-out);
    will-change: transform;
}

.about-story__media-overlay {
    background: linear-gradient(135deg, rgb(23 35 51 / 0.86), rgb(23 35 51 / 0.16) 56%, rgb(23 35 51 / 0.72));
    transition: opacity 700ms var(--ease-out);
}

@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {
    .about-story__media:hover {
        box-shadow: var(--shadow-hover);
    }

    .about-story__media:hover .about-story__media-placeholder,
    .about-story__media.is-pointer-active .about-story__media-placeholder {
        filter: saturate(1.06) contrast(1.02);
        transform: translate3d(var(--about-media-x, 0rem), var(--about-media-y, 0rem), 0) scale(1.06);
    }

    .about-story__media:hover .about-story__media-overlay {
        opacity: .9;
    }

}

.about-story__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.about-story__copy h2 {
    max-width: 34rem;
    margin-bottom: var(--space-5);
}

.about-story__copy > p,
.about-story__body {
    max-width: 36rem;
    color: var(--color-muted);
}

.about-story__body p,
.about-story__body h3,
.about-story__body blockquote {
    margin-bottom: var(--space-3);
}

.about-story__body h3 {
    color: var(--color-ink);
    font-family: var(--font-heading);
    font-size: 1.2rem;
}

.about-story__body p:last-child {
    margin-bottom: var(--space-5);
}

.about-story__signature {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    max-width: 25rem;
    margin-top: auto;
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
}

.about-story__signature-mark {
    display: block;
    width: 2.8rem;
    height: 2.8rem;
    border: 0.125rem solid var(--color-accent);
    border-radius: 50%;
    background: linear-gradient(135deg, rgb(175 31 41 / 0.14), rgb(175 31 41 / 0.02));
}

.about-story__signature span:last-child {
    display: grid;
    gap: 0.15rem;
}

.about-story__signature strong {
    color: var(--color-navy-900);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.about-story__signature small {
    color: var(--color-muted);
    font-size: 0.72rem;
}

.about-section-heading {
    display: grid;
    gap: var(--space-4);
    align-items: end;
    margin-bottom: var(--space-7);
}

.about-section-heading h2 {
    max-width: 38rem;
    margin-bottom: 0;
}

.about-section-heading > p {
    max-width: 29rem;
    margin-bottom: 0;
    color: var(--color-muted);
}

.about-principles__grid {
    display: grid;
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--color-border);
    background: var(--color-border);
}

/* Keep the story and the following trust section visually connected. */
.page-about .about-story + .about-principles {
    padding-top: clamp(2.75rem, 5.5vw, 5rem);
}

.about-principle {
    display: flex;
    min-height: 15rem;
    flex-direction: column;
    padding: var(--space-5);
    background: var(--color-surface);
    transition: box-shadow var(--transition-base), transform var(--transition-base);
}

.about-principle__number {
    display: block;
    margin-bottom: var(--space-6);
    color: var(--color-accent);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.15em;
}

.about-principle h3 {
    min-height: 2.8rem;
    margin-bottom: var(--space-2);
    font-family: var(--font-body);
    font-size: 1.15rem;
    font-weight: 700;
}

.about-principle p {
    max-width: 22rem;
    margin-bottom: 0;
    color: var(--color-muted);
    font-size: clamp(0.98rem, 1.2vw, 1.08rem);
    line-height: 1.6;
}

.about-process {
    background: var(--color-navy-900);
    color: var(--color-on-dark);
}

.about-process__grid {
    display: grid;
    gap: var(--space-7);
}

.about-process__intro h2 {
    max-width: 32rem;
    color: var(--color-surface);
}

.about-process__intro > p:not(.eyebrow) {
    max-width: 31rem;
    color: rgb(248 250 251 / 0.7);
    font-size: clamp(1.05rem, 1.4vw, 1.18rem);
    line-height: 1.65;
}

.about-process__steps {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-4);
    align-items: stretch;
}

.about-step {
    position: relative;
    display: flex;
    min-height: 14rem;
    height: 100%;
    flex-direction: column;
    padding: clamp(1.35rem, 2.4vw, 1.9rem);
    overflow: hidden;
    border: 1px solid rgb(255 255 255 / 0.15);
    border-top: 2px solid rgb(175 31 41 / 0.8);
    border-radius: 0.3rem;
    background: linear-gradient(145deg, rgb(255 255 255 / 0.095), rgb(255 255 255 / 0.025));
    box-shadow: 0 0.75rem 1.5rem rgb(0 0 0 / 0.08);
    transition: background-color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.about-step__header {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: clamp(1.5rem, 3vw, 2.4rem);
}

.about-step__header-rule {
    display: block;
    height: 1px;
    flex: 1;
    background: linear-gradient(90deg, var(--color-accent), rgb(175 31 41 / 0.42));
}

.about-step__number {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid var(--color-accent);
    border-radius: 50%;
    color: var(--color-accent);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    transition: background-color var(--transition-base), color var(--transition-base), transform var(--transition-base);
}

.about-step__content {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
}

.about-step h3 {
    min-height: 2.8rem;
    margin-bottom: var(--space-2);
    color: var(--color-surface);
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.4vw, 1.12rem);
    font-weight: 700;
    line-height: 1.25;
}

.about-step p {
    max-width: none;
    margin-bottom: 0;
    color: rgb(248 250 251 / 0.68);
    font-size: clamp(0.98rem, 1.2vw, 1.06rem);
    line-height: 1.6;
}

.about-audience {
    position: relative;
    overflow: hidden;
    border-block: 1px solid var(--color-border);
    background: var(--color-surface-warm);
}

.about-audience__inner {
    position: relative;
    max-width: 58rem;
    margin-inline: auto;
    padding: clamp(1.75rem, 4vw, 3rem) clamp(1.25rem, 5vw, 4.5rem);
    border: 1px solid rgb(175 31 41 / 0.12);
    background: linear-gradient(135deg, rgb(255 255 255 / 0.62), rgb(255 255 255 / 0.18));
    box-shadow: var(--shadow-soft);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.about-audience__inner::before,
.about-audience__inner::after {
    position: absolute;
    width: 2.5rem;
    height: 2.5rem;
    content: "";
    pointer-events: none;
}

.about-audience__inner::before {
    top: -1px;
    left: -1px;
    border-top: 2px solid rgb(175 31 41 / 0.7);
    border-left: 2px solid rgb(175 31 41 / 0.7);
}

.about-audience__inner::after {
    right: -1px;
    bottom: -1px;
    border-right: 2px solid rgb(155 123 28 / 0.7);
    border-bottom: 2px solid rgb(155 123 28 / 0.7);
}

.about-audience__heading,
.about-audience__description {
    transition: transform var(--transition-base), color var(--transition-base), background-color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}

.about-audience__heading {
    text-align: center;
}

.about-audience__heading .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.about-audience__heading .eyebrow::before,
.about-audience__heading .eyebrow::after {
    width: clamp(2rem, 8vw, 4rem);
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--color-accent));
    content: "";
}

.about-audience__heading .eyebrow::after {
    background: linear-gradient(90deg, var(--color-accent), transparent);
}

.about-audience__description {
    max-width: 48rem;
    margin-inline: auto;
    margin-bottom: 0;
    padding: 0;
    color: var(--color-muted);
    font-size: clamp(1rem, 1.4vw, 1.12rem);
    line-height: 1.65;
    text-align: center;
}

@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {
    .about-audience__inner:hover {
        border-color: rgb(175 31 41 / 0.28);
        box-shadow: var(--shadow-hover);
        transform: translateY(-0.15rem);
    }

    .about-audience__heading:hover {
        transform: translateY(-0.12rem);
    }

    .about-audience__description:hover {
        color: var(--color-text);
        transform: translateY(-0.08rem);
    }
}

@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {
    .about-step:hover {
        border-color: rgb(175 31 41 / 0.72);
        background: linear-gradient(145deg, rgb(255 255 255 / 0.14), rgb(255 255 255 / 0.045));
        box-shadow: 0 1rem 2rem rgb(0 0 0 / 0.18);
        transform: translateY(-0.25rem);
    }

    .about-step:hover .about-step__number {
        background: var(--color-accent);
        color: var(--color-surface);
        transform: rotate(8deg);
    }
}

.about-trust {
    background: var(--color-surface-warm);
}

@media (hover: hover) and (pointer: fine) {
    .about-principle:hover {
        box-shadow: var(--shadow-hover);
        transform: translateY(-0.25rem);
    }
}

@media (prefers-reduced-motion: reduce) {
.about-principle:hover {
        transform: none;
    }
}

.services-catalog {
    background: var(--color-page);
}

.services-catalog__heading {
    display: grid;
    gap: var(--space-4);
    align-items: end;
    margin-bottom: var(--space-7);
}

.services-catalog__heading h2 {
    max-width: 36rem;
    margin-bottom: 0;
}

.services-catalog__heading > p {
    max-width: 30rem;
    margin-bottom: 0;
    color: var(--color-muted);
}

.services-catalog__grid {
    display: grid;
    gap: var(--space-4);
    align-items: stretch;
}

.services-catalog-card {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 19rem;
    flex-direction: column;
    overflow: hidden;
    padding: var(--space-5);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    box-shadow: 0 0.5rem 1.5rem rgb(23 35 51 / 0.035);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.services-catalog-card::before {
    position: absolute;
    inset: 0 0 auto;
    height: 0.2rem;
    background: var(--color-accent);
    content: "";
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition-base);
}

.services-catalog-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-6);
}

.services-catalog-card__mark {
    display: block;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid rgb(175 31 41 / 0.36);
    border-radius: 50%;
    background: linear-gradient(135deg, rgb(175 31 41 / 0.12), rgb(175 31 41 / 0.025));
    box-shadow: inset 0 0 0 0.4rem var(--color-surface);
}

.services-catalog-card__number {
    color: var(--color-muted);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.14em;
}

.services-catalog-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
}

.services-catalog-card h3 {
    max-width: 17rem;
    margin-bottom: var(--space-2);
    font-size: 1.35rem;
}

.services-catalog-card p {
    width: 100%;
    margin-bottom: var(--space-4);
    color: var(--color-muted);
    font-size: 0.84rem;
}

.services-catalog-card__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: auto;
    color: var(--color-accent);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color var(--transition-fast), transform var(--transition-fast);
}

.services-catalog-card__link:hover,
.services-catalog-card__link:focus-visible {
    transform: translateX(0.2rem);
}

.services-empty {
    color: var(--color-muted);
    text-align: center;
}

.service-hero {
    position: relative;
    display: grid;
    min-height: clamp(20rem, 38vw, 31rem);
    overflow: hidden;
    isolation: isolate;
    background: var(--color-navy-900);
    color: var(--color-on-dark);
}

.service-hero__background,
.service-hero__overlay {
    position: absolute;
    inset: 0;
}

.service-hero__background {
    background: linear-gradient(120deg, #28304f 0%, #5e7082 50%, #c3a184 100%);
}

.service-hero__overlay {
    z-index: 1;
    background: linear-gradient(90deg, rgb(13 22 52 / 0.94), rgb(23 35 51 / 0.58) 55%, rgb(23 35 51 / 0.15));
}

.service-hero__inner {
    position: relative;
    z-index: 2;
    align-self: end;
    padding-block: clamp(5rem, 12vw, 9rem) clamp(3.5rem, 7vw, 5.5rem);
}

.service-hero .eyebrow {
    color: rgb(255 255 255 / 0.76);
}

.service-hero h1 {
    max-width: 55rem;
    margin-bottom: var(--space-4);
    color: var(--color-surface);
    font-size: clamp(2.8rem, 6.5vw, 5rem);
}

.service-hero__rule {
    display: block;
    width: 5rem;
    height: 0.18rem;
    margin-bottom: var(--space-4);
    background: var(--color-accent);
}

.service-hero__description {
    max-width: 34rem;
    margin-bottom: 0;
    color: rgb(255 255 255 / 0.86);
    font-family: var(--font-display);
    font-size: clamp(1.05rem, 1.8vw, 1.35rem);
    line-height: 1.5;
}

.service-overview {
    background: var(--color-surface);
}

.service-overview__layout {
    display: grid;
    gap: var(--space-7);
    align-items: start;
}

.service-overview__copy {
    max-width: 46rem;
}

.service-overview__sidebar {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.service-overview__sidebar-media {
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    box-shadow: var(--shadow-soft);
}

.service-overview__sidebar-media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.service-overview__sidebar-media--mobile {
    display: none;
}

.service-overview__copy p {
    margin-bottom: var(--space-4);
    color: var(--color-text);
}

.service-overview__copy p:last-child {
    margin-bottom: 0;
}

.service-resource-card {
    display: flex;
    min-height: 19rem;
    flex-direction: column;
    align-items: center;
    padding: var(--space-5);
    border: 1px solid var(--color-border);
    border-top: 0.18rem solid #9b7b1c;
    background: var(--color-surface);
    box-shadow: var(--shadow-soft);
    text-align: center;
}

.service-resource-card--mobile {
    display: none;
}

.service-resource-mobile-end {
    display: none;
}

.service-resource-card__icon {
    display: grid;
    width: 2.7rem;
    height: 3.3rem;
    margin-bottom: var(--space-4);
    place-items: center;
    background: var(--color-accent);
    color: var(--color-surface);
    clip-path: polygon(0 0, 70% 0, 100% 25%, 100% 100%, 0 100%);
    font-size: 0.65rem;
    font-weight: 700;
}

.service-resource-card h2 {
    max-width: 17rem;
    margin-bottom: var(--space-3);
    font-size: 1.65rem;
}

.service-resource-card > p {
    max-width: 18rem;
    margin-bottom: var(--space-5);
    color: var(--color-muted);
}

.service-resource-card .button {
    margin-top: auto;
}

.service-resource-card .information-date-note {
    width: 100%;
    margin: var(--space-3) 0 0;
    font-size: .7rem;
}

.service-resource-card .information-date-note::before,
.service-resource-card .information-date-note::after {
    flex-basis: 1.35rem;
    width: 1.35rem;
}

.service-resource-card__disabled {
    cursor: default;
    opacity: 0.68;
}

.service-resource-card__list {
    width: 100%;
    margin: var(--space-4) 0 0;
    padding: var(--space-3) 0 0;
    border-top: 1px solid var(--color-border);
    list-style: none;
    text-align: left;
}

.service-resource-card__list li + li {
    margin-top: var(--space-2);
}

.service-resource-card__list a {
    color: var(--color-accent);
    font-size: 0.78rem;
    font-weight: 700;
}

.service-features {
    background: var(--color-surface-warm);
}

.service-features__grid {
    display: grid;
    gap: 1px;
    overflow: hidden;
    border: 1px solid rgb(155 123 28 / 0.35);
    background: rgb(155 123 28 / 0.35);
}

.service-feature-card {
    display: flex;
    min-height: 14rem;
    flex-direction: column;
    align-items: flex-start;
    padding: var(--space-5);
    background: var(--color-surface-warm);
}

.service-feature-card__content {
    width: 100%;
}

.service-feature-card__icon {
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    margin-bottom: var(--space-4);
    border: 1px solid #9b7b1c;
    border-radius: 50%;
    background: linear-gradient(135deg, rgb(155 123 28 / 0.16), transparent);
}

.service-feature-card__icon img {
    width: 100%;
    height: 100%;
    padding: .3rem;
    border-radius: inherit;
    object-fit: contain;
}

.service-feature-card__number {
    margin-bottom: var(--space-2);
    color: #9b7b1c;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
}

.service-feature-card h3 {
    margin-bottom: var(--space-2);
    font-family: var(--font-body);
    font-size: 1.12rem;
    font-weight: 700;
}

.service-feature-card p {
    max-width: 16rem;
    margin-bottom: 0;
    color: var(--color-muted);
    font-size: 0.88rem;
    line-height: 1.5;
}

.service-consultation {
    background: var(--color-surface);
}

.service-consultation-card {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(15rem, 0.92fr);
    align-items: center;
    gap: clamp(var(--space-5), 6vw, var(--space-8));
    max-width: 58rem;
    margin-inline: auto;
    padding: clamp(var(--space-5), 5vw, var(--space-7));
    border: 1px solid var(--color-border);
    border-top: 0.2rem solid #9b7b1c;
    background: var(--color-surface);
    box-shadow: var(--shadow-soft);
}

.service-consultation-card__intro {
    max-width: 42rem;
    margin: 0;
    grid-column: 2;
    text-align: left;
}

.service-consultation-card__intro h2 {
    margin-bottom: var(--space-2);
}

.service-consultation-card__intro > p:last-child {
    margin-bottom: 0;
    color: var(--color-muted);
}

.service-question-form__form {
    grid-column: 1;
    grid-row: 1;
}

.service-question-form__form .contact-form__fields {
    gap: clamp(1rem, 2vw, 1.5rem);
}

.service-question-form__form .contact-form__field {
    gap: .2rem;
}

.service-question-form__form .contact-form__field label {
    padding-inline: .1rem;
    color: var(--color-muted);
    font-size: .8rem;
    font-weight: 500;
}

.service-question-form__form .contact-form__field input,
.service-question-form__form .contact-form__field textarea {
    border: 0;
    border-bottom: 2px solid rgb(23 35 51 / .58);
    border-radius: 0;
    background: transparent;
    padding: .35rem .1rem .55rem;
    box-shadow: none;
}

.service-question-form__form .contact-form__field textarea {
    min-height: 5.5rem;
    resize: vertical;
}

.service-question-form__form .contact-form__field input:focus,
.service-question-form__form .contact-form__field textarea:focus {
    border-color: var(--color-accent);
    background: transparent;
    box-shadow: none;
}

.service-question-form__form .contact-form__actions {
    justify-content: flex-end;
    margin-top: var(--space-4);
}

.service-faq {
    background: var(--color-page);
}

.service-faq__layout {
    display: grid;
    gap: var(--space-7);
}

.service-faq__intro h2 {
    margin-bottom: var(--space-2);
}

.service-faq__intro > p:last-child {
    color: var(--color-muted);
}

@media (hover: hover) and (pointer: fine) {
    .services-catalog-card:hover {
        border-color: rgb(175 31 41 / 0.45);
        box-shadow: var(--shadow-hover);
        transform: translateY(-0.3rem);
    }

    .services-catalog-card:hover::before {
        transform: scaleX(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .services-catalog-card:hover,
    .services-catalog-card__link:hover {
        transform: none;
    }

    .services-catalog-card:hover::before {
        transform: scaleX(1);
    }
}

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

.home-section--muted {
    background: var(--color-surface);
}

.stats-strip {
    border-block: 1px solid var(--color-border);
    background: var(--color-surface-warm);
}

.stats-grid {
    display: grid;
}

.stat-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: var(--space-3);
    min-height: 6.5rem;
    padding-block: var(--space-4);
    font-family: var(--font-body);
    font-weight: 600;
}

.stat-card__icon {
    width: 2.25rem;
    height: 2.25rem;
    margin: 0;
    border: 0;
    border-radius: 50%;
    background: linear-gradient(135deg, #aeb8bf 0%, #d3d8db 48%, #a0abb2 100%);
}

.stat-card__value,
.stat-card__label {
    display: block;
}

.stat-card__value {
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.1;
}

.stat-card__label {
    margin-top: var(--space-1);
    color: var(--color-muted);
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.3;
}

.home-intro {
    display: grid;
    gap: var(--space-7);
}

.home-intro__copy {
    max-width: 30rem;
}

.home-intro__copy p:last-child {
    margin-bottom: 0;
}

.home-section--expertise {
    background: var(--color-surface);
}

.expertise-grid {
    display: grid;
    gap: var(--space-7);
}

.expertise-media {
    position: relative;
    display: grid;
    /* The minimum height sets the visual baseline; content may expand the panel. */
    min-height: 20rem;
    overflow: hidden;
    isolation: isolate;
    background: var(--color-navy-800);
    color: var(--color-on-dark);
}

.expertise-media__placeholder,
.expertise-media__overlay,
.expertise-media__content {
    grid-area: 1 / 1;
}

.expertise-media__placeholder {
    background: linear-gradient(125deg, #aeb8bf 0%, #c6cdd1 48%, #9ca8b0 100%);
    background-position: center;
    background-size: cover;
}

.expertise-media__overlay {
    z-index: 1;
    background: linear-gradient(135deg, rgb(23 35 51 / 0.9), rgb(23 35 51 / 0.32) 70%, rgb(23 35 51 / 0.72));
}

.expertise-media__content {
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: clamp(var(--space-5), 5vw, var(--space-7));
}

.expertise-media h2 {
    margin-bottom: var(--space-4);
    color: var(--color-surface);
    font-size: clamp(1.75rem, 3.4vw, 2.75rem);
    font-style: italic;
}

.expertise-media__description {
    max-width: 27rem;
    margin-bottom: 1.875rem;
    color: rgb(255 255 255 / 0.82);
    font-size: 0.9rem;
}

.expertise-badge {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-top: auto;
}

.expertise-badge__mark {
    display: block;
    width: 3.25rem;
    height: 3.25rem;
    border: 0.125rem solid rgb(255 255 255 / 0.72);
    border-radius: 50%;
    background: linear-gradient(135deg, #aeb8bf 0%, #d3d8db 48%, #8f9ba4 100%);
}

.expertise-badge__copy {
    display: grid;
    gap: 0.15rem;
    max-width: 13rem;
}

.expertise-badge__copy strong {
    color: var(--color-surface);
    font-family: var(--font-body);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1;
}

.expertise-badge__copy span {
    color: rgb(255 255 255 / 0.72);
    font-size: 0.62rem;
    line-height: 1.25;
}

.expertise-features {
    display: grid;
    align-content: stretch;
    min-height: 100%;
    padding-top: var(--space-2);
}

.feature-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: var(--space-4);
    padding-block: var(--space-4);
    padding-inline: var(--space-3);
    border-bottom: 1px solid var(--color-border);
}

.feature-row:first-child {
    padding-top: var(--space-3);
}

.feature-row:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.feature-row__icon {
    flex: 0 0 auto;
    width: 2.25rem;
    height: 2.25rem;
    margin: 0;
}

.feature-row__content h3 {
    margin-bottom: var(--space-1);
    font-family: var(--font-body);
    font-size: 1.12rem;
    font-weight: 700;
}

.feature-row__content p {
    max-width: 27rem;
    margin-bottom: 0;
    color: var(--color-muted);
    font-size: 0.82rem;
    line-height: 1.45;
}

.home-section--testimonials {
    background: var(--color-page);
}

.testimonials-grid {
    display: grid;
    gap: var(--space-4);
    align-items: stretch;
}

.testimonials-intro {
    max-width: 30rem;
}

.testimonials-intro > p:not(.eyebrow) {
    color: var(--color-muted);
}

.testimonials-intro > p:last-of-type {
    margin-bottom: var(--space-5);
}

.inline-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--color-accent);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color var(--transition-fast), transform var(--transition-fast);
}

.inline-link:hover,
.inline-link:focus-visible {
    transform: translateX(0.2rem);
}

.testimonial-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: var(--space-5);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    box-shadow: 0 0.5rem 1.5rem rgb(23 35 51 / 0.025);
}

.testimonial-card__rating {
    color: var(--color-star);
    font-size: 0.78rem;
    letter-spacing: 0.12em;
    line-height: 1;
}

.testimonial-card__quote {
    margin: var(--space-5) 0 var(--space-6);
    color: var(--color-muted);
    font-size: 0.84rem;
    line-height: 1.55;
}

.testimonial-card__quote p {
    margin: 0;
}

.testimonial-card__author {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-top: auto;
}

.testimonial-card__avatar {
    flex: 0 0 auto;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background: linear-gradient(135deg, #aeb8bf 0%, #d3d8db 48%, #929ea7 100%);
}

.testimonial-card__avatar img {
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
}

.testimonial-card__author-copy {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.testimonial-card__author-copy cite {
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: 0.72rem;
    font-style: normal;
    font-weight: 700;
    line-height: 1.2;
}

.testimonial-card__author-copy span {
    overflow-wrap: anywhere;
    color: var(--color-muted);
    font-size: 0.65rem;
    line-height: 1.25;
}

.consultation-cta {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 12rem;
    background: var(--color-navy-800);
    color: var(--color-on-dark);
}

.consultation-cta__background,
.consultation-cta__overlay {
    position: absolute;
    inset: 0;
}

.consultation-cta__background {
    background: linear-gradient(120deg, #283e58 0%, #49627e 50%, #1e364e 100%);
    background-position: center;
    background-size: cover;
}

.consultation-cta__overlay {
    z-index: 1;
    background: linear-gradient(90deg, rgb(23 35 51 / 0.9), rgb(23 35 51 / 0.58) 55%, rgb(23 35 51 / 0.76));
}

.consultation-cta__inner {
    position: relative;
    z-index: 2;
    display: grid;
    align-items: center;
    gap: var(--space-6);
    padding-block: var(--space-7);
}

.consultation-cta__copy {
    max-width: 40rem;
}

.consultation-cta .eyebrow {
    color: rgb(255 255 255 / 0.78);
}

.consultation-cta h2 {
    margin-bottom: var(--space-3);
    color: var(--color-surface);
    font-size: clamp(2rem, 4vw, 3.25rem);
}

.consultation-cta__description {
    max-width: 34rem;
    margin-bottom: 0;
    color: rgb(255 255 255 / 0.82);
}

.consultation-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
}

.consultation-cta__actions .button--outline {
    border-color: rgb(255 255 255 / 0.65);
}

.resources-preview {
    background: var(--color-surface);
}

.resources-preview__layout {
    display: grid;
    gap: var(--space-7);
}

.resources-preview__intro {
    max-width: 30rem;
}

.resources-preview__intro > p:not(.eyebrow) {
    color: var(--color-muted);
}

.resources-preview__intro > p:last-of-type {
    margin-bottom: var(--space-5);
}

.resources-preview__cards {
    display: grid;
    gap: var(--space-4);
    align-items: stretch;
}

.resource-preview-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    box-shadow: 0 0.5rem 1.5rem rgb(23 35 51 / 0.025);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.resource-preview-card__media {
    aspect-ratio: 1.85 / 1;
    background: linear-gradient(135deg, #aeb8bf 0%, #d3d8db 48%, #a0abb2 100%);
}

.resource-preview-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    padding: var(--space-4);
}

.resource-preview-card h3 {
    margin-bottom: var(--space-2);
    font-size: 1.15rem;
}

.resource-preview-card__description {
    width: 100%;
    margin-bottom: var(--space-4);
    color: var(--color-muted);
    font-size: 0.8rem;
}

.resource-preview-card__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: auto;
    color: var(--color-accent);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1.3;
    text-decoration: none;
    text-transform: uppercase;
    transition: color var(--transition-fast), transform var(--transition-fast);
}

.resource-preview-card__link:hover,
.resource-preview-card__link:focus-visible {
    transform: translateX(0.2rem);
}

.service-grid {
    display: grid;
    gap: var(--space-4);
    align-items: stretch;
}

.service-card {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 15rem;
    padding: var(--space-5);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    box-shadow: 0 0.5rem 1.5rem rgb(23 35 51 / 0.025);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.service-card::before {
    position: absolute;
    inset: 0 0 auto;
    height: 0.1875rem;
    background: var(--color-accent);
    content: "";
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition-base);
}

.service-card__icon,
.feature-row__icon {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    margin-bottom: var(--space-4);
    border: 0;
    border-radius: 50%;
    background: linear-gradient(135deg, #aeb8bf 0%, #d3d8db 48%, #a0abb2 100%);
    transition: box-shadow var(--transition-base), transform var(--transition-base);
}

.service-card h3 {
    margin-bottom: var(--space-2);
    font-size: 1.25rem;
}

.service-card p {
    color: var(--color-muted);
    font-size: 0.85rem;
}

.card-excerpt {
    display: -webkit-box;
    height: 4.35em;
    min-height: 4.35em;
    overflow: hidden;
    line-height: 1.45;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.service-card__link {
    display: inline-flex;
    align-items: center;
    color: var(--color-accent);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color var(--transition-fast), transform var(--transition-fast);
}

.service-card > .service-card__link {
    margin-top: auto;
}

.service-card__link:hover,
.service-card__link:focus-visible {
    transform: translateX(0.2rem);
}

.home-placeholder-block {
    display: grid;
    min-height: 16rem;
    place-items: center;
    border: 1px solid var(--color-border);
    background: linear-gradient(135deg, #aeb8bf 0%, #d3d8db 48%, #a0abb2 100%);
}

.home-posts {
    display: grid;
    gap: var(--space-4);
}

.home-post-card {
    padding: var(--space-5);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.home-post-card h3 {
    font-size: 1.35rem;
}

.home-post-card p {
    color: var(--color-muted);
}

.home-post-card h3 a {
    text-decoration: none;
    transition: color var(--transition-fast);
}

.home-post-card:focus-within {
    border-color: rgb(175 31 41 / 0.45);
    box-shadow: var(--shadow-hover);
}

@media (hover: hover) and (pointer: fine) {
    .service-card:hover {
        border-color: rgb(175 31 41 / 0.45);
        box-shadow: var(--shadow-hover);
        transform: translateY(-0.35rem);
    }

    .service-card:hover::before {
        transform: scaleX(1);
    }

    .service-card:hover .service-card__icon {
        box-shadow: 0 0.5rem 1rem rgb(23 35 51 / 0.1);
        transform: translateY(-0.15rem) rotate(-4deg);
    }

    .home-post-card:hover {
        border-color: rgb(175 31 41 / 0.35);
        box-shadow: var(--shadow-hover);
        transform: translateY(-0.25rem);
    }

    .resource-preview-card:hover {
        border-color: rgb(175 31 41 / 0.35);
        box-shadow: var(--shadow-hover);
        transform: translateY(-0.25rem);
    }

    .blog-card:hover {
        border-color: rgb(175 31 41 / 0.35);
        box-shadow: var(--shadow-hover);
        transform: translateY(-0.25rem);
    }

    .resource-download-card:hover {
        border-color: rgb(175 31 41 / 0.35);
        box-shadow: var(--shadow-hover);
        transform: translateY(-0.25rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .button:hover,
    .button:active,
    .service-card:hover,
    .service-card__link:hover,
    .inline-link:hover,
    .home-post-card:hover {
        transform: none;
    }

    .contact-social__link:hover,
    .contact-social__link:focus-visible {
        transform: none;
    }

    .resource-preview-card:hover,
    .resource-preview-card__link:hover {
        transform: none;
    }

    .blog-card:hover,
    .blog-filter:hover,
    .blog-card__meta a:hover {
        transform: none;
    }

    .resource-download-card:hover,
    .resource-download-card__link:hover {
        transform: none;
    }

    .service-card:hover::before {
        transform: scaleX(1);
    }

    .service-card:hover .service-card__icon {
        transform: none;
    }
}

@media (min-width: 48rem) {
    .stats-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .stat-card {
        padding-inline: var(--space-5);
        border-right: 1px solid var(--color-border);
    }

    .stat-card:first-child {
        padding-left: 0;
    }

    .stat-card:last-child {
        padding-right: 0;
        border-right: 0;
    }

    .home-intro {
        grid-template-columns: minmax(14rem, 0.8fr) minmax(0, 1.6fr);
        align-items: start;
    }

    .expertise-grid {
        grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
        align-items: stretch;
    }

    .expertise-media {
        min-height: 22rem;
    }

    .expertise-features {
        grid-template-rows: repeat(4, minmax(min-content, 1fr));
        min-height: 100%;
    }

    .feature-row {
        padding-block: var(--space-3);
    }

    .testimonials-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .testimonials-intro {
        grid-column: 1 / -1;
    }

    .contact-details__grid {
        grid-template-columns: minmax(0, 1.08fr) minmax(17rem, 0.92fr);
        align-items: start;
    }

    .contact-form__fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contact-form__field--wide {
        grid-column: 1 / -1;
    }

    .blog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .reviews-listing__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .resources-download-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .article-layout {
        grid-template-columns: minmax(0, 1.55fr) minmax(15rem, 0.65fr);
        align-items: start;
    }

    .service-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-posts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .resources-preview__cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 47.99rem) {
    .stat-card + .stat-card {
        border-top: 1px solid var(--color-border);
    }
}

@media (min-width: 64rem) {
    .testimonials-grid {
        grid-template-columns: minmax(15rem, 0.95fr) repeat(3, minmax(0, 1fr));
    }

    .testimonials-intro {
        grid-column: auto;
    }

    .service-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .consultation-cta__inner {
        grid-template-columns: minmax(0, 1.2fr) minmax(17rem, 0.8fr);
    }

    .consultation-cta__actions {
        justify-content: flex-end;
    }

    .resources-preview__layout {
        grid-template-columns: minmax(14rem, 0.8fr) minmax(0, 1.8fr);
        align-items: start;
    }

    .resources-preview__cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .blog-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .reviews-listing__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .resources-download-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .article-sidebar {
        position: sticky;
        top: var(--space-5);
    }
}

@media (min-width: 48rem) {
    .about-story__grid {
        grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
    }

    .about-story__media {
        min-height: 30rem;
    }

    .about-section-heading {
        grid-template-columns: minmax(0, 1.1fr) minmax(15rem, 0.9fr);
    }

    .about-principles__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .about-process__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-8);
    }

    .about-process__steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 64rem) {
    .about-principles__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .about-process__steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: var(--space-4);
    }

    .about-process__grid {
        grid-template-columns: minmax(14rem, 0.72fr) minmax(0, 1.28fr);
        gap: clamp(2.5rem, 5vw, 5rem);
        align-items: start;
    }
}

@media (min-width: 48rem) {
    .services-catalog__heading {
        grid-template-columns: minmax(0, 1.1fr) minmax(15rem, 0.9fr);
    }

    .services-catalog__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .service-overview__layout {
        grid-template-columns: minmax(0, 1.6fr) minmax(17rem, 0.7fr);
    }

    .service-features__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .service-feature-card--tablet-tail-1 {
        grid-column: 1 / -1;
    }

    .service-feature-card--tablet-tail-1 .service-feature-card__content {
        width: min(100%, calc((100% - 1px) / 2));
        margin-inline: auto;
    }

    .service-faq__layout {
        grid-template-columns: minmax(14rem, 0.72fr) minmax(0, 1.28fr);
        align-items: start;
    }
}

@media (min-width: 64rem) {
    .services-catalog__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .service-features__grid {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    .service-feature-card {
        grid-column: span 3;
    }

    .service-feature-card--desktop-tail-1 {
        grid-column: span 12;
    }

    .service-feature-card--desktop-tail-2 {
        grid-column: span 6;
    }

    .service-feature-card--desktop-tail-3 {
        grid-column: span 4;
    }

    .service-feature-card--desktop-tail-1 .service-feature-card__content {
        width: 25%;
        margin-inline: auto;
    }

    .service-feature-card--desktop-tail-2 .service-feature-card__content {
        width: 50%;
        margin-inline: auto;
    }

    .service-feature-card--desktop-tail-3 .service-feature-card__content {
        width: 75%;
        margin-inline: auto;
    }
}

/* Keep the service detail page compact while preserving the public section rhythm elsewhere. */
.page-service .home-section {
    padding-block: clamp(2.625rem, 5.25vw, 4.725rem);
}

.page-service .service-overview--primary,
.page-service .service-overview--primary + .service-features {
    --service-overview-features-space: clamp(2.4375rem, 4.875vw, 4.3875rem);
}

.page-service .service-overview--primary {
    padding-bottom: var(--service-overview-features-space);
}

.page-service .service-overview--primary + .service-features {
    padding-top: var(--service-overview-features-space);
}

.page-service .service-overview__layout,
.page-service .service-faq__layout {
    gap: var(--space-6);
}

/* Source: expansions.css */
/* Shared content expansion system. Media remains intentionally neutral until an admin uploads images. */

.section-heading { max-width: 46rem; margin-bottom: var(--space-6); }
.home-section + .home-section { border-top: 1px solid rgb(23 35 51 / .06); }
.section-heading--narrow { max-width: 38rem; margin-inline: auto; text-align: center; }
.section-heading--split { display: grid; max-width: none; gap: var(--space-5); align-items: end; }
.section-heading--split > div:last-child { color: var(--color-muted); }
.section-heading h2, .section-heading--split h2 { margin-bottom: var(--space-3); }
.section-heading p:last-child { margin-bottom: 0; }

.trust-bar { padding-block: var(--space-6); border-bottom: 1px solid var(--color-border); background: var(--color-surface-warm); }
.trust-bar__eyebrow { margin-bottom: var(--space-4); text-align: center; }
.trust-bar__grid { display: grid; gap: 0; }
.trust-bar__item { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-3); padding: var(--space-4); border-bottom: 1px solid var(--color-border); }
.trust-bar__item:last-child { border-bottom: 0; }
.trust-bar__icon, .contact-card__icon { display: block; width: 2.15rem; height: 2.15rem; border: 1px solid rgb(43 67 93 / .24); border-radius: 50%; background: linear-gradient(135deg, #eef0ee, #bdc6c8); }
.trust-bar__item strong { display: block; color: var(--color-navy-900); font-family: var(--font-display); font-size: 1.45rem; line-height: 1; }
.trust-bar__item h2 { margin: .2rem 0 .1rem; color: var(--color-text); font-family: var(--font-body); font-size: .82rem; font-weight: 700; }
.trust-bar__item p { margin: 0; color: var(--color-muted); font-size: .78rem; }
.home-section--credentials { background: var(--color-surface); }
.credentials-section__heading { max-width: 48rem; margin-inline: auto; margin-bottom: var(--space-7); text-align: center; }
.credentials-section__heading h2 { max-width: 38rem; margin-bottom: var(--space-3); }
.credentials-section__heading h2, .credentials-section__heading p:last-child { margin-inline: auto; }
.credentials-section__heading p:last-child { max-width: 42rem; margin-bottom: 0; color: var(--color-muted); }
.credentials-list { max-width: 62rem; margin-inline: auto; border-top: 1px solid var(--color-border); }
.credentials-item { display: grid; grid-template-columns: minmax(10rem, 13rem) minmax(0, 1fr); gap: var(--space-6); align-items: center; padding: var(--space-5) 0; border-bottom: 1px solid var(--color-border); transition: border-color var(--transition-base), transform var(--transition-base); }
.credentials-item:hover { border-color: rgb(155 123 28 / .48); transform: translateX(.2rem); }
.credentials-item__visual { display: flex; min-height: 5.5rem; align-items: center; justify-content: center; padding-right: var(--space-5); border-right: 1px solid var(--color-border); }
.credentials-item__visual img { width: min(100%, 10rem); max-height: 5.5rem; object-fit: contain; object-position: left center; }
.credentials-item__placeholder { display: block; width: min(100%, 10rem); height: 5.5rem; border: 1px solid var(--color-border); background: linear-gradient(135deg, #eef0ee 0%, #d3d8db 48%, #aeb8bf 100%); }
.credentials-item__content h3 { margin-bottom: var(--space-2); font-family: var(--font-body); font-size: clamp(1.05rem, 2vw, 1.35rem); font-weight: 700; }
.credentials-item__content p { max-width: 45rem; margin-bottom: 0; color: var(--color-muted); }

.case-study-grid, .process-grid, .benefits-panel__grid, .eligibility-grid, .getting-started__grid, .after-submission__grid { display: grid; gap: var(--space-4); }
.case-study-card, .benefit-card, .eligibility-card, .getting-started__grid article, .after-submission__grid article { display: flex; flex-direction: column; min-height: 100%; border: 1px solid var(--color-border); background: var(--color-surface); box-shadow: var(--shadow-soft); transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base); }
.case-study-card:hover, .benefit-card:hover, .getting-started__grid article:hover { border-color: rgb(175 31 41 / .28); box-shadow: var(--shadow-hover); transform: translateY(-.2rem); }
.case-study-card__media, .service-case-study__media, .office-geo__media, .featured-resource__media, .blog-featured__media { min-height: 12rem; background: linear-gradient(135deg, #768692 0%, #c4c9c9 48%, #526678 100%); }
.case-study-card__body { display: flex; flex: 1; flex-direction: column; padding: var(--space-5); }
.case-study-card__tag { margin-bottom: var(--space-2); color: var(--color-accent); font-size: .7rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.case-study-card h3 { margin-bottom: var(--space-3); font-size: 1.35rem; }
.case-study-card__body > p { color: var(--color-muted); }
.case-study-card__result { display: grid; gap: .25rem; margin-top: auto; padding-top: var(--space-4); border-top: 1px solid var(--color-border); }
.case-study-card__result span { color: var(--color-accent); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.case-study-card__result strong { font-size: .9rem; line-height: 1.45; }

.process-grid { counter-reset: process; }
.process-step { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-4); padding: var(--space-4) 0; border-bottom: 1px solid var(--color-border); }
.process-step:last-child { border-bottom: 0; }
.process-step__number, .benefit-card > span, .getting-started__grid article > span, .after-submission__grid article > span { color: var(--color-accent); font-size: .78rem; font-weight: 700; letter-spacing: .08em; }
.process-step h3, .benefit-card h3, .getting-started__grid h3, .after-submission__grid h3 { margin-bottom: var(--space-2); font-family: var(--font-body); font-size: 1rem; font-weight: 700; }
.process-step p, .benefit-card p, .getting-started__grid p, .after-submission__grid p { margin-bottom: 0; color: var(--color-muted); font-size: .9rem; }

.decision-cta__panel { display: grid; gap: var(--space-5); align-items: center; padding: clamp(var(--space-5), 5vw, var(--space-7)); border: 1px solid rgb(175 31 41 / .25); border-left: .25rem solid var(--color-accent); background: var(--color-surface-warm); }
.decision-cta__panel h2 { margin-bottom: var(--space-3); }
.decision-cta__panel p:last-child { margin-bottom: 0; color: var(--color-muted); }
.decision-cta__actions { display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: center; }
.benefits-panel__grid { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.benefit-card { padding: var(--space-5); }
.benefit-card > span { margin-bottom: var(--space-5); }

.eligibility-grid { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.eligibility-card { padding: clamp(var(--space-5), 4vw, var(--space-6)); border-top: .2rem solid var(--color-navy-700); background: var(--color-surface); }
.eligibility-card--no { border-top-color: var(--color-accent); }
.eligibility-card h3 { margin-bottom: var(--space-4); font-family: var(--font-body); font-size: 1rem; font-weight: 700; }
.eligibility-card ul, .checklist-card ul { display: grid; gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
.eligibility-card li, .checklist-card li { position: relative; padding-left: 1.55rem; color: var(--color-muted); }
.eligibility-card li::before, .checklist-card li::before { position: absolute; top: .4em; left: 0; width: .7rem; height: .7rem; border: 1px solid var(--color-accent); border-radius: 50%; content: ""; }
.eligibility-card--no li::before { border-radius: 0; transform: rotate(45deg) scale(.75); }

.timeline { position: relative; display: grid; gap: var(--space-4); }
.timeline::before { position: absolute; top: 1.4rem; bottom: 1.4rem; left: 1.15rem; width: 1px; background: var(--color-border); content: ""; }
.timeline-step { position: relative; display: grid; grid-template-columns: 2.3rem minmax(0, 1fr); gap: var(--space-4); align-items: start; }
.timeline-step__number { display: grid; width: 2.3rem; height: 2.3rem; place-items: center; border: 1px solid var(--color-accent); border-radius: 50%; background: var(--color-surface); color: var(--color-accent); font-size: .72rem; font-weight: 700; }
.timeline-step__duration { display: block; margin-bottom: .25rem; color: var(--color-accent); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.timeline-step h3 { margin-bottom: var(--space-2); font-family: var(--font-body); font-size: 1rem; font-weight: 700; }
.timeline-step p { margin-bottom: 0; color: var(--color-muted); }

.service-steps { background: var(--color-surface); }
.service-steps__grid { display: grid; gap: 1px; overflow: hidden; border: 1px solid var(--color-border); background: var(--color-border); }
.service-step { display: flex; min-height: 100%; flex-direction: column; padding: clamp(var(--space-4), 3vw, var(--space-5)); background: var(--color-surface); transition: background-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base); }
.service-step__top { display: flex; align-items: center; justify-content: center; margin-bottom: var(--space-5); }
.service-step__icon { display: grid; width: 5.25rem; height: 5.25rem; place-items: center; border: 1px solid rgb(155 123 28 / .55); border-radius: 50%; background: linear-gradient(135deg, rgb(155 123 28 / .16), transparent); box-shadow: 0 .65rem 1.35rem rgb(23 35 51 / .1); color: #9b7b1c; }
.service-step__icon svg { width: 2.7rem; height: 2.7rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.35; }
.service-step__icon img { width: 2.9rem; height: 2.9rem; object-fit: contain; }
.service-step h3 { margin-bottom: var(--space-3); padding-left: .85rem; color: var(--color-navy-900); font-family: var(--font-body); font-size: 1.25rem; font-weight: 700; line-height: 1.3; }
.service-step h3 > span { position: relative; display: inline-block; max-width: 100%; vertical-align: top; }
.service-step h3 > span::before { position: absolute; top: .15em; bottom: .15em; left: -.85rem; width: .22rem; border-radius: 999px; background: var(--color-accent); content: ""; }
.service-step p { margin-bottom: 0; color: #3f4c58; font-size: 1.0625rem; line-height: 1.55; }
.service-features .service-feature-card__icon { width: 2.75rem; height: 2.75rem; margin-inline: auto; box-shadow: 0 .65rem 1.35rem rgb(23 35 51 / .1); }
.service-features .service-feature-card__icon > .site-icon { width: 1.45rem; height: 1.45rem; }
.service-features .service-feature-card__number { display: block; font-size: .9rem; text-align: center; }
.service-features .service-feature-card h3 { margin-bottom: var(--space-3); padding-left: .85rem; color: var(--color-navy-900); font-size: 1.4rem; line-height: 1.3; }
.service-features .service-feature-card h3 > span { position: relative; display: inline-block; max-width: 100%; vertical-align: top; }
.service-features .service-feature-card h3 > span::before { position: absolute; top: .15em; bottom: .15em; left: -.85rem; width: .22rem; border-radius: 999px; background: var(--color-accent); content: ""; }
.service-features .service-feature-card p { max-width: 16rem; color: #3f4c58; font-size: 1.1rem; line-height: 1.55; }

/* Homepage content carousels keep all selected admin records available without
 * making the section taller than the surrounding layout. */
.home-carousel { min-width: 0; }
.home-carousel__viewport { min-width: 0; overflow: hidden; }
.home-carousel__track { display: grid; grid-auto-columns: minmax(16rem, 1fr); grid-auto-flow: column; gap: var(--space-4); overflow-x: auto; padding: .15rem .15rem .75rem; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.home-carousel__slide { min-width: 0; scroll-snap-align: start; }
.home-carousel__footer { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-3); }
.home-carousel__footer[hidden], .home-carousel__controls[hidden], .home-carousel__dots[hidden] { display: none; }
.home-carousel__controls { display: flex; justify-content: flex-end; gap: .5rem; }
.home-carousel__dots { display: flex; min-height: .5rem; flex-wrap: wrap; gap: .35rem; align-items: center; }
.home-carousel__dot { width: .45rem; height: .45rem; border: 0; border-radius: 999px; background: rgb(41 55 70 / .2); cursor: pointer; padding: 0; transition: width var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast); }
.home-carousel__dot:hover, .home-carousel__dot:focus-visible { background: var(--color-accent); transform: scale(1.12); }
.home-carousel__dot--active { width: 1.35rem; background: var(--color-accent); }
.home-carousel__button { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border: 1px solid var(--color-border); border-radius: 50%; background: var(--color-surface); color: var(--color-text); cursor: pointer; transition: border-color var(--transition-fast), background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast); }
.home-carousel__button:hover:not(:disabled), .home-carousel__button:focus-visible:not(:disabled) { border-color: var(--color-accent); background: var(--color-accent); color: var(--color-on-dark); transform: translateY(-.1rem); }
.home-carousel__button:disabled { cursor: default; opacity: .4; }
.testimonial-card__avatar { position: relative; display: grid; width: 3rem; height: 3.2rem; flex: 0 0 auto; place-items: center; overflow: hidden; border: 1px solid rgb(155 123 28 / .42); border-radius: 48% 48% 24% 24% / 36% 36% 22% 22%; background: linear-gradient(145deg, #f2ead8, #c8d0d1); color: var(--color-navy-800); }
.testimonial-card__avatar--placeholder::before { position: absolute; top: .35rem; left: 50%; width: 1.08rem; height: 1.08rem; border-radius: 50%; background: #d6a580; content: ""; transform: translateX(-50%); }
.testimonial-card__avatar--placeholder::after { position: absolute; right: .28rem; bottom: -.15rem; left: .28rem; height: 1.75rem; border-radius: 52% 52% 0 0; background: var(--color-navy-800); content: ""; }
.testimonial-card__avatar--male.testimonial-card__avatar--placeholder::before { box-shadow: 0 -.12rem 0 .07rem var(--color-navy-800); }
.testimonial-card__avatar--female.testimonial-card__avatar--placeholder::before { box-shadow: 0 -.16rem 0 .15rem var(--color-accent), -.34rem .2rem 0 -.12rem var(--color-accent), .34rem .2rem 0 -.12rem var(--color-accent); }
.testimonial-card__avatar img { position: relative; z-index: 1; width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
.testimonial-card__avatar img.testimonial-card__avatar-image--default { width: 85%; height: 85%; object-fit: contain; }
.home-intro__link { margin-top: var(--space-4); }

/* Hero eyebrow labels stay readable over editorial backgrounds while remaining
 * visually distinct from the main heading. */
.contact-hero .eyebrow,
.blog-hero .eyebrow,
.article-hero .eyebrow,
.resources-hero .eyebrow,
.faq-hero .eyebrow,
.about-hero .eyebrow,
.services-hero .eyebrow,
.service-hero .eyebrow,
.reviews-hero .eyebrow,
.author-archive-hero .eyebrow {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    margin-bottom: var(--space-4);
    padding: .34rem .62rem .3rem;
    border: 1px solid rgb(255 255 255 / .38);
    border-left: .18rem solid var(--color-accent);
    border-radius: .22rem;
    background: rgb(9 20 34 / .3);
    color: rgb(255 255 255 / .94);
    text-shadow: 0 .12rem .5rem rgb(0 0 0 / .22);
}
.service-card h3 { font-size: 1.4rem; }
.service-card p { font-size: .95rem; }
.feature-row__content h3 { font-size: 1.28rem; }
.feature-row__content p { font-size: .94rem; }

@media (min-width: 48rem) {
    /* Keep the description and CTA row aligned when service names wrap differently. */
    .home-intro .service-card h3 {
        min-height: 2.6em;
        line-height: 1.3;
    }
}

@media (min-width: 48rem) and (max-width: 63.99rem) {
    .service-features__grid--balanced .service-feature-card--balanced-tablet-6 { grid-column: span 6; }
    .service-features__grid--balanced .service-feature-card--balanced-tablet-12 { grid-column: span 12; }
    .service-features__grid--balanced .service-feature-card--balanced-tablet-6 .service-feature-card__content,
    .service-features__grid--balanced .service-feature-card--balanced-tablet-12 .service-feature-card__content,
    .service-steps__grid--balanced .service-step--balanced-tablet-6 .service-step__content,
    .service-steps__grid--balanced .service-step--balanced-tablet-12 .service-step__content { width: 100%; }
    .service-features__grid--balanced .service-feature-card--balanced-tablet-6 .service-feature-card__content p { max-width: 22rem; }
    .service-features__grid--balanced .service-feature-card--balanced-tablet-12 .service-feature-card__content p { max-width: 38rem; }
    .service-steps__grid--balanced .service-step--balanced-tablet-6 .service-step__content p,
    .service-steps__grid--balanced .service-step--balanced-tablet-12 .service-step__content p { max-width: 38rem; }
}

@media (min-width: 64rem) {
    .service-features__grid--balanced .service-feature-card--balanced-desktop-3 { grid-column: span 3; }
    .service-features__grid--balanced .service-feature-card--balanced-desktop-4 { grid-column: span 4; }
    .service-features__grid--balanced .service-feature-card--balanced-desktop-6 { grid-column: span 6; }
    .service-features__grid--balanced .service-feature-card--balanced-desktop-12 { grid-column: span 12; }
    .service-features__grid--balanced .service-feature-card--balanced-desktop-4 .service-feature-card__content,
    .service-features__grid--balanced .service-feature-card--balanced-desktop-6 .service-feature-card__content,
    .service-features__grid--balanced .service-feature-card--balanced-desktop-12 .service-feature-card__content,
    .service-steps__grid--balanced .service-step--balanced-desktop-4 .service-step__content,
    .service-steps__grid--balanced .service-step--balanced-desktop-6 .service-step__content,
    .service-steps__grid--balanced .service-step--balanced-desktop-12 .service-step__content { width: 100%; }
    .service-features__grid--balanced .service-feature-card--balanced-desktop-4 .service-feature-card__content p { max-width: 22rem; }
    .service-features__grid--balanced .service-feature-card--balanced-desktop-6 .service-feature-card__content p { max-width: 32rem; }
    .service-features__grid--balanced .service-feature-card--balanced-desktop-12 .service-feature-card__content p { max-width: 44rem; }
    .service-steps__grid--balanced .service-step--balanced-desktop-4 .service-step__content p,
    .service-steps__grid--balanced .service-step--balanced-desktop-6 .service-step__content p,
    .service-steps__grid--balanced .service-step--balanced-desktop-12 .service-step__content p { max-width: 44rem; }
    .service-steps__grid--balanced .service-step--balanced-desktop-3 { grid-column: span 3; }
    .service-steps__grid--balanced .service-step--balanced-desktop-4 { grid-column: span 4; }
    .service-steps__grid--balanced .service-step--balanced-desktop-6 { grid-column: span 6; }
    .service-steps__grid--balanced .service-step--balanced-desktop-12 { grid-column: span 12; }
}

.service-refusals { background: var(--color-surface-warm); }
.service-refusals__grid { display: grid; gap: var(--space-4); }
.service-refusal { padding: var(--space-5); border: 1px solid var(--color-border); border-top: .2rem solid var(--color-accent); background: var(--color-surface); box-shadow: var(--shadow-soft); }
.service-refusal__mark { display: block; width: 1.25rem; height: 1.25rem; margin-bottom: var(--space-4); border: 1px solid var(--color-accent); border-radius: 50%; background: linear-gradient(135deg, transparent 45%, var(--color-accent) 46% 54%, transparent 55%); }
.service-refusal h3 { margin-bottom: var(--space-2); font-family: var(--font-body); font-size: 1rem; font-weight: 700; }
.service-refusal p { margin-bottom: 0; color: var(--color-muted); }

.service-case-study__layout, .office-geo__layout, .featured-resource__layout, .blog-featured__layout { display: grid; gap: var(--space-6); align-items: stretch; }
.service-case-study__media { min-height: 18rem; }
.service-case-study__copy { align-self: center; }
.service-case-study__copy h2 { margin-bottom: var(--space-5); }
.service-case-study__copy dl { display: grid; gap: var(--space-4); margin: 0; }
.service-case-study__copy dl div { padding-top: var(--space-3); border-top: 1px solid var(--color-border); }
.service-case-study__copy dt { margin-bottom: .2rem; color: var(--color-accent); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.service-case-study__copy dd { margin: 0; color: var(--color-muted); }
.service-case-study__copy small { display: block; margin-top: var(--space-4); color: var(--color-muted); font-size: .75rem; }
.checklist-card { display: grid; gap: var(--space-5); padding: clamp(var(--space-5), 5vw, var(--space-7)); border: 1px solid var(--color-border); background: var(--color-surface); box-shadow: var(--shadow-soft); }
.checklist-card__intro { max-width: 38rem; }
.checklist-card__intro h2 { margin-bottom: var(--space-3); }
.checklist-card__intro p:last-child { margin-bottom: 0; color: var(--color-muted); }
.checklist-card .button { justify-self: start; }

.history-timeline { display: grid; gap: 0; border-top: 1px solid var(--color-border); }
.history-timeline article { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: var(--space-4); padding: var(--space-5) 0; border-bottom: 1px solid var(--color-border); }
.history-timeline article > span { color: var(--color-accent); font-size: .8rem; font-weight: 700; }
.history-timeline h3, .trust-reasons h3, .office-geo h2 { margin-bottom: var(--space-2); font-family: var(--font-body); font-size: 1rem; font-weight: 700; }
.history-timeline p, .trust-reasons p, .office-geo p { margin-bottom: 0; color: var(--color-muted); }
.trust-reasons__seal { display: grid; width: 4rem; height: 4rem; place-items: center; border: 1px solid var(--color-accent); border-radius: 50%; color: var(--color-accent); font-size: 1.5rem; }
.trust-reasons__grid { display: grid; gap: var(--space-4); }
.trust-reasons__grid article { padding: var(--space-4) 0; border-top: 1px solid var(--color-border); }
.trust-reasons__mark { display: block; width: 1.25rem; height: 1.25rem; margin-bottom: var(--space-4); border: 1px solid var(--color-accent); border-radius: 50%; background: linear-gradient(135deg, transparent 45%, var(--color-accent) 46% 54%, transparent 55%); }
.office-geo__media { position: relative; min-height: 16rem; overflow: hidden; isolation: isolate; border: 1px solid var(--color-border); background: var(--color-navy-800); box-shadow: var(--shadow-soft); }
.office-geo__media-placeholder, .office-geo__media-overlay { position: absolute; inset: 0; }
.office-geo__media-placeholder { background: linear-gradient(145deg, rgb(197 205 208 / .94), rgb(114 133 145 / .7) 44%, rgb(30 54 78 / .92)), linear-gradient(35deg, #aeb8bf 0%, #d3d8db 48%, #73818b 100%); background-position: center; background-repeat: no-repeat; background-size: cover; transform: translate3d(var(--about-media-x, 0rem), var(--about-media-y, 0rem), 0) scale(1.02); transition: transform 700ms var(--ease-out), filter 700ms var(--ease-out); will-change: transform; }
.office-geo__media-overlay { background: linear-gradient(135deg, rgb(23 35 51 / .86), rgb(23 35 51 / .16) 56%, rgb(23 35 51 / .72)); transition: opacity 700ms var(--ease-out); }
.office-geo address { margin: var(--space-5) 0; color: var(--color-navy-900); font-style: normal; font-weight: 700; }
.office-geo ul { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.office-geo li { padding: .45rem .7rem; border: 1px solid var(--color-border); border-radius: 999px; color: var(--color-muted); font-size: .8rem; }

@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {
    .office-geo__media:hover { box-shadow: var(--shadow-hover); }
    .office-geo__media:hover .office-geo__media-placeholder,
    .office-geo__media.is-pointer-active .office-geo__media-placeholder { filter: saturate(1.06) contrast(1.02); transform: translate3d(var(--about-media-x, 0rem), var(--about-media-y, 0rem), 0) scale(1.06); }
    .office-geo__media:hover .office-geo__media-overlay { opacity: .9; }
    .office-geo li { transition: border-color var(--transition-fast), background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast); }
    .office-geo li:hover { border-color: var(--color-accent); background: rgb(175 31 41 / .08); color: var(--color-accent-dark); transform: translateY(-.1rem); }
}

.faq-category-nav { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-6) 0; }
.faq-category-nav__button { border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); color: var(--color-text); padding: .65rem 1rem; font: inherit; font-size: .8rem; font-weight: 700; cursor: pointer; transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast); }
.faq-category-nav__button:hover, .faq-category-nav__button:focus-visible, .faq-category-nav__button.is-active { border-color: var(--color-navy-900); background: var(--color-navy-900); color: var(--color-surface); }
.faq-category-nav__button:active { transform: scale(.98); }
.faq-item[data-faq-hidden="true"] { display: none; }
.faq-popular__grid { display: grid; gap: var(--space-4); }
.faq-popular__grid article { padding: var(--space-5); border: 1px solid var(--color-border); background: var(--color-surface); }
.faq-popular__mark { display: grid; width: 2rem; height: 2rem; margin-bottom: var(--space-4); place-items: center; border: 1px solid var(--color-accent); border-radius: 50%; color: var(--color-accent); }
.faq-popular__grid h3 { margin-bottom: var(--space-3); font-family: var(--font-body); font-size: 1rem; font-weight: 700; }
.faq-popular__grid p { margin-bottom: 0; color: var(--color-muted); }
.faq-help__inner { display: grid; gap: var(--space-5); align-items: center; padding: clamp(var(--space-5), 5vw, var(--space-7)); background: var(--color-navy-900); color: var(--color-on-dark); }
.faq-help__inner h2 { color: var(--color-surface); }
.faq-help__inner p:last-child { margin-bottom: 0; color: rgb(255 255 255 / .72); }
.faq-help__action { justify-self: start; padding: .65rem .95rem; font-size: .64rem; }

.featured-resource__layout, .blog-featured__layout { padding: clamp(var(--space-5), 5vw, var(--space-7)); background: var(--color-navy-900); color: var(--color-on-dark); }
.featured-resource__media, .blog-featured__media { min-height: 14rem; }
.featured-resource h2, .blog-featured h2 { color: var(--color-surface); }
.blog-featured h2 a { color: inherit; text-decoration: none; transition: color var(--transition-fast); }
.blog-featured h2 a:hover, .blog-featured h2 a:focus-visible { color: var(--color-accent); }
.featured-resource p:not(.eyebrow), .blog-featured p:not(.eyebrow) { color: rgb(255 255 255 / .74); }
.reviews-hero { position: relative; display: grid; width: min(calc(100% - (var(--container-gutter) * 2)), var(--container-max-width)); min-height: clamp(18rem, 32vw, 25rem); margin-inline: auto; overflow: hidden; isolation: isolate; align-items: center; border-radius: var(--radius-md); background: var(--color-navy-900); color: var(--color-on-dark); }
.reviews-hero__background, .reviews-hero__overlay { position: absolute; inset: 0; }
.reviews-hero__background { z-index: 0; background: linear-gradient(135deg, #152638 0%, #304d66 52%, #8a96a0 100%); background-position: center; background-size: cover; }
.reviews-hero__background::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgb(11 24 39 / .9), rgb(11 24 39 / .56) 58%, rgb(11 24 39 / .34)); content: ""; }
.reviews-hero__background video { width: 100%; height: 100%; object-fit: cover; }
.reviews-hero__overlay { z-index: 1; background: radial-gradient(circle at 82% 20%, rgb(255 255 255 / .12), transparent 34%); pointer-events: none; }
.reviews-hero__inner { position: relative; z-index: 2; width: 100%; padding-block: clamp(5rem, 10vw, 8rem); }
.reviews-hero .eyebrow { color: rgb(255 255 255 / .72); }
.reviews-hero h1 { max-width: 52rem; margin-bottom: var(--space-3); color: var(--color-surface); font-size: clamp(2.45rem, 6vw, 5rem); }
.reviews-hero p:last-child { max-width: 38rem; margin-bottom: 0; color: rgb(255 255 255 / .8); font-size: 1.05rem; }
.reviews-listing__grid { display: grid; gap: var(--space-4); }
.testimonial-card--large { min-height: 100%; }
.getting-started__grid article, .after-submission__grid article { padding: var(--space-5); background: var(--color-surface); }
.getting-started__grid article > span, .after-submission__grid article > span { display: block; margin-bottom: var(--space-5); }

.blog-toolbar { display: grid; gap: var(--space-4); margin-bottom: var(--space-6); align-items: center; }
.blog-toolbar .blog-filters { align-items: center; margin-bottom: 0; }
.blog-search-context { display: flex; min-width: 0; min-height: 2.5rem; flex-wrap: wrap; gap: .45rem .75rem; align-items: baseline; }
.blog-search-context__label { flex: 0 0 auto; color: var(--color-accent); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.blog-search-context__query { min-width: 0; flex: 1 1 12rem; color: var(--color-navy-900); overflow-wrap: anywhere; word-break: break-word; }
.blog-search-clear { flex: 0 0 auto; margin-left: auto; color: var(--color-accent); font-size: .78rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.blog-search-clear:hover, .blog-search-clear:focus-visible { color: var(--color-navy-900); text-decoration: underline; text-underline-offset: .18em; }
.blog-search { display: flex; min-height: 2.5rem; gap: var(--space-2); align-items: stretch; }
.blog-search input { min-width: 0; flex: 1; height: 2.5rem; min-height: 2.5rem; box-sizing: border-box; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); padding: .55rem .9rem; color: var(--color-text); }
.blog-search .button { height: 2.5rem; min-height: 2.5rem; box-sizing: border-box; }
.blog-search input:focus { border-color: var(--color-accent); box-shadow: 0 0 0 .2rem rgb(175 31 41 / .1); outline: 0; }
.blog-featured__layout { align-items: stretch; }
.blog-listing__results { position: relative; transition: opacity 280ms ease, transform 280ms ease; }
.blog-listing__results.is-loading { opacity: .48; transform: translateY(.18rem); pointer-events: none; }
.blog-listing__results.is-loading::after { position: absolute; top: 50%; left: 50%; width: 1.45rem; height: 1.45rem; border: 2px solid rgb(43 67 93 / .16); border-top-color: var(--color-accent); border-radius: 50%; content: ""; animation: blog-listing-spin .7s linear infinite; transform: translate(-50%, -50%); }
@keyframes blog-listing-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }

.author-archive-hero { display: grid; min-height: clamp(18rem, 32vw, 25rem); align-items: center; background: var(--color-navy-900); color: var(--color-on-dark); }
.author-archive-hero__inner { padding-block: var(--space-8); }
.author-archive-hero .eyebrow { color: rgb(255 255 255 / .72); }
.author-archive-hero h1 { max-width: 52rem; margin-bottom: var(--space-3); color: var(--color-surface); font-size: clamp(2.45rem, 6vw, 5rem); }
.author-archive-hero p:last-child { max-width: 35rem; margin-bottom: 0; color: rgb(255 255 255 / .78); font-size: 1.05rem; }
.author-archive__layout { display: grid; gap: var(--space-7); align-items: start; }
.author-archive__main { min-width: 0; }
.author-archive__grid { margin-top: var(--space-6); }
.author-archive__sidebar { display: grid; gap: var(--space-5); }
.author-profile-card { padding: var(--space-5); border: 1px solid var(--color-border); background: var(--color-surface); box-shadow: var(--shadow-soft); }
.author-profile-card__photo { min-height: 15rem; margin-bottom: var(--space-5); background: linear-gradient(135deg, #768692 0%, #c4c9c9 48%, #526678 100%); background-position: center; background-size: cover; }
.author-profile-card h2 { margin-bottom: var(--space-3); font-family: var(--font-body); font-size: 1.35rem; font-weight: 700; }
.author-profile-card p:last-child { margin-bottom: 0; color: var(--color-muted); }
.author-category-nav { display: grid; gap: .35rem; padding: var(--space-5); border: 1px solid var(--color-border); background: var(--color-surface-warm); }
.author-category-nav .eyebrow { margin-bottom: var(--space-2); }
.author-category-nav a { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); border-bottom: 1px solid var(--color-border); padding: .65rem 0; color: var(--color-text); font-size: .85rem; text-decoration: none; transition: color var(--transition-fast), border-color var(--transition-fast); }
.author-category-nav a:last-child { border-bottom: 0; }
.author-category-nav a span { color: var(--color-muted); font-size: .75rem; }
.author-category-nav a:hover, .author-category-nav a:focus-visible, .author-category-nav a.is-active { border-color: var(--color-accent); color: var(--color-accent); }

.article-toc { display: grid; gap: 0; margin: var(--space-5) 0; padding: var(--space-5); border: 1px solid var(--color-border); background: var(--color-surface); box-shadow: var(--shadow-soft); }
.article-toc .eyebrow { margin-bottom: var(--space-3); }
.article-toc__link { display: flex; gap: var(--space-3); align-items: center; padding-block: var(--space-3); border-top: 1px solid var(--color-border); color: var(--color-text); font-size: .82rem; font-weight: 700; text-decoration: none; transition: color var(--transition-fast), padding-left var(--transition-fast); }
.article-toc__link span { color: var(--color-accent); font-size: .68rem; letter-spacing: .08em; }
.article-toc__link:hover, .article-toc__link:focus-visible { padding-left: var(--space-2); color: var(--color-accent); }
.article-toc__link--level-3 { padding-left: var(--space-3); }
.article-toc__link--level-4 { padding-left: var(--space-5); }
.article-body h2, .article-body h3, .article-body h4 { scroll-margin-top: 2rem; }
.article-body h2 { margin-top: var(--space-7); padding-top: var(--space-6); border-top: 1px solid var(--color-border); }
.article-body > :first-child { margin-top: 0; }
.article-body h2 { margin-bottom: var(--space-3); font-size: 1.8rem; }
.article-body h3 { margin-top: var(--space-5); margin-bottom: var(--space-2); font-size: 1.35rem; }
.article-body h4 { margin-top: var(--space-4); margin-bottom: var(--space-2); font-size: 1.1rem; }
.article-pdf-card { display: grid; gap: var(--space-4); align-items: center; padding: var(--space-5); border: 1px solid var(--color-border); background: var(--color-surface); }
.article-pdf-card__icon { display: grid; width: 3rem; height: 3.6rem; place-items: center; background: var(--color-accent); color: var(--color-surface); font-size: .7rem; font-weight: 700; }
.article-pdf-card h2 { margin-bottom: var(--space-2); }
.article-pdf-card p:last-child { margin-bottom: 0; color: var(--color-muted); }
.article-pdf-card .button { justify-self: start; }
.article-pdf--sidebar .article-pdf-card { padding: var(--space-4); gap: var(--space-3); }
.article-pdf--sidebar .article-pdf-card h2 { font-size: 1.25rem; }
.article-pdf--sidebar .article-pdf-card p { font-size: .9rem; line-height: 1.55; }
.article-pdf--sidebar .article-pdf-card .button { width: 100%; justify-self: stretch; }

.article-attachments { margin-top: var(--space-7); padding: var(--space-4); border: 1px solid var(--color-border); background: var(--color-surface); box-shadow: var(--shadow-soft); }
.article-attachments h2 { margin-bottom: var(--space-3); font-size: 1.25rem; }
.article-attachments ul { display: grid; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.article-attachments li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-3); align-items: center; padding-top: var(--space-3); border-top: 1px solid var(--color-border); }
.article-attachments li:first-child { padding-top: 0; border-top: 0; }
.article-attachment__icon { display: grid; width: 2rem; height: 2.35rem; place-items: center; flex: 0 0 auto; background: var(--color-accent); color: var(--color-surface); }
.article-attachment__icon .site-icon { width: 1.1rem; height: 1.1rem; }
.article-attachments li a { min-width: 0; color: var(--color-text); font-size: .82rem; font-weight: 700; overflow-wrap: anywhere; text-decoration: none; }
.article-attachments li a:hover, .article-attachments li a:focus-visible { color: var(--color-accent); }
.related-articles__grid { display: grid; gap: var(--space-4); }
.related-articles__grid a { display: block; padding: var(--space-5); border: 1px solid var(--color-border); background: var(--color-surface); color: var(--color-text); text-decoration: none; }
.related-articles__grid a:hover, .related-articles__grid a:focus-visible { border-color: var(--color-accent); }
.related-articles__grid span { color: var(--color-accent); font-size: .7rem; font-weight: 700; text-transform: uppercase; }
.related-articles__grid h3 { margin: var(--space-3) 0 var(--space-5); font-size: 1.15rem; }
.related-articles__grid strong { color: var(--color-accent); font-size: .8rem; }
.contact-cards { padding-top: var(--space-6); }
.contact-cards__grid { display: grid; gap: var(--space-3); }
.contact-card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .2rem var(--space-3); padding: var(--space-4); border: 1px solid var(--color-border); color: var(--color-text); text-decoration: none; transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast); }
.contact-card:hover, .contact-card:focus-visible { border-color: var(--color-accent); box-shadow: var(--shadow-soft); transform: translateY(-.15rem); }
.contact-card__icon { grid-row: span 3; }
.contact-card__label { color: var(--color-accent); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.contact-card strong { font-size: .95rem; }
.contact-card small { color: var(--color-muted); }
.contact-success__panel { max-width: 52rem; margin-inline: auto; padding: clamp(var(--space-5), 6vw, var(--space-8)); border: 1px solid rgb(175 31 41 / .25); border-top: .25rem solid var(--color-accent); background: var(--color-surface); box-shadow: var(--shadow-soft); text-align: center; }
.contact-success__mark { display: grid; width: 3rem; height: 3rem; margin: 0 auto var(--space-4); place-items: center; border: 1px solid var(--color-accent); border-radius: 50%; color: var(--color-accent); font-size: 1.4rem; }
.contact-success__panel h2 { margin-bottom: var(--space-3); }
.contact-success__panel > p:not(.eyebrow) { max-width: 35rem; margin-inline: auto; color: var(--color-muted); }
.contact-success__steps { display: grid; gap: var(--space-3); margin-block: var(--space-6); text-align: left; }
.contact-success__steps article { padding: var(--space-4); border-top: 1px solid var(--color-border); }
.contact-success__steps span { color: var(--color-accent); font-size: .75rem; font-weight: 700; }
.contact-success__steps h3 { margin: .3rem 0 .2rem; font-family: var(--font-body); font-size: .95rem; font-weight: 700; }
.contact-success__steps p { margin: 0; color: var(--color-muted); font-size: .85rem; }
.contact-success__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-3); }

@media (max-width: 41.99rem) {
    .credentials-item { grid-template-columns: 4.75rem minmax(0, 1fr); gap: var(--space-4); padding-block: var(--space-4); }
    .credentials-item__visual { min-height: 4.25rem; padding-right: var(--space-3); }
    .credentials-item__visual img, .credentials-item__placeholder { width: 4rem; max-height: 4rem; }
    .credentials-item__placeholder { height: 4rem; }
    .credentials-item__content h3 { font-size: 1rem; }
    .credentials-item__content p { font-size: .88rem; }
}

@media (min-width: 42rem) {
    .trust-bar__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .trust-bar__item:nth-child(odd) { border-right: 1px solid var(--color-border); }
    .trust-bar__item:nth-last-child(-n + 2) { border-bottom: 0; }
    .case-study-grid, .benefits-panel__grid, .eligibility-grid, .faq-popular__grid, .getting-started__grid, .after-submission__grid, .related-articles__grid, .contact-cards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-case-study__layout, .office-geo__layout, .featured-resource__layout, .blog-featured__layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .featured-resource__layout > div:last-child, .blog-featured__layout > div:last-child { align-self: center; }
    .contact-success__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); text-align: left; }
    .faq-help__inner { grid-template-columns: minmax(0, 1fr) auto; }
    .faq-help__action { justify-self: end; }
    .service-steps__grid, .service-refusals__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-step--tablet-tail-1 { grid-column: 1 / -1; }
    .service-step--tablet-tail-1 .service-step__content { width: min(100%, calc((100% - 1px) / 2)); margin-inline: auto; }
}

@media (min-width: 60rem) {
    .section-heading--split { grid-template-columns: minmax(0, 1.1fr) minmax(16rem, .9fr); }
    .trust-bar__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .trust-bar__item { border-right: 1px solid var(--color-border); border-bottom: 0; }
    .trust-bar__item:last-child { border-right: 0; }
    .case-study-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .process-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
    .process-step { display: block; min-height: 100%; padding: var(--space-4); border-right: 1px solid var(--color-border); border-bottom: 0; }
    .process-step:last-child { border-right: 0; }
    .process-step__number { display: block; width: auto; height: auto; margin-bottom: var(--space-5); border: 0; border-radius: 0; }
    .decision-cta__panel { grid-template-columns: minmax(0, 1fr) auto; }
    .benefits-panel__grid, .faq-popular__grid, .getting-started__grid, .after-submission__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .eligibility-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .trust-reasons__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .trust-reasons__grid article:nth-child(odd) { padding-right: var(--space-5); border-right: 1px solid var(--color-border); }
    .trust-reasons__grid article:nth-child(even) { padding-left: var(--space-5); }
    .blog-toolbar { grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem); align-items: center; }
    .author-archive__layout { grid-template-columns: minmax(0, 1fr) minmax(17rem, 23rem); }
    .author-archive__sidebar { position: sticky; top: var(--space-5); }
    .article-pdf-card { grid-template-columns: auto minmax(0, 1fr) auto; }
    .contact-cards__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .service-steps__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
    .service-step { grid-column: span 3; }
    .service-step--desktop-tail-1 { grid-column: span 12; }
    .service-step--desktop-tail-2 { grid-column: span 6; }
    .service-step--desktop-tail-3 { grid-column: span 4; }
    .service-step--desktop-tail-1 .service-step__content { width: 25%; margin-inline: auto; }
    .service-step--desktop-tail-2 .service-step__content { width: 50%; margin-inline: auto; }
    .service-step--desktop-tail-3 .service-step__content { width: 75%; margin-inline: auto; }
}

@media (prefers-reduced-motion: reduce) {
    .case-study-card, .benefit-card, .getting-started__grid article, .contact-card, .credentials-item, .blog-listing__results { transition: none; }
    .blog-listing__results.is-loading::after { animation: none; }
}

/* Source: hero.css */
.hero {
    position: relative;
    display: grid;
    min-height: min(44rem, 90vh);
    overflow: hidden;
    background: var(--color-navy-800);
    color: var(--color-on-dark);
    isolation: isolate;
}

.hero__media,
.hero__overlay {
    position: absolute;
    inset: 0;
}

.hero__media {
    z-index: -3;
    transform: scale(1.03);
    transition: transform 900ms var(--motion-ease, cubic-bezier(.22, 1, .36, 1));
}

.hero__media,
.contact-hero__background,
.blog-hero__background,
.article-hero__background,
.resources-hero__background,
.faq-hero__background,
.about-hero__background,
.services-hero__background,
.service-hero__background {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.hero__media > video,
.contact-hero__background > video,
.blog-hero__background > video,
.article-hero__background > video,
.resources-hero__background > video,
.faq-hero__background > video,
.about-hero__background > video,
.services-hero__background > video,
.service-hero__background > video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.hero-media--video {
    background: var(--color-navy-800);
}

.hero-media__poster {
    position: absolute;
    z-index: 0;
    inset: 0;
    display: block;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    opacity: 1;
    transition: opacity 700ms var(--motion-ease, cubic-bezier(.22, 1, .36, 1));
}

.hero-media__poster img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-media--video > video {
    z-index: 1;
    opacity: 0;
    transition: opacity 700ms var(--motion-ease, cubic-bezier(.22, 1, .36, 1));
}

.hero-media--video.is-video-ready > video {
    opacity: 1;
}

.hero-media--video.is-video-ready > .hero-media__poster {
    opacity: 0;
}

.hero-media--video.is-video-error > video {
    display: none;
}

.hero__placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(125deg, #aeb8bf 0%, #c6cdd1 48%, #9ca8b0 100%);
}

.hero__overlay {
    z-index: -2;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgb(23 35 51 / 0.08) 0%, transparent 35%, rgb(23 35 51 / 0.62) 100%),
        linear-gradient(90deg, rgb(23 35 51 / 0.86), rgb(23 35 51 / 0.42) 62%, rgb(23 35 51 / 0.58));
}

.hero__overlay::after {
    position: absolute;
    inset: auto 0 0;
    height: 10rem;
    background: linear-gradient(180deg, transparent, rgb(9 18 30 / 0.48));
    content: "";
    pointer-events: none;
}

.hero__content {
    position: relative;
    z-index: 1;
    align-self: end;
    /* The shared .container owns the horizontal width for every section. */
    margin-inline: auto;
    padding-block: clamp(7.48rem, 16.32vw, 10.88rem) clamp(4rem, 9vw, 7rem);
    text-align: left;
    transform: translate3d(var(--hero-content-x, 0), var(--hero-content-y, 0), 0);
    transition: transform 700ms var(--motion-ease, cubic-bezier(.22, 1, .36, 1));
}

.hero__content::before {
    position: absolute;
    top: clamp(8rem, 17vw, 11.25rem);
    left: 0;
    width: 2px;
    height: clamp(3.5rem, 8vw, 5.5rem);
    background: linear-gradient(180deg, var(--color-accent), rgb(255 255 255 / 0.05));
    content: "";
    opacity: 0.9;
}

.hero .eyebrow {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    color: rgb(255 255 255 / 0.8);
    text-shadow: 0 0.15rem 1rem rgb(0 0 0 / 0.2);
}

.hero .eyebrow::before {
    width: 2.8rem;
    height: 1px;
    flex: 0 0 auto;
    background: linear-gradient(90deg, var(--color-accent), rgb(255 255 255 / 0.7));
    content: "";
}

.hero h1 {
    max-width: 42rem;
    margin-bottom: var(--space-5);
    color: var(--color-surface);
    font-size: clamp(3.25rem, 8vw, 6.25rem);
    letter-spacing: -0.035em;
    text-shadow: 0 0.3rem 1.5rem rgb(0 0 0 / 0.25);
    text-wrap: balance;
}

.hero__description {
    max-width: 31rem;
    margin-bottom: var(--space-6);
    color: rgb(255 255 255 / 0.85);
    font-size: clamp(1rem, 1.5vw, 1.15rem);
    text-shadow: 0 0.2rem 1rem rgb(0 0 0 / 0.2);
}

.hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    justify-content: flex-start;
}

.hero__actions .button--outline {
    border-color: rgb(255 255 255 / 0.65);
    background: rgb(23 35 51 / 0.18);
    -webkit-backdrop-filter: blur(0.45rem);
    backdrop-filter: blur(0.45rem);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.13);
}

.hero__actions .button--primary {
    box-shadow: 0 0.85rem 1.8rem rgb(112 14 24 / 0.28), inset 0 1px 0 rgb(255 255 255 / 0.16);
}

.hero__scroll-cue {
    position: absolute;
    z-index: 1;
    bottom: 1.65rem;
    left: 50%;
    display: block;
    width: 1.25rem;
    height: 2rem;
    border: 1px solid rgb(255 255 255 / 0.5);
    border-radius: 999px;
    opacity: 0.72;
    transform: translateX(-50%);
}

.hero__scroll-cue::before {
    position: absolute;
    top: 0.35rem;
    left: 50%;
    width: 1px;
    height: 0.4rem;
    background: rgb(255 255 255 / 0.8);
    content: "";
    transform: translateX(-50%);
}

.hero__scroll-cue span {
    position: absolute;
    top: 0.35rem;
    left: 50%;
    width: 0.2rem;
    height: 0.2rem;
    border-radius: 50%;
    background: var(--color-surface);
    content: "";
    transform: translateX(-50%);
    animation: hero-scroll-cue 2.2s ease-in-out infinite;
}

@keyframes hero-scroll-cue {
    0%, 100% { opacity: 0.4; transform: translate(-50%, 0); }
    50% { opacity: 1; transform: translate(-50%, 0.65rem); }
}

@media (max-width: 47.99rem) {
    .hero {
        min-height: 42rem;
    }

    .hero__content {
        padding-bottom: var(--space-7);
        transform: none;
    }

    .hero__content::before,
    .hero__scroll-cue {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero__media,
    .hero__content {
        transition: none;
    }

    .hero__scroll-cue span {
        animation: none;
    }
}

/* Source: error-pages.css */
.error-page {
    display: grid;
    min-height: min(48rem, calc(100vh - 9rem));
    place-items: center;
    overflow: hidden;
    background:
        radial-gradient(circle at 78% 22%, rgb(175 31 41 / .12), transparent 20rem),
        linear-gradient(135deg, #f8f7f4 0%, #fff 48%, #edf2f4 100%);
    padding: clamp(4rem, 10vw, 8rem) 1.25rem;
    text-align: center;
}

.error-page__inner {
    width: min(100%, 48rem);
}

.error-page__code {
    margin: 0;
    color: rgb(23 35 51 / .08);
    font-family: var(--font-display);
    font-size: clamp(7rem, 24vw, 15rem);
    font-weight: 500;
    letter-spacing: -.08em;
    line-height: .75;
}

.error-page .eyebrow {
    margin-top: 1rem;
}

.error-page h1 {
    max-width: 34rem;
    margin-inline: auto;
    font-size: clamp(2.2rem, 5vw, 4.2rem);
}

.error-page p:not(.eyebrow) {
    max-width: 30rem;
    margin-inline: auto;
    color: var(--color-muted);
}

.error-page__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    margin-top: 2rem;
}

.maintenance-page {
    min-height: min(42rem, calc(100vh - 9rem));
}

/* Source: tabler-icons.css */
/* Local Tabler Icons shared by the public website and administration. */
.site-icon {
    display: block;
    width: 1em;
    height: 1em;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.site-header__menu-icon.site-icon {
    width: 1.1rem;
    height: 1.1rem;
}

.trust-bar__icon,
.stat-card__icon,
.service-card__icon,
.feature-row__icon,
.expertise-badge__mark,
.services-catalog-card__mark,
.service-feature-card__icon,
.faq-popular__mark,
.service-refusal__mark,
.trust-reasons__mark,
.contact-information__icon,
.contact-social__icon,
.site-footer__social-icon,
.site-footer__contact-icon,
.contact-success__mark,
.lead-thank-you__mark,
.consultation-modal__success-mark,
.legal-page__aside-mark {
    display: grid;
    place-items: center;
}

.trust-bar__icon > .site-icon {
    width: 1.2rem;
    height: 1.2rem;
    color: var(--color-navy-700);
}

.stat-card__icon > .site-icon,
.service-card__icon > .site-icon,
.feature-row__icon > .site-icon {
    width: 1.55rem;
    height: 1.55rem;
    color: var(--color-navy-700);
}

.stat-card__icon > img {
    width: 1.75rem;
    height: 1.75rem;
    object-fit: contain;
}

/* Public statistic, service, and expertise icons use the line icon itself;
   neutral gradient circles are reserved for real media placeholders. */
.stat-card__icon {
    width: 2.65rem;
    height: 2.65rem;
    background: transparent;
    color: var(--color-navy-700);
}

.service-card__icon,
.feature-row__icon {
    width: 2.55rem;
    height: 2.55rem;
    background: transparent;
    color: var(--color-accent);
}

.expertise-badge__mark > .site-icon {
    width: 1.8rem;
    height: 1.8rem;
    color: var(--color-surface);
}

.expertise-badge__mark {
    background: transparent;
}

.services-catalog-card__mark > .site-icon,
.service-feature-card__icon > .site-icon {
    width: 1.15rem;
    height: 1.15rem;
    color: currentColor;
}

.faq-popular__mark > .site-icon,
.service-refusal__mark > .site-icon,
.trust-reasons__mark > .site-icon {
    width: 1rem;
    height: 1rem;
}

.service-refusal__mark > .site-icon,
.trust-reasons__mark > .site-icon {
    width: 1.3rem;
    height: 1.3rem;
    color: var(--color-accent);
}

.trust-reasons__mark {
    width: 2.55rem;
    height: 2.55rem;
    background: transparent;
}

.resource-download-card__icon > .site-icon,
.service-resource-card__icon > .site-icon,
.article-pdf-card__icon > .site-icon {
    width: 1.45rem;
    height: 1.65rem;
    color: currentColor;
}

.contact-information__icon {
    color: var(--color-surface);
}

.contact-information__icon > .site-icon {
    width: 1.2rem;
    height: 1.2rem;
}

.contact-social__icon {
    width: 1.25rem;
    height: 1.25rem;
    background: none;
}

.site-footer__social-icon {
    width: 1rem;
    height: 1rem;
    background: none;
}

.site-footer__contact-icon {
    width: .85rem;
    height: .85rem;
    margin-top: .15rem;
    background: none;
}

.contact-success__mark > .site-icon,
.lead-thank-you__mark > .site-icon,
.consultation-modal__success-mark > .site-icon {
    width: 1.35rem;
    height: 1.35rem;
}

.legal-page__aside-mark > .site-icon {
    width: 1.15rem;
    height: 1.15rem;
}

.about-story__signature-mark > .site-icon {
    width: 1.2rem;
    height: 1.2rem;
    color: var(--color-accent);
}

.about-story__signature-mark {
    display: grid;
    flex: 0 0 2.8rem;
    place-items: center;
}

.faq-item__icon::before,
.faq-item__icon::after {
    display: none;
}

.faq-item__icon > .site-icon {
    transition: transform var(--transition-fast);
}

.faq-item--open .faq-item__icon > .site-icon {
    transform: rotate(45deg);
}

.admin-sidebar__icon > .admin-icon {
    width: .9rem;
    height: .9rem;
}

.admin-sidebar__brand-mark > .site-icon {
    width: 1.2rem;
    height: 1.2rem;
    color: #fff;
}

.admin-auth-page__minimal-mark {
    display: grid;
    place-items: center;
    transform: none;
}

.admin-auth-page__minimal-mark > .site-icon {
    width: .95rem;
    height: .95rem;
    color: #fff;
}

.admin-media-picker__file-mark > .site-icon {
    width: .95rem;
    height: .95rem;
}

.admin-sidebar__brand-mark::before {
    display: none;
}

.admin-sidebar__group-chevron > .site-icon {
    width: .85rem;
    height: .85rem;
}

.admin-topbar__site-link > .site-icon {
    width: .85rem;
    height: .85rem;
}

.admin-module-card__icon > .site-icon,
.admin-dashboard__quick > a > .site-icon {
    width: 1.25rem;
    height: 1.25rem;
    color: var(--admin-accent);
}

.admin-module-card__arrow > .site-icon {
    width: .9rem;
    height: .9rem;
}

.admin-alert__icon > .site-icon {
    width: .78rem;
    height: .78rem;
}

.faq-item__icon > .site-icon {
    width: 1rem;
    height: 1rem;
}

@media (prefers-reduced-motion: reduce) {
    .site-icon {
        transition: none;
    }
}

/* Source: consultation-modal.css */
.lead-form {
    display: grid;
    gap: var(--space-5);
}

.lead-form__tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.35rem;
    padding: 0.3rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-warm);
}

.lead-form__tab {
    min-height: 2.8rem;
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--color-muted);
    font-weight: 700;
    transition: color var(--transition-fast), background-color var(--transition-fast), box-shadow var(--transition-fast);
}

.lead-form__tab:hover,
.lead-form__tab.is-active {
    background: var(--color-surface);
    color: var(--color-navy-900);
    box-shadow: var(--shadow-soft);
}

.lead-form__panel[hidden],
.consultation-modal[hidden],
.consultation-modal__success[hidden],
.consultation-modal__status[hidden] {
    display: none;
}

.lead-form__panel.is-active {
    animation: lead-form-panel-in var(--transition-base);
}

.lead-form__label,
.lead-form__field label,
.lead-form__optional {
    color: var(--color-text);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.lead-form__optional {
    color: var(--color-muted);
    font-weight: 500;
    letter-spacing: 0;
}

.lead-form__time-options {
    display: grid;
    gap: var(--space-2);
}

.lead-form__time-field {
    min-width: 0;
    margin: 0;
    border: 0;
    padding: 0;
}

.lead-form__time-option {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    justify-content: center;
    min-height: 47px;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-page);
    color: var(--color-text);
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 600;
    text-align: center;
    transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.lead-form__time-option span {
    flex: 1;
    text-align: center;
}

.lead-form__time-option:has(input:checked) {
    border-color: var(--color-accent);
    background: rgb(175 31 41 / 0.06);
    color: var(--color-accent-dark);
}

.lead-form__time-option input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    opacity: 0;
    pointer-events: none;
}

.lead-form__time-option:has(input:focus-visible) {
    outline: 0.1875rem solid var(--color-accent);
    outline-offset: 0.2rem;
}

.lead-form__errors {
    margin-bottom: 0;
}

.lead-form__availability-note {
    display: block;
    max-width: 34rem;
    margin: 0 auto;
    padding: .65rem .85rem;
    border-left: .18rem solid var(--color-accent);
    background: var(--color-surface-warm);
    color: var(--color-muted);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.45;
    text-align: center;
}

.service-consultation-card__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-3);
}

.consultation-modal {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 4vw, 3rem);
}

.consultation-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgb(23 35 51 / 0.72);
    backdrop-filter: blur(0.35rem);
    animation: consultation-backdrop-in var(--transition-base);
}

.consultation-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(100%, 48rem);
    max-height: min(92vh, 52rem);
    overflow: auto;
    padding: clamp(1.35rem, 4vw, 2.5rem);
    border: 1px solid rgb(255 255 255 / 0.5);
    border-top: 0.25rem solid var(--color-accent);
    background: var(--color-surface);
    box-shadow: 0 2rem 5rem rgb(23 35 51 / 0.28);
    animation: consultation-dialog-in var(--transition-base);
}

.consultation-modal__close {
    position: absolute;
    top: 0.8rem;
    right: 0.8rem;
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    border: 1px solid var(--color-border);
    border-radius: 50%;
    background: var(--color-surface);
    color: var(--color-navy-900);
    font-size: 1.4rem;
    line-height: 1;
    transition: color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
}

.consultation-modal__close:hover {
    border-color: var(--color-accent);
    color: var(--color-accent);
    transform: rotate(90deg);
}

.consultation-modal__header {
    max-width: 34rem;
    padding-right: 2.5rem;
    margin-bottom: var(--space-5);
}

.consultation-modal__header h2,
.consultation-modal__success h2 {
    margin-bottom: var(--space-2);
}

.consultation-modal__header h2 {
    font-size: clamp(1.65rem, 4vw, 2.35rem);
}

.consultation-modal__header > p:last-child,
.consultation-modal__success > p:last-of-type {
    margin-bottom: 0;
    color: var(--color-muted);
}

.consultation-modal__status {
    margin-top: var(--space-4);
    margin-bottom: 0;
    padding: var(--space-3) var(--space-4);
    border: 1px solid rgb(175 31 41 / 0.35);
    background: rgb(175 31 41 / 0.06);
    color: var(--color-text);
}

.consultation-modal__success {
    display: grid;
    justify-items: center;
    max-width: 31rem;
    margin-inline: auto;
    padding-block: var(--space-5);
    text-align: center;
}

.consultation-modal__success-mark {
    display: grid;
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto var(--space-4);
    place-items: center;
    border: 1px solid rgb(57 125 87 / 0.35);
    border-radius: 50%;
    background: rgb(57 125 87 / 0.08);
    color: #397d57;
    font-size: 1.6rem;
}

.consultation-modal__success .button {
    margin-top: var(--space-5);
}

.lead-thank-you {
    display: grid;
    min-height: 60vh;
    align-items: center;
    background: var(--color-surface-warm);
}

.lead-thank-you__card {
    max-width: 44rem;
    margin-inline: auto;
    border-top: .25rem solid var(--color-accent);
    background: var(--color-surface);
    box-shadow: var(--shadow-soft);
    padding: clamp(var(--space-6), 7vw, var(--space-8));
    text-align: center;
}

.lead-thank-you__mark {
    display: grid;
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto var(--space-4);
    place-items: center;
    border: 1px solid rgb(57 125 87 / .35);
    border-radius: 50%;
    background: rgb(57 125 87 / .08);
    color: #397d57;
    font-size: 1.6rem;
}

.lead-thank-you__card h1 {
    max-width: 34rem;
    margin-inline: auto;
}

.lead-thank-you__card > p:not(.eyebrow) {
    max-width: 34rem;
    margin-inline: auto;
    color: var(--color-muted);
}

.lead-thank-you__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-3);
    margin-top: var(--space-6);
}

body.consultation-modal-open {
    overflow: hidden;
}

html.consultation-modal-open {
    scrollbar-gutter: stable;
}

@keyframes consultation-backdrop-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes consultation-dialog-in {
    from { opacity: 0; transform: translateY(1rem) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes lead-form-panel-in {
    from { opacity: 0; transform: translateY(0.35rem); }
    to { opacity: 1; transform: translateY(0); }
}

@media (min-width: 48rem) {
    .lead-form__time-options {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .consultation-modal .contact-form__fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .consultation-modal .contact-form__field--wide {
        grid-column: 1 / -1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lead-form__panel.is-active,
    .consultation-modal__backdrop,
    .consultation-modal__dialog {
        animation: none;
    }
}

@media (max-width: 47.99rem) {
    .consultation-modal {
        place-items: start center;
        background: var(--color-surface);
        padding: 1dvh 1vw;
    }

    .consultation-modal__dialog {
        width: 98vw;
        height: 98dvh;
        max-width: none;
        max-height: none;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: calc(1rem + env(safe-area-inset-top, 0px)) var(--container-gutter) calc(1rem + env(safe-area-inset-bottom, 0px));
        border-right: 0;
        border-bottom: 0;
        border-left: 0;
        border-top-width: 0.2rem;
        box-shadow: none;
        animation-name: consultation-dialog-mobile-in;
    }

    .consultation-modal__close {
        top: calc(0.7rem + env(safe-area-inset-top, 0px));
        right: var(--container-gutter);
    }

    .consultation-modal__header {
        max-width: none;
        padding-right: 3rem;
        margin-bottom: var(--space-4);
    }

    .consultation-modal__header h2 {
        font-size: clamp(1.55rem, 7vw, 2rem);
    }

    .lead-form__tabs {
        position: sticky;
        top: 0;
        z-index: 2;
    }

    .consultation-modal .contact-form__actions {
        position: sticky;
        z-index: 2;
        bottom: 0;
        margin-inline: calc(var(--container-gutter) * -1);
        padding: var(--space-3) var(--container-gutter) calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
        background: linear-gradient(to bottom, rgb(255 255 255 / 0), var(--color-surface) 30%);
    }

    .consultation-modal .contact-form__actions .button {
        width: 100%;
    }

    .service-consultation-card__actions > * {
        width: 100%;
        text-align: center;
    }

    .lead-thank-you__actions > * {
        width: 100%;
        text-align: center;
    }
}

@keyframes consultation-dialog-mobile-in {
    from { opacity: 0; transform: translateY(1.5rem); }
    to { opacity: 1; transform: translateY(0); }
}

/* Source: motion.css */
/* Shared public motion language: calm, short, and removable for reduced-motion users. */
:root {
    --motion-distance: 1.3rem;
    --motion-duration: 1080ms;
    --motion-ease: cubic-bezier(.22, 1, .36, 1);
    --motion-shadow: 0 1rem 2.5rem rgb(23 35 51 / .12);
}

html.has-scroll-reveal [data-reveal] {
    opacity: 0;
    transform: translate3d(0, var(--motion-distance), 0);
    transition: opacity var(--motion-duration) var(--motion-ease), transform var(--motion-duration) var(--motion-ease);
    transition-delay: var(--reveal-delay, 0ms);
}

html.has-scroll-reveal [data-reveal="card"] {
    transform: translate3d(0, 1rem, 0) scale(.985);
}

html.has-scroll-reveal [data-reveal].is-revealed {
    opacity: 1;
    transform: none;
}

.motion-card {
    transition: opacity var(--motion-duration) var(--motion-ease), border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.motion-card .site-icon {
    transition: color var(--transition-fast), transform var(--transition-base);
}

/* Small hover cues for content blocks that are interactive without being links. */
.faq-item__trigger,
.faq-item__icon,
.expertise-media,
.feature-row,
.process-step,
.process-step__number,
.service-step,
.service-step__icon,
.service-feature-card,
.service-feature-card__icon,
.service-overview__sidebar-media,
.service-overview__sidebar-media img,
.testimonial-card,
.faq-popular__grid article {
    transition: color var(--transition-fast), background-color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.inline-link,
.service-card__link,
.services-catalog-card__link,
.resource-download-card__link,
.resource-preview-card__link,
.related-articles__grid a strong {
    transition: color var(--transition-fast), transform var(--transition-fast);
}

.inline-link > span[aria-hidden="true"],
.service-card__link > span[aria-hidden="true"],
.services-catalog-card__link > span[aria-hidden="true"],
.resource-download-card__link > span[aria-hidden="true"],
.resource-preview-card__link > span[aria-hidden="true"],
.button > span[aria-hidden="true"] {
    display: inline-block;
    transition: transform var(--transition-fast);
}

.inline-link:hover > span[aria-hidden="true"],
.inline-link:focus-visible > span[aria-hidden="true"],
.service-card__link:hover > span[aria-hidden="true"],
.service-card__link:focus-visible > span[aria-hidden="true"],
.services-catalog-card__link:hover > span[aria-hidden="true"],
.services-catalog-card__link:focus-visible > span[aria-hidden="true"],
.resource-download-card__link:hover > span[aria-hidden="true"],
.resource-download-card__link:focus-visible > span[aria-hidden="true"],
.resource-preview-card__link:hover > span[aria-hidden="true"],
.resource-preview-card__link:focus-visible > span[aria-hidden="true"],
.button:hover > span[aria-hidden="true"],
.button:focus-visible > span[aria-hidden="true"] {
    transform: translateX(.22rem);
}

.button:focus-visible,
.inline-link:focus-visible,
.service-card__link:focus-visible,
.services-catalog-card__link:focus-visible,
.resource-download-card__link:focus-visible,
.resource-preview-card__link:focus-visible {
    outline-offset: .35rem;
}

@media (hover: hover) and (pointer: fine) {
    .faq-item__trigger:hover,
    .faq-item__trigger:focus-visible {
        color: var(--color-accent);
    }

    .faq-item__trigger:hover .faq-item__icon,
    .faq-item__trigger:focus-visible .faq-item__icon {
        transform: scale(1.08);
    }

    .expertise-media:hover {
        box-shadow: var(--motion-shadow);
        transform: translateY(-.2rem);
    }

    .feature-row:hover,
    .feature-row:focus-within {
        border-color: rgb(175 31 41 / .3);
        background: linear-gradient(90deg, rgb(248 247 244 / .92), transparent);
        transform: translateX(.18rem);
    }

    .feature-row:hover .feature-row__icon,
    .feature-row:focus-within .feature-row__icon {
        box-shadow: 0 .5rem 1rem rgb(23 35 51 / .1);
        transform: translateY(-.12rem) scale(1.05);
    }

    .process-step:hover,
    .process-step:focus-within {
        border-color: rgb(175 31 41 / .3);
        background: linear-gradient(90deg, rgb(248 247 244 / .92), transparent);
        transform: translateY(-.12rem);
    }

    .service-overview__sidebar-media:hover {
        border-color: rgb(164 127 48 / .48);
        box-shadow: var(--motion-shadow);
        transform: translateY(-.2rem);
    }

    .service-overview__sidebar-media:hover img {
        transform: scale(1.04);
    }

    .process-step:hover .process-step__number,
    .process-step:focus-within .process-step__number {
        color: var(--color-navy-700);
        transform: translateY(-.12rem);
    }

    .process-step:hover h3,
    .process-step:focus-within h3 {
        color: var(--color-accent);
    }

    .service-step:hover,
    .service-feature-card:hover {
        background-color: var(--color-surface);
    }

    .service-step:hover .service-step__icon,
    .service-feature-card:hover .service-feature-card__icon {
        box-shadow: 0 0.5rem 1rem rgb(23 35 51 / .1);
        transform: translateY(-.12rem) scale(1.04);
    }

    .testimonial-card:hover,
    .faq-popular__grid article:hover {
        border-color: rgb(175 31 41 / .32);
        box-shadow: var(--motion-shadow);
        transform: translateY(-.2rem);
    }

    .motion-card:hover,
    .motion-card:focus-within {
        border-color: rgb(175 31 41 / .32);
        box-shadow: var(--motion-shadow);
        transform: translateY(-.22rem);
    }

    .motion-card:hover .site-icon,
    .motion-card:focus-within .site-icon {
        transform: translateY(-.08rem) scale(1.04);
    }

    [data-parallax-ready="true"] {
        will-change: transform;
        transform-origin: center;
    }
}

.consultation-modal.is-closing .consultation-modal__backdrop {
    animation: consultation-backdrop-out 240ms ease forwards;
}

.consultation-modal.is-closing .consultation-modal__dialog {
    animation: consultation-dialog-out 240ms var(--motion-ease) forwards;
}

.consultation-modal__form-shell.is-leaving {
    animation: consultation-content-out 180ms ease forwards;
}

.consultation-modal__success.is-entering {
    animation: consultation-content-in 300ms var(--motion-ease) both;
}

@keyframes consultation-backdrop-out {
    from { opacity: 1; }
    to { opacity: 0; }
}

@keyframes consultation-dialog-out {
    from { opacity: 1; transform: translateY(0) scale(1); }
    to { opacity: 0; transform: translateY(.7rem) scale(.985); }
}

@keyframes consultation-content-out {
    from { opacity: 1; transform: translateY(0); }
    to { opacity: 0; transform: translateY(-.25rem); }
}

@keyframes consultation-content-in {
    from { opacity: 0; transform: translateY(.35rem); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    html.has-scroll-reveal [data-reveal],
    html.has-scroll-reveal [data-reveal].is-revealed {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .motion-card,
    .motion-card .site-icon,
    .faq-item__trigger,
    .faq-item__icon,
    .expertise-media,
    .feature-row,
    .feature-row__icon,
    .process-step,
    .process-step__number,
    .service-step,
    .service-step__icon,
    .service-feature-card,
    .service-feature-card__icon,
    .service-overview__sidebar-media,
    .service-overview__sidebar-media img,
    .testimonial-card,
    .faq-popular__grid article,
    .inline-link,
    .service-card__link,
    .services-catalog-card__link,
    .resource-download-card__link,
    .resource-preview-card__link,
    .related-articles__grid a strong,
    .button > span[aria-hidden="true"] {
        transition: none;
    }

    .motion-card:hover,
    .motion-card:focus-within,
    .motion-card:hover .site-icon,
    .motion-card:focus-within .site-icon,
    .faq-item__trigger:hover .faq-item__icon,
    .faq-item__trigger:focus-visible .faq-item__icon,
    .expertise-media:hover,
    .feature-row:hover,
    .feature-row:focus-within,
    .feature-row:hover .feature-row__icon,
    .feature-row:focus-within .feature-row__icon,
    .process-step:hover,
    .process-step:focus-within,
    .process-step:hover .process-step__number,
    .process-step:focus-within .process-step__number,
    .service-overview__sidebar-media:hover,
    .service-overview__sidebar-media:hover img,
    .service-step:hover .service-step__icon,
    .service-feature-card:hover .service-feature-card__icon,
    .testimonial-card:hover,
    .faq-popular__grid article:hover {
        transform: none;
    }

    .consultation-modal.is-closing .consultation-modal__backdrop,
    .consultation-modal.is-closing .consultation-modal__dialog,
    .consultation-modal__form-shell.is-leaving,
    .consultation-modal__success.is-entering {
        animation: none;
    }
}

/* Source: responsive.css */
/*
 * Public responsive layer.
 *
 * The desktop component rules remain the source of truth for the wide layout.
 * This file defines the intentional small-screen composition shared by every
 * public page instead of accumulating page-specific emergency overrides.
 */

.site-navigation__panel-head,
.site-navigation__mobile-cta {
    display: none;
}

@media (min-width: 48rem) {
    .site-header {
        position: sticky;
        z-index: 40;
        top: 0;
        border-bottom-color: rgb(229 232 233 / .9);
        background: rgb(255 255 255 / .96);
        color: var(--color-text);
        /*
         * Keep the desktop mega-menu viewport-relative. A backdrop filter on
         * this sticky parent creates a containing block for its fixed menu and
         * clips the menu to the header height.
         */
        box-shadow: 0 .35rem 1.5rem rgb(23 35 51 / .06);
        transition: background-color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base), color var(--transition-base);
        will-change: box-shadow;
    }

    .site-header--overlay {
        position: sticky;
        margin-bottom: calc(var(--header-height) * -2);
        border-bottom-color: transparent;
        background: transparent;
        color: var(--color-on-dark);
        box-shadow: none;
    }

    .site-header.is-scrolled,
    .site-header--overlay.is-scrolled {
        border-bottom-color: rgb(229 232 233 / .9);
        background: rgb(255 255 255 / .98);
        color: var(--color-text);
        box-shadow: 0 .5rem 1.75rem rgb(23 35 51 / .12);
    }

    .site-header__inner {
        transition: min-height var(--transition-base), padding-block var(--transition-base), gap var(--transition-base);
    }

    .site-header.is-scrolled .site-header__inner {
        min-height: 4.35rem;
        padding-block: .6rem;
        gap: var(--space-4);
    }

    .site-header .brand__image,
    .site-header .brand__placeholder {
        transition: height var(--transition-base), max-width var(--transition-base), transform var(--transition-fast);
    }

    .site-header.is-scrolled .brand__image,
    .site-header.is-scrolled .brand__placeholder {
        max-width: min(9.6rem, 100%);
        height: 2.05rem;
    }

    .site-header.is-scrolled .brand__logo-switcher {
        max-width: min(9.6rem, 100%);
        height: 2.05rem;
    }

    .site-header .site-navigation__link,
    .site-header .site-navigation__summary {
        transition: min-height var(--transition-base), font-size var(--transition-base), color var(--transition-fast);
    }

    .site-header.is-scrolled .site-navigation__link,
    .site-header.is-scrolled .site-navigation__summary {
        min-height: 1.8rem;
        font-size: .61rem;
    }

    .site-header__cta {
        transition: min-height var(--transition-base), padding var(--transition-base), font-size var(--transition-base), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
    }

    .site-header.is-scrolled .site-header__cta {
        min-height: 2.4rem;
        padding: .62rem .95rem;
        font-size: .63rem;
    }

    .site-header.is-scrolled .site-navigation__mega-menu {
        inset-block-start: calc(4.35rem + .75rem - 12px);
    }

    .site-header__mobile-cta {
        display: none !important;
    }
}

.site-navigation__backdrop[hidden] {
    display: none;
}

@media (max-width: 47.99rem) {
    :root {
        --container-gutter: clamp(1rem, 5vw, 1.5rem);
        --header-height: 4.5rem;
        --space-section: clamp(3.5rem, 10vw, 5rem);
    }

    /* Mobile headers always use the light-background logo, including Home. */
    .site-header--overlay .brand__logo-switcher .brand__image--dark {
        opacity: 0;
    }

    .site-header--overlay .brand__logo-switcher .brand__image--light {
        opacity: 1;
    }

    html {
        /* `clip` prevents sideways overflow without creating a scroll
         * container that can disable position: sticky on mobile browsers. */
        overflow-x: clip;
        scroll-padding-top: calc(var(--header-height) + 1rem);
    }

    body {
        overflow-x: clip;
        font-size: 1rem;
        line-height: 1.6;
    }

    main,
    main > *,
    .site-header,
    .site-footer,
    .container,
    .home-section > .container {
        min-width: 0;
        max-width: 100%;
    }

    img,
    svg,
    video,
    iframe,
    input,
    select,
    textarea {
        max-width: 100%;
    }

    .rich-content,
    .article-body,
    .site-footer__contact,
    .contact-information,
    .contact-information__item,
    .contact-information__item > div {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .container {
        width: min(100% - (var(--container-gutter) * 2), var(--container-max-width));
    }

    h1 {
        font-size: clamp(2.35rem, 11vw, 3.45rem);
        line-height: 1.04;
    }

    h2 {
        font-size: clamp(1.85rem, 8vw, 2.65rem);
        line-height: 1.08;
    }

    h3 {
        font-size: clamp(1.2rem, 5vw, 1.55rem);
    }

    .site-header__inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto auto;
        gap: .45rem;
        min-height: var(--header-height);
        padding-block: .7rem;
        transition: min-height var(--transition-base), padding-block var(--transition-base);
    }

    .site-header {
        position: sticky;
        z-index: 40;
        top: 0;
        inset-inline: 0;
        width: 100%;
        border-bottom-color: rgb(229 232 233 / .9);
        background: rgb(255 255 255 / .94);
        color: var(--color-text);
        -webkit-backdrop-filter: blur(.8rem);
        backdrop-filter: blur(.8rem);
        box-shadow: 0 .35rem 1.5rem rgb(23 35 51 / .06);
        transition: background-color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
        will-change: box-shadow;
    }

    .site-header--overlay {
        position: sticky;
        border-bottom-color: rgb(229 232 233 / .9);
        background: rgb(255 255 255 / .94);
        color: var(--color-text);
    }

    .site-header.is-scrolled {
        box-shadow: 0 .5rem 1.75rem rgb(23 35 51 / .12);
        background: rgb(255 255 255 / .98);
    }

    .site-header.is-scrolled .site-header__inner {
        min-height: 3.8rem;
        padding-block: .42rem;
    }

    .site-header .brand__image,
    .site-header .brand__placeholder {
        transition: height var(--transition-base), max-width var(--transition-base), transform var(--transition-fast);
    }

    .site-header.is-scrolled .brand__image,
    .site-header.is-scrolled .brand__placeholder {
        max-width: min(9rem, 100%);
        height: 1.95rem;
    }

    .site-header.is-scrolled .brand__logo-switcher {
        max-width: min(9rem, 100%);
        height: 1.95rem;
    }

    .site-header__menu-toggle {
        transition: width var(--transition-base), min-width var(--transition-base), height var(--transition-base), min-height var(--transition-base), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
    }

    .site-header.is-scrolled .site-header__menu-toggle {
        width: 2.45rem;
        min-width: 2.45rem;
        height: 2.45rem;
        min-height: 2.45rem;
    }

    .site-header--overlay {
        background: rgb(255 255 255 / .94);
    }

    .brand {
        min-width: 0;
    }

    .brand__image,
    .brand__placeholder {
        width: auto;
        max-width: min(10rem, 100%);
        height: 2.25rem;
    }

    .site-header__menu-toggle {
        display: inline-grid;
        grid-template-columns: 1fr;
        grid-template-rows: 1fr;
        width: 2.8rem;
        min-width: 2.8rem;
        height: 2.8rem;
        min-height: 2.8rem;
        margin-left: auto;
        place-items: center;
        border-color: currentColor;
        border-radius: .35rem;
        padding: 0;
        font-size: 0;
    }

    .site-header__mobile-cta {
        display: inline-flex;
        width: clamp(5.5rem, 23vw, 6.5rem);
        min-width: 5.5rem;
        min-height: 2.4rem;
        margin: 0;
        padding: .55rem .65rem;
        gap: .3rem;
        align-items: center;
        justify-content: center;
        justify-self: center;
        text-align: center;
        font-size: .58rem;
        letter-spacing: .05em;
        white-space: nowrap;
    }

    /* The visually hidden label was still creating a second grid row. */
    .site-header__menu-toggle > span {
        display: none;
    }

    .site-header__menu-toggle .site-header__menu-icon {
        display: block;
        width: 1.25rem;
        height: 1.25rem;
        margin: 0;
        place-self: center;
        background: none;
        transform: none;
    }

    .site-header__cta {
        display: none;
    }

    .site-navigation {
        position: fixed;
        z-index: 31;
        inset: 0 0 0 auto;
        display: flex;
        width: min(22rem, calc(100% - 1rem));
        height: 100dvh;
        max-height: 100dvh;
        flex-direction: column;
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 1.25rem clamp(1.15rem, 5vw, 1.65rem) calc(1.25rem + env(safe-area-inset-bottom));
        border-left: 1px solid var(--color-border);
        background: var(--color-surface);
        color: var(--color-text);
        box-shadow: -1rem 0 3rem rgb(23 35 51 / .18);
        order: initial;
        flex-basis: auto;
        pointer-events: none;
        visibility: hidden;
        transform: translateX(105%);
        transition: transform var(--transition-base), visibility 0s linear var(--transition-base);
    }

    .site-navigation.is-open {
        pointer-events: auto;
        visibility: visible;
        transform: translateX(0);
        transition-delay: 0s;
    }

    .site-navigation__backdrop {
        position: fixed;
        z-index: 30;
        inset: 0;
        display: block;
        background: rgb(12 22 34 / .58);
        opacity: 1;
        overscroll-behavior: none;
        touch-action: none;
    }

    .site-navigation__panel-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        min-height: 2.8rem;
        margin-bottom: 1rem;
        padding-bottom: .9rem;
        border-bottom: 1px solid var(--color-border);
    }

    .site-navigation__panel-label {
        color: var(--color-muted);
        font-size: .68rem;
        font-weight: 700;
        letter-spacing: .16em;
        text-transform: uppercase;
    }

    .site-navigation__close {
        display: grid;
        width: 2.8rem;
        height: 2.8rem;
        place-items: center;
        border: 1px solid var(--color-border);
        border-radius: .35rem;
        background: var(--color-surface);
        color: var(--color-navy-900);
    }

    .site-navigation__close-icon {
        width: 1.1rem;
        height: 1.1rem;
    }

    .site-navigation__list {
        display: grid;
        gap: .2rem;
        flex: 0 0 auto;
        min-width: 0;
        margin: 0;
    }

    .site-navigation__link,
    .site-navigation__summary {
        width: 100%;
        min-height: 3.1rem;
        justify-content: space-between;
        border-bottom: 1px solid rgb(229 232 233 / .78);
        color: var(--color-navy-900);
        font-size: .76rem;
        letter-spacing: .08em;
        padding-inline: .35rem;
    }

    .site-navigation__link::after,
    .site-navigation__summary--active::before {
        right: auto;
        bottom: 0;
        left: 0;
        width: 2.25rem;
    }

    .site-navigation__summary::after {
        margin-left: auto;
    }

    .site-navigation__dropdown {
        min-width: 0;
        padding: .25rem 0 .65rem .9rem;
    }

    .site-navigation__dropdown a {
        min-height: 2.5rem;
        padding: .65rem .75rem;
        border-left: 1px solid var(--color-border);
        font-size: .74rem;
    }

    .site-navigation__mega-menu-head {
        margin-bottom: 0;
        padding-bottom: 0;
        border-bottom: 0;
    }

    .site-navigation__mega-menu-column {
        padding: 0;
        border-left: 0;
    }

    .site-navigation__mega-menu-column h3 {
        margin: .75rem 0 .15rem;
        padding-inline: .75rem;
        color: var(--color-accent-dark);
        font-family: var(--font-display);
        font-size: .95rem;
        font-weight: 500;
        letter-spacing: .02em;
        text-transform: uppercase;
    }

    .site-navigation__mega-menu-column > ul {
        margin: 0;
        padding: .1rem 0 .35rem .9rem;
        list-style: none;
    }

    .site-navigation__mega-menu-featured-separator {
        display: none;
    }

    .site-navigation__mega-menu-featured {
        margin: .55rem .75rem .45rem;
        border: 1px solid rgb(164 128 43 / .34);
        background: var(--color-surface-warm);
    }

    .site-navigation__mega-menu-featured a,
    .site-navigation__mega-menu-featured a:hover,
    .site-navigation__mega-menu-featured a:focus-visible {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: start;
        gap: .65rem;
        padding: .8rem;
        border-bottom: 0;
        transform: none;
    }

    .site-navigation__mega-menu-featured-icon {
        display: grid;
        width: 2.15rem;
        height: 2.15rem;
        place-items: center;
        border: 1px solid var(--color-accent);
        border-radius: 50%;
        color: var(--color-accent-dark);
    }

    .site-navigation__mega-menu-featured-icon svg {
        width: 1.1rem;
        height: 1.1rem;
    }

    .site-navigation__mega-menu-featured-copy {
        display: grid;
        gap: .3rem;
        min-width: 0;
    }

    .site-navigation__mega-menu-featured-copy strong {
        color: var(--color-accent-dark);
        font-family: var(--font-display);
        font-size: .98rem;
        font-weight: 600;
        line-height: 1.2;
        overflow-wrap: anywhere;
    }

    .site-navigation__mega-menu-featured-copy span {
        color: var(--color-muted);
        font-size: .76rem;
        line-height: 1.4;
        overflow-wrap: anywhere;
    }

    .site-navigation__mega-menu-footer {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: .8rem;
        margin: .8rem .75rem 0;
        padding-top: 1rem;
        border-top: 1px solid var(--color-border);
    }

    .site-navigation__mega-menu-actions {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: .65rem;
    }

    .site-navigation__mega-menu-actions .button {
        width: 100%;
        min-height: 2.85rem;
        justify-content: center;
    }

    .site-navigation__mega-menu-overview {
        margin-left: 0;
    }

    .site-navigation__mega-menu-contact {
        margin-top: 0;
        padding-top: .8rem;
        border-top: 1px solid var(--color-border);
        justify-content: flex-start;
    }

    .site-navigation__mobile-cta {
        display: inline-flex;
        width: 100%;
        min-height: 3rem;
        margin-top: auto;
        flex: 0 0 auto;
        padding-inline: 1rem;
    }

    .site-footer {
        padding-block: 3.5rem 1.35rem;
    }

    .site-footer__grid {
        gap: 2rem;
    }

    .site-footer__brand p {
        max-width: 18rem;
        font-size: .78rem;
    }

    .site-footer__navigation {
        gap: 1.5rem;
    }

    .site-footer__links {
        gap: .35rem;
    }

    .site-footer__links a,
    .site-footer__contact {
        font-size: .8rem;
    }

    .site-footer__social {
        padding-top: .2rem;
    }

    .site-footer__social-link {
        width: 2.6rem;
        height: 2.6rem;
    }

    .site-footer__bottom {
        display: grid;
        gap: 1rem;
        margin-top: 2.5rem;
        font-size: .72rem;
    }

    .site-footer__bottom nav {
        gap: .9rem 1.25rem;
    }

    .button {
        min-height: 3rem;
        padding: .85rem 1rem;
        font-size: .68rem;
    }

    .site-header__mobile-cta {
        min-height: 2.4rem;
        padding: .55rem .65rem;
        gap: .3rem;
        font-size: .58rem;
        letter-spacing: .05em;
    }

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

    .section-heading {
        margin-bottom: 2rem;
    }

    .section-heading--split {
        gap: 1rem;
    }

    .section-heading--narrow {
        text-align: left;
    }

    .section-heading--narrow .eyebrow {
        text-align: left;
    }

    .hero {
        min-height: clamp(31rem, 82svh, 37rem);
    }

    .hero__content {
        width: min(100% - (var(--container-gutter) * 2), var(--container-max-width));
        padding-block: 7rem 4.5rem;
    }

    .hero h1 {
        max-width: 22rem;
        margin-bottom: 1rem;
        font-size: clamp(2.45rem, 12vw, 3.55rem);
    }

    .hero__description {
        max-width: 24rem;
        margin-bottom: 1.5rem;
        font-size: .98rem;
    }

    .hero__actions {
        width: min(100%, 20rem);
        flex-direction: column;
        align-items: stretch;
    }

    .hero__actions .button {
        width: 100%;
    }

    .contact-hero,
    .blog-hero,
    .resources-hero,
    .faq-hero,
    .about-hero,
    .services-hero,
    .service-hero {
        min-height: clamp(18rem, 58svh, 25rem);
    }

    .article-hero {
        min-height: clamp(22rem, 65svh, 29rem);
    }

    .contact-hero__inner,
    .blog-hero__inner,
    .resources-hero__inner,
    .faq-hero__inner,
    .about-hero__inner,
    .services-hero__inner,
    .service-hero__inner,
    .article-hero__inner {
        width: min(100% - (var(--container-gutter) * 2), var(--container-max-width));
        margin-inline: auto;
        padding-block: 6.5rem 3rem;
        text-align: left;
    }

    .contact-hero h1,
    .blog-hero h1,
    .resources-hero h1,
    .faq-hero h1,
    .about-hero h1,
    .services-hero h1,
    .service-hero h1,
    .article-hero h1 {
        max-width: 25rem;
        margin-bottom: 1rem;
        font-size: clamp(2.4rem, 11vw, 3.5rem);
        text-wrap: balance;
    }

    .contact-hero__description,
    .blog-hero__description,
    .resources-hero__description,
    .faq-hero__description,
    .about-hero__description,
    .services-hero__description,
    .service-hero__description,
    .article-hero__excerpt {
        max-width: 29rem;
        margin-inline: 0;
        font-size: .98rem;
    }

    .service-hero__inner {
        padding-block: 7rem 3rem;
    }

    .service-hero h1 {
        font-size: clamp(2.35rem, 10vw, 3.35rem);
    }

    .article-hero__meta {
        justify-content: flex-start;
        gap: .45rem .9rem;
        font-size: .74rem;
    }

    .article-layout {
        gap: 1rem;
        padding-block: 3.5rem;
    }

    .article-body {
        font-size: 1rem;
        line-height: 1.75;
    }

    .article-body h2 {
        margin-top: 2.75rem;
        padding-top: 1.75rem;
        font-size: 1.65rem;
    }

    .article-body h3 {
        font-size: 1.25rem;
    }

    .rich-content table {
        display: block;
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: normal;
    }

    .rich-content th,
    .rich-content td {
        min-width: 8rem;
    }

    .rich-content table[data-responsive-table="cards"] {
        display: block;
        overflow: visible;
        border: 0;
        white-space: normal;
    }

    .rich-content table[data-responsive-table="cards"] thead {
        display: none;
    }

    .rich-content table[data-responsive-table="cards"] tbody {
        display: grid;
        gap: .85rem;
    }

    .rich-content table[data-responsive-table="cards"] tr {
        display: grid;
        overflow: hidden;
        border: 1px solid var(--color-border);
        border-radius: var(--radius-md);
        background: var(--color-surface);
        box-shadow: 0 .45rem 1.2rem rgb(23 35 51 / .06);
    }

    .rich-content table[data-responsive-table="cards"] td,
    .rich-content table[data-responsive-table="cards"] th {
        display: grid;
        grid-template-columns: minmax(6rem, 38%) minmax(0, 1fr);
        gap: .7rem;
        min-width: 0;
        border: 0;
        border-bottom: 1px solid var(--color-border);
        padding: .7rem .8rem;
        overflow-wrap: anywhere;
    }

    .rich-content table[data-responsive-table="cards"] td:last-child,
    .rich-content table[data-responsive-table="cards"] th:last-child {
        border-bottom: 0;
    }

    .rich-content table[data-responsive-table="cards"] td::before,
    .rich-content table[data-responsive-table="cards"] th::before {
        color: var(--color-muted);
        font-size: .68rem;
        font-weight: 700;
        letter-spacing: .04em;
        line-height: 1.35;
        text-transform: uppercase;
        content: attr(data-label);
    }

    .article-sidebar {
        gap: 1rem;
    }

    /* On phones the article's navigation tools belong immediately below the
     * Hero. Keep the desktop sidebar intact and only reorder its contents in
     * the small-screen layout. */
    .article-main,
    .article-sidebar {
        display: contents;
    }

    .article-toc,
    .article-attachments,
    .article-body,
    .article-sidebar__card,
    .article-sidebar__back {
        width: 100%;
    }

    .article-toc {
        order: 1;
        margin: 0;
    }

    .article-attachments {
        order: 2;
    }

    .article-body {
        order: 3;
    }

    .article-sidebar__back {
        order: 4;
        margin-top: .25rem;
    }

    .article-sidebar__card {
        order: 5;
    }

    .article-sidebar__card,
    .article-toc {
        padding: 1.15rem;
    }

    .article-toc {
        margin: 0;
    }

    .article-attachments {
        margin-top: 0;
    }

    .article-pdf-card {
        padding: 1.25rem;
    }

    .article-pdf-card .button,
    .checklist-card .button,
    .decision-cta__actions .button {
        width: 100%;
    }

    .article-pdf-card .button,
    .checklist-card .button {
        justify-self: stretch;
    }

    .stats-strip,
    .trust-bar {
        padding-block: 1.25rem;
    }

    .stats-grid,
    .trust-bar__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .stat-card,
    .trust-bar__item {
        min-width: 0;
        padding: 1rem .75rem;
        border: 0;
    }

    .stat-card:nth-child(odd),
    .trust-bar__item:nth-child(odd) {
        border-right: 1px solid var(--color-border);
    }

    .stat-card:nth-child(n + 3),
    .trust-bar__item:nth-child(n + 3) {
        border-top: 1px solid var(--color-border);
    }

    .stat-card__value,
    .trust-bar__item strong {
        font-size: 1.25rem;
    }

    .stat-card__label,
    .trust-bar__item p {
        font-size: .72rem;
    }

    .expertise-grid,
    .service-overview__layout,
    .service-case-study__layout,
    .office-geo__layout,
    .about-story__grid,
    .contact-details__grid,
    .featured-resource__layout,
    .blog-featured__layout,
    .services-catalog__heading {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.75rem;
    }

    .service-case-study__media,
    .office-geo__media,
    .featured-resource__media,
    .blog-featured__media,
    .about-story__media {
        min-height: 0;
        aspect-ratio: 1.25 / 1;
    }

    .expertise-media {
        min-height: 0;
        height: auto;
        aspect-ratio: auto;
    }

    .expertise-media__content {
        min-height: 0;
        padding: 1.5rem;
    }

    .about-principle {
        min-height: 0;
        padding: 1.25rem;
    }

    .expertise-features {
        min-height: 0;
    }

    .feature-row {
        padding-block: 1rem;
    }

    .feature-row:first-child {
        padding-top: 1rem;
    }

    .testimonials-grid,
    .case-study-grid,
    .benefits-panel__grid,
    .eligibility-grid,
    .faq-popular__grid,
    .getting-started__grid,
    .after-submission__grid,
    .related-articles__grid,
    .contact-cards__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .testimonials-intro {
        grid-column: auto;
    }

    .process-grid {
        gap: 0;
    }

    .process-step {
        padding-block: 1.15rem;
    }

    .process-step__number {
        min-width: 2rem;
    }

    .service-grid,
    .services-catalog__grid,
    .blog-grid,
    .resources-download-grid,
    .service-features__grid,
    .service-steps__grid,
    .service-refusals__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: .85rem;
    }

    .service-card,
    .services-catalog-card,
    .resource-download-card,
    .service-resource-card {
        min-height: 0;
    }

    .service-resource-card--desktop {
        display: none;
    }

    .service-resource-card--mobile {
        display: flex;
    }

    .service-resource-mobile-end {
        display: block;
    }

    .service-overview__sidebar-media--desktop {
        display: none;
    }

    .service-overview__sidebar-media--mobile {
        display: block;
        margin-bottom: var(--space-5);
    }

    .service-overview__sidebar-media--mobile:last-child {
        margin-bottom: 0;
    }

    .service-card,
    .services-catalog-card {
        padding: 1.25rem;
    }

    .services-catalog-card__top {
        margin-bottom: 1.5rem;
    }

    .service-feature-card,
    .service-step,
    .service-refusal,
    .case-study-card__body,
    .benefit-card,
    .eligibility-card,
    .faq-popular__grid article,
    .getting-started__grid article,
    .after-submission__grid article,
    .related-articles__grid a {
        padding: 1.15rem;
    }

    .service-feature-card {
        min-height: 0;
    }

    .service-resource-card,
    .resource-download-card {
        padding-block: 1.5rem 1.25rem;
    }

    .service-consultation-card,
    .contact-form-card,
    .checklist-card {
        padding: 1.25rem;
    }

    .service-consultation-card {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 1.75rem;
    }

    .service-consultation-card__intro,
    .service-question-form__form {
        grid-column: 1;
        grid-row: auto;
    }

    .service-consultation-card__intro {
        text-align: left;
    }

    .faq-category-nav,
    .blog-filters {
        flex-wrap: wrap;
        align-items: center;
        margin-inline: 0;
        padding-inline: 0;
        overflow: visible;
        row-gap: .65rem;
    }

    .faq-category-nav__button,
    .blog-filter {
        flex: 0 1 auto;
        min-height: 2.8rem;
        max-width: 100%;
        white-space: normal;
    }

    .faq-content__intro {
        margin-bottom: 2rem;
        text-align: left;
    }

    .faq-item__trigger {
        min-height: 3.5rem;
        gap: .75rem;
        padding-block: 1rem;
        font-size: .96rem;
    }

    .faq-item__answer-inner {
        padding-right: 0;
    }

    .faq-help__inner {
        gap: 1.25rem;
        padding: 1.35rem;
    }

    .faq-help__action {
        width: 100%;
        justify-self: stretch;
    }

    .faq-cta__inner {
        grid-template-columns: minmax(0, 1fr);
    }

    .faq-cta__inner .button {
        width: 100%;
        grid-column: auto;
        justify-self: stretch;
    }

    .blog-toolbar {
        gap: 1rem;
    }

    .blog-search {
        width: 100%;
    }

    .blog-search input,
    .blog-search .button {
        min-height: 3rem;
        height: 3rem;
    }

    .blog-search-context {
        align-items: flex-start;
        min-height: 3rem;
        padding: .75rem 0;
        border-block: 1px solid var(--color-border);
    }

    .blog-search-clear {
        margin-left: 0;
    }

    .blog-card__body {
        padding: 1.15rem;
    }

    .blog-card h2 {
        font-size: 1.15rem;
    }

    .blog-pagination {
        gap: .8rem;
        justify-content: space-between;
        margin-top: 2rem;
    }

    .blog-pagination__pages {
        gap: .15rem;
    }

    .blog-pagination__pages a,
    .blog-pagination__current {
        width: 2.35rem;
        height: 2.35rem;
    }

    .contact-details {
        padding-block: 3.25rem 2.25rem;
    }

    .contact-details__grid {
        gap: 2rem;
    }

    .contact-location__map {
        aspect-ratio: 1.35 / 1;
    }

    .contact-information__item {
        min-width: 0;
        gap: .9rem;
        padding-block: 1rem;
    }

    .contact-information__icon {
        width: 2.5rem;
        height: 2.5rem;
    }

    .contact-social__link {
        width: 2.8rem;
        height: 2.8rem;
    }

    .contact-form__fields {
        gap: 1rem;
    }

    .contact-form__field input,
    .contact-form__field select,
    .contact-form__field textarea {
        min-height: 3rem;
        padding: .8rem .85rem;
        font-size: 1rem;
    }

    .contact-form__field textarea {
        min-height: 9rem;
    }

    .contact-form__actions .button,
    .lead-form__form .contact-form__actions .button,
    .service-consultation-card__actions .button,
    .lead-thank-you__actions > * {
        width: 100%;
    }

    .lead-form__tabs {
        position: sticky;
        top: 0;
        z-index: 2;
    }

    .lead-form__tab {
        min-height: 3rem;
        font-size: .76rem;
    }

    .lead-form__time-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lead-form__time-option {
        min-height: 3rem;
        padding-inline: .45rem;
        font-size: .78rem;
    }

    .lead-form__time-option:last-child {
        grid-column: 1 / -1;
    }

    .legal-hero h1 {
        font-size: clamp(2.35rem, 11vw, 3.35rem);
    }

    .legal-page {
        padding-block: 3.5rem;
    }

    .legal-page__grid {
        gap: 1.5rem;
    }

    .legal-page__aside {
        position: static;
        order: -1;
    }

    .legal-page__aside nav {
        display: flex;
        flex-wrap: wrap;
        gap: .65rem;
        overflow: visible;
        padding-bottom: .25rem;
    }

    .legal-page__aside a {
        flex: 0 1 auto;
        max-width: 100%;
    }

    .error-page {
        min-height: 70svh;
        padding-block: 4rem;
    }

    .error-page__code {
        font-size: clamp(5.5rem, 28vw, 9rem);
    }

    .error-page__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .error-page__actions > * {
        width: 100%;
    }

    .consultation-modal {
        align-items: end;
        padding: 0;
        padding-bottom: env(safe-area-inset-bottom);
    }

    .consultation-modal__dialog {
        width: 100%;
        max-height: min(94svh, 48rem);
        padding: 1.15rem;
        border-right: 0;
        border-bottom: 0;
        border-left: 0;
        border-radius: 1rem 1rem 0 0;
    }

    .consultation-modal__header {
        padding-right: 2.75rem;
        margin-bottom: 1.25rem;
    }

    .consultation-modal__header h2 {
        font-size: 1.65rem;
    }

    .consultation-modal__close {
        top: .75rem;
        right: .75rem;
        width: 2.75rem;
        height: 2.75rem;
    }

    .consultation-modal .lead-form__tabs {
        top: -1.15rem;
    }

    .motion-card:hover,
    .motion-section:hover,
    .button:hover,
    .contact-card:hover,
    .service-card:hover,
    .blog-card:hover,
    .resource-download-card:hover {
        transform: none;
        box-shadow: inherit;
    }
}

@media (min-width: 30rem) and (max-width: 47.99rem) {
    .article-layout {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
    }

    .article-body,
    .article-sidebar__back,
    .article-sidebar__card {
        grid-column: 1 / -1;
    }
}

/* Keep the navigation readable when JavaScript is unavailable. */
@media (max-width: 47.99rem) {
    html:not(.js) .site-navigation {
        position: static;
        display: block;
        width: auto;
        height: auto;
        max-height: none;
        overflow: visible;
        border: 0;
        box-shadow: none;
        pointer-events: auto;
        visibility: visible;
        transform: none;
        transition: none;
    }

    html:not(.js) .site-navigation__mobile-cta {
        display: none;
    }
}

@media (max-width: 29.99rem) {
    :root {
        --container-gutter: 1rem;
    }

    .brand__image,
    .brand__placeholder {
        max-width: 8.5rem;
        height: 2rem;
    }

    .brand__logo-switcher {
        max-width: 8.5rem;
        height: 2rem;
    }

    .hero {
        min-height: 31rem;
    }

    .hero h1,
    .contact-hero h1,
    .blog-hero h1,
    .resources-hero h1,
    .faq-hero h1,
    .about-hero h1,
    .services-hero h1,
    .service-hero h1,
    .article-hero h1 {
        font-size: 2.25rem;
    }

    .lead-form__time-options {
        grid-template-columns: minmax(0, 1fr);
    }

    .lead-form__time-option:last-child {
        grid-column: auto;
    }

    .blog-search {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .blog-search .button {
        width: 100%;
    }

    .site-footer__navigation {
        gap: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-header,
    .site-header__inner,
    .site-header .brand__image,
    .site-header .brand__placeholder,
    .brand__logo-switcher .brand__image,
    .site-header__menu-toggle,
    .site-header .site-navigation__link,
    .site-header .site-navigation__summary,
    .site-header__cta {
        transition: none;
    }

    .site-navigation,
    .site-navigation__backdrop {
        transition: none;
    }
}

@media (min-width: 48rem) {
    .testimonials-grid { grid-template-columns: minmax(14rem, .85fr) minmax(0, 2.15fr); }
    .testimonials-intro { grid-column: auto; }
    .testimonials-carousel { min-width: 0; }
    .testimonials-carousel .home-carousel__viewport,
    .case-studies-carousel .home-carousel__viewport {
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scrollbar-width: thin;
    }

    .testimonials-carousel .home-carousel__track,
    .case-studies-carousel .home-carousel__track {
        display: flex;
        width: 100%;
        min-width: 100%;
        overflow: visible;
    }

    .testimonials-carousel .home-carousel__slide {
        flex: 0 0 calc((100% - (var(--space-4) * 2)) / 3);
    }

    .case-studies-carousel .home-carousel__slide {
        flex: 0 0 calc((100% - var(--space-4)) / 2);
    }
}

@media (max-width: 47.99rem) {
    .stats-strip { padding-block: .75rem; }
    .stat-card { min-height: 5.25rem; }

    /* Home carousels use one full-width slide and scroll on the viewport. */
    .home-carousel__viewport {
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scrollbar-width: thin;
    }

    .home-carousel__track {
        display: flex;
        width: 100%;
        min-width: 100%;
        flex-wrap: nowrap;
        gap: 0;
        overflow: visible;
        padding-inline: 0;
    }

    .home-carousel__slide {
        width: 100%;
        min-width: 100%;
        max-width: 100%;
        flex: 0 0 100%;
    }
}

@media (min-width: 48rem) {
    .stats-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .stat-card { min-height: 5.75rem; padding-block: 1.25rem; }
    .stat-card:last-child { padding-right: 0; border-right: 0; }
}

/* Testimonials remain scrollable for the arrows/dots, but the native bar is
 * intentionally hidden so it does not become a second visual control. */
.testimonials-carousel .home-carousel__viewport,
.testimonials-carousel .home-carousel__track {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.testimonials-carousel .home-carousel__viewport::-webkit-scrollbar,
.testimonials-carousel .home-carousel__track::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}
