@layer pv2-reset, pv2-tokens, pv2-base, pv2-layout, pv2-components, pv2-utilities;

@layer pv2-tokens {
    .pv2-site {
        --pv2-white: #ffffff;
        --pv2-off-white: #f7f8fa;
        --pv2-surface: #f1f4f8;
        --pv2-navy: #0b1f33;
        --pv2-cobalt: #145ce6;
        --pv2-ink: #101828;
        --pv2-body: #344054;
        --pv2-muted: #667085;
        --pv2-border: #d8dee8;
        --pv2-focus: #145ce6;
        --pv2-container: 1240px;
        --pv2-reading: 720px;
        --pv2-radius: 6px;
        --pv2-radius-media: 10px;
        --pv2-shadow-elevated: 0 12px 32px rgb(11 31 51 / 12%);
        --pv2-space-1: 4px;
        --pv2-space-2: 8px;
        --pv2-space-3: 12px;
        --pv2-space-4: 16px;
        --pv2-space-6: 24px;
        --pv2-space-8: 32px;
        --pv2-space-12: 48px;
        --pv2-space-16: 64px;
        --pv2-space-20: 80px;
        --pv2-space-24: 96px;
        --pv2-space-28: 112px;
    }
}

@layer pv2-reset {
    .pv2-site,
    .pv2-site * {
        box-sizing: border-box;
    }

    .pv2-site {
        margin: 0;
    }

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

    .pv2-site button,
    .pv2-site input,
    .pv2-site select {
        font: inherit;
    }
}

@layer pv2-base {
    .pv2-site {
        min-width: 320px;
        overflow-x: clip;
        background: var(--pv2-white);
        color: var(--pv2-body);
        font-family: "Segoe UI", Arial, sans-serif;
        font-size: 17px;
        line-height: 1.65;
        text-rendering: optimizeLegibility;
    }

    .pv2-site a {
        color: inherit;
    }

    .pv2-site :where(a, button, input, select):focus-visible {
        outline: 3px solid var(--pv2-focus);
        outline-offset: 3px;
    }

    .pv2-site h1,
    .pv2-site h2,
    .pv2-site h3,
    .pv2-site p {
        text-wrap: pretty;
    }

    .pv2-site h1,
    .pv2-site h2,
    .pv2-site h3 {
        color: var(--pv2-navy);
        font-weight: 750;
    }
}

@layer pv2-layout {
    .pv2-container {
        width: min(calc(100% - 48px), var(--pv2-container));
        margin-inline: auto;
    }

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

@layer pv2-components {
    .pv2-skip-link {
        position: fixed;
        z-index: 200;
        inset: 12px auto auto 16px;
        min-height: 44px;
        padding: 10px 16px;
        transform: translateY(-160%);
        border-radius: var(--pv2-radius);
        background: var(--pv2-cobalt);
        color: var(--pv2-white);
        font-weight: 700;
        text-decoration: none;
    }

    .pv2-skip-link:focus {
        transform: none;
    }

    .pv2-header {
        position: sticky;
        z-index: 100;
        top: 0;
        border-bottom: 1px solid var(--pv2-border);
        background: rgb(255 255 255 / 97%);
        box-shadow: 0 4px 18px rgb(11 31 51 / 4%);
        backdrop-filter: blur(12px);
    }

    .pv2-header__inner {
        min-height: 76px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--pv2-space-6);
    }

    .pv2-brand {
        min-width: 200px;
        min-height: 48px;
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        text-decoration: none;
    }

    .pv2-brand__name {
        color: var(--pv2-navy);
        font-size: 18px;
        font-weight: 780;
        line-height: 1.2;
    }

    .pv2-brand__subtitle {
        margin-top: 3px;
        color: var(--pv2-muted);
        font-size: 11px;
        line-height: 1.25;
    }

    .pv2-nav {
        display: flex;
        align-items: center;
        gap: 2px;
    }

    .pv2-nav__link {
        position: relative;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        padding-inline: 10px;
        border-radius: var(--pv2-radius);
        color: var(--pv2-body);
        font-size: 14px;
        font-weight: 650;
        text-decoration: none;
    }

    .pv2-nav__link:hover {
        color: var(--pv2-cobalt);
    }

    .pv2-nav__link[aria-current="page"] {
        color: var(--pv2-cobalt);
    }

    .pv2-nav__link[aria-current="page"]::after {
        position: absolute;
        right: 10px;
        bottom: 5px;
        left: 10px;
        height: 2px;
        background: var(--pv2-cobalt);
        content: "";
    }

    .pv2-button {
        min-height: 48px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 11px 18px;
        border: 1px solid transparent;
        border-radius: var(--pv2-radius);
        font-size: 15px;
        font-weight: 750;
        line-height: 1.2;
        text-align: center;
        text-decoration: none;
    }

    .pv2-button--primary {
        background: var(--pv2-cobalt);
        color: var(--pv2-white);
    }

    .pv2-button--primary:hover {
        background: #0f4fc9;
    }

    .pv2-nav__cta {
        margin-left: var(--pv2-space-2);
    }

    .pv2-menu-button,
    .pv2-drawer__close {
        min-width: 48px;
        min-height: 48px;
        align-items: center;
        justify-content: center;
        border: 1px solid var(--pv2-border);
        border-radius: var(--pv2-radius);
        background: var(--pv2-white);
        color: var(--pv2-navy);
        cursor: pointer;
    }

    .pv2-menu-button {
        display: none;
        gap: 10px;
        padding-inline: 14px;
        font-weight: 700;
    }

    .pv2-menu-button__icon,
    .pv2-menu-button__icon::before,
    .pv2-menu-button__icon::after {
        width: 18px;
        height: 2px;
        display: block;
        background: currentColor;
        content: "";
    }

    .pv2-menu-button__icon::before {
        transform: translateY(-6px);
    }

    .pv2-menu-button__icon::after {
        transform: translateY(4px);
    }

    .pv2-drawer[hidden] {
        display: none;
    }

    .pv2-drawer {
        position: fixed;
        z-index: 150;
        inset: 0;
        display: flex;
        justify-content: flex-end;
        background: rgb(11 31 51 / 48%);
    }

    .pv2-drawer__panel {
        width: min(100%, 420px);
        height: 100%;
        overflow-y: auto;
        padding: 20px;
        background: var(--pv2-white);
        box-shadow: var(--pv2-shadow-elevated);
    }

    .pv2-drawer__head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        padding-bottom: 16px;
        border-bottom: 1px solid var(--pv2-border);
    }

    .pv2-drawer__identity {
        color: var(--pv2-navy);
        font-weight: 780;
    }

    .pv2-drawer__close {
        display: inline-flex;
        font-size: 29px;
        line-height: 1;
    }

    .pv2-drawer__nav {
        margin-top: 12px;
    }

    .pv2-drawer__nav a {
        min-height: 52px;
        display: flex;
        align-items: center;
        border-bottom: 1px solid var(--pv2-border);
        color: var(--pv2-navy);
        font-weight: 690;
        text-decoration: none;
    }

    .pv2-drawer__nav a[aria-current="page"] {
        color: var(--pv2-cobalt);
    }

    .pv2-drawer__cta {
        width: 100%;
        margin-top: 24px;
    }

    .pv2-drawer__contact {
        display: grid;
        gap: 8px;
        margin-top: 20px;
        color: var(--pv2-muted);
        font-size: 14px;
    }

    .pv2-drawer__contact a {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }

    .pv2-menu-open {
        overflow: hidden;
    }

    .pv2-text-link {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        color: var(--pv2-navy);
        font-weight: 750;
        text-underline-offset: 5px;
    }

    .pv2-footer {
        padding-top: 64px;
        background: var(--pv2-navy);
        color: #cbd5e1;
    }

    .pv2-footer__grid {
        display: grid;
        grid-template-columns: minmax(0, 1.5fr) minmax(180px, .7fr) minmax(230px, .8fr);
        gap: 72px;
    }

    .pv2-footer__name {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        color: var(--pv2-white);
        font-size: 21px;
        font-weight: 780;
        text-decoration: none;
    }

    .pv2-footer__subtitle {
        margin: 8px 0 0;
        color: #e2e8f0;
    }

    .pv2-footer__text {
        max-width: 560px;
        margin: 20px 0 0;
    }

    .pv2-footer__links,
    .pv2-footer__contact {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }

    .pv2-footer__links a,
    .pv2-footer__contact a {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }

    .pv2-footer__heading {
        margin-bottom: 8px;
        color: var(--pv2-white);
        font-size: 13px;
        font-weight: 800;
        letter-spacing: .1em;
        text-transform: uppercase;
    }

    .pv2-footer__cta {
        margin-top: 16px;
        color: var(--pv2-white);
    }

    .pv2-footer__bottom {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
        flex-wrap: wrap;
        margin-top: 48px;
        padding-block: 24px;
        border-top: 1px solid rgb(216 222 232 / 24%);
        font-size: 14px;
    }

    .pv2-footer__credit {
        min-width: 44px;
        min-height: 44px;
        max-width: 100%;
        display: inline-flex;
        align-items: center;
        gap: 12px;
        padding: 4px 0;
        color: #e2e8f0;
        text-decoration: none;
    }

    .pv2-footer__credit-copy {
        display: inline-flex;
        flex-direction: column;
        gap: 2px;
        line-height: 1.25;
        white-space: nowrap;
    }

    .pv2-footer__credit-label {
        color: rgb(226 232 240 / 72%);
        font-size: 12px;
        font-weight: 500;
    }

    .pv2-footer__credit-brand {
        color: var(--pv2-white);
        font-size: 14px;
        font-weight: 750;
    }

    .pv2-footer__credit-logo {
        width: 180px;
        height: auto;
        flex: 0 1 180px;
        object-fit: contain;
        border-radius: 4px;
    }

    .pv2-footer__credit:hover .pv2-footer__credit-brand {
        color: #bfdbfe;
    }
}

@media (max-width: 1179px) {
    .pv2-brand__subtitle {
        display: none;
    }
}

@media (max-width: 1023px) {
    .pv2-nav {
        display: none;
    }

    .pv2-menu-button {
        display: inline-flex;
    }

    .pv2-footer__grid {
        grid-template-columns: 1.2fr .8fr;
        gap: 48px;
    }

    .pv2-footer__contact {
        grid-column: 1 / -1;
    }
}

@media (max-width: 639px) {
    .pv2-site {
        font-size: 16px;
    }

    .pv2-container {
        width: calc(100% - 40px);
    }

    .pv2-header__inner {
        min-height: 68px;
    }

    .pv2-brand {
        min-width: 0;
    }

    .pv2-brand__name {
        font-size: 16px;
    }

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

    .pv2-footer {
        padding-top: 52px;
    }

    .pv2-footer__grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .pv2-footer__contact {
        grid-column: auto;
    }

    .pv2-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .pv2-footer__credit {
        width: 100%;
    }

    .pv2-footer__credit-logo {
        width: 160px;
        flex-basis: 160px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pv2-site *,
    .pv2-site *::before,
    .pv2-site *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
