.grs-reservation-timer {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
    width: 100%;
    padding: 12px 16px;
    margin: 0 0 20px;
    border-radius: 4px;
    background: #f1f5f8;
    color: #10263e;
    font: 400 16px/1.4 Geist, Arial, sans-serif;
    text-align: left;
}
.grs-reservation-timer[hidden], .grs-reservation-timer [hidden] { display: none !important; }
.grs-reservation-timer__icon { flex: 0 0 24px; width: 24px; height: 24px; }
.grs-reservation-timer__message { flex: 0 1 auto; min-width: 0; }
.grs-reservation-timer__clock { font-weight: 700; color: #006daf; font-variant-numeric: tabular-nums; white-space: nowrap; }
body .grs-reservation-timer a, body .elementor .grs-reservation-timer a { margin-left: auto; color: #005e98; font-size: inherit; font-weight: 600; text-decoration: underline; white-space: nowrap; padding: 6px 0; }
.grs-reservation-timer a:focus-visible { outline: 3px solid #0071b9; outline-offset: 4px; }
.grs-reservation-timer[data-state="expired"], .grs-reservation-timer[data-state="error"] { background: #fff4dd; }
.grs-reservation-timer__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
/* The existing hero height remains; reserve room above its heading when a hold exists. */
body .elementor .gc-ticket-hero.grs-reservation-hero { padding-top: var(--grs-timer-space); }
.grs-reservation-timer--hero { position: absolute; top: var(--grs-timer-top, 160px); left: 50%; transform: translateX(-50%); width: calc(100% - 48px); max-width: 1200px; z-index: 2; margin: 0; }
/* Give the timer its own strip; never cover the map, legend or close control. */
.tc_seating_map .grs-reservation-timer--map { position: absolute; top: 0; left: 0; z-index: 2147483647; margin: 0; border-radius: 0; }
.tc_seating_map.grs-reservation-map > .tc-wrapper { margin-top: var(--grs-timer-height); height: calc(100vh - var(--grs-timer-height)) !important; height: calc(100dvh - var(--grs-timer-height)) !important; }
.tc_seating_map.grs-reservation-map > .tc-seating-legend-wrap,
.tc_seating_map.grs-reservation-map > .tc-full-screen { top: var(--grs-timer-height); }
@media (max-width: 480px) {
    .grs-reservation-timer { font-size: 14px; gap: 6px 8px; padding: 10px 12px; }
    .grs-reservation-timer__icon { flex-basis: 20px; width: 20px; height: 20px; }
    body .grs-reservation-timer a, body .elementor .grs-reservation-timer a { padding: 8px 0; }
    .grs-reservation-timer--hero { width: calc(100% - 32px); }
}
