* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
}

#home {
    scroll-margin-top: 81px;
}

/* Bootstrap utility replacements — replaces the full bootstrap.min.css import */
.d-flex { display: flex; }
.d-block { display: block; }
.align-items-center { align-items: center; }
.justify-content-between { justify-content: space-between; }
.justify-content-start { justify-content: flex-start; }
.list-unstyled { list-style: none; padding-left: 0; margin: 0; }
.bg-white { background-color: #fff; }
.m-0 { margin: 0; }
.pt-3 { padding-top: 1rem; }
.text-danger { color: #dc3545; }

:root {
    --hsf-global__color: #FFFFFF;
    --hsf-background__background-color: transparent !important;
    --hsf-field-input__background-color: transparent !important;
    --hsf-default-field-textarea__background-color: transparent !important;
    --hsf-default-field-input__background-color: transparent !important;
}

.hsfc-FieldLabel {
    font-weight: 400 !important;
}

.hsfc-Button {
    font-weight: 600 !important;
}

[data-hsfc-id=Renderer] .hsfc-Step .hsfc-Step__Content {
    padding: 0 !important;
}

[data-hsfc-id=Renderer] .hsfc-PhoneInput:not(.hsfc-PhoneInput--rtl) .hsfc-PhoneInput__FlagAndCaret {
    display: none;
}

.hsfc-RadioFieldGroup__Options {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: start;
    align-items: center;
    column-gap:30px;
}

.hsfc-EmailField {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
}

/* HubSpot Form Radio Button Styling */
.section-1-contact-form input[type="radio"].hsfc-RadioInput {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    width: 44px !important;
    height: 44px !important;
    border: none !important;
    background-image: url("images/inactive-radio.svg") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    cursor: pointer !important;
    margin-right: 12px !important;
}

[data-hsfc-id=Renderer] .hsfc-RadioInput:checked:after {
    background-color: rgba(255, 255, 255, 0) !important;
}

.section-1-contact-form input[type="radio"].hsfc-RadioInput:checked {
    background-image: url("images/radio-active.svg") !important;
    background-color: transparent !important;
    opacity: 1 !important;
}

.section-1-contact-form input[type="radio"].hsfc-RadioInput:focus {
    outline: none !important;
    opacity: 1 !important;
}

.section-1-contact-form input[type="radio"].hsfc-RadioInput:hover {
    opacity: 1 !important;
}

html, body {
    font-family: 'Outfit', sans-serif;
    font-weight: 500;
}

h1, h2, h3, p {
    font-size: inherit;
    margin: 0;
    padding: 0;
}

h1:focus {
    outline: none;
}

button {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    font: inherit;
}

a {
    text-decoration: none;
    color: inherit;
}

.section-1 .next-study,
.section-1 .last-study {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.case-study .section-1 nav {
    gap: 32px;
}

.section-1 .next-study {
    padding-left: 0;
}

.public-privacy-page a,
.terms-page a,
.state-privacy-page a {
    text-decoration: underline !important;
    color: #0076A5 !important;
}

.state-privacy-page .state-section p {
    scroll-margin-top: 100px;
}

.terms-page .terms-section p {
    scroll-margin-top: 140px;
}

.swiper {
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
}

.swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: 100%;
}

.swiper-scrollbar {
    width: 100%;
    height: 8px;
    background-color: #C1B7B0;
    border-radius: 10px;
    cursor: pointer;
}

.swiper-scrollbar-drag {
    background-color: #5F9BC6;
    border-radius: 10px;
    height: 8px;
    touch-action: none;
    cursor: grab;
}

.swiper-scrollbar-drag:active {
    cursor: grabbing;
}

address {
    white-space: pre-line;
    padding: 0;
    margin: 0;
    font-style: normal;
}

header {
    position: sticky;
    top: 0;
    z-index: 5;
}

.max-page-width {
    max-width: 1440px;
    margin: 0 auto;
    width: 100%;
}

.main-navigation a,
.mobile-navigation a {
    position: relative;
}

.main-navigation a::before,
.mobile-navigation a::before {
    position: absolute;
    content: '';
    width: 4px;
    height: 0;
    left: -8px;
    bottom: 0;
    background-color: #F7971C;
}

.main-navigation a.active {
    color: #0076A5;
    transition: color 0.4s ease-in;
}

.main-navigation a.active::before {
    height: 95%;
    transition: height 0.4s ease-in;
}

.mobile-navigation a.active {
    color: #5F9BC6;
}

.mobile-navigation a.active::before {
    height: 100%;
    width: 3px;
    left: -12px;
}

.full-page-container {
    position: relative;
}

.page-gradient {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;
    z-index: 0;
    inset: 0;
    pointer-events: none;
    background-color: #054268;
}

.page-gradient-surface {
    position: absolute;
    inset: -80%;
    pointer-events: none;
    background-image: radial-gradient(ellipse 55% 55% at 50% 50%,
    rgba(0, 119, 171, 0.80) 0%,
    rgba(0, 119, 171, 0) 100%);
    background-repeat: no-repeat;
    will-change: transform;
    z-index: 0;
    animation: animatedGradientSpotlight 4.9s ease-in-out 1 forwards;
}

.page-gradient-content {
    position: relative;
    z-index: 1;
}

@keyframes animatedGradientSpotlight {
    0% {
        transform: translate3d(-22%, -20%, 0) scale(1);
    }
    100% {
        transform: translate3d(12.76%, -10.95%, 0) scale(1.045);
    }
}

::view-transition-group(card-1),
::view-transition-group(card-2),
::view-transition-group(card-3),
::view-transition-group(card-4) {
    animation-duration: 400ms;
    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Contact page styling */

.phone-numbers .phone-separator {
    display: block;
}

/* Career page styling */
.section-4-careers .benefit-description ul {
    margin-top: 0;
    padding-left: 18px;
}

.section-2 .text-section ul,
.section-2 .text-section ol,
.section-2 .faq-section ul,
.section-2 .faq-section ol,
.section-2 .quote-section ul,
.section-2 .quote-section ol,
.section-2 .left-text-right-image ul,
.section-2 .left-text-right-image ol,
.section-2 .left-image-right-text ul,
.section-2 .left-image-right-text ol {
    margin-top: 6px;
    margin-bottom: 6px;
}

/* Article styling */
.section-2 .text-section p {
    padding: 0 0 8px 0;
}

.section-2 table {
    border-collapse: collapse;
    width: 100%;
}

.section-2 th,
.section-2 td {
    padding: 8px 12px;
    text-align: left;
    vertical-align: top;
}

.section-2 td:first-child,
.section-2 th:first-child {
    padding-left: 0;
}

.section-2 td:last-child,
.section-2 th:last-child {
    padding-right: 0;
}

.section-2 th,
.section-2 tr:first-child td {
    font-size: 1rem;
    font-weight: 600;
    color: #000000;
}

@media only screen and (min-width: 1280px) {
    .section-2 th,
    .section-2 tr:first-child td {
        font-size: 1.125rem;
    }
}

.section-2 .quote-section p {
    font-size: 1rem;
    color: #000000;
    font-weight: 400;
    padding-right: 24px;
    padding-bottom: 12px;
}

.section-2 .faq-section p {
    font-size: 1rem;
    color: #000000;
    font-weight: 400;
}

.section-2 .author-section p {
    font-size: .875rem;
    font-weight: 400;
    line-height: normal;
    color: #000000;
}

.section-2 .left-text-right-image p,
.section-2 .left-image-right-text p{
    font-size: 1rem;
    color: #000000;
    font-weight: 400;
    padding-bottom: 12px;
}

.section-2 .text-section a {
    color: #0077AB;
    font-weight: 400;
    font-size: 1rem;
    text-decoration: none;
}


@media (prefers-reduced-motion: reduce) {
    ::view-transition-group(*) {
        animation: none;
    }

    .page-gradient-surface {
        animation: none;
        transform: none;
    }
}


@media only screen and (min-width: 768px) {
    .phone-numbers .phone-separator {
        display: inline-block;
        margin-left: 24px;
    }
}

@media only screen and (min-width: 800px) {
    .case-study .section-1 nav {
        gap: 0;
    }

    .section-1 .next-study {
        padding-left: 32px;
    }

    .section-2 .quote-section p,
    .section-2 .faq-section p {
        font-size: 1.125rem;
    }

    .section-2 .left-text-right-image p,
    .section-2 .left-image-right-text p {
        font-size: 1.125rem;
    }
    
    .section-2 .author-section p {
        font-size: 1rem;
    }

    .section-2 .text-section a {
        font-size: 1.125rem;
    }
    
    .section-2 .author-section a {
        font-size: 1rem;
    }
}

@media only screen and (min-width: 1050px) {
    .hsfc-RadioFieldGroup__Options {
        grid-template-columns: 350px 1fr;
        align-items: start;
    }
}

@media only screen and (min-width: 1280px) {
    .section-2 .cta-section {
        position: sticky !important;
        top: 140px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .page-gradient-surface {
        animation: none !important;
        transform: translate3d(-22%, -20%, 0) scale(1) !important;
    }
}
