/* Hero — [cr_hero] */

.cr-hero,
.cr-hero *,
.cr-hero *::before,
.cr-hero *::after {
    box-sizing: border-box;
}

.cr-hero {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: var(--cr-hero-min-h, 650px);
    background-size: cover;
    background-position: center;
    background-color: #2a2a2a; /* fallback while the image loads / if none set */
    overflow: hidden;
}

/* Break out of the page container to span the viewport */
.cr-hero--bleed {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.cr-hero__overlay {
    position: absolute;
    inset: 0;
    background: var(--cr-hero-overlay-color, #000);
    opacity: var(--cr-hero-overlay-opacity, 0.45);
}

.cr-hero__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
    padding: 90px 24px;
    text-align: center;
}

.cr-hero__content h1,
.cr-hero__content h2,
.cr-hero__content h3 {
    margin: 0 0 26px;
    color: #fff;
    font-size: clamp(38px, 5.5vw, 64px);
    font-weight: 700;
    line-height: 1.1;
}

.cr-hero__content p {
    max-width: 780px;
    margin: 0 auto 18px;
    color: #fff;
    font-size: 19px;
    line-height: 1.6;
}

.cr-hero__content > :last-child {
    margin-bottom: 0;
}

.cr-hero__btn-wrap {
    margin-top: 38px;
}

.cr-hero__btn {
    display: inline-block;
    padding: 17px 38px;
    background: var(--cr-hero-btn-bg, #85b53f);
    border-radius: 999px;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    transition: filter 0.2s ease;
}

.cr-hero__btn:hover,
.cr-hero__btn:focus {
    filter: brightness(0.9);
    color: #fff;
    text-decoration: none;
}

/* ---- Optional full-width logo scroller ---- */

.cr-hero--has-ticker .cr-hero__inner {
    padding-bottom: 0;
}

.cr-hero__ticker {
    position: relative;
    z-index: 1;
    width: 100%;
    margin: 56px 0 90px;
}

/* Force logos solid white (for colored/dark logo files) */
.cr-hero__ticker--white .cr-logo-ticker__item img {
    filter: brightness(0) invert(1);
}

@media (min-width: 1021px) {
    .cr-hero__ticker {
        margin-top: 96px;
    }

    .cr-hero__inner {
        padding: 120px 24px;
    }

}

@media (max-width: 768px) {
    .cr-hero {
        min-height: min(var(--cr-hero-min-h, 650px), 80vh);
    }

    .cr-hero__inner {
        padding: 64px 20px;
    }

    .cr-hero__content p {
        font-size: 17px;
    }

    .cr-hero__btn-wrap {
        margin-top: 28px;
    }

    .cr-hero__ticker {
        margin: 36px 0 64px;
    }
}

/* ---- Left-aligned layout ---- */

/* Copy lines up with the 1200px site container (matches [cr_cta]) */
.cr-hero--left {
    align-items: stretch;
}

.cr-hero--left .cr-hero__inner {
    max-width: 1260px;
    padding-left: 30px;
    padding-right: 30px;
    text-align: left;
}

.cr-hero--left .cr-hero__content {
    max-width: 900px;
}

/* Regular-weight heading with heavy <strong> runs.
   !important: the Additional CSS / Add Custom CSS plugin set
   `h1, h2, h3 { font-weight: 600 !important }` site-wide */
.cr-hero--left .cr-hero__content h1,
.cr-hero--left .cr-hero__content h2 {
    font-weight: 400 !important;
    text-transform: uppercase;
    line-height: 1.08;
    margin-bottom: 30px;
}

.cr-hero--left .cr-hero__content h1 strong,
.cr-hero--left .cr-hero__content h2 strong {
    font-weight: 700;
}

.cr-hero--left .cr-hero__content p {
    max-width: 700px;
    margin-left: 0;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.45;
}

.cr-hero--left .cr-hero__btn {
    padding: 19px 38px;
    font-family: Montserrat, sans-serif;
    font-size: 18px;
    letter-spacing: 0.03em;
}

@media (max-width: 768px) {
    .cr-hero--left .cr-hero__inner {
        padding-left: 20px;
        padding-right: 20px;
    }

    .cr-hero--left .cr-hero__content p {
        font-size: 18px;
    }

    .cr-hero--left .cr-hero__btn {
        padding: 16px 32px;
        font-size: 16px;
    }
}
