.activity-hero .hero-inner {
    padding-block: 49px 54px;
}

.activity-page {
    width: min(1080px, calc(100% - 40px));
    margin-inline: auto;
    padding-block: 43px 70px;
}

.activity-page-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 20px;
    gap: 20px;
}

.activity-page-heading h2 {
    margin: 0;
    font-size: clamp(1.9rem, 4vw, 2.8rem);
    letter-spacing: -.035em;
}

.activity-count {
    padding: 7px 11px;
    color: var(--navy-800);
    background: #e6edf6;
    border-radius: 4px;
    font-size: .67rem;
    font-weight: 800;
}

.month-filter,
.home-month-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.month-filter {
    padding: 11px;
    margin-bottom: 19px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 7px;
}

.month-filter a,
.home-month-buttons a {
    padding: 8px 10px;
    color: var(--navy-800);
    background: #e9eff6;
    border-radius: 4px;
    font-size: .64rem;
    font-weight: 800;
    text-decoration: none;
}

.month-filter a.active {
    color: var(--navy-950);
    background: var(--gold-500);
}

.activity-list {
    display: grid;
    gap: 8px;
}

.activity-row {
    display: grid;
    grid-template-columns: 76px 1fr;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 6px;
    box-shadow: var(--shadow-sm);
}

.activity-row.today {
    border-color: var(--gold-500);
    box-shadow: 0 0 0 3px rgba(255, 209, 0, .16);
}

.activity-date {
    display: grid;
    padding: 15px 9px;
    color: #fff;
    text-align: center;
    background: var(--navy-800);
    place-content: center;
}

.activity-date strong {
    font-size: 1.55rem;
    line-height: 1;
}

.activity-date span {
    margin-top: 4px;
    color: var(--gold-200);
    font-size: .57rem;
    font-weight: 800;
}

.activity-details {
    min-width: 0;
    padding: 15px 17px;
}

.activity-meta {
    display: flex;
    flex-wrap: wrap;
    color: var(--muted);
    font-size: .58rem;
    font-weight: 700;
    gap: 10px;
}

.activity-details h3 {
    margin: 7px 0 0;
    font-size: .83rem;
    line-height: 1.4;
}

.activity-place {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: .65rem;
}

.today-label {
    color: #775205;
    font-weight: 800;
}

.activity-empty {
    padding: 42px 20px;
    text-align: center;
    background: #fff;
    border: 1px dashed #b9c7d6;
    border-radius: 7px;
}

.activity-empty h3,
.activity-empty p {
    margin: 0;
}

.activity-empty p {
    margin-top: 7px;
    color: var(--muted);
    font-size: .76rem;
}

.activity-source {
    display: flex;
    justify-content: space-between;
    margin-top: 17px;
    color: var(--muted);
    font-size: .64rem;
    gap: 20px;
}

.home-activity {
    display: grid;
    grid-template-columns: .78fr 1.22fr;
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto 70px;
    overflow: hidden;
    background: var(--navy-900);
    border: 1px solid #173e73;
    border-radius: 8px;
    box-shadow: var(--shadow-md);
}

.home-activity-intro {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 34px;
    color: #fff;
}

.home-activity-intro .section-label {
    color: var(--gold-500);
}

.home-activity-intro h2 {
    margin: 0;
    font-size: clamp(1.8rem, 4vw, 2.65rem);
    line-height: 1.05;
}

.home-activity-intro > p:not(.section-label) {
    margin: 14px 0 21px;
    color: #c9d6e4;
    font-size: .78rem;
    line-height: 1.65;
}

.home-month-buttons a {
    color: #fff;
    background: rgba(255, 255, 255, .1);
}

.home-activity-intro .text-link {
    align-self: flex-start;
    margin-top: 16px;
    color: var(--gold-200);
}

.activity-ticker {
    min-width: 0;
    padding: 23px;
    background: #f8fafc;
}

.activity-ticker-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    gap: 15px;
}

.activity-ticker-head strong {
    font-size: .96rem;
}

.activity-ticker-head span {
    color: var(--muted);
    font-size: .64rem;
}

.activity-ticker-window {
    height: 325px;
    overflow: hidden;
    mask-image: linear-gradient(to bottom, transparent, #000 5%, #000 95%, transparent);
}

.activity-ticker-track {
    animation: activity-scroll var(--ticker-duration, 60s) linear infinite;
}

.activity-ticker-window:hover .activity-ticker-track,
.activity-ticker-window:focus-within .activity-ticker-track {
    animation-play-state: paused;
}

.ticker-set {
    display: grid;
    padding-bottom: 8px;
    gap: 8px;
}

.ticker-item {
    display: grid;
    grid-template-columns: 54px 1fr;
    min-width: 0;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 6px;
}

.ticker-date {
    display: grid;
    padding: 11px 7px;
    color: #fff;
    text-align: center;
    background: var(--navy-800);
    border-radius: 5px 0 0 5px;
    place-content: center;
}

.ticker-date strong {
    font-size: 1.15rem;
    line-height: 1;
}

.ticker-date span {
    margin-top: 3px;
    color: var(--gold-200);
    font-size: .52rem;
    font-weight: 800;
}

.ticker-copy {
    min-width: 0;
    padding: 10px 11px;
}

.ticker-copy h3 {
    margin: 0;
    font-size: .7rem;
    line-height: 1.4;
}

.ticker-copy p {
    margin: 4px 0 0;
    overflow: hidden;
    color: var(--muted);
    font-size: .56rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@keyframes activity-scroll {
    to {
        transform: translateY(-50%);
    }
}

@media (max-width: 820px) {
    .home-activity {
        grid-template-columns: 1fr;
    }

    .activity-ticker-window {
        height: 300px;
    }
}

@media (max-width: 580px) {
    .activity-page,
    .home-activity {
        width: min(100% - 28px, 1180px);
    }

    .activity-page {
        padding-block: 33px 55px;
    }

    .activity-page-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 11px;
    }

    .activity-row {
        grid-template-columns: 64px 1fr;
    }

    .activity-details {
        padding: 13px;
    }

    .activity-source {
        flex-direction: column;
        gap: 6px;
    }

    .home-activity {
        margin-bottom: 54px;
    }

    .home-activity-intro {
        padding: 27px;
    }

    .activity-ticker {
        padding: 17px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .activity-ticker-window {
        overflow-y: auto;
    }

    .activity-ticker-track {
        animation: none;
    }

    .activity-ticker-track .ticker-set[aria-hidden="true"] {
        display: none;
    }
}
