/* Homepage polish. Loaded after the shared shell; deliberately scoped to home.
 * Legacy V7 desktop rules occur after mobile rules. Set responsive grids here
 * in desktop-to-mobile order, including min-width:0 on all grid children.
 */
body.ibh-home-body.ibh-v7-body {
    --ibh-v7-muted: #596779;
    --ibh-v7-line: #e3e8ef;
    --ibh-v7-shell: 1240px;
}

.ibh-home-body.ibh-v7-body .ibh-v7-shell {
    width: min(var(--ibh-v7-shell), calc(100% - 64px));
}

.ibh-home-body.ibh-v7-body :is(.ibh-v7-section, .ibh-v7-radio, .ibh-v7-learning, .ibh-v7-heritage) {
    padding-block: 64px !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-heading {
    align-items: flex-end;
    gap: 16px 24px;
    margin-bottom: 28px !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-heading h2 {
    font-size: clamp(1.4rem, 2.1vw, 1.9rem) !important;
    line-height: 1.65;
    letter-spacing: -.025em;
}

.ibh-home-body.ibh-v7-body .ibh-v7-kicker {
    margin-bottom: 8px;
    font-size: .75rem;
}

.ibh-home-body.ibh-v7-body :is(.ibh-v7-text-link, .ibh-v7-heading-links a) {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: .8rem;
}

.ibh-home-body.ibh-v7-body .ibh-v7-hero-inner {
    padding-block: 64px 112px;
}

.ibh-home-body.ibh-v7-body .ibh-v7-hero h1 {
    font-size: clamp(2rem, 3.55vw, 3.5rem);
    line-height: 1.4;
    letter-spacing: -.035em;
}

.ibh-home-body.ibh-v7-body .ibh-v7-hero-copy > p {
    font-size: .94rem;
    line-height: 2;
    color: #cbd5e1;
}

.ibh-home-body.ibh-v7-body .ibh-v7-search {
    height: 48px;
    border-radius: 12px;
    background: rgba(4, 18, 38, .65);
    border-color: rgba(226, 235, 248, .24);
}

.ibh-home-body.ibh-v7-body .ibh-v7-search input {
    min-width: 0;
    font-size: .85rem;
}

.ibh-home-body.ibh-v7-body .ibh-v7-search input::placeholder {
    color: #b7c4d5;
    opacity: 1;
}

.ibh-home-body.ibh-v7-body .ibh-v7-search button {
    min-width: 44px;
    min-height: 44px;
}

.ibh-home-body.ibh-v7-body .ibh-v7-btn {
    min-height: 44px;
    padding-inline: 20px;
    font-size: .85rem;
    border-radius: 10px;
}

.ibh-home-body.ibh-v7-body .ibh-v7-btn.is-primary {
    color: #081b36;
    box-shadow: 0 6px 20px rgba(245, 130, 32, .13);
}

.ibh-home-body.ibh-v7-body .ibh-v7-quick {
    border-radius: 14px;
    background: rgba(5, 22, 45, .82);
}

.ibh-home-body.ibh-v7-body .ibh-v7-quick strong {
    font-size: .82rem;
}

.ibh-home-body.ibh-v7-body .ibh-v7-today-grid {
    grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
    gap: 28px;
}

.ibh-home-body.ibh-v7-body :is(.ibh-v7-today-grid, .ibh-v7-lead-story, .ibh-v7-heritage-grid, .ibh-v7-heading) > * {
    min-width: 0;
}

.ibh-home-body.ibh-v7-body .ibh-v7-lead-story {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    min-height: 390px;
    border-radius: 18px;
    box-shadow: 0 12px 36px rgba(8, 27, 54, .045);
}

.ibh-home-body.ibh-v7-body .ibh-v7-lead-story.is-empty {
    grid-template-columns: minmax(0, 1fr);
}

.ibh-home-body.ibh-v7-body .ibh-v7-lead-media img {
    display: block;
}

.ibh-home-body.ibh-v7-body .ibh-v7-lead-copy {
    padding: clamp(22px, 2.4vw, 32px);
}

.ibh-home-body.ibh-v7-body .ibh-v7-lead-copy h3 {
    font-size: clamp(1.15rem, 1.65vw, 1.65rem);
    line-height: 1.8;
    margin-block: 10px 12px;
}

.ibh-home-body.ibh-v7-body .ibh-v7-lead-copy p {
    font-size: .875rem;
    line-height: 2;
}

.ibh-home-body.ibh-v7-body :is(.ibh-v7-lead-copy > span, .ibh-v7-side-story-copy time) {
    color: #647184 !important;
    font-size: .72rem !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-side-story {
    grid-template-columns: 96px minmax(0, 1fr) !important;
    gap: 14px !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-side-story-media {
    width: 96px !important;
    border-radius: 10px !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-side-story-copy h3 {
    font-size: .875rem !important;
    line-height: 1.85 !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-side-story-copy small {
    font-size: .7rem !important;
    color: #a34b09 !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-person {
    background: #fff;
    border-radius: 14px;
    padding: 14px 12px;
    min-width: 0;
}

.ibh-home-body.ibh-v7-body .ibh-v7-person-avatar {
    width: 54px;
    height: 54px;
    flex-basis: 54px;
}

.ibh-home-body.ibh-v7-body .ibh-v7-person > span:last-child {
    min-width: 0;
}

.ibh-home-body.ibh-v7-body .ibh-v7-person > span:last-child strong {
    font-size: .84rem;
    white-space: normal;
    line-height: 1.8;
}

.ibh-home-body.ibh-v7-body .ibh-v7-person > span:last-child small {
    font-size: .72rem;
    color: #647184;
}

.ibh-home-body.ibh-v7-body .ibh-v7-radio :is(.ibh-v7-heading, .ibh-v7-radio-feature, .ibh-v7-episodes-head, .ibh-v7-episodes) {
    width: 100% !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-radio-feature {
    min-height: 260px !important;
    max-height: none !important;
    border-radius: 18px !important;
    grid-template-columns: minmax(0, .42fr) minmax(0, .58fr) !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-radio-cover {
    min-height: 260px !important;
    max-height: none !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-radio-copy {
    padding: 28px !important;
    min-width: 0;
}

.ibh-home-body.ibh-v7-body .ibh-v7-radio-copy h3 {
    max-width: 32ch !important;
    font-size: clamp(1.2rem, 1.8vw, 1.65rem) !important;
    line-height: 1.8 !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-radio-copy > p {
    font-size: .84rem !important;
    color: #cbd5e1 !important;
}

.ibh-home-body.ibh-v7-body :is(.ibh-v7-radio-label, .ibh-v7-radio-meta span) {
    font-size: .72rem !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-play {
    min-height: 44px !important;
    font-size: .8rem !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-mini-play {
    width: 44px !important;
    height: 44px !important;
    flex-basis: 44px !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-episode-card {
    padding: 12px !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-episode-card h4 {
    font-size: .8rem !important;
    line-height: 1.85 !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-episode-card :is(small, span) {
    font-size: .7rem !important;
}

.ibh-home-body.ibh-v7-body :is(.ibh-v7-learning-intro, .ibh-v7-learning-item p, .ibh-v7-final p) {
    font-size: .875rem;
    line-height: 2;
}

.ibh-home-body.ibh-v7-body .ibh-v7-learning-grid {
    gap: 18px;
}

.ibh-home-body.ibh-v7-body .ibh-v7-learning-item {
    border-radius: 16px;
    background: #f8fafc;
    padding: 24px;
}

.ibh-home-body.ibh-v7-body :is(.ibh-v7-learning-copy small, .ibh-v7-learning-meta) {
    font-size: .75rem;
}

.ibh-home-body.ibh-v7-body .ibh-v7-heritage-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 24px !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-hall-grid {
    max-width: none !important;
    gap: 14px !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-hall-square {
    min-height: 0;
    border-radius: 14px !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-hall-square-copy strong {
    font-size: .95rem !important;
}

.ibh-home-body.ibh-v7-body :is(.ibh-v7-hall-square-copy small, .ibh-v7-honor-card small) {
    font-size: .72rem !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-honor-card strong {
    font-size: .9rem !important;
    line-height: 1.9 !important;
}

.ibh-home-body.ibh-v7-body .ibh-v7-final-inner {
    padding: 32px;
    gap: 28px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 18px;
}

.ibh-home-body.ibh-v7-body .ibh-v7-final h2 {
    font-size: clamp(1.35rem, 2vw, 1.8rem);
    line-height: 1.8;
}

/* More legible footer, only on the homepage. Keep the live trust-seal markup. */
body.ibh-home-body.ibh-public-body .ib-site-footer.ib-site-footer-compact {
    padding: 36px 32px 24px !important;
}

body.ibh-home-body.ibh-public-body .ib-site-footer.ib-site-footer-compact :is(.ib-site-footer-inner, .ib-footer-copyright-wrap) {
    width: min(1240px, 100%) !important;
    max-width: 1240px !important;
}

body.ibh-home-body.ibh-public-body .ib-site-footer.ib-site-footer-compact .ibh-footer-intro h2 {
    font-size: 1rem !important;
    line-height: 1.8 !important;
}

body.ibh-home-body.ibh-public-body .ib-site-footer.ib-site-footer-compact .ibh-footer-intro p {
    font-size: .8rem !important;
    color: #c2ccda !important;
}

body.ibh-home-body.ibh-public-body .ib-site-footer.ib-site-footer-compact .ib-footer-col strong {
    font-size: .875rem !important;
}

body.ibh-home-body.ibh-public-body .ib-site-footer.ib-site-footer-compact .ib-footer-col a {
    font-size: .8rem !important;
    line-height: 2 !important;
    padding-block: 5px;
    color: #c2ccda !important;
}

body.ibh-home-body.ibh-public-body .ib-site-footer.ib-site-footer-compact .ib-site-footer-social a {
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
}

.ibh-home-body.ibh-v7-body :is(.ibh-v7-page, .ib-site-footer) :is(a, button, input):focus-visible {
    outline: 3px solid #ed8d37;
    outline-offset: 4px;
}

@media (max-width: 1050px) {
    .ibh-home-body.ibh-v7-body .ibh-v7-today-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-radar-list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 24px;
        padding-inline: 0;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-radar-head {
        grid-column: 1 / -1;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-heritage-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-hall-grid {
        max-width: 620px !important;
    }
}

@media (max-width: 700px) {
    .ibh-home-body.ibh-v7-body .ibh-v7-shell {
        width: calc(100% - 32px);
    }

    .ibh-home-body.ibh-v7-body :is(.ibh-v7-section, .ibh-v7-radio, .ibh-v7-learning, .ibh-v7-heritage) {
        padding-block: 40px !important;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-heading {
        flex-wrap: wrap;
        align-items: flex-start;
        gap: 8px;
        margin-bottom: 20px !important;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-heading h2 {
        font-size: 1.4rem !important;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-hero {
        min-height: 0;
        display: block;
        padding-bottom: 16px;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-hero-inner {
        padding-block: 48px 28px;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-hero h1 {
        max-width: 18ch;
        font-size: clamp(1.8rem, 7.2vw, 2.4rem);
        line-height: 1.5;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-hero-copy > p {
        font-size: .875rem;
        max-width: none;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-quick-wrap {
        position: relative;
        inset: auto;
        transform: none;
        margin-inline: auto;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-quick {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        overflow: visible;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-quick a {
        min-width: 0;
        min-height: 48px;
        padding-inline: 12px;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-quick a:nth-child(n+3) {
        border-top: 1px solid rgba(255, 255, 255, .1);
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-lead-story {
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-lead-media {
        display: block;
        min-height: 0;
        aspect-ratio: 16 / 10;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-lead-copy {
        padding: 22px 20px;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-lead-copy h3 {
        font-size: 1.2rem;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-radar-list {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-people-rail {
        grid-auto-columns: minmax(220px, 80%);
        scroll-padding-inline: 0;
        padding-bottom: 10px;
        overscroll-behavior-inline: contain;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-radio-feature {
        grid-template-columns: minmax(0, 1fr) !important;
        min-height: 0 !important;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-radio-cover {
        min-height: 0 !important;
        aspect-ratio: 16 / 9 !important;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-radio-copy {
        padding: 24px 20px !important;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-learning-item {
        padding: 22px 18px;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-honors {
        grid-template-columns: minmax(0, 1fr);
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-honor-card {
        display: grid;
        grid-template-columns: 96px minmax(0, 1fr);
        min-height: 100px !important;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-honor-media {
        min-height: 0;
        height: 100%;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-final {
        padding-block: 32px;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-final-inner {
        padding: 28px 20px;
    }

    .ibh-home-body.ibh-v7-body .ibh-v7-final .ibh-v7-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    body.ibh-home-body.ibh-public-body .ib-site-footer.ib-site-footer-compact {
        padding: 28px 16px calc(96px + env(safe-area-inset-bottom, 0px)) !important;
    }

    body.ibh-home-body.ibh-public-body .ib-site-footer.ib-site-footer-compact .ib-footer-col a {
        min-height: 44px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ibh-home-body.ibh-v7-body :is(.ibh-v7-page, .ib-site-footer) *,
    .ibh-home-body.ibh-v7-body :is(.ibh-v7-page, .ib-site-footer) *::before,
    .ibh-home-body.ibh-v7-body :is(.ibh-v7-page, .ib-site-footer) *::after {
        animation: none !important;
        transition: none !important;
    }
}
