.ccw-series-hub {
    --ccw-accent: #8a4b21;
    --ccw-border: #dedbd5;
    --ccw-soft: #f7f4ef;
    display: grid;
    gap: clamp(2rem, 5vw, 4rem);
    margin-block: 2rem;
}

.ccw-hub-section > h2 {
    margin-bottom: 1rem;
}

.ccw-hub-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    gap: 1rem;
}

.ccw-hub-card {
    border: 1px solid var(--ccw-border);
    border-radius: .75rem;
    padding: 1rem;
    background: #fff;
}

.ccw-hub-card.is-today,
.ccw-hub-calendar li.is-today {
    border-left: .35rem solid var(--ccw-accent);
    background: var(--ccw-soft);
}

.ccw-hub-card h3 {
    margin: .4rem 0 0;
    font-size: clamp(1.05rem, 2vw, 1.3rem);
}

.ccw-hub-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .4rem 1rem;
    margin: 0;
    font-size: .9rem;
}

.ccw-hub-meta span {
    font-weight: 700;
    color: var(--ccw-accent);
}

.ccw-hub-calendar {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--ccw-border);
}

.ccw-hub-focus {
    padding: .85rem 1rem;
    border-left: .35rem solid var(--ccw-accent);
    background: var(--ccw-soft);
}

.ccw-hub-calendar li {
    display: grid;
    grid-template-columns: 5rem 5rem 1fr;
    gap: .75rem;
    align-items: baseline;
    padding: .8rem;
    border-bottom: 1px solid var(--ccw-border);
}

.ccw-hub-calendar time,
.ccw-hub-calendar span {
    font-size: .9rem;
}

.ccw-hub-resources > div {
    white-space: normal;
    padding: 1rem;
    border-radius: .75rem;
    background: var(--ccw-soft);
}

@media (max-width: 560px) {
    .ccw-hub-calendar li {
        grid-template-columns: auto 1fr;
    }

    .ccw-hub-calendar a {
        grid-column: 1 / -1;
    }
}
