/* Events calendar — JWA-style layout, SouthWest branding */
.page-hero--compact { padding-bottom: clamp(1.5rem, 4vw, 2.5rem); }

.events-calendar {
    padding-block: clamp(1.5rem, 4vw, 2.5rem);
    background: var(--cream);
}

.events-calendar__subscribe { margin: 0 0 1.25rem; }
.events-calendar__subscribe-text {
    display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem .55rem;
    margin: 0; font-size: .92rem; color: var(--muted);
}
.events-calendar__subscribe-label { font-weight: 600; color: var(--ink-soft); }
.events-calendar__subscribe-sep { opacity: .45; }
.events-calendar__subscribe-text a,
.events-calendar__subscribe-copy {
    color: var(--red); text-decoration: underline; text-underline-offset: .12em;
    background: none; border: 0; padding: 0; font: inherit; cursor: pointer;
}
.events-calendar__subscribe-copy:hover,
.events-calendar__subscribe-text a:hover { color: var(--red-dark); }

.events-calendar__filters {
    display: grid; gap: .85rem; padding: 1.1rem 1.2rem; margin-bottom: 1.25rem;
    background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
}
.events-calendar__filters-row { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem; }
.events-calendar__field { flex: 1 1 10rem; min-width: 0; }
.events-calendar__field--search { flex: 2 1 14rem; }
.events-calendar__control {
    width: 100%; min-height: 2.5rem; padding: .5rem .75rem;
    border: 1px solid var(--line); border-radius: var(--radius-sm);
    font: inherit; font-size: .95rem; background: var(--paper); color: var(--text);
}
.events-calendar__filters-row--period {
    align-items: center; gap: .5rem; padding-top: .65rem; border-top: 1px solid var(--line);
}
.events-calendar__year { flex: 0 0 auto; }
.events-calendar__year .events-calendar__control { min-width: 7rem; font-weight: 600; }

.events-calendar__months {
    display: flex; flex: 1 1 auto; min-width: 0; overflow-x: auto;
    border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--cream);
}
.events-calendar__month {
    flex: 1 0 auto; min-width: 2.75rem; padding: .45rem .65rem;
    border-right: 1px solid var(--line); font-size: .88rem; font-weight: 600;
    color: var(--muted); text-align: center; text-decoration: none; white-space: nowrap;
}
.events-calendar__month:last-child { border-right: 0; }
.events-calendar__month:hover { color: var(--red); background: rgba(213, 31, 43, .06); }
.events-calendar__month.is-active {
    color: var(--ink); background: var(--paper);
    box-shadow: inset 0 -2px 0 var(--red);
}
.events-calendar__month-initial { display: none; }

.events-calendar__filters-row--actions { align-items: center; gap: 1rem; }
.events-calendar__toggle {
    display: inline-flex; align-items: center; min-height: 2.25rem; padding: .45rem 1rem;
    border: 1px solid #2f8f46; border-radius: var(--radius-sm); background: #2f8f46;
    color: #fff; font-size: .88rem; font-weight: 700; text-decoration: none;
}
.events-calendar__toggle:hover { background: #247a3a; color: #fff; }
.events-calendar__toggle.is-active { background: var(--paper); color: #2f8f46; }
.events-calendar__clear { font-size: .88rem; color: var(--muted); }
.events-calendar__clear:hover { color: var(--red); }

.events-calendar__summary { margin-bottom: 1.25rem; }
.events-calendar__count { margin: 0; font-size: .92rem; color: var(--muted); }
.events-calendar__count strong { color: var(--ink); }

.events-calendar__results { display: grid; gap: 2rem; }
.events-calendar__group-title {
    margin: 0 0 .65rem; padding-bottom: .45rem;
    border-bottom: 2px solid var(--red);
    font-family: var(--font-display); font-size: 1.35rem; text-transform: uppercase;
    color: var(--ink);
}
.events-calendar__list {
    border: 1px solid var(--line); border-radius: var(--radius);
    overflow: hidden; background: var(--paper);
}
.events-calendar__item {
    position: relative; display: grid;
    grid-template-columns: minmax(9rem, 13rem) 5.5rem minmax(0, 1fr) auto;
    gap: .75rem 1rem;
    align-items: center; padding: 1rem 1.2rem;
    border-bottom: 1px solid var(--line);
}
.events-calendar__item-logo {
    width: 5.5rem;
    height: 3.5rem;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.events-calendar__item-logo--empty {
    visibility: hidden;
}
.events-calendar__item-logo img {
    display: block;
    width: auto;
    height: 100%;
    max-width: 100%;
    object-fit: contain;
    object-position: center;
}
.events-calendar__item:last-child { border-bottom: 0; }
.events-calendar__item:hover { background: var(--cream); }
.events-calendar__past-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: .1rem .45rem;
    border-radius: 6px;
    background: rgba(22, 24, 29, .08);
    color: var(--muted);
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.events-calendar__item--past {
    background: var(--cream);
    opacity: .82;
}
.events-calendar__item--past:hover {
    opacity: 1;
    background: var(--cream-2);
}
.events-calendar__item--past .events-calendar__item-date {
    color: var(--muted);
}
.events-calendar__item--past .events-calendar__item-title a {
    color: var(--muted);
    font-weight: 600;
}
.events-calendar__item--past .events-calendar__item-meta {
    color: var(--muted);
}
.events-calendar__item--past .events-calendar__meta-host,
.events-calendar__item--past .events-calendar__meta-location {
    color: var(--muted);
}
.events-calendar__item--past .events-calendar__meta-tag {
    background: rgba(22, 24, 29, .06) !important;
    color: var(--muted) !important;
    border-color: var(--line) !important;
}
.events-calendar__item--past .events-calendar__item-logo img {
    filter: grayscale(1);
    opacity: .72;
}
.events-calendar__item-hit { position: absolute; inset: 0; z-index: 1; }
.events-calendar__item-title a { position: relative; z-index: 0; pointer-events: none; color: var(--ink); text-decoration: none; }
.events-calendar__item-title { margin: 0; font-family: var(--font-body); font-size: 1.05rem; text-transform: none; letter-spacing: 0; }
.events-calendar__item-actions {
    position: relative; z-index: 2; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem;
}
.events-calendar__item-date {
    display: flex; flex-direction: column; align-items: flex-start; gap: .35rem;
    font-size: .88rem; font-weight: 600; color: var(--ink-soft); line-height: 1.35;
}
.events-calendar__item-meta {
    display: flex; flex-wrap: wrap; gap: .35rem .5rem; margin-top: .35rem;
    font-size: .78rem; color: var(--muted);
}
.events-calendar__meta-tag {
    display: inline-flex;
    align-items: center;
    padding: .04rem .32rem;
    border-radius: 999px;
    border: 1px solid var(--line);
    font-family: var(--font-body);
    font-size: .52rem;
    font-weight: 700;
    line-height: 1.35;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.events-calendar__meta-host { font-weight: 600; }
.events-calendar__item-date .event-countdown {
    display: inline-block;
    width: fit-content;
    max-width: 100%;
    padding: .12rem .4rem;
    border-radius: 6px;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.event-countdown--upcoming { background: var(--ink); color: #fff; }
.event-countdown--today { background: var(--amber); color: var(--ink); }
.event-countdown--past { background: var(--cream-2); color: var(--muted); }

.events-calendar__empty {
    padding: 2rem 1.5rem; text-align: center; background: var(--paper);
    border: 1px dashed var(--line); border-radius: var(--radius);
}
.events-calendar__empty-title { margin: 0 0 .5rem; font-weight: 800; color: var(--ink); }
.events-calendar__empty-text { margin: 0; color: var(--muted); }
.events-calendar__foot { margin-top: 2rem; text-align: center; }

@media (max-width: 767px) {
    .events-calendar__item { grid-template-columns: 1fr; gap: .65rem; }
    .events-calendar__item-logo--empty { display: none; }
    .events-calendar__item-actions { justify-content: flex-start; }
    .events-calendar__month-full { display: none; }
    .events-calendar__month-initial { display: inline; }
}
