/* =============================================================================
   PSE Manager — Public / Frontend Styles
   Palette: IlliniPowerSports.com (confirmed from screenshot, April 2026)
   ============================================================================= */

/* ── CSS Variables ──────────────────────────────────────────────────────────── */
:root {
    --pse-dark:             #0D1B2A;
    --pse-coral:            #E8827A;
    --pse-logo-red:         #D94010;
    --pse-white:            #FFFFFF;
    --pse-link:             #2980B9;
    --pse-text:             #2C3E50;
    --pse-text-muted:       #7F8C8D;
    --pse-surface:          #FFFFFF;
    --pse-surface-alt:      #F4F6F9;
    --pse-border:           #E0E0E0;
    --pse-radius:           4px;
    --pse-gap:              24px;
    --pse-map-height:       380px;

    /* Status colours */
    --pse-upcoming:         #27AE60;
    --pse-ongoing:          #2980B9;
    --pse-postponed:        #F39C12;
    --pse-cancelled:        #E74C3C;
    --pse-completed:        #7F8C8D;
}

/* ── Section Header Bar ─────────────────────────────────────────────────────── */
/* Matches the coral bars used on IlliniPowerSports.com */
.pse-section-header {
    background-color:  var(--pse-coral);
    color:             var(--pse-white);
    font-size:         1.15rem;
    font-weight:       700;
    padding:           14px 20px;
    margin:            32px 0 20px;
    border-radius:     var(--pse-radius);
    letter-spacing:    .01em;
}


/* ── Event Hero Image (injected via the_content filter) ──────────────────────── */
.pse-event-hero-image {
    margin:        0 0 24px;
    border-radius: var(--pse-radius);
    overflow:      hidden;
    line-height:   0;         /* remove inline-block gap */
}
.pse-hero-img {
    width:         100%;
    max-height:    480px;
    object-fit:    cover;
    display:       block;
    border-radius: var(--pse-radius);
}

/* Small image variant (logos, thumbnails < 600px wide) — never stretch */
.pse-event-hero-image--contained {
    background:    var(--pse-surface-alt);
    border:        1px solid var(--pse-border);
    display:       flex;
    align-items:   center;
    justify-content: center;
    padding:       24px;
    min-height:    120px;
    max-height:    280px;
}
.pse-hero-img--contained {
    width:         auto;
    max-width:     100%;
    max-height:    220px;
    object-fit:    contain;
    border-radius: var(--pse-radius);
}


/* ── Breadcrumb ──────────────────────────────────────────────────────────────── */
.pse-breadcrumb {
    margin-bottom: 16px;
    font-size:     .82rem;
}
.pse-bc-list {
    display:     flex;
    flex-wrap:   wrap;
    align-items: center;
    gap:         4px;
    list-style:  none;
    margin:      0;
    padding:     0;
}
.pse-bc-item {
    display:     flex;
    align-items: center;
    gap:         4px;
    color:       var(--pse-text-muted);
}
.pse-bc-item a {
    color:           var(--pse-link);
    text-decoration: none;
}
.pse-bc-item a:hover { text-decoration: underline; }
.pse-bc-item--current { color: var(--pse-text); font-weight: 600; }
.pse-bc-sep { display: flex; align-items: center; color: var(--pse-text-muted); }

/* ── Event Placeholder Image ─────────────────────────────────────────────────── */
.pse-event-placeholder {
    display:         flex;
    flex-direction:  column;
    align-items:     center;
    justify-content: center;
    gap:             12px;
    height:          280px;
    border-radius:   var(--pse-radius);
    margin:          0 0 24px;
    position:        relative;
    overflow:        hidden;
}
.pse-event-placeholder__icon {
    opacity: .9;
    filter:  drop-shadow( 0 2px 8px rgba(0,0,0,.25) );
}
.pse-event-placeholder__label {
    font-size:      .85rem;
    font-weight:    700;
    color:          rgba(255,255,255,.95);
    text-transform: uppercase;
    letter-spacing: .1em;
    background:     rgba(0,0,0,.25);
    padding:        5px 16px;
    border-radius:  20px;
}
.pse-event-placeholder__event-name {
    font-size:      1.05rem;
    font-weight:    700;
    color:          #fff;
    text-align:     center;
    max-width:      80%;
    text-shadow:    0 1px 4px rgba(0,0,0,.4);
    line-height:    1.3;
}

/* ── Event Header Block ─────────────────────────────────────────────────────── */
.pse-event-header {
    margin-bottom: 8px;
}

/* Badges row */
.pse-event-badges {
    display:   flex;
    flex-wrap: wrap;
    gap:       8px;
    margin-bottom: 18px;
}

.pse-status-badge {
    display:        inline-block;
    padding:        5px 14px;
    border-radius:  20px;
    font-size:      .8rem;
    font-weight:    700;
    color:          var(--pse-white);
    text-transform: uppercase;
    letter-spacing: .06em;
}
.pse-status--upcoming  { background: var(--pse-upcoming);  }
.pse-status--ongoing   { background: var(--pse-ongoing);   }
.pse-status--postponed { background: var(--pse-postponed); }
.pse-status--cancelled { background: var(--pse-cancelled); }
.pse-status--completed { background: var(--pse-completed); }

.pse-taxonomy-badge {
    display:       inline-block;
    padding:       5px 12px;
    border-radius: 20px;
    font-size:     .8rem;
    font-weight:   600;
}
.pse-badge--sport { background: #FEF9E7; color: #7D6608; border: 1px solid #F9E79F; }
.pse-badge--type  { background: #EBF5FB; color: #1A5276; border: 1px solid #AED6F1; }

/* Meta grid */
.pse-event-meta-grid {
    display:   flex;
    flex-wrap: wrap;
    gap:       12px 32px;
    padding:   18px 20px;
    background: var(--pse-surface-alt);
    border:     1px solid var(--pse-border);
    border-radius: var(--pse-radius);
    margin-bottom: 20px;
}
.pse-meta-item {
    display:     flex;
    align-items: flex-start;
    gap:         10px;
}
.pse-meta-icon {
    font-size:  1.3rem;
    line-height: 1.4;
    flex-shrink: 0;
}
.pse-meta-content {
    display:        flex;
    flex-direction: column;
    gap:            2px;
}
.pse-meta-label {
    font-size:   .7rem;
    font-weight: 700;
    color:       var(--pse-text-muted);
    text-transform: uppercase;
    letter-spacing: .08em;
}
.pse-meta-value {
    font-size:   1rem;
    font-weight: 700;
    color:       var(--pse-dark);
    display:     flex;
    flex-direction: column;
}
.pse-meta-sub {
    font-size:   .85rem;
    font-weight: 400;
    color:       var(--pse-text-muted);
}

/* CTA button area */
.pse-event-cta { margin-bottom: 20px; }

/* Notices */
.pse-event-notice {
    padding:       12px 16px;
    border-radius: var(--pse-radius);
    font-size:     .95rem;
    font-weight:   600;
    margin-bottom: 16px;
}
.pse-notice--postponed { background: #FEF9E7; color: #7D6608; border-left: 4px solid var(--pse-postponed); }
.pse-notice--cancelled { background: #FDEDEC; color: #C0392B; border-left: 4px solid var(--pse-cancelled); }

/* ── Buttons ─────────────────────────────────────────────────────────────────── */
.pse-btn {
    display:         inline-flex;
    align-items:     center;
    gap:             7px;
    padding:         11px 24px;
    border-radius:   var(--pse-radius);
    font-size:       .9rem;
    font-weight:     700;
    text-transform:  uppercase;
    letter-spacing:  .04em;
    text-decoration: none;
    cursor:          pointer;
    transition:      opacity .15s ease;
    border:          2px solid transparent;
}
.pse-btn:hover { opacity: .87; text-decoration: none; }

.pse-btn--primary {
    background: var(--pse-coral);
    color:      var(--pse-white);
    border-color: var(--pse-coral);
}
.pse-btn--outline {
    background:  transparent;
    color:       var(--pse-coral);
    border-color: var(--pse-coral);
}

/* ── Venue Block ─────────────────────────────────────────────────────────────── */
.pse-venue-block { margin-top: 32px; }

.pse-venue-body {
    display: flex;
    gap:     var(--pse-gap);
    align-items: flex-start;
}

.pse-venue-details {
    flex:      1;
    min-width: 220px;
}
.pse-venue-name {
    font-size:   1.2rem;
    font-weight: 700;
    color:       var(--pse-dark);
    margin:      0 0 12px;
}
.pse-venue-address,
.pse-venue-contact {
    font-size:     .9rem;
    color:         var(--pse-text);
    margin-bottom: 8px;
    display:       flex;
    align-items:   center;
    gap:           7px;
}
.pse-detail-icon { font-size: 1rem; flex-shrink: 0; }
.pse-venue-contact a { color: var(--pse-link); text-decoration: none; }
.pse-venue-contact a:hover { text-decoration: underline; }
.pse-directions-btn { margin-top: 16px; font-size: .8rem; padding: 8px 18px; }

/* Map */
.pse-venue-map-wrap {
    flex:       1;
    min-width:  280px;
    max-width:  520px;
}
.pse-map {
    height:        var(--pse-map-height);
    width:         100%;
    border-radius: var(--pse-radius);
    border:        1px solid var(--pse-border);
    z-index:       0;    /* Prevent map from overlapping sticky headers */
}
.pse-map-placeholder {
    height:          var(--pse-map-height);
    display:         flex;
    flex-direction:  column;
    align-items:     center;
    justify-content: center;
    background:      var(--pse-surface-alt);
    border:          1px dashed var(--pse-border);
    border-radius:   var(--pse-radius);
    text-align:      center;
    color:           var(--pse-text-muted);
    text-decoration: none;
}

/* Leaflet custom marker */
.pse-map-marker { background: none; border: none; }
.pse-map-marker-inner { font-size: 32px; line-height: 1; filter: drop-shadow(0 2px 4px rgba(0,0,0,.3)); }

.pse-map-popup strong { color: var(--pse-dark); }
.pse-map-popup span   { font-size: .85rem; color: var(--pse-text-muted); }

/* ── Event Cards Grid (shortcodes) ──────────────────────────────────────────── */
.pse-events-grid {
    display:               grid !important;
    grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
    gap:                   var(--pse-gap);
    list-style:            none;
    padding:               0;
    margin:                0;
}
.pse-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.pse-grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.pse-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }

.pse-events-grid .pse-event-card,
.pse-events-grid .pse-event-card * { box-sizing: border-box; }
.pse-events-grid .pse-event-card {
    background:    var(--pse-surface);
    border:        1px solid var(--pse-border);
    border-radius: var(--pse-radius);
    overflow:      hidden;
    transition:    box-shadow .2s ease, transform .15s ease;
}
.pse-events-grid .pse-event-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,.1);
    transform:  translateY(-2px);
}
.pse-events-grid .pse-event-card__link {
    text-decoration: none;
    color:           inherit;
    display:         block;
    float:           none;
    clear:           both;
}

.pse-events-grid .pse-event-card__image-wrap {
    position: relative;
    overflow: hidden;
    float:    none;
    width:    100%;
}
.pse-events-grid .pse-event-card__image {
    width:        100%;
    aspect-ratio: 16 / 9;
    object-fit:   cover;
    display:      block;
    transition:   transform .3s ease;
}
.pse-event-card:hover .pse-events-grid .pse-event-card__image { transform: scale(1.03); }

.pse-events-grid .pse-event-card__image--placeholder {
    aspect-ratio: 16 / 9;
    display:      flex;
    align-items:  center;
    justify-content: center;
    background:   var(--pse-surface-alt);
    font-size:    3rem;
}

.pse-events-grid .pse-event-card__status-pill {
    position:       absolute;
    top:            10px;
    left:           10px;
    padding:        3px 10px;
    border-radius:  20px;
    font-size:      .7rem;
    font-weight:    700;
    color:          var(--pse-white);
    text-transform: uppercase;
    letter-spacing: .05em;
}

.pse-events-grid .pse-event-card__body { padding: 16px; }
.pse-events-grid .pse-event-card__title {
    font-size:   1rem;
    font-weight: 700;
    color:       var(--pse-dark);
    margin:      0 0 8px;
    line-height: 1.3;
}
.pse-event-card__date,
.pse-events-grid .pse-event-card__venue {
    font-size:     .85rem;
    color:         var(--pse-text-muted);
    margin-bottom: 5px;
    display:       flex;
    align-items:   center;
    gap:           5px;
}
.pse-events-grid .pse-event-card__tags {
    display:   flex;
    flex-wrap: wrap;
    gap:       5px;
    margin:    10px 0 12px;
}
.pse-tag {
    background:    var(--pse-surface-alt);
    border:        1px solid var(--pse-border);
    border-radius: 20px;
    font-size:     .72rem;
    padding:       2px 10px;
    color:         var(--pse-text);
}
.pse-events-grid .pse-event-card__cta {
    font-size:   .85rem;
    font-weight: 700;
    color:       var(--pse-coral);
    display:     block;
    margin-top:  4px;
}

.pse-no-events {
    color:      var(--pse-text-muted);
    font-style: italic;
    padding:    16px 0;
}


/* ── SVG Icons ───────────────────────────────────────────────────────────────── */
.pse-icon { display: inline-block; vertical-align: middle; flex-shrink: 0; }
.pse-meta-svg  { display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; flex-shrink: 0; }
.pse-detail-svg { display: flex; align-items: center; flex-shrink: 0; }

/* ── Venue Action Buttons ─────────────────────────────────────────────────────── */
.pse-venue-actions {
    display:   flex;
    flex-wrap: wrap;
    gap:       10px;
    margin-top: 20px;
}
.pse-btn--sm {
    padding:   8px 16px;
    font-size: .8rem;
}

/* ── Related Events ──────────────────────────────────────────────────────────── */
.pse-related-events { margin-top: 40px; }

/* ── Responsive ─────────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .pse-venue-body           { flex-direction: column; }
    .pse-venue-map-wrap       { max-width: 100%; width: 100%; }
    .pse-grid--cols-3,
    .pse-grid--cols-4         { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
    .pse-event-meta-grid      { flex-direction: column; gap: 12px; }
    .pse-events-grid,
    .pse-grid--cols-2,
    .pse-grid--cols-3,
    .pse-grid--cols-4         { grid-template-columns: 1fr; }
    .pse-map                  { --pse-map-height: 260px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PSE Filter Bar
   ═══════════════════════════════════════════════════════════════════════════ */

.pse-filter-bar {
    background:    var(--pse-surface-alt);
    border:        1px solid var(--pse-border);
    border-radius: var(--pse-radius);
    padding:       16px 20px;
    margin-bottom: 24px;
}
.pse-filter-bar__controls {
    display:     flex;
    flex-wrap:   wrap;
    gap:         12px;
    align-items: flex-end;
}
.pse-filter-group {
    display:        flex;
    flex-direction: column;
    gap:            5px;
    min-width:      160px;
}
.pse-filter-label {
    font-size:   .75rem;
    font-weight: 700;
    color:       var(--pse-text-muted);
    text-transform: uppercase;
    letter-spacing: .06em;
    display:     flex;
    align-items: center;
    gap:         4px;
}
.pse-filter-select {
    padding:       8px 12px;
    border:        1px solid var(--pse-border);
    border-radius: var(--pse-radius);
    font-size:     .875rem;
    color:         var(--pse-text);
    background:    var(--pse-white);
    cursor:        pointer;
    transition:    border-color .15s;
}
.pse-filter-select:focus {
    border-color: var(--pse-coral);
    outline:      none;
    box-shadow:   0 0 0 2px rgba(232,130,122,.2);
}
.pse-filter-group--toggle { justify-content: flex-end; }
.pse-filter-toggle {
    display:     flex;
    align-items: center;
    gap:         8px;
    cursor:      pointer;
    font-size:   .875rem;
    color:       var(--pse-text);
    user-select: none;
}
.pse-toggle-input { display: none; }
.pse-toggle-track {
    width:         40px;
    height:        22px;
    background:    var(--pse-border);
    border-radius: 11px;
    position:      relative;
    transition:    background .2s;
    flex-shrink:   0;
}
.pse-toggle-track::after {
    content:       '';
    position:      absolute;
    width:         16px;
    height:        16px;
    background:    #fff;
    border-radius: 50%;
    top:           3px;
    left:          3px;
    transition:    left .2s;
    box-shadow:    0 1px 3px rgba(0,0,0,.2);
}
.pse-toggle-input:checked + .pse-toggle-track { background: var(--pse-coral); }
.pse-toggle-input:checked + .pse-toggle-track::after { left: 21px; }

.pse-filter-reset {
    align-self:  flex-end;
    white-space: nowrap;
}

.pse-filter-bar__status {
    margin-top:  10px;
    font-size:   .85rem;
    color:       var(--pse-text-muted);
    display:     flex;
    align-items: center;
    gap:         12px;
    min-height:  20px;
}
.pse-filter-count { font-weight: 600; color: var(--pse-text); }
.pse-filter-loading {
    display:     flex;
    align-items: center;
    gap:         6px;
}
.pse-spin-dot {
    width:         12px;
    height:        12px;
    border:        2px solid var(--pse-border);
    border-top-color: var(--pse-coral);
    border-radius: 50%;
    animation:     pse-spin .6s linear infinite;
    display:       inline-block;
}
@keyframes pse-spin { to { transform: rotate(360deg); } }

/* ═══════════════════════════════════════════════════════════════════════════
   PSE Pagination
   ═══════════════════════════════════════════════════════════════════════════ */

.pse-pagination {
    margin-top: 32px;
    display:    flex;
    justify-content: center;
}
.pse-pagination__inner {
    display:     flex;
    align-items: center;
    gap:         4px;
    flex-wrap:   wrap;
    justify-content: center;
}
.pse-page-btn {
    display:       inline-flex;
    align-items:   center;
    gap:           4px;
    min-width:     36px;
    height:        36px;
    padding:       0 10px;
    border:        1px solid var(--pse-border);
    border-radius: var(--pse-radius);
    background:    var(--pse-white);
    color:         var(--pse-text);
    font-size:     .875rem;
    cursor:        pointer;
    transition:    all .15s;
}
.pse-page-btn:hover {
    border-color:  var(--pse-coral);
    color:         var(--pse-coral);
}
.pse-page-btn--active {
    background:    var(--pse-coral);
    border-color:  var(--pse-coral);
    color:         #fff;
    font-weight:   700;
}
.pse-page-ellipsis {
    color:      var(--pse-text-muted);
    padding:    0 4px;
    font-size:  .875rem;
}
.pse-page-prev, .pse-page-next { font-weight: 600; }

/* ═══════════════════════════════════════════════════════════════════════════
   PSE FullCalendar customisation
   ═══════════════════════════════════════════════════════════════════════════ */

.pse-calendar-wrap {
    position: relative;
    margin:   0 0 32px;
}
.pse-fullcalendar {
    background:    var(--pse-white);
    border:        1px solid var(--pse-border);
    border-radius: var(--pse-radius);
    padding:       16px;
    min-height:    400px;
}

/* FullCalendar toolbar overrides — match site colour palette */
.pse-fullcalendar .fc-toolbar-title {
    font-size:   1.15rem !important;
    font-weight: 700;
    color:       var(--pse-dark);
}
.pse-fullcalendar .fc-button {
    background:    var(--pse-dark) !important;
    border-color:  var(--pse-dark) !important;
    font-size:     .8rem !important;
    padding:       5px 12px !important;
    border-radius: var(--pse-radius) !important;
}
.pse-fullcalendar .fc-button:hover,
.pse-fullcalendar .fc-button-active {
    background:   var(--pse-coral) !important;
    border-color: var(--pse-coral) !important;
}
.pse-fullcalendar .fc-today-button {
    background:   var(--pse-coral) !important;
    border-color: var(--pse-coral) !important;
}
.pse-fullcalendar .fc-day-today {
    background: rgba(232,130,122,.08) !important;
}
.pse-fullcalendar .fc-daygrid-day-number,
.pse-fullcalendar .fc-col-header-cell-cushion {
    color:          var(--pse-text);
    font-weight:    600;
    text-decoration: none;
}
.pse-fullcalendar .fc-event {
    cursor:        pointer;
    border-radius: 3px;
    font-size:     .78rem;
    padding:       1px 4px;
}
.pse-fullcalendar .fc-list-event-title a {
    color: var(--pse-dark);
    text-decoration: none;
}
.pse-fullcalendar .fc-list-event-title a:hover { color: var(--pse-coral); }

/* Loading overlay */
.pse-calendar-loading {
    display:         flex;
    align-items:     center;
    justify-content: center;
    gap:             10px;
    padding:         40px;
    color:           var(--pse-text-muted);
    font-size:       .9rem;
}
.pse-cal-spinner {
    width:         24px;
    height:        24px;
    border:        3px solid var(--pse-border);
    border-top-color: var(--pse-coral);
    border-radius: 50%;
    animation:     pse-spin .7s linear infinite;
}

/* ── Calendar Lightbox ─────────────────────────────────────────────────── */
.pse-cal-popup {
    position:        fixed;
    inset:           0;
    z-index:         99999;
    display:         none;
    align-items:     center;
    justify-content: center;
}
.pse-cal-popup__overlay {
    position:        absolute;
    inset:           0;
    background:      rgba(13,27,42,.72);
    backdrop-filter: blur(3px);
}
.pse-cal-popup__inner {
    position:       relative;
    background:     var(--pse-white);
    border-radius:  12px;
    width:          min(480px, 92vw);
    max-height:     88vh;
    overflow-y:     auto;
    box-shadow:     0 24px 80px rgba(0,0,0,.35);
    z-index:        1;
    display:        flex;
    flex-direction: column;
}
.pse-cal-popup__close {
    position:        absolute;
    top:             14px;
    right:           14px;
    width:           32px;
    height:          32px;
    display:         flex;
    align-items:     center;
    justify-content: center;
    background:      rgba(0,0,0,.06);
    border:          none;
    border-radius:   50%;
    cursor:          pointer;
    z-index:         2;
    transition:      background .15s;
    padding:         0;
}
.pse-cal-popup__close:hover { background: rgba(0,0,0,.14); }
.pse-lb-header {
    padding:       24px 24px 20px;
    border-bottom: 3px solid #E8827A;
}
.pse-lb-status {
    display:        inline-block;
    padding:        4px 14px;
    border-radius:  20px;
    font-size:      .7rem;
    font-weight:    700;
    color:          #fff;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom:  10px;
}
.pse-lb-title {
    font-size:    1.35rem;
    font-weight:  800;
    color:        var(--pse-dark);
    margin:       0;
    line-height:  1.25;
    padding-right: 20px;
}
.pse-lb-meta {
    padding:        20px 24px;
    display:        flex;
    flex-direction: column;
    gap:            12px;
}
.pse-lb-row {
    display:     flex;
    align-items: flex-start;
    gap:         10px;
    font-size:   .95rem;
    color:       var(--pse-text);
    line-height: 1.4;
}
.pse-lb-icon {
    width:       18px;
    height:      18px;
    flex-shrink: 0;
    color:       var(--pse-coral);
    margin-top:  2px;
}
.pse-lb-actions { padding: 0 24px 24px; }
.pse-lb-btn {
    display:         block;
    text-align:      center;
    padding:         13px 24px;
    background:      var(--pse-coral);
    color:           #fff;
    border-radius:   6px;
    font-weight:     700;
    font-size:       .95rem;
    text-decoration: none;
    transition:      opacity .15s, transform .1s;
}
.pse-lb-btn:hover { opacity:.9; transform:translateY(-1px); text-decoration:none; color:#fff; }

/* No events message */
.pse-no-events-message {
    text-align: center;
    padding:    48px 24px;
    color:      var(--pse-text-muted);
}
.pse-no-events-icon { margin-bottom: 16px; }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 700px) {
    .pse-filter-group  { min-width: 100%; }
    .pse-filter-bar__controls { flex-direction: column; }
    .pse-fullcalendar  { padding: 8px; }
    .pse-fullcalendar .fc-toolbar { flex-direction: column; gap: 8px; }
}

/* ── Event Card — Directory View ────────────────────────────────────────────── */
.pse-event-card__image--placeholder {
    aspect-ratio:    16/9;
    display:         flex;
    flex-direction:  column;
    align-items:     center;
    justify-content: center;
    gap:             10px;
}
.pse-placeholder-label {
    font-size:      10px;
    font-weight:    700;
    color:          rgba(255,255,255,.9);
    text-transform: uppercase;
    letter-spacing: .1em;
    border:         1px solid;
    padding:        3px 12px;
    border-radius:  20px;
}
.pse-event-card__cat-pill,
.pse-events-grid .pse-event-card__cat-pill {
    position:       absolute !important;
    bottom:         10px;
    left:           10px;
    color:          #fff;
    font-size:      .65rem;
    font-weight:    700;
    text-transform: uppercase;
    letter-spacing: .07em;
    padding:        3px 10px;
    border-radius:  20px;
}
.pse-event-card__meta {
    display:     flex;
    align-items: flex-start;
    gap:         5px;
    font-size:   .82rem;
    color:       #7F8C8D;
    margin:      0 0 5px;
    line-height: 1.35;
    flex-wrap:   wrap;
}
.pse-event-card__time {
    color:       var(--pse-coral);
    font-weight: 600;
    margin-left: 2px;
}
.pse-event-card__venue-name {
    color:       #2C3E50;
    font-weight: 600;
}
.pse-event-card__venue-loc {
    color:       #7F8C8D;
    font-size:   .78rem;
    margin-left: 2px;
}
.pse-event-card__venue-loc::before { content: ' · '; }
.pse-event-card__footer {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    margin-top:      12px;
    padding-top:     10px;
    border-top:      1px solid var(--pse-border);
}
.pse-event-card__cta {
    display:       flex;
    align-items:   center;
    gap:           4px;
    font-size:     .82rem;
    font-weight:   700;
    color:         var(--pse-coral);
}
.pse-event-card__ticket-badge {
    display:       flex;
    align-items:   center;
    gap:           4px;
    font-size:     .72rem;
    font-weight:   700;
    color:         #27AE60;
    background:    #EAFAF1;
    padding:       2px 8px;
    border-radius: 20px;
    border:        1px solid #A9DFBF;
}
