/* Keep the discovery landing view visually complete at every viewport height. */
body.public-home-shell .home-landing--redesigned .home-landing__hero {
    min-height: calc(100vh - var(--home-header-height, var(--public-header-height, 74px)) - var(--home-bottom-nav-height, 0px));
    min-height: calc(100dvh - var(--home-header-height, var(--public-header-height, 74px)) - var(--home-bottom-nav-height, 0px));
    display: flex;
}

body.public-home-shell .home-landing--redesigned .home-landing__hero-inner {
    flex: 1 1 auto;
    min-height: 0;
    padding-top: 2rem;
    padding-bottom: 2rem;
}

body.public-home-shell .home-landing--redesigned .home-landing__hero-copy {
    padding-top: 0;
    padding-bottom: 0;
}

body.public-home-shell .home-landing--redesigned .home-landing__hero {
    position: relative;
}

body.public-home-shell .home-landing--redesigned .home-landing__hero-scroll {
    animation: home-scroll-cue 1.8s ease-in-out infinite;
    bottom: clamp(1rem, 2.4vh, 1.45rem);
    display: inline-flex;
}

body.public-home-shell .home-landing--redesigned .home-landing__hero-scroll:hover,
body.public-home-shell .home-landing--redesigned .home-landing__hero-scroll:focus-visible {
    animation-play-state: paused;
}

/* The home search uses the same compact search-control language as every directory. */
body.public-home-shell .home-landing--redesigned .home-landing__search {
    background: #ffffff;
    border-color: #cbd9ea;
    border-radius: 8px;
    box-shadow: none;
    gap: .4rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: 48px;
    padding: .38rem;
}

body.public-home-shell .home-landing--redesigned .home-landing__search:focus-within {
    border-color: #1767df;
    box-shadow: 0 0 0 3px rgba(23, 103, 223, .14);
}

body.public-home-shell .home-landing--redesigned .home-landing__search > svg {
    height: 1.15rem;
    margin-left: .45rem;
    width: 1.15rem;
}

body.public-home-shell .home-landing--redesigned .home-landing__search input {
    font-size: .95rem;
    padding: .62rem 0;
}

body.public-home-shell .home-landing--redesigned .home-landing__search button {
    background: #1767df;
    border-color: #1767df;
    border-radius: 7px;
    grid-column: auto;
    min-height: 2.6rem;
    padding: 0;
    width: 2.6rem;
}

body.public-home-shell .home-landing--redesigned .home-landing__search button:hover,
body.public-home-shell .home-landing--redesigned .home-landing__search button:focus-visible {
    background: #0957c7;
    border-color: #0957c7;
}

body.public-home-shell .home-landing--redesigned .home-landing__search button svg {
    height: 1rem;
    width: 1rem;
}

@keyframes home-scroll-cue {
    0%,
    100% {
        transform: translateX(-50%) translateY(0);
    }

    50% {
        transform: translateX(-50%) translateY(7px);
    }
}

@media (prefers-reduced-motion: reduce) {
    body.public-home-shell .home-landing--redesigned .home-landing__hero-scroll {
        animation: none;
    }
}

@media (max-width: 767.98px) {
    body.public-home-shell .home-landing--redesigned .home-landing__hero::before {
        background-color: #eff7ff;
        background-image: url("../img/jeebp-discovery-hero-mobile-pattern.png");
        background-position: center top;
        background-repeat: no-repeat;
        background-size: cover;
        content: "";
        inset: 0;
        opacity: 1;
        pointer-events: none;
        position: absolute;
    }

    body.public-home-shell .home-landing--redesigned .home-landing__hero::after {
        content: none;
    }

    body.public-home-shell .home-landing--redesigned .home-landing__hero-inner {
        background-color: transparent;
        position: relative;
        z-index: 1;
    }

    body.public-home-shell .home-landing--redesigned .home-landing__hero-scroll {
        z-index: 1;
    }

    body.public-home-shell .home-landing--redesigned .home-landing__search {
        margin-top: 1.5rem;
        max-width: 21rem;
    }
}

/* Give the primary discovery routes a compact, actionable card treatment. */
body.public-home-shell .home-landing--redesigned .home-landing__routes {
    background: #f4f8fd;
    padding: 4rem 0;
}

body.public-home-shell .home-landing--redesigned .home-landing__routes .home-landing__section-heading {
    align-items: end;
    margin-bottom: 1.75rem;
}

body.public-home-shell .home-landing--redesigned .home-landing__routes .home-landing__section-heading h2 {
    font-size: clamp(2rem, 2.6vw, 2.75rem);
    line-height: 1.15;
}

body.public-home-shell .home-landing--redesigned .home-landing__route-grid {
    gap: 1rem;
}

body.public-home-shell .home-landing--redesigned .home-landing__route {
    --route-accent: #1469de;
    background: #ffffff;
    border: 1px solid #d9e6f4;
    border-radius: 8px;
    box-shadow: 0 8px 22px rgba(24, 61, 106, .05);
    min-height: 0;
    padding: 1.5rem;
}

body.public-home-shell .home-landing--redesigned .home-landing__route:first-child,
body.public-home-shell .home-landing--redesigned .home-landing__route:last-child {
    border-left: 1px solid #d9e6f4;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

body.public-home-shell .home-landing--redesigned .home-landing__route--deals {
    --route-accent: #b97900;
}

body.public-home-shell .home-landing--redesigned .home-landing__route--stores {
    --route-accent: #00895c;
}

body.public-home-shell .home-landing--redesigned .home-landing__route:hover,
body.public-home-shell .home-landing--redesigned .home-landing__route:focus-visible {
    border-color: color-mix(in srgb, var(--route-accent) 42%, #d9e6f4);
    box-shadow: 0 14px 28px rgba(24, 61, 106, .1);
    transform: translateY(-.2rem);
}

body.public-home-shell .home-landing--redesigned .home-landing__route-icon {
    height: 44px;
    width: 44px;
}

body.public-home-shell .home-landing--redesigned .home-landing__route-label {
    margin-top: .95rem;
}

body.public-home-shell .home-landing--redesigned .home-landing__route strong {
    font-size: 1.3rem;
    line-height: 1.25;
    margin-top: .25rem;
}

body.public-home-shell .home-landing--redesigned .home-landing__route small {
    font-size: .92rem;
    line-height: 1.45;
    margin-top: .55rem;
}

body.public-home-shell .home-landing--redesigned .home-landing__route-link {
    color: var(--route-accent);
    margin-top: 1.2rem;
    padding-top: 0;
}

@media (max-width: 767.98px) {
    body.public-home-shell .home-landing--redesigned .home-landing__routes {
        padding: 2.75rem 0;
    }

    body.public-home-shell .home-landing--redesigned .home-landing__routes .home-landing__section-heading {
        align-items: flex-start;
        margin-bottom: 1.25rem;
    }

    body.public-home-shell .home-landing--redesigned .home-landing__route,
    body.public-home-shell .home-landing--redesigned .home-landing__route:first-child,
    body.public-home-shell .home-landing--redesigned .home-landing__route:last-child {
        border: 1px solid #d9e6f4;
        border-radius: 8px;
        padding: 1.25rem;
    }
}

/* Keep the business conversion message in the footer concise and self-contained. */
.public-footer .public-footer-brand {
    max-width: 31rem;
}

.public-footer .public-footer-business-cta {
    background: #f3f8ff;
    border: 1px solid #d8e6f5;
    border-radius: 8px;
    display: grid;
    gap: .65rem;
    margin-top: 1rem;
    padding: 1.1rem;
}

.public-footer .public-footer-business-kicker {
    color: #07875e;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: 0;
    margin: 0;
    text-transform: uppercase;
}

.public-footer .public-footer-business-cta > strong {
    color: #12223e;
    font-size: 1.08rem;
    line-height: 1.3;
}

.public-footer .public-footer-business-cta > p:not(.public-footer-business-kicker) {
    color: #526f91;
    font-size: .9rem;
    line-height: 1.5;
    margin: 0;
    max-width: 29rem;
}

.public-footer .public-footer-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: .1rem 0 0;
}

.public-footer .public-footer-actions .btn {
    align-items: center;
    border-radius: 8px;
    display: inline-flex;
    font-size: .88rem;
    font-weight: 750;
    gap: .35rem;
    min-height: 2.5rem;
    padding: .45rem .8rem;
    justify-content: center;
    white-space: nowrap;
}

.public-footer .public-footer-actions .btn-primary {
    box-shadow: none;
}

.public-footer .public-footer-actions .btn svg {
    height: .9rem;
    width: .9rem;
}

.public-footer .public-footer-business-cta > small {
    color: #647a99;
    font-size: .76rem;
    font-weight: 600;
}

@media (max-width: 767.98px) {
    .public-footer .public-footer-business-cta {
        padding: 1rem;
    }

    .public-footer .public-footer-actions {
        gap: .45rem;
    }

    .public-footer .public-footer-actions .btn {
        min-width: 0;
        text-align: center;
        width: auto;
    }
}

@media (max-width: 359.98px) {
    .public-footer .public-footer-actions .btn {
        flex: 1 1 100%;
    }
}

/* Shared mobile hierarchy, loaded after page-specific typography. */
@media (max-width: 767.98px) {
    body.public-shell .public-main :is(h1, h2, h3, h4, h5, h6) {
        letter-spacing: 0;
        overflow-wrap: break-word;
        max-width: 100%;
    }

    body.public-shell .public-main h1,
    body.public-shell .public-main h2 {
        font-size: 1.25rem !important;
        line-height: 1.35 !important;
        font-weight: 700 !important;
        margin-top: .35rem;
        margin-bottom: .65rem;
        white-space: normal !important;
    }

    body.public-shell .public-main :is(h3, h4, h5, h6) {
        font-size: 1.0625rem !important;
        line-height: 1.4 !important;
        font-weight: 600 !important;
    }

    body.public-shell .public-main .deal-directory .deal-offer-content :is(h2, h3) {
        font-size: 1rem !important;
        font-weight: 500 !important;
        line-height: 1.4 !important;
        margin: 0 !important;
    }

    body.public-shell .public-main :is(
        .home-section-heading,
        .home-landing__section-heading,
        .section-heading-row,
        .webstore-section-heading,
        .directory-section-heading,
        .public-cross-discovery-heading
    ) {
        align-items: flex-start;
        flex-direction: column;
        gap: .65rem;
        text-align: left;
        margin-bottom: 1.15rem;
    }

    body.public-shell .public-main :is(
        .home-section-heading,
        .home-landing__section-heading,
        .section-heading-row,
        .webstore-section-heading,
        .directory-section-heading,
        .public-cross-discovery-heading
    ) h2 {
        margin-bottom: 0;
        text-align: left;
    }
}
