html {
    scroll-behavior: smooth;
    scrollbar-gutter: stable;
}

body {
    overflow-x: clip;
}

.site-header {
    isolation: isolate;
    backdrop-filter: saturate(1.05);
    transform: translateZ(0);
}

.site-header .header-topbar-inner,
.site-header .brand-shell,
.site-header .header-shell {
    width: min(1360px, 94vw);
    max-width: none;
    margin-right: auto;
    margin-left: auto;
}

.site-header .header-brand-band,
.site-header .header-nav-band {
    transition: background 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.site-header .header-nav-band {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.site-header .logo-link,
.site-header .logo {
    flex: 0 0 auto;
    transform: translateZ(0);
}

.site-header .logo-link {
    transition: transform 220ms cubic-bezier(0.2, 0.74, 0.24, 1), opacity 220ms ease;
}

.site-header .logo-link:hover,
.site-header .logo-link:focus-visible {
    transform: translateY(-1px);
}

.site-header .site-nav {
    align-items: center;
}

.site-header .site-nav > a,
.site-header .nav-trigger {
    transition:
        color 200ms ease,
        background 200ms ease,
        box-shadow 200ms ease,
        transform 200ms cubic-bezier(0.2, 0.74, 0.24, 1);
}

.site-header .site-nav > a:hover,
.site-header .site-nav > a:focus-visible,
.site-header .nav-trigger:hover,
.site-header .nav-trigger:focus-visible,
.site-header .nav-item-has-panel.is-open > .nav-trigger {
    transform: translateY(-1px);
    box-shadow: inset 0 -3px 0 rgba(19, 168, 230, 0.95);
}

.site-header .nav-chevron {
    transition: transform 220ms cubic-bezier(0.2, 0.74, 0.24, 1);
}

.site-header .nav-item-has-panel:hover .nav-chevron,
.site-header .nav-item-has-panel:focus-within .nav-chevron,
.site-header .nav-item-has-panel.is-open .nav-chevron {
    transform: rotate(225deg) translateY(-1px);
}

.site-header .mega-menu {
    display: block;
    left: 50%;
    width: min(580px, calc(100vw - 32px));
    max-height: min(68vh, 620px);
    overflow: auto;
    border-top-width: 2px;
    border-radius: 0 0 8px 8px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 255, 0.98));
    box-shadow: 0 24px 58px rgba(10, 25, 41, 0.18);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate3d(-50%, 14px, 0) scale(0.985);
    transform-origin: top center;
    transition:
        opacity 240ms ease,
        visibility 240ms ease,
        transform 240ms cubic-bezier(0.2, 0.74, 0.24, 1);
    will-change: transform, opacity;
}

.site-header .nav-quality-menu .mega-menu {
    width: min(680px, calc(100vw - 32px));
}

.site-header .nav-item-has-panel:hover .mega-menu,
.site-header .nav-item-has-panel:focus-within .mega-menu,
.site-header .nav-item-has-panel.is-open .mega-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate3d(-50%, 0, 0) scale(1);
}

.site-header .mega-menu-cards {
    gap: 10px;
}

.site-header .mega-card {
    position: relative;
    overflow: hidden;
    min-height: 52px;
    border-radius: 8px;
    background: linear-gradient(180deg, #fbfdff 0%, #ffffff 100%);
    box-shadow: 0 1px 0 rgba(12, 28, 44, 0.04);
    transition:
        color 200ms ease,
        border-color 200ms ease,
        background 200ms ease,
        box-shadow 200ms ease,
        transform 200ms cubic-bezier(0.2, 0.74, 0.24, 1);
}

.site-header .mega-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: #13a8e6;
    opacity: 0;
    transform: scaleY(0.35);
    transform-origin: center;
    transition: opacity 200ms ease, transform 200ms ease;
}

.site-header .mega-card:nth-child(3n + 2)::before {
    background: #18b89b;
}

.site-header .mega-card:nth-child(3n)::before {
    background: #f1b84b;
}

.site-header .mega-card:hover,
.site-header .mega-card:focus-visible {
    color: #0a6fa4;
    border-color: rgba(19, 168, 230, 0.38);
    background: #ffffff;
    box-shadow: 0 14px 28px rgba(10, 25, 41, 0.1);
    transform: translateY(-2px);
}

.site-header .mega-card:hover::before,
.site-header .mega-card:focus-visible::before {
    opacity: 1;
    transform: scaleY(1);
}

.doc-hero {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(135deg, #ffffff 0%, #edf8ff 56%, #f8fbff 100%);
}

.doc-hero::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(19, 168, 230, 0.45), transparent);
}

.panel,
.notice,
.step,
.form-box,
.table-wrap,
.review-page-card,
.public-review-card,
.format-card,
.overview-simple-card,
.training-gallery,
.about-box,
.contact-banner {
    transition:
        border-color 220ms ease,
        box-shadow 220ms ease,
        transform 220ms cubic-bezier(0.2, 0.74, 0.24, 1);
}

.panel:hover,
.notice:hover,
.step:hover,
.form-box:hover,
.review-page-card:hover,
.public-review-card:hover,
.format-card:hover,
.overview-simple-card:hover {
    border-color: rgba(19, 168, 230, 0.3);
    box-shadow: 0 18px 36px rgba(10, 25, 41, 0.09);
    transform: translateY(-2px);
}

.btn,
.btn-secondary,
.header-cta,
.side-card-btn,
.contact-link {
    transition:
        color 190ms ease,
        background 190ms ease,
        border-color 190ms ease,
        box-shadow 190ms ease,
        transform 190ms cubic-bezier(0.2, 0.74, 0.24, 1);
}

.btn:hover,
.btn-secondary:hover,
.header-cta:hover,
.side-card-btn:hover,
.contact-link:hover {
    transform: translateY(-2px);
}

.table-wrap table tr {
    transition: background 180ms ease;
}

.table-wrap table tr:hover {
    background: rgba(19, 168, 230, 0.035);
}

.site-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition:
        opacity 520ms ease,
        transform 520ms cubic-bezier(0.2, 0.74, 0.24, 1);
    transition-delay: var(--site-reveal-delay, 0ms);
    will-change: opacity, transform;
}

.site-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

body.site-polish-ready main {
    animation: sitePageEnter 360ms cubic-bezier(0.2, 0.74, 0.24, 1) both;
}

body.site-is-leaving main,
body.site-is-leaving .site-header {
    opacity: 0;
    transform: translateY(6px);
    transition:
        opacity 160ms ease,
        transform 160ms cubic-bezier(0.2, 0.74, 0.24, 1);
}

@keyframes sitePageEnter {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 980px) {
    .site-header .header-topbar-inner,
    .site-header .brand-shell,
    .site-header .header-shell {
        width: min(100%, calc(100vw - 24px));
    }

    .site-header .site-nav > a,
    .site-header .nav-trigger {
        padding-right: 13px;
        padding-left: 13px;
    }

    .site-header .mega-menu {
        left: 0;
        width: min(92vw, 520px);
        transform: translate3d(0, 12px, 0) scale(0.985);
    }

    .site-header .nav-item-has-panel:hover .mega-menu,
    .site-header .nav-item-has-panel:focus-within .mega-menu,
    .site-header .nav-item-has-panel.is-open .mega-menu {
        transform: translate3d(0, 0, 0) scale(1);
    }

    .site-header .nav-quality-menu .mega-menu {
        right: 0;
        left: auto;
    }
}

@media (max-width: 820px) {
    .site-header .header-shell {
        overflow: visible;
    }

    .site-header .nav-panel {
        overflow: visible;
    }

    .site-header .site-nav {
        gap: 4px;
    }

    .site-header .site-nav > a,
    .site-header .nav-trigger {
        min-height: 44px;
        border-radius: 8px;
    }
}

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

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

    .site-reveal {
        opacity: 1;
        transform: none;
    }
}
