/* Countdown timer block (psp/countdown). Matches the landing page: Oswald numbers in the brand blue #19AAE1. */
.psp-countdown { --cd-bg: #0b1014; --cd-fg: #fff; --cd-num: #19aae1; --cd-muted: #9fb3bf; box-sizing: border-box; width: 100%; max-width: 760px; margin: 32px auto; padding: 24px 28px 22px; background: var(--cd-bg); color: var(--cd-fg); border-top: 3px solid #19aae1; text-align: center; font-family: PSPRoboto, Arial, sans-serif; }
.psp-countdown--light { --cd-bg: #fff; --cd-fg: #10191e; --cd-muted: #56646b; box-shadow: inset 0 0 0 1px #d8e0e3; }
.psp-countdown--blue { --cd-bg: #19aae1; --cd-fg: #fff; --cd-num: #fff; --cd-muted: #e8f7fd; border-top-color: #fff; }
.psp-countdown[hidden] { display: none !important; }
.psp-countdown .psp-countdown__label { margin: 0 0 14px; font: 700 0.85rem/1.4 PSPRoboto, Arial, sans-serif; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cd-muted); }
.psp-countdown .psp-countdown__units { display: flex; justify-content: center; gap: clamp(14px, 4vw, 44px); }
.psp-countdown .psp-countdown__unit { display: flex; flex-direction: column; align-items: center; min-width: 58px; }
.psp-countdown .psp-countdown__unit b { font: 500 clamp(2.3rem, 6vw, 3.6rem)/1 PSPOswald, "Arial Narrow", sans-serif; color: var(--cd-num); font-variant-numeric: tabular-nums; }
.psp-countdown .psp-countdown__unit small { margin-top: 6px; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cd-muted); }
.psp-countdown .psp-countdown__ended { margin: 0; font: 500 1.6rem/1.3 PSPOswald, "Arial Narrow", sans-serif; color: var(--cd-fg); }
.psp-countdown.is-ended .psp-countdown__units, .psp-countdown.is-ended .psp-countdown__label { display: none; }
@media (max-width: 640px) {
	.psp-countdown { padding: 20px 14px 18px; margin: 24px auto; }
	.psp-countdown .psp-countdown__unit { min-width: 0; }
}
/* "Bar across the page" style: a slim full-width strip, label and numbers on one line (two on phones). */
.psp-countdown--bar { --cd-bg: #0b1014; --cd-num: #19aae1; --cd-muted: #9fb3bf; display: flex; align-items: center; justify-content: center; gap: 28px; max-width: none; margin: 0; padding: 10px 20px; border-top: 0; border-bottom: 1px solid rgba(25, 170, 225, 0.35); }
.psp-countdown--bar .psp-countdown__label { margin: 0; font-size: 0.8rem; color: #fff; }
.psp-countdown--bar .psp-countdown__units { gap: 22px; }
.psp-countdown--bar .psp-countdown__unit { flex-direction: row; align-items: baseline; gap: 6px; min-width: 0; }
.psp-countdown--bar .psp-countdown__unit b { font-size: 1.75rem; }
.psp-countdown--bar .psp-countdown__unit small { margin-top: 0; font-size: 0.68rem; }
.psp-countdown--bar .psp-countdown__ended { font-size: 1.15rem; }
@media (max-width: 640px) {
	.psp-countdown--bar { flex-direction: column; gap: 4px; margin: 0; padding: 9px 12px 10px; }
	.psp-countdown--bar .psp-countdown__units { gap: 14px; }
	.psp-countdown--bar .psp-countdown__unit { gap: 4px; }
	.psp-countdown--bar .psp-countdown__unit b { font-size: 1.45rem; }
	.psp-countdown--bar .psp-countdown__unit small { font-size: 0.6rem; letter-spacing: 0.08em; }
}
/* Note under every Reserve button ("Only 4 spots left!"), set in the countdown block's Reserve buttons panel.
   .psp-page in front raises it above the page's own span rules (they are scoped with :where(.psp-page)). */
.psp-page .psp-spots-note { display: block; flex-basis: 100%; margin: 10px 0 0; font: 700 0.875rem/1.35 PSPRoboto, Arial, sans-serif; letter-spacing: 0.02em; text-transform: none; color: #d62d20; }
.psp-page .psp-spots-note::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: currentColor; vertical-align: 1px; animation: psp-spots-pulse 1.6s ease-in-out infinite; }
.psp-page .dark .psp-spots-note, .psp-page .experience-modal .psp-spots-note { color: #ff5c50; }
/* The registration card is white inside a dark section, and centred. */
.psp-page .registration-card .psp-spots-note { color: #d62d20; text-align: center; }
/* Buttons that sit in a row: the note goes on its own line right under the button. */
.psp-page :is(.actions, .detail-actions):has(> .psp-spots-note) { flex-wrap: wrap; row-gap: 12px; }
.psp-page :is(.actions, .detail-actions) > .psp-spots-note { margin-top: 0; }
/* Floating bottom bar: a red badge on the bar's top edge, above the Reserve button. */
.psp-page .mobile-reserve > .psp-spots-note { position: absolute; top: 0; right: 17px; flex-basis: auto; margin: 0; padding: 4px 11px; border-radius: 999px; background: #d62d20; color: #fff; font-size: 0.75rem; white-space: nowrap; transform: translateY(-58%); box-shadow: 0 4px 12px rgba(7, 26, 34, 0.2); }
@media (max-width: 640px) { .psp-page .mobile-reserve > .psp-spots-note { right: 14px; } }
@keyframes psp-spots-pulse { 50% { opacity: 0.3; } }
@media (prefers-reduced-motion: reduce) { .psp-page .psp-spots-note::before { animation: none; } }
/* SOLD OUT: Reserve buttons once the timer has ended (no link, not clickable). */
.psp-page .button.is-sold-out, .psp-page .button.is-sold-out:hover, .psp-page .button.is-sold-out:focus { background: #8c989e !important; border-color: #8c989e !important; color: #fff !important; box-shadow: none !important; transform: none !important; cursor: not-allowed; pointer-events: none; letter-spacing: 0.06em; }
/* Editor only: what the block also does to the Reserve buttons. */
.psp-countdown .psp-countdown__hint { display: block; margin: 12px 0 0; font: 500 12px/1.4 system-ui, sans-serif !important; letter-spacing: 0; text-transform: none; color: var(--cd-muted); }
.psp-countdown--bar:has(.psp-countdown__hint) { flex-wrap: wrap; row-gap: 4px; }
.psp-countdown--bar .psp-countdown__hint { flex-basis: 100%; margin: 0; text-align: center; }
/* Editor: an empty countdown (no date yet) shows a hint instead of nothing. */
.psp-countdown-empty { padding: 18px; border: 2px dashed #19aae1; color: #10191e; background: #f2f9fc; font: 14px/1.5 system-ui, sans-serif; text-align: center; }
