body {
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.7;
    text-rendering: optimizeLegibility;
}

.font-headline {
    font-family: 'Poppins', sans-serif;
}

.page-about .font-headline,
.page-contact .font-headline,
.page-faq .font-headline {
    font-family: 'Montserrat', sans-serif;
}

main p,
main li {
    line-height: 1.7;
}

.type-display-xl {
    letter-spacing: 0;
    font-size: 40px;
    font-weight: 700;
    line-height: 1.1;
}

.type-display-l {
    letter-spacing: 0;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.1;
}

.type-display-m {
    letter-spacing: 0;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.15;
}

.type-h1 {
    letter-spacing: 0;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.2;
}

.type-h2 {
    letter-spacing: 0;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.25;
}

.type-h3 {
    letter-spacing: 0;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.3;
}

.type-h4,
.type-h5 {
    letter-spacing: 0;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
}

.type-body-lg {
    letter-spacing: 0;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.7;
}

.type-body {
    letter-spacing: 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.7;
}

.type-body-sm {
    letter-spacing: 0;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.6;
}

.type-caption {
    letter-spacing: 0;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.5;
}

.type-overline {
    letter-spacing: .08em;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    text-transform: uppercase;
}

.text-\[8px\]:not(i),
.text-\[9px\]:not(i) {
    font-size: 11px !important;
    line-height: 1.5 !important;
}

.text-\[10px\]:not(i),
.text-\[11px\]:not(i) {
    font-size: 12px !important;
    line-height: 1.5 !important;
}

main :where(p, li).text-\[10px\],
main :where(p, li).text-\[11px\],
main :where(p, li).text-xs,
main :where(a, button, input, textarea, select, label, summary).text-xs {
    font-size: 15px !important;
    line-height: 1.6 !important;
}

main :where(p, li).text-sm {
    font-size: 16px !important;
    line-height: 1.7 !important;
}

.text-xs {
    font-size: 12px !important;
    line-height: 1.5 !important;
}

.text-sm {
    font-size: 15px !important;
    line-height: 1.6 !important;
}

.text-base {
    font-size: 16px !important;
    line-height: 1.7 !important;
}

.text-lg {
    font-size: 18px !important;
    line-height: 1.4 !important;
}

.text-xl {
    font-size: 20px !important;
    line-height: 1.35 !important;
}

.text-2xl {
    font-size: 26px !important;
    line-height: 1.25 !important;
}

.text-3xl {
    font-size: 30px !important;
    line-height: 1.2 !important;
}

.text-4xl {
    font-size: 36px !important;
    line-height: 1.1 !important;
}

.text-5xl {
    font-size: 40px !important;
    line-height: 1.1 !important;
}

.text-6xl,
.text-7xl {
    font-size: 48px !important;
    line-height: 1.1 !important;
}

@media (min-width: 640px) {
    .type-display-xl {
        font-size: 48px;
    }

    .type-h1 {
        font-size: 36px;
    }

    .type-h2 {
        font-size: 30px;
    }

    .type-h3 {
        font-size: 24px;
    }

    .type-h4,
    .type-h5 {
        font-size: 20px;
    }

    .sm\:text-\[10px\]:not(i),
    .sm\:text-\[11px\]:not(i) {
        font-size: 12px !important;
        line-height: 1.5 !important;
    }

    .sm\:text-xs {
        font-size: 12px !important;
        line-height: 1.5 !important;
    }

    .sm\:text-sm {
        font-size: 15px !important;
        line-height: 1.6 !important;
    }

    .sm\:text-base {
        font-size: 16px !important;
        line-height: 1.7 !important;
    }

    .sm\:text-lg {
        font-size: 18px !important;
        line-height: 1.4 !important;
    }

    .sm\:text-xl {
        font-size: 20px !important;
        line-height: 1.35 !important;
    }

    .sm\:text-2xl {
        font-size: 26px !important;
        line-height: 1.25 !important;
    }

    .sm\:text-3xl {
        font-size: 30px !important;
        line-height: 1.2 !important;
    }

    .sm\:text-4xl {
        font-size: 36px !important;
        line-height: 1.2 !important;
    }

    .sm\:text-5xl {
        font-size: 48px !important;
        line-height: 1.1 !important;
    }

    .sm\:text-6xl,
    .sm\:text-7xl {
        font-size: 56px !important;
        line-height: 1.1 !important;
    }
}

@media (min-width: 768px) {
    .md\:text-xs {
        font-size: 12px !important;
        line-height: 1.5 !important;
    }

    .md\:text-sm {
        font-size: 15px !important;
        line-height: 1.6 !important;
    }

    .md\:text-base {
        font-size: 16px !important;
        line-height: 1.7 !important;
    }

    .md\:text-lg {
        font-size: 18px !important;
        line-height: 1.4 !important;
    }

    .md\:text-xl {
        font-size: 20px !important;
        line-height: 1.35 !important;
    }

    .md\:text-2xl {
        font-size: 30px !important;
        line-height: 1.25 !important;
    }

    .md\:text-3xl {
        font-size: 36px !important;
        line-height: 1.2 !important;
    }

    .md\:text-4xl {
        font-size: 40px !important;
        line-height: 1.15 !important;
    }

    .md\:text-5xl {
        font-size: 48px !important;
        line-height: 1.1 !important;
    }

    .md\:text-6xl {
        font-size: 56px !important;
        line-height: 1.1 !important;
    }

    .md\:text-7xl {
        font-size: 56px !important;
        line-height: 1.1 !important;
    }
}

@media (min-width: 1024px) {
    .type-display-xl {
        font-size: 64px;
    }

    .lg\:text-xs {
        font-size: 12px !important;
        line-height: 1.5 !important;
    }

    .lg\:text-sm {
        font-size: 15px !important;
        line-height: 1.6 !important;
    }

    .lg\:text-base {
        font-size: 16px !important;
        line-height: 1.7 !important;
    }

    .lg\:text-lg {
        font-size: 18px !important;
        line-height: 1.4 !important;
    }

    .lg\:text-xl {
        font-size: 20px !important;
        line-height: 1.35 !important;
    }

    .lg\:text-2xl {
        font-size: 30px !important;
        line-height: 1.25 !important;
    }

    .lg\:text-3xl {
        font-size: 36px !important;
        line-height: 1.2 !important;
    }

    .lg\:text-4xl {
        font-size: 40px !important;
        line-height: 1.15 !important;
    }

    .lg\:text-5xl {
        font-size: 48px !important;
        line-height: 1.1 !important;
    }

    .lg\:text-6xl {
        font-size: 56px !important;
        line-height: 1.1 !important;
    }

    .lg\:text-7xl {
        font-size: 64px !important;
        line-height: 1.1 !important;
    }
}

@media (min-width: 1280px) {
    .type-display-xl {
        font-size: 72px;
    }

    .xl\:text-xs {
        font-size: 12px !important;
        line-height: 1.5 !important;
    }

    .xl\:text-sm {
        font-size: 15px !important;
        line-height: 1.6 !important;
    }

    .xl\:text-base {
        font-size: 16px !important;
        line-height: 1.7 !important;
    }
}

.leading-none {
    line-height: 1 !important;
}

.leading-tight {
    line-height: 1.25 !important;
}

.leading-snug {
    line-height: 1.375 !important;
}

.leading-normal {
    line-height: 1.5 !important;
}

.leading-relaxed {
    line-height: 1.625 !important;
}

.leading-loose {
    line-height: 2 !important;
}

.hide-scrollbar::-webkit-scrollbar {
    display: none !important;
}

.hide-scrollbar {
    -ms-overflow-style: none !important;
    scrollbar-width: none !important;
}

.mobile-nav-details > summary::-webkit-details-marker {
    display: none;
}

.mobile-nav-details > summary {
    list-style: none;
}

.partnership-nav-details > summary::-webkit-details-marker {
    display: none;
}

.partnership-nav-details > summary {
    list-style: none;
}

.partnership-nav-details[open] .details-chevron {
    transform: rotate(180deg);
}

.role-option input:checked + span .role-dot {
    opacity: 1;
}

.h-50 {
    height: 12.5rem;
}

.h-58 {
    height: 14.5rem;
}

.home-hero-slider {
    isolation: isolate;
}

.home-hero-slide {
    opacity: 0;
    transform: scale(1.04);
    animation: homeHeroSlide 25s infinite;
    animation-delay: calc(var(--slide-index) * 5s);
    will-change: opacity, transform;
}

.home-hero-overlay {
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.88) 42%, rgba(255, 255, 255, 0.34) 78%, rgba(255, 255, 255, 0.16) 100%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.78) 0%, rgba(255, 255, 255, 0.28) 46%, rgba(255, 255, 255, 0.82) 100%);
}

@keyframes homeHeroSlide {
    0%,
    16% {
        opacity: 1;
        transform: scale(1.04);
    }

    20%,
    96% {
        opacity: 0;
        transform: scale(1.1);
    }

    100% {
        opacity: 1;
        transform: scale(1.04);
    }
}

@media (max-width: 1023px) {
    .home-hero-overlay {
        background:
            linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 255, 255, 0.82) 46%, rgba(255, 255, 255, 0.74) 100%),
            linear-gradient(90deg, rgba(255, 255, 255, 0.58) 0%, rgba(255, 255, 255, 0.2) 100%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-hero-slide {
        animation: none;
    }

    .home-hero-slide:first-child {
        opacity: 1;
    }
}
