﻿/**
 * Series Starter - Main Styles
 * 
 * Custom styles for event cards, responsive layouts, and brand components.
 * Extracted from inline styles for better performance and cacheability.
 * 
 */

/* ============================================
   GLOBAL: Prevent horizontal page scroll on mobile
   Scoped to .wp-site-blocks to avoid breaking iOS momentum scrolling
   ============================================ */
.wp-site-blocks {
	overflow-x: clip;
}

/* ============================================
   Hide "Ready for Next Event?" CTA on specific pages
   This :has() selector is a fallback for browsers that support it
   ============================================ */
body.single-tc_events .has-primary-background-color:has(h4),
body.woocommerce-cart .has-primary-background-color:has(h4),
body.woocommerce-checkout .has-primary-background-color:has(h4) {
	display: none;
}

/* ============================================
   CSS CUSTOM PROPERTIES (Design Tokens)
   ============================================ */
:root {
	/* Header Height (accounts for sticky header) - includes padding + logo */
	--series-header-height: 76px;

	/* Breakpoints (for reference in JS, CSS uses media queries) */
	--series-bp-sm: 480px;
	--series-bp-md: 768px;
	--series-bp-lg: 1024px;
	--series-bp-xl: 1280px;

	/* Z-Index Scale - STANDARDIZED */
	--series-z-dropdown: 100;
	--series-z-sticky: 200;
	--series-z-fixed: 300;
	--series-z-section-nav: 600;
	--series-z-sticky-bar: 700;
	--series-z-header: 800;
	--series-z-modal-backdrop: 850;
	--series-z-modal: 900;
	--series-z-notification: 950;
	--series-z-skip-link: 100000;
	/* Must exceed WP admin bar (99999) for WCAG focus visibility */

	/* Overlay Opacity Scale - USE THESE CONSISTENTLY */
	--series-overlay-subtle: rgba(255, 255, 255, 0.03);
	--series-overlay-light: rgba(255, 255, 255, 0.05);
	--series-overlay-medium: rgba(255, 255, 255, 0.1);
	--series-overlay-strong: rgba(255, 255, 255, 0.2);
	--series-overlay-border: rgba(255, 255, 255, 0.15);

	/* Surface System - single-plane dark UI with divider hierarchy */
	--series-surface-base: transparent;
	--series-surface-emphasis: rgba(255, 255, 255, 0.02);
	--series-surface-divider: rgba(255, 255, 255, 0.12);

	/* Animation Timing */
	--series-ease-out: cubic-bezier(0.4, 0, 0.2, 1);
	--series-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
	--series-duration-fast: 150ms;
	--series-duration-normal: 300ms;
	--series-duration-slow: 500ms;

	/* Touch Target Minimum */
	--series-touch-target: 44px;

	/* Typography - Letter Spacing Standards */
	--series-ls-cta: 0.08em;
	/* Primary CTAs */
	--series-ls-label: 0.05em;
	/* Secondary/outline buttons, labels */

	/* Button Padding Standards */
	--series-btn-padding-y: 12px;
	--series-btn-padding-x: 28px;
	--series-btn-padding-y-sm: 10px;
	--series-btn-padding-x-sm: 20px;

	/* Border Radius Scale - USE THESE CONSISTENTLY */
	--series-radius-sm: 8px;
	/* Small elements: badges, tags, inputs */
	--series-radius-md: 12px;
	/* Medium elements: search results, modals */
	--series-radius-lg: 16px;
	/* Cards, feature boxes, panels */
	--series-radius-xl: 30px;
	/* Prominent elements: CTA sections, hero cards — matches parent button */
	--series-radius-pill: 30px;
	/* Buttons, pills — aligned with parent theme convention */

	/* Component Sizing - Values */
	--series-artist-photo-size: 80px;
	--series-artist-photo-size-sm: 64px;
	--series-cell-padding: 20px 16px;
	--series-cell-padding-mobile: 16px 12px;
	--series-card-padding: 20px;
	--series-card-padding-mobile: 16px;
	--series-badge-padding: 8px 16px;
	--series-badge-padding-sm: 6px 12px;

	/* Event Card Heights - Responsive */
	--series-card-height-lg: 320px;
	/* Desktop past event cards */
	--series-card-height-md: 280px;
	/* Tablet past event cards */
	--series-card-height-sm: 320px;
	/* Mobile past event cards (taller) */
	--series-card-height-upcoming: 350px;
	/* Upcoming event cards mobile */
	--series-feature-height-lg: 200px;
	/* Feature cards desktop */
	--series-feature-height-sm: 160px;
	/* Feature cards mobile */

	/* Hero Logo Sizing - Responsive */
	--series-logo-size-lg: 220px;
	/* Desktop hero logo */
	--series-logo-size-md: 180px;
	/* Tablet hero logo */
	--series-logo-size-sm: 160px;
	/* Mobile hero logo */
	--series-logo-size-xs: 140px;
	/* Very small mobile hero logo */

	/* Muted Text Colors */
	--series-text-muted-dark: rgba(255, 255, 255, 0.8);
	--series-text-muted-light: var(--wp--preset--color--muted-dark);

	/* Status Colors */
	--series-success: #22C55E;
	--series-success-dark: #16A34A;
	--series-error: #EF4444;
	--series-error-dark: #DC2626;
	--series-warning: #F59E0B;
	--series-info: #3B82F6;

	/* Accent Gradient Colors */
	--series-accent-light: #D4AF61;
	--series-accent-base: var(--wp--preset--color--primary);
	--series-accent-heading: #D4AF61;
	--series-accent-dark: #B8924F;
	--series-accent-shine: #F5E6C4;
	--series-accent-deep: #b8860b;
	--series-accent-gold: #D4AF37;
	--series-error-light: #ff6b6b;
	--series-success-light: #4ADE80;
	--series-warning-light: #FDE047;
	--series-z-page-loading: 99999;
	--series-z-recaptcha: 50;

	/* RGB Channel Vars - for rgba() with brand colors */
	--series-primary-rgb: 198, 161, 91;
	--series-foreground-rgb: 11, 11, 11;
	--series-background-rgb: 242, 242, 242;
	--series-secondary-rgb: 26, 26, 26;

	/* Neutral Grays */
	--series-gray-50: #f9fafb;
	--series-gray-100: #f3f4f6;
	--series-gray-400: #9ca3af;
	--series-gray-500: #6b7280;
	--series-gray-700: #2a2a2a;
}

/* Screen Reader Only Text (Accessibility) */
.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	word-wrap: normal !important;
}

/* Admin bar header height adjustment */
.admin-bar {
	--series-header-height: 108px;
	/* 32px admin bar + 76px header */
}

@media (max-width: 768px) {
	.admin-bar {
		--series-header-height: 122px;
		/* 46px mobile admin bar + 76px header */
	}
}

/* ============================================
   BASE STYLES
   ============================================ */

/* Homepage needs dark background by default 
   This ensures shortcode sections without explicit backgrounds appear dark */
body.home,
body.page-template-front-page,
.home .wp-site-blocks,
.page-template-front-page .wp-site-blocks {
	background-color: var(--wp--preset--color--foreground, #0B0B0B);
}

/* ============================================
   HERO SECTION BACKGROUND
   ============================================ */

/**
 * Events Archive Hero Background
 * Default gradient fallback with option to override in site editor
 */
.series-hero-section {
	background-image: linear-gradient(180deg, rgba(var(--series-foreground-rgb), 0.95), rgba(var(--series-foreground-rgb), 0.85));
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	position: relative;
}

/* Support for custom background images via site editor */
.series-hero-section[style*="background-image"] {
	background-blend-mode: overlay;
}

/* ============================================
   SCOPED DARK BACKGROUND
   Only apply to Series Starter specific pages
   Let parent theme handle everything else
   ============================================ */

/* Dark background for specific page types only */
body.home,
body.page-template-front-page,
body.single-tc_events,
body.post-type-archive-tc_events,
body.page-template-page-cart,
body.page-template-page-checkout {
	background-color: var(--wp--preset--color--foreground, #0B0B0B);
}

/* ============================================
   TEXT VISIBILITY ON DARK BACKGROUNDS
   Defensive rules for post content on dark pages
   ============================================ */

/* Ensure readable text on dark page backgrounds */
body.page .has-foreground-background-color .wp-block-post-content,
body.page .has-foreground-background-color .wp-block-post-content p,
body.page .has-foreground-background-color .wp-block-post-content h1,
body.page .has-foreground-background-color .wp-block-post-content h2,
body.page .has-foreground-background-color .wp-block-post-content h3,
body.page .has-foreground-background-color .wp-block-post-content h4,
body.page .has-foreground-background-color .wp-block-post-content h5,
body.page .has-foreground-background-color .wp-block-post-content h6,
body.page .has-foreground-background-color .wp-block-post-content li,
body.page .has-foreground-background-color .wp-block-post-content td,
body.page .has-foreground-background-color .wp-block-post-content th,
body.single .has-foreground-background-color .wp-block-post-content,
body.single .has-foreground-background-color .wp-block-post-content p,
body.single .has-foreground-background-color .wp-block-post-content h1,
body.single .has-foreground-background-color .wp-block-post-content h2,
body.single .has-foreground-background-color .wp-block-post-content h3,
body.single .has-foreground-background-color .wp-block-post-content h4,
body.single .has-foreground-background-color .wp-block-post-content li {
	color: var(--wp--preset--color--background, #F2F2F2);
}

/* Links on dark backgrounds - accent/primary color */
body.page .has-foreground-background-color .wp-block-post-content a,
body.single .has-foreground-background-color .wp-block-post-content a {
	color: var(--wp--preset--color--primary, #C6A15B);
}

body.page .has-foreground-background-color .wp-block-post-content a:hover,
body.single .has-foreground-background-color .wp-block-post-content a:hover {
	color: var(--series-accent-light, #D4AF61);
	text-decoration: underline;
}

/* Remove blockGap above sticky header wrapper */
.wp-site-blocks>.wp-block-group.is-position-sticky:first-child {
	margin-top: 0;
	margin-block-start: 0;
}

/* Sticky header wrapper - eliminate gaps */
/* Let parent theme handle sticky header spacing.
   Child only resets on event singular pages where we need zero gap. */
.single-tc_events .wp-site-blocks {
	padding-top: 0;
	margin-top: 0;
}

/* Header padding - child theme customization */
.site-header {
	border-bottom: none;
	padding-inline: clamp(1rem, 4vw, 2.5rem);
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

/* Standardized scroll margin for all anchor targets - accounts for sticky header */
.series-upcoming-section,
#tickets,
#about,
#lineup,
#venue,
#faq {
	scroll-margin-top: 100px;
}

/* Hide the upcoming section when the query returns no results */
.series-upcoming-section:has(.wp-block-query-no-results) {
	display: none;
}

/* Hide the footer events CTA on the events archive (would be a self-link) */
body.post-type-archive-tc_events .series-footer-cta {
	display: none;
}

/* Suppress top padding on pagination wrapper when no links are rendered (< perPage results) */
.series-past-section .wp-block-group:has(.wp-block-query-pagination:not(:has(a))) {
	padding-top: 0;
}

/* Clamp venue address to 1 line in upcoming event grid cards */
.series-upcoming-events .tc-event-location-wrap .tc-block-inner-wrapper {
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	line-clamp: 1;
	-webkit-box-orient: vertical;
}

/* ============================================
   TYPOGRAPHY SYSTEM
   ============================================ */

/* Integral CF for all headings - bold, geometric, Egyptian-inspired */
h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-heading,
.has-big-font-size,
.has-large-font-size,
.has-medium-font-size {
	font-family: var(--wp--preset--font-family--heading);
}

body,
p,
.wp-block-paragraph,
.wp-block-list,
.wp-block-button__link,
input,
textarea,
select,
button {
	font-family: var(--wp--preset--font-family--body);
}

/* Typography Scale - Responsive with clamp - CLEAR HIERARCHY */
h1,
.wp-block-post-title {
	font-size: clamp(2.5rem, 6vw, 4rem);
	/* 40-64px - Hero/Page titles */
	letter-spacing: 0.02em;
	line-height: 1.1;
}

h2,
.has-big-font-size {
	font-size: clamp(1.5rem, 4vw, 2.25rem);
	/* 24-36px - Major sections */
	letter-spacing: 0.03em;
	line-height: 1.15;
}

h3,
.has-large-font-size {
	font-size: clamp(1.25rem, 3vw, 1.75rem);
	/* 20-28px - Subsections */
	letter-spacing: 0.04em;
	line-height: 1.25;
}

h4,
.has-medium-font-size {
	font-size: clamp(1.125rem, 0.5vw + 1rem, 1.5rem);
	letter-spacing: 0.04em;
	line-height: 1.3;
}

/* Body text - minimum readable size */
p,
.wp-block-paragraph {
	font-size: clamp(1rem, 0.5vw + 0.875rem, 1.125rem);
	line-height: 1.7;
}

/* Section headings - uppercase royal treatment */
.series-upcoming-section h3,
.series-past-section h4,
.wp-block-heading {
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* Hero typography - cinematic scale */
.series-hero-section h1,
.series-hero-section .wp-block-heading {
	font-size: clamp(2.25rem, 6vw, 4.5rem);
	/* 36-72px - more balanced */
	letter-spacing: 0.02em;
	line-height: 1.1;
}

/* ============================================
   BUTTON OVERRIDES
   Parent theme + theme.json handles base button styles.
   Only add minimal overrides for dark background contexts.
   ============================================ */

/* Fix WP core height: 100% causing vertical stretch in flex containers */
.wp-block-button__link {
	height: auto;
}

/* Inverted buttons on gold/primary backgrounds */
.has-primary-background-color .wp-block-button__link {
	background-color: var(--wp--preset--color--foreground);
	color: var(--wp--preset--color--primary);
}

.has-primary-background-color .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--secondary);
}

/* ============================================
   HEADER - Fixed sizing and layout
   ============================================ */

/* Simple solid black header */
.site-header {
	background-color: var(--wp--preset--color--foreground);
}

/* Logo - constrain size */
.site-header .wp-block-site-logo img {
	max-height: 50px;
	width: auto !important;
	/* FSE inline override */
	object-fit: contain;
}

/* Cart icon - ensure visible */
.wc-block-mini-cart__button {
	color: var(--wp--preset--color--background) !important;
	/* plugin override */
}

.wc-block-mini-cart__button svg {
	fill: var(--wp--preset--color--background) !important;
	/* plugin override */
	width: 24px;
	height: 24px;
}

/* ============================================
   HERO SECTION - Brand Visual Identity
   Mobile-first: smaller viewports get smaller hero
   ============================================ */

/* Hero container - responsive height (mobile-first) */
.series-hero-section .wp-block-cover {
	min-height: 60vh;
	/* Mobile base */
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	background-repeat: no-repeat;
	background-size: cover;
}

/* 
 * SENIOR UX/UI APPROACH:
 * The hero image has VJ/pharaoh figures on the RIGHT side.
 * On mobile portrait, we show the RIGHT portion to feature the VJ.
 * Content is centered with proper spacing above it.
 */
.series-hero-section .wp-block-cover__image-background {
	object-fit: cover !important;
	/* FSE inline override */
	object-position: 75% center !important;
	/* FSE inline override */
	/* Focus on RIGHT side where VJ is */
	width: 100% !important;
	/* FSE inline override */
	height: 100% !important;
	/* FSE inline override */
	background-repeat: no-repeat;
	background-size: cover;
	background-position: 75% center;
}

/* Tablet: taller hero */
@media (min-width: 768px) {
	.series-hero-section .wp-block-cover {
		min-height: 70vh;
	}
}

/* Mobile: center image to prevent subject cropping */
@media (max-width: 768px) {
	.series-hero-section .wp-block-cover__image-background {
		background-position: 50% center;
		object-position: 50% center;
	}
}

.series-hero-section .wp-block-cover::before {
	content: '';
	position: absolute;
	inset: 0;
	/* Cinematic gradient - darkens edges for text readability while showing VJ */
	background: linear-gradient(to bottom,
			rgba(0, 0, 0, 0.4) 0%,
			rgba(0, 0, 0, 0.15) 25%,
			rgba(0, 0, 0, 0.15) 75%,
			rgba(0, 0, 0, 0.5) 100%);
	pointer-events: none;
	z-index: 1;
}

/* Content container - centered */
.series-hero-section .wp-block-cover__inner-container {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	min-height: auto;
	padding: var(--wp--preset--spacing--50, 2rem);
	padding-top: calc(var(--series-header-height, 76px) + var(--wp--preset--spacing--40, 1rem));
	padding-bottom: var(--wp--preset--spacing--50, 2rem);
	position: relative;
	z-index: 2;
	width: 100%;
}

/* Hero content wrapper - clean styling */
.series-hero-section .alignwide {
	background: transparent;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	border: none;
	border-radius: 0;
	padding: 0;
	width: 100%;
	max-width: 540px;
	box-shadow: none;
	animation: none;
	margin: 0 auto;
}

/* Hero text - enhanced contrast with text shadow */
.series-hero-section p {
	text-shadow: 0 2px 4px rgba(0, 0, 0, 0.6);
}

/* Hero logo - consistent sizing */
.series-hero-section .wp-block-image img {
	width: var(--series-logo-size-md, 180px) !important;
	/* FSE inline override */
	height: auto;
	margin: 0 auto;
}

/* Hero CTA button - use parent utility class .button-align-on-mobile-center
   or set justifyContent in block attributes. No CSS hacks needed. */

/* Tablet+ adjustments */
@media (min-width: 768px) {
	.series-hero-section .wp-block-cover {
		min-height: 80vh;
		align-items: center;
	}

	/* On desktop, center the image - full landscape view */
	.series-hero-section .wp-block-cover__image-background {
		object-position: center center !important;
		/* FSE override */
		background-position: center center !important;
		/* FSE override */
	}

	/* Center content vertically on desktop */
	.series-hero-section .wp-block-cover__inner-container {
		justify-content: center;
		padding: var(--wp--preset--spacing--60, 2.5rem);
	}

	.series-hero-section .alignwide {
		max-width: 540px;
	}

	.series-hero-section .wp-block-image img {
		width: var(--series-logo-size-lg, 220px) !important;
		/* FSE inline override */
	}
}

/* ============================================
   EVENT HERO - TWO COLUMN LAYOUT
   ============================================ */

/* Hero content column - vertical centering */
.series-hero-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	min-height: 100%;
}

/* Tighten spacing between hero elements */
.series-hero-content .wp-block-post-title {
	margin-bottom: 0.25rem !important;
	/* FSE inline override */
}

.series-hero-content .series-event-subtitle {
	margin-top: 0.5rem;
	margin-bottom: 1rem;
}

.series-hero-content .series-countdown {
	margin-top: 1rem;
	margin-bottom: 0;
}

.series-hero-content .wp-block-buttons {
	margin-top: 1.25rem !important;
	/* FSE inline override */
	margin-bottom: 0 !important;
	/* FSE inline override */
}

/* Remove excessive hero section gap */
.single-tc_events .wp-block-columns.alignwide {
	gap: var(--wp--preset--spacing--40, 1rem) !important;
	/* FSE override */
	align-items: stretch;
}

/* Poster sizing - responsive */
@media (min-width: 768px) {
	.single-tc_events .wp-block-post-featured-image img {
		max-height: 70vh;
		width: auto;
		height: auto;
		object-fit: contain;
	}
}

/* Product Section - Dark background styling */
.series-products-section {
	background-color: var(--wp--preset--color--secondary, #1A1A1A);
}

.series-products-intro {
	text-align: center;
}

.series-products-intro .has-mono-font-family,
.series-products-intro .wp-block-heading,
.series-products-intro p {
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}

/* Product titles on dark background */
.series-products-section .wp-block-post-title,
.series-products-section .wp-block-post-title a,
.series-products-section .wc-block-components-product-title {
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-products-section .wp-block-post-title a:hover {
	color: var(--wp--preset--color--primary, #C6A15B);
}

/* Product prices on dark background */
.series-products-section .wc-block-components-product-price,
.series-products-section .wc-block-components-product-price .wc-block-components-product-price__value {
	color: var(--wp--preset--color--primary, #C6A15B);
}

/* Product button outline on dark background */
.series-products-section .wc-block-components-product-button .wp-block-button__link.is-style-outline,
.series-products-section .wp-block-button.is-style-outline .wp-block-button__link {
	color: var(--wp--preset--color--background, #F2F2F2);
	border-color: var(--wp--preset--color--background, #F2F2F2);
}

.series-products-section .wc-block-components-product-button .wp-block-button__link.is-style-outline:hover,
.series-products-section .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--primary, #C6A15B);
	border-color: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
}

/* ============================================
   GLASSMORPHISM - EVENT CARDS
   ============================================ */

/* Upcoming Event Cards - Glass treatment */
.series-upcoming-events .wp-block-post-template>* {
	position: relative;
}

/* Override template dimRatio to reveal glass effect */
.series-upcoming-events .wp-block-cover__background {
	opacity: 0.3 !important;
	/* FSE override */
}

.series-upcoming-events .wp-block-cover {
	background: rgba(var(--series-secondary-rgb), 0.7);
	border-radius: var(--series-radius-lg);
	overflow: hidden;
	transition: transform 0.3s var(--series-ease-out),
		box-shadow 0.3s var(--series-ease-out);
}

/* Content is always visible; hover adds emphasis. Touch-safe by default. */
.series-upcoming-events .wp-block-cover__inner-container {
	opacity: 1;
	transition: opacity 0.3s var(--series-ease-out);
}

/* On pointer devices: dim by default, reveal on hover */
@media (hover: hover) {
	.series-upcoming-events .wp-block-cover__inner-container {
		opacity: 0;
		background: none;
	}

	.series-upcoming-events .wp-block-post-template>*:hover .wp-block-cover__inner-container {
		opacity: 1;
	}
}

/* Touch devices - gradient scrim for legibility */
@media (hover: none) {
	.series-upcoming-events .wp-block-cover__inner-container {
		opacity: 1;
		background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.4) 50%, transparent 100%);
	}
}

/* Enhanced hover state for cards */
.series-upcoming-events .wp-block-post-template>*:hover .wp-block-cover {
	transform: translateY(-5px) scale(1.02);
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5),
		0 0 30px rgba(var(--series-primary-rgb), 0.2);
}

/* Poster images remain full-bleed within glass card */
.series-upcoming-events .wp-block-cover__image-background {
	object-fit: cover;
	z-index: 0;
}

/* Content overlay above poster */
.series-upcoming-events .wp-block-cover__inner-container {
	position: relative;
	z-index: 1;
}

/* Past Event Cards - Base styles for all covers */
.series-past-events .wp-block-cover {
	background: rgba(var(--series-secondary-rgb), 0.35);
	border-radius: var(--series-radius-md);
	overflow: hidden;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
	transition: transform 0.2s var(--series-ease-out),
		box-shadow 0.2s var(--series-ease-out);
}

/* Past Event Cards WITH images - aspect-ratio controls height */
.series-past-events .wp-block-cover:has(.wp-block-cover__image-background) {
	aspect-ratio: 4 / 5;
}

/* Cards without featured image - collapse to content height */
.series-past-events .wp-block-cover:not(:has(.wp-block-cover__image-background)),
.series-upcoming-events .wp-block-cover:not(:has(.wp-block-cover__image-background)) {
	aspect-ratio: unset;
	height: auto;
	background: rgba(var(--series-secondary-rgb), 0.5);
	padding: var(--wp--preset--spacing--40, 1.5rem);
}

/* Title truncation for long event names */
.series-past-events .wp-block-post-title,
.series-upcoming-events .wp-block-post-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Past event titles - visible with strong gradient scrim */
.series-past-events .wp-block-cover__inner-container {
	opacity: 1;
	transition: opacity 0.3s var(--series-ease-out);
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: center;
	text-align: center;
	padding: var(--wp--preset--spacing--30) !important;
	/* FSE inline override */
}

/* HIDE DATE BLOCK - posters already have date info */
.series-past-events .wp-block-tickera-event-date,
.series-past-events .tc_event_date,
.series-past-events .wp-block-cover__inner-container> :first-child:not(.wp-block-post-title) {
	display: none;
}

/* Reduce WordPress cover block overlay - poster art is already complete */
.series-past-events .wp-block-cover__background.has-background-dim-50 {
	opacity: 0.25 !important;
	/* FSE override - inline dimRatio */
}

/* Past event title styling */
.series-past-events .wp-block-post-title {
	font-size: clamp(14px, 3vw, 18px);
	line-height: 1.3 !important;
	/* FSE override */
	margin: 0;
	/* FSE block margin override — specificity sufficient */
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8);
}

/* Gradient scrim at bottom for text legibility on posters */
/* Reduced intensity - poster art is already visually complete */
.series-past-events .wp-block-cover::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 50%;
	background: linear-gradient(to top,
			rgba(0, 0, 0, 0.85) 0%,
			rgba(0, 0, 0, 0.5) 40%,
			transparent 100%);
	pointer-events: none;
	z-index: 1;
	transition: opacity 0.3s var(--series-ease-out);
}

/* Full opacity on hover for past events */
.series-past-events .wp-block-post-template>*:hover .wp-block-cover__inner-container {
	opacity: 1;
}

.series-past-events .wp-block-post-template>*:hover .wp-block-cover::after {
	opacity: 0.7;
}

.series-past-events .wp-block-post-template>*:hover .wp-block-cover {
	transform: translateY(-3px);
	box-shadow: 0 15px 30px -10px rgba(0, 0, 0, 0.4);
}

/* Subtle grayscale filter on past event posters - let busy art show */
.series-past-events .wp-block-cover__image-background {
	filter: grayscale(25%);
	opacity: 0.9;
	transition: filter 0.3s var(--series-ease-out), opacity 0.3s var(--series-ease-out);
}

.series-past-events .wp-block-post-template>*:hover .wp-block-cover__image-background {
	filter: grayscale(0%);
	opacity: 1;
}

/* Legacy event card styles (keep for compatibility) */
.series-event-card {
	transition: transform 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease, filter 0.3s ease;
}

.series-event-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

/* Sold-out event cards - visual dimming for better UX */
.series-event-card.is-sold-out,
.series-event-card[data-availability="sold-out"] {
	opacity: 0.6;
	filter: grayscale(40%);
	position: relative;
}

.series-event-card.is-sold-out:hover,
.series-event-card[data-availability="sold-out"]:hover {
	opacity: 0.75;
	filter: grayscale(20%);
	transform: translateY(-2px);
	/* Reduced movement for sold-out */
}

/* Event Status Badge - via JS */
.series-event-badge {
	display: inline-block;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 5px 12px;
	border-radius: var(--series-radius-lg);
	margin-bottom: 8px;
}

.series-event-badge--upcoming {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--foreground);
}

.series-event-badge--past {
	background: rgba(255, 255, 255, 0.15);
	color: var(--wp--preset--color--background, #F2F2F2);
}

/* More Events Grid - Responsive */
.series-more-events {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--wp--preset--spacing--30, 24px);
}

.series-event-card-related {
	transition: transform 0.2s ease;
}

.series-event-card-related:hover {
	transform: translateY(-4px);
}

.series-event-card-related a:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 2px;
	border-radius: 4px;
}

.series-event-card-related__image {
	display: block;
	margin-bottom: var(--wp--preset--spacing--20, 16px);
}

.series-event-card-related__image img {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-top-right-radius: 30px;
}

.series-event-card-related__date {
	margin: 0 0 5px;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--wp--preset--color--primary, #C6A15B);
}

.series-event-card-related__location {
	margin: 0 0 var(--wp--preset--spacing--20, 16px);
	text-transform: uppercase;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.7);
}

.series-event-card-related__title-link {
	color: inherit;
	text-decoration: none;
}

.series-event-card-related__title {
	margin: 0;
	font-weight: 700;
	padding-top: var(--wp--preset--spacing--20, 16px);
}

/* Section Divider - subtle line between dark sections */
.series-past-section::before {
	content: "";
	display: block;
	width: 60px;
	height: 1px;
	background: rgba(255, 255, 255, 0.15);
	margin: 0 auto var(--wp--preset--spacing--50);
}

/* ============================================
   PAST EVENTS GRID (Shortcode)
   ============================================ */
.series-past-events-grid {
	display: grid;
	grid-template-columns: repeat(var(--columns, 3), 1fr);
	gap: var(--wp--preset--spacing--40, 1.5rem);
	margin: 0 auto;
	max-width: var(--wp--style--global--wide-size, 1200px);
	padding: 0 var(--wp--preset--spacing--40, 1rem);
}

@media (max-width: 768px) {
	.series-past-events-grid {
		grid-template-columns: 1fr;
	}
}

.series-past-event-card {
	display: block;
	text-decoration: none;
	border-radius: 0 var(--series-radius-xl) 0 0;
	overflow: hidden;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.series-past-event-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
}

.series-past-event-card__image {
	position: relative;
	padding-bottom: 75%;
	/* 4:3 aspect ratio */
	background-size: cover;
	background-position: center;
	background-color: var(--wp--preset--color--secondary, #1A1A1A);
}

.series-past-event-card__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(var(--series-foreground-rgb), 0.9) 0%, rgba(var(--series-foreground-rgb), 0.3) 50%, transparent 100%);
	transition: background 0.3s ease;
}

.series-past-event-card:hover .series-past-event-card__overlay {
	background: linear-gradient(to top, rgba(var(--series-foreground-rgb), 0.95) 0%, rgba(var(--series-foreground-rgb), 0.4) 50%, transparent 100%);
}

.series-past-event-card__content {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: var(--wp--preset--spacing--40, 1.5rem);
	text-align: center;
}

.series-past-event-card__date {
	display: block;
	font-family: var(--wp--preset--font-family--mono, 'Space Mono', monospace);
	font-size: var(--wp--preset--font-size--tiny, 12px);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--primary, #C6A15B);
	margin-bottom: var(--wp--preset--spacing--20, 0.5rem);
}

.series-past-event-card__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small, 1rem);
	font-weight: 700;
	color: var(--wp--preset--color--background, #F2F2F2);
	line-height: 1.3;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.series-past-events-cta {
	text-align: center;
	margin-top: var(--wp--preset--spacing--50, 2rem);
}

/* Product Cards */
.wp-block-woocommerce-product-collection {
	width: 100%;
}

.wp-block-woocommerce-product-collection .wp-block-post-title a {
	text-decoration: none;
}

.wp-block-woocommerce-product-collection .wp-block-post-title a:hover {
	color: var(--wp--preset--color--primary);
}

/* Product Grid Equal Heights */
.series-product-grid .wc-block-product-template {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--wp--preset--spacing--40, 32px);
}

.series-product-grid .wc-block-product-template>li,
.series-product-grid .wc-block-product-template>div {
	display: flex;
	flex-direction: column;
}

.series-product-grid .wc-block-product-template .wc-block-components-product-image {
	flex-shrink: 0;
}

/* Product Grid - Empty State */
.series-product-grid .wp-block-query-no-results {
	grid-column: 1 / -1;
	text-align: center;
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
}

.series-product-grid .wp-block-query-no-results p {
	max-width: 400px;
	margin: 0 auto;
	font-style: italic;
}

/* Product Grid - Button Focus States */
.series-product-grid .wc-block-components-product-button a:focus {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

.series-product-grid .wp-block-post-title a:focus {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

/* Shop Preview - constrain product image */
.series-shop-preview .wc-block-components-product-image {
	max-width: 320px;
	margin: 0 auto;
}

/* ============================================
   WooCommerce Cart & Checkout - Dark Theme
   COLORS ONLY - No layout overrides
   ============================================ */

/* Checkout event context bar */
.series-checkout-context {
	max-width: 980px;
	margin: 0 auto var(--wp--preset--spacing--40, 32px);
	background: var(--series-surface-base);
	border-left: 3px solid var(--wp--preset--color--primary);
	border-radius: 0;
	border-top: 1px solid var(--series-surface-divider);
	border-bottom: 1px solid var(--series-surface-divider);
	padding: 16px 20px;
}

.series-checkout-context__inner {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.series-checkout-context__event {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}

.series-checkout-context__date {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.9rem;
	color: var(--wp--preset--color--background);
}

.series-checkout-context__tickets {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.6);
}

@media (max-width: 600px) {
	.series-checkout-context {
		padding: 12px 16px;
	}
}

/* CSS Variables for theming */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	--wc-cart-primary: var(--wp--preset--color--primary, #C6A15B);
	--wc-cart-text: var(--wp--preset--color--background, #F2F2F2);
	--wc-cart-text-muted: rgba(var(--series-background-rgb), 0.7);
	--wc-cart-border: rgba(255, 255, 255, 0.35);
}

/* Text colors */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout,
.wc-block-cart,
.wc-block-checkout {
	color: var(--wc-cart-text);
}

.wc-block-cart-item__product-name,
.wc-block-components-product-name,
.wc-block-cart__totals-title,
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__description,
.wc-block-components-checkout-step__title,
.wc-block-components-text-input input,
.wc-block-components-combobox input,
.wc-block-components-quantity-selector input,
.wc-block-cart__empty-cart__title {
	color: var(--wc-cart-text);
}

/* Muted text */
.wc-block-cart-item__product-metadata,
.wc-block-components-product-metadata,
.wc-block-cart-item__remove-link,
.wc-block-components-text-input label,
.wc-block-components-combobox label {
	color: var(--wc-cart-text-muted);
}

/* Price accent color */
.wc-block-cart-item__prices,
.wc-block-components-product-price,
.wc-block-components-product-price__value,
.wc-block-components-totals-item__value,
.wc-block-formatted-money-amount {
	color: var(--wc-cart-primary);
}

/* Border colors */
.wc-block-cart-items,
.wc-block-cart-items__row,
.wc-block-components-totals-item,
.wc-block-components-quantity-selector {
	border-color: var(--wc-cart-border) !important;
	/* plugin override */
}

/* === Form Inputs - Dark Theme with Visible Borders === */
.wc-block-components-text-input input,
.wc-block-components-combobox input,
.wc-block-components-textarea textarea {
	background-color: var(--series-surface-base) !important;
	/* plugin override - flat surface */
	border: 1px solid rgba(255, 255, 255, 0.5) !important;
	/* plugin override — 0.5 meets WCAG AA 3:1 for UI components on #0B0B0B */
	border-radius: var(--series-radius-sm);
	padding: 12px 16px;
	color: var(--wc-cart-text) !important;
	/* parent theme ponyfill override */
	-webkit-text-fill-color: var(--wc-cart-text);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* === iOS Zoom Prevention === */
/* iOS Safari zooms in on inputs < 16px - force 16px minimum */
@supports (-webkit-touch-callout: none) {

	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="number"],
	input[type="password"],
	input[type="search"],
	select,
	textarea {
		font-size: 16px !important;
		/* iOS zoom prevention */
	}
}

.wc-block-components-text-input input:focus,
.wc-block-components-combobox input:focus,
.wc-block-components-textarea textarea:focus {
	border-color: var(--wc-cart-primary) !important;
	/* plugin override */
	box-shadow: 0 0 0 2px rgba(var(--series-primary-rgb), 0.15);
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 2px;
	color: var(--wc-cart-text) !important;
	/* parent theme ponyfill override */
	-webkit-text-fill-color: var(--wc-cart-text);
}

/* Combobox dropdown - Slightly elevated dark bg to distinguish from page */
.wc-block-components-combobox input,
.wc-block-components-combobox .components-combobox-control input {
	background-color: var(--series-surface-base);
}

/* Floating labels - Proper positioning */
.wc-block-components-text-input label,
.wc-block-components-combobox label {
	color: var(--wc-cart-text-muted);
	transition: font-size 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

/* When input has value or is focused, label shrinks and moves up */
.wc-block-components-text-input.is-active label,
.wc-block-components-combobox.is-active label {
	font-size: 0.75rem;
	opacity: 0.7;
}

/* Checkbox and Radio - Use native styling with accent-color for theme */
.wc-block-components-checkbox__input,
.wc-block-components-radio-control__input {
	accent-color: var(--wc-cart-primary);
	width: 20px;
	height: 20px;
	cursor: pointer;
}

/* Quantity selector - Keep transparent */
.wc-block-components-quantity-selector,
.wc-block-components-quantity-selector input,
.wc-block-components-quantity-selector button {
	background-color: transparent;
}

/* Buttons - keep parent layout, just theme colors
   Override parent ponyfill.css hover that forces white bg */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-components-button:not(.is-link) {
	background-color: var(--wc-cart-primary) !important;
	/* plugin override */
	color: var(--wp--preset--color--foreground, #0B0B0B) !important;
	/* plugin override */
	border: none !important;
	/* plugin override */
	border-radius: var(--series-radius-pill, 30px) !important;
	/* plugin override */
	font-family: var(--wp--preset--font-family--body, 'Poppins', sans-serif) !important;
	/* plugin override */
}

/* Counter parent hover: .wc-block-components-button:not(.is-link):hover forces white bg */
.wc-block-cart__submit-button:hover:not(:disabled),
.wc-block-components-checkout-place-order-button:hover:not(:disabled),
.wc-block-components-button:not(.is-link):hover,
.wc-block-components-button:not(.is-link):focus {
	background-color: var(--series-accent-light, #D4AF61) !important;
	/* plugin override */
	color: var(--wp--preset--color--foreground, #0B0B0B) !important;
	/* plugin override */
	border: none !important;
	/* plugin override */
}

/* Checkout Loading State */
.wc-block-checkout.is-loading::after,
.wc-block-components-checkout-place-order-button[disabled]::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(var(--series-foreground-rgb), 0.6);
	display: grid;
	place-items: center;
	z-index: var(--series-z-dropdown, 100);
	border-radius: inherit;
}

.wc-block-components-checkout-place-order-button[disabled] {
	position: relative;
	pointer-events: none;
	opacity: 0.7;
}

/* Radio/checkbox accent */
.wc-block-components-radio-control__input,
.wc-block-components-checkbox__input {
	accent-color: var(--wc-cart-primary);
}

/* ============================================
   WOOCOMMERCE CART/CHECKOUT - COMPREHENSIVE FIXES
   Addressing 35+ remaining UI/UX issues
   ============================================ */

/* === CRITICAL: Express Payment Buttons Dark Theme === */
.wc-block-components-express-payment {
	background: var(--series-surface-base);
	border-top: 1px solid var(--series-surface-divider);
	border-bottom: 1px solid var(--series-surface-divider);
	border-radius: 0;
	padding: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--30);
}

.wc-block-components-express-payment-continue-rule {
	color: var(--wc-cart-text-muted);
	display: flex;
	align-items: center;
	gap: 16px;
	margin: var(--wp--preset--spacing--30) 0;
}

.wc-block-components-express-payment-continue-rule::before,
.wc-block-components-express-payment-continue-rule::after {
	content: '';
	flex: 1;
	height: 1px;
	background-color: var(--wc-cart-border);
}

/* === Order Summary - Dark Theme (Minimal) === */
/* Only background colors - let WooCommerce handle layout */
.wc-block-components-order-summary {
	background-color: var(--series-surface-base);
}

/* Sidebar/totals use same page surface; hierarchy is divider-based */
.wc-block-checkout__sidebar,
.wc-block-components-totals-wrapper {
	background-color: var(--series-surface-base);
}

/* === CRITICAL: Form Validation Error States === */
.wc-block-components-text-input.has-error input,
.wc-block-components-combobox.has-error input {
	border-color: var(--series-error) !important;
	/* plugin override */
	box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2) !important;
	/* plugin override */
}

.wc-block-components-validation-error {
	color: var(--series-error-light, #FCA5A5);
	/* #FCA5A5 on #0B0B0B ≈ 9.5:1 — WCAG AA compliant */
	font-size: 0.8rem;
	margin-top: 6px;
}

/* === Coupon Form - iOS Zoom Prevention Only === */
/* CRITICAL: 16px minimum font-size prevents iOS zoom on focus */
.wc-block-components-totals-coupon__input,
.wc-block-components-totals-coupon input[type="text"] {
	font-size: 16px !important;
	/* iOS zoom prevention */
	-webkit-text-size-adjust: 100%;
}

/* Empty Cart State */
.wc-block-cart__empty-cart {
	text-align: center;
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--30);
}

.wc-block-cart__empty-cart .wp-block-button__link {
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.wc-block-cart__empty-cart .wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(var(--series-primary-rgb), 0.3);
}

.wc-block-cart__empty-cart .wp-block-button__link:focus-visible {
	outline: 3px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 3px;
}

/* === HIGH: Quantity Selector Button States === */
.wc-block-components-quantity-selector button {
	transition: background 0.15s ease, transform 0.1s ease;
}

.wc-block-components-quantity-selector button:active {
	transform: scale(0.95);
	background: rgba(var(--series-primary-rgb), 0.2) !important;
	/* plugin override */
}

.wc-block-components-quantity-selector button:disabled {
	opacity: 0.3;
	cursor: not-allowed;
}

/* === HIGH: Skeleton Loading Animation === */
@keyframes skeleton-loading {
	0% {
		background-position: 200% 0;
	}

	100% {
		background-position: -200% 0;
	}
}

.wp-block-woocommerce-cart.is-loading,
.wp-block-woocommerce-checkout.is-loading {
	position: relative;
	min-height: 400px;
}

.wp-block-woocommerce-cart.is-loading::before,
.wp-block-woocommerce-checkout.is-loading::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg,
			rgba(255, 255, 255, 0.02) 25%,
			rgba(255, 255, 255, 0.08) 50%,
			rgba(255, 255, 255, 0.02) 75%);
	background-size: 200% 100%;
	animation: skeleton-loading 1.5s ease-in-out infinite;
	border-radius: var(--series-radius-md);
	z-index: var(--series-z-dropdown);
}

/* === HIGH: Payment Method Radio Buttons === */
.wc-block-components-radio-control__option {
	padding: 16px;
	min-height: 56px;
	display: flex;
	align-items: center;
}

.wc-block-components-radio-control__option label {
	padding-left: 12px;
	cursor: pointer;
	flex: 1;
}

.wc-block-components-radio-control input[type="radio"] {
	width: 24px;
	height: 24px;
	min-width: 24px;
	cursor: pointer;
}

/* === HIGH: Stripe Card Element Dark Theme === */
.wc-block-components-payment-method-stripe-card-element,
.wc-block-gateway-stripe-credit-card-element,
#wc-stripe-card-element,
.StripeElement {
	background: var(--series-surface-base) !important;
	/* plugin override - remove nested panel fill */
	border: 1px solid rgba(255, 255, 255, 0.35) !important;
	/* plugin override — raised from 0.05/0.2 for visible affordance */
	border-radius: var(--series-radius-sm) !important;
	/* plugin override */
	padding: 16px !important;
	/* plugin override */
}

/* === Order Summary - Row Dividers === */
.wc-block-components-totals-footer-item,
.wc-block-components-order-summary-item {
	border-top: none !important;
	/* plugin override — remove top border, keep bottom for separation */
	border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
	/* plugin override */
}

/* === MEDIUM: Shipping Method Options === */
.wc-block-components-shipping-rates-control__package {
	background: var(--series-surface-base);
	border-top: 1px solid var(--series-surface-divider);
	border-bottom: 1px solid var(--series-surface-divider);
	border-radius: 0;
	padding: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--20);
}

.wc-block-components-shipping-rates-control__package-title {
	color: var(--wp--preset--color--background, #F2F2F2);
	font-weight: 600;
}

.wc-block-components-shipping-rates-control__package-items {
	color: var(--wc-cart-text-muted);
	font-size: 0.875rem;
}

/* === MEDIUM: Billing/Shipping Toggle === */
.wc-block-checkout__use-address-for-billing {
	padding: 16px;
	background: var(--series-surface-base);
	border: 1px solid var(--series-surface-divider);
	border-radius: 0;
	margin: var(--wp--preset--spacing--30) 0;
}

.wc-block-checkout__use-address-for-billing .wc-block-components-checkbox {
	min-height: 48px;
}

/* === MEDIUM: Product Name Links === */
.wc-block-cart-item__product-name a {
	color: var(--wp--preset--color--background, #F2F2F2);
	text-decoration: none;
	transition: color 0.2s ease;
}

.wc-block-cart-item__product-name a:hover {
	color: var(--wp--preset--color--primary, #C6A15B);
}

.wc-block-cart-item__product-name a:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 2px;
}

/* === MEDIUM: Payment Method Icons === */
.wc-block-components-payment-method-icons {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin-top: var(--wp--preset--spacing--20);
	opacity: 0.8;
}

.wc-block-components-payment-method-icons img,
.wc-block-components-payment-method-icons svg {
	height: 24px;
	width: auto;
	filter: brightness(1.2);
}

/* === MEDIUM: Place Order Button States === */
.wc-block-components-checkout-place-order-button:disabled,
.wc-block-components-checkout-place-order-button[aria-disabled="true"] {
	background-color: rgba(var(--series-primary-rgb), 0.4);
	color: rgba(var(--series-foreground-rgb), 0.5);
	cursor: not-allowed;
	transform: none;
}

.wc-block-components-checkout-place-order-button.is-loading {
	position: relative;
	color: transparent;
}

.wc-block-components-checkout-place-order-button.is-loading::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 24px;
	height: 24px;
	border: 3px solid rgba(var(--series-foreground-rgb), 0.3);
	border-top-color: var(--wp--preset--color--foreground);
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
}

@keyframes spin {
	to {
		transform: translate(-50%, -50%) rotate(360deg);
	}
}

/* === MEDIUM: Order Details Table === */
.woocommerce-order-received .woocommerce-table--order-details {
	width: 100%;
	border-collapse: collapse;
}

.woocommerce-order-received .woocommerce-table--order-details thead th {
	background: rgba(var(--series-primary-rgb), 0.1);
	color: var(--wp--preset--color--primary, #C6A15B);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 12px 16px;
	text-align: left;
}

/* === MEDIUM: Breadcrumbs === */
.wp-block-woocommerce-breadcrumbs,
.woocommerce-breadcrumb {
	font-size: 0.8rem;
	color: var(--wc-cart-text-muted);
	margin-bottom: var(--wp--preset--spacing--30);
}

.wp-block-woocommerce-breadcrumbs a,
.woocommerce-breadcrumb a {
	color: var(--wp--preset--color--primary, #C6A15B);
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.wp-block-woocommerce-breadcrumbs a:hover,
.woocommerce-breadcrumb a:hover {
	opacity: 0.8;
}

.woocommerce-breadcrumb span {
	margin: 0 8px;
	opacity: 0.5;
}

/* === MEDIUM: Order Notes Textarea === */
.wc-block-checkout__add-note textarea {
	width: 100%;
	min-height: 100px;
	background: var(--series-surface-base) !important;
	/* plugin override - flat surface */
	border: 1px solid rgba(255, 255, 255, 0.2) !important;
	/* plugin override */
	border-radius: var(--series-radius-sm);
	padding: 12px 16px;
	color: var(--wp--preset--color--background, #F2F2F2) !important;
	/* plugin override */
	font-size: 16px;
	resize: vertical;
}

.wc-block-checkout__add-note textarea:focus {
	border-color: var(--wp--preset--color--primary, #C6A15B) !important;
	/* plugin override */
	outline: none;
	box-shadow: 0 0 0 2px rgba(var(--series-primary-rgb), 0.2);
}

.wc-block-checkout__add-note textarea::placeholder {
	color: rgba(var(--series-background-rgb), 0.5);
}

/* === LOW: Cart Item Metadata === */
.wc-block-cart-item__product-metadata {
	font-size: 0.8rem;
	line-height: 1.6;
	margin-top: 4px;
	color: var(--wc-cart-text-muted);
}

.wc-block-cart-item__product-metadata>span {
	display: block;
}

.wc-block-cart-item__product-metadata .wc-block-components-product-metadata__name {
	font-weight: 500;
}

/* === LOW: Applied Coupon Badge === */
.wc-block-components-totals-discount {
	background: rgba(var(--series-primary-rgb), 0.1);
	border-radius: var(--series-radius-sm);
	padding: var(--wp--preset--spacing--20);
	margin: var(--wp--preset--spacing--20) 0;
}

.wc-block-components-chip {
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	border-radius: 4px;
	padding: 4px 10px;
	font-size: 0.75rem;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.wc-block-components-chip__remove {
	background: none;
	border: none;
	color: currentColor;
	cursor: pointer;
	padding: 10px;
	opacity: 0.7;
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: -10px -10px -10px 0;
}

.wc-block-components-chip__remove:hover {
	opacity: 1;
}

/* === LOW: Terms Checkbox Link === */
.wc-block-checkout__terms a {
	color: var(--wp--preset--color--primary, #C6A15B);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.wc-block-checkout__terms a:hover {
	text-decoration-thickness: 2px;
}

/* === LOW: Proceed to Checkout Button Transition === */
.wc-block-cart__submit-button {
	transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.wc-block-cart__submit-button:hover:not(:disabled) {
	background-color: var(--series-accent-light) !important;
	/* plugin override */
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(var(--series-primary-rgb), 0.3);
}

.wc-block-cart__submit-button:active:not(:disabled) {
	transform: translateY(0);
}

/* === LOW: Remove Item Animation === */
.wc-block-cart-item__remove-link {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 8px 12px;
	border-radius: 4px;
	transition: color 0.2s ease, background-color 0.2s ease;
	color: var(--series-error-light);
	background: rgba(255, 107, 107, 0.1);
}

@keyframes slide-out-left {
	to {
		opacity: 0;
		transform: translateX(-100%);
	}
}

.wc-block-cart-items__row.is-removing {
	animation: slide-out-left 0.3s ease forwards;
}

/* === LOW: Order Confirmation Status === */
.wc-block-order-confirmation-status {
	background: linear-gradient(135deg, rgba(var(--series-primary-rgb), 0.15), rgba(var(--series-primary-rgb), 0.05));
	border-radius: var(--series-radius-md);
	padding: var(--wp--preset--spacing--40);
	text-align: center;
	margin-bottom: var(--wp--preset--spacing--30);
}

.wc-block-order-confirmation-status p {
	font-size: clamp(1rem, 2.5vw, 1.25rem);
	color: var(--wp--preset--color--background, #F2F2F2);
}

.wc-block-order-confirmation-status strong {
	color: var(--wp--preset--color--primary, #C6A15B);
}

/* === MOBILE: Cart Items at 375px === */
@media (max-width: 400px) {

	/* small device override */
	.wc-block-cart-items__row {
		grid-template-columns: 80px 1fr;
	}

	.wc-block-cart-item__image {
		width: 80px;
	}

	.wc-block-cart-item__product-name {
		font-size: 0.9rem;
	}

	/* Page Headings */
	.wp-block-woocommerce-cart h1,
	.wp-block-woocommerce-checkout h1,
	main>.wp-block-heading.has-x-large-font-size,
	main>.wp-block-heading.has-large-font-size {
		letter-spacing: 0.04em;
		font-size: clamp(1.25rem, 5vw, 2rem);
	}

	/* WC legacy template heading — also oversized at 400px */
	h1.wp-block-woocommerce-legacy-template {
		font-size: clamp(0.85rem, 3.5vw, 1.15rem) !important;
		/* WP core override */
	}

	/* Ticket confirmation hero — compact for mobile above-fold */
	.series-ticket-confirmation__hero {
		padding: 0.5rem 0;
	}

	.series-ticket-confirmation__event-name {
		font-size: 1.05rem;
	}
}

/* === TABLET: Order Overview Grid === */
@media (min-width: 480px) and (max-width: 768px) {
	.woocommerce-order-received .woocommerce-order-overview {
		grid-template-columns: repeat(2, 1fr);
	}

	.woocommerce-order-received .woocommerce-order-overview li:nth-child(odd):last-child {
		grid-column: 1 / -1;
	}
}

/* Instagram Feed Centering and Fixes */
#sb_instagram,
#sbi_images {
	display: flex !important;
	/* plugin override */
	justify-content: center !important;
	/* plugin override */
	flex-wrap: wrap;
}

/* ============================================
   Instagram Feed Dark Mode - Text Visibility Fix
   Smash Balloon Instagram Feed Pro
   ============================================ */

/* Force all text in Instagram feed to be light on dark background */
#sb_instagram,
#sb_instagram *,
.sb_instagram_header,
.sb_instagram_header *,
.sbi_header_info,
.sbi_username,
.sbi_bio,
.sbi_follow_btn {
	color: var(--wp--preset--color--background, #F2F2F2);
}

/* Header container - ensure visibility */
#sb_instagram .sb_instagram_header,
#sb_instagram .sbi_header_text,
#sb_instagram .sbi_header_info,
.sb_instagram_header,
.sbi_header_text,
.sbi_header_info {
	color: var(--wp--preset--color--background, #F2F2F2) !important;
	/* plugin override */
}

/* Username/title - white/light */
#sb_instagram .sbi_header_text h3,
#sb_instagram .sbi_header_text .sbi_username,
#sb_instagram .sbi_header_info h3,
#sb_instagram h3,
.sbi_header_text h3,
.sbi_header_text .sbi_username,
.sb_instagram_header h3,
.sb_instagram_header .sbi_username,
.sbi_username {
	color: var(--wp--preset--color--background, #F2F2F2) !important;
	/* plugin override */
}

/* Bio/description text - slightly muted */
#sb_instagram .sbi_header_text p,
#sb_instagram .sbi_bio,
#sb_instagram p,
.sbi_header_text p,
.sbi_bio,
.sb_instagram_header p {
	color: rgba(255, 255, 255, 0.7) !important;
	/* plugin override */
}

/* Any links in the feed header */
#sb_instagram .sbi_header_text a,
#sb_instagram .sb_instagram_header a,
.sbi_header_text a,
.sb_instagram_header a {
	color: var(--wp--preset--color--background, #F2F2F2) !important;
	/* plugin override */
	text-decoration: none;
}

#sb_instagram .sbi_header_text a:hover,
.sbi_header_text a:hover {
	color: var(--wp--preset--color--primary, #C6A15B) !important;
	/* plugin override */
}

/* Follow button styling */
#sb_instagram .sbi_follow_btn a,
.sbi_follow_btn a {
	color: var(--wp--preset--color--primary, #C6A15B) !important;
	/* plugin override */
	border-color: var(--wp--preset--color--primary, #C6A15B) !important;
	/* plugin override */
}

/* Override inline styles - Smash Balloon uses inline color styles */
#sb_instagram [style*="color"],
#sb_instagram h3[style],
#sb_instagram p[style],
.sb_instagram_header [style*="color"],
.sbi_header_text [style] {
	color: var(--wp--preset--color--background, #F2F2F2) !important;
	/* plugin override */
}

/* Specific override for bio text which is often gray */
#sb_instagram .sbi_bio[style],
.sbi_bio[style] {
	color: rgba(255, 255, 255, 0.7) !important;
	/* plugin override */
}

#sbi_images {
	max-width: 100%;
	display: grid !important;
	/* plugin override */
	grid-template-columns: repeat(6, 1fr);
	gap: 10px;
}

#sbi_images .sbi_item {
	width: 100%;
	padding: 0 !important;
	/* plugin inline override */
	margin: 0 !important;
	/* plugin inline override */
}

#sb_instagram .sbi_photo_wrap,
#sbi_images .sbi_photo_wrap {
	border-radius: 4px !important;
	/* plugin override */
	overflow: hidden;
	display: block;
}

#sb_instagram .sbi_photo,
#sbi_images .sbi_photo {
	border-radius: 4px !important;
	/* plugin override */
	aspect-ratio: 1/1;
	object-fit: cover;
}

.sbi_item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1/1;
}

/* Smash Balloon Instagram Feed - Show header with proper dark mode colors */
#sb_instagram .sbi_header {
	display: block !important;
	/* plugin override */
	/* Show the header */
}

/* Hide only load more button and follow button */
#sb_instagram .sbi_load_btn,
#sb_instagram .sbi_follow_btn,
#sbi_load {
	display: none !important;
	/* plugin override */
}

/* Upcoming Events - Flex layout for centering */
.series-upcoming-events .wp-block-post-template {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--wp--preset--spacing--40);
}

.series-upcoming-events .wp-block-post-template>* {
	flex: 0 0 calc(50% - var(--wp--preset--spacing--40) / 2);
	max-width: 500px;
}

/* When only 1 event, center it */
.series-upcoming-events .wp-block-post-template>*:only-child {
	flex: 0 0 100%;
	max-width: 500px;
}

/* Past Events Section - Responsive Grid */
/* Desktop: 3 columns */
.series-past-events .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--40);
}

/* Tablet portrait (820px): 2 columns to prevent cramped 3-col layout */
@media (max-width: 820px) {
	.series-past-events .wp-block-post-template {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Mobile: 1 column */
@media (max-width: 600px) {
	.series-past-events .wp-block-post-template {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--30);
	}

	/* Mobile: cards WITH images get constrained proportions */
	.series-past-events .wp-block-cover:has(.wp-block-cover__image-background) {
		min-height: 240px;
		aspect-ratio: 4 / 5;
		max-width: 280px;
		margin: 0 auto;
	}

	/* Mobile: cards WITHOUT images stay collapsed - DO NOT override the no-image fix */
	.series-past-events .wp-block-cover:not(:has(.wp-block-cover__image-background)) {
		min-height: auto !important;
		/* FSE inline override */
		aspect-ratio: unset;
		height: auto !important;
		/* FSE inline override */
		max-width: none;
		margin: 0;
	}
}

/* Equal height past event cards */
.series-past-events .wp-block-post-template>* {
	height: 100%;
}

/* Note: Hover transitions for past events are defined in MICROINTERACTIONS section */

/* ============================================
   FEATURE CARDS - Refined Layout
   ============================================ */
.series-features {
	gap: var(--wp--preset--spacing--40) !important;
	/* FSE override */
}

.series-features .wp-block-column {
	margin-bottom: 0;
}

.series-features .wp-block-cover__inner-container {
	text-align: center;
}

.series-feature-icon {
	display: flex;
	justify-content: center;
	margin-bottom: 0.5rem;
}

.series-feature-icon svg {
	width: 42px;
	height: 42px;
}

/* Feature card titles */
.series-features h4.wp-block-heading,
.series-features h4.wp-block-heading.has-medium-font-size {
	text-align: center;
	font-size: 1.125rem;
	margin-bottom: 0.5rem;
}

/* Feature card descriptions */
.series-features .wp-block-cover__inner-container p.has-text-color {
	font-size: 0.875rem;
	line-height: 1.5;
	text-align: center;
}

/* Mobile: Stack vertically with proper spacing */
@media (max-width: 600px) {
	.series-features.stack-on-mobile {
		flex-direction: column;
		gap: var(--wp--preset--spacing--30) !important;
		/* FSE inline override */
	}

	.series-features .wp-block-column {
		width: 100%;
		flex-basis: 100% !important;
		/* FSE inline override */
	}

	/* Override any inline min-height from block editor on mobile */
	.series-features .wp-block-cover,
	.series-features .wp-block-cover[style*="min-height"] {
		min-height: var(--series-feature-height-sm, 160px) !important;
		/* FSE inline override */
	}

	.series-feature-icon svg {
		width: 36px;
		height: 36px;
	}

	.series-features h4.wp-block-heading,
	.series-features h4.wp-block-heading.has-medium-font-size {
		font-size: 1rem;
	}

	.series-features .wp-block-cover__inner-container p.has-text-color {
		font-size: 0.8125rem;
	}
}

/* Center Instagram button on mobile */
@media (max-width: 600px) {

	.wp-block-buttons.is-content-justification-center,
	.wp-block-buttons.is-content-justification-center.is-layout-flex,
	.wp-block-buttons[style*="justify-content:center"] {
		display: block;
		text-align: center;
		width: 100%;
	}

	.wp-block-buttons.is-content-justification-center .wp-block-button,
	.wp-block-buttons.is-layout-flex .wp-block-button,
	.wp-block-buttons[style*="justify-content:center"] .wp-block-button {
		display: inline-block;
		margin: 0 auto;
	}

	/* Marquee - faster on mobile */
	.series-marquee__track {
		animation-duration: 20s;
	}

	.series-marquee__content {
		font-size: 0.75rem;
		padding: 0 1rem;
	}
}

/* Feature cards - WCAG AA compliant text contrast
   Note: Feature card descriptions now use textColor="foreground" in templates
   This fallback ensures contrast for any legacy inline styles */
/* ============================================
   MARQUEE BANNER - Infinite scrolling ticker
   ============================================ */
.series-marquee {
	background-color: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	overflow: hidden;
	padding: var(--wp--preset--spacing--30, 1rem) 0;
	margin: 0;
	width: 100%;
}

.series-marquee__track {
	display: flex;
	width: max-content;
	animation: marquee-scroll 30s linear infinite;
}

.series-marquee__content {
	display: inline-block;
	padding: 0 2rem;
	white-space: nowrap;
	font-family: var(--wp--preset--font-family--heading, 'Integral CF', serif);
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* Keyframes for seamless infinite scroll */
@keyframes marquee-scroll {
	0% {
		transform: translateX(0);
	}

	100% {
		transform: translateX(-50%);
	}
}

/* Pause animation on hover or keyboard focus for readability (WCAG 2.2.2) */
.series-marquee:hover .series-marquee__track,
.series-marquee:focus-within .series-marquee__track {
	animation-play-state: paused;
}

/* Elevate Your Style section - enhanced text legibility */
.series-elevate-section h3 {
	text-shadow: 0 4px 12px rgba(0, 0, 0, 0.8);
	font-size: clamp(1.5rem, 4vw, 2.25rem);
}

.series-elevate-section p {
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.7);
}

/* Footer - reduce gigantic Series Starter text */
.site-footer-container .has-gigantic-font-size,
.alignfull .has-gigantic-font-size {
	font-size: clamp(2.5rem, 8vw, 5rem);
}

/* Product Grid - fix title sizes and alignment */
.series-products-intro .wp-block-post-title,
.series-products-intro .wc-block-components-product-title,
.series-products-intro h3.wp-block-post-title {
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	margin-top: 0.75rem;
	margin-bottom: 0.25rem;
}

.series-products-intro .wc-block-product,
.series-products-intro li.wc-block-product {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.series-products-intro .wc-block-components-product-image,
.series-products-intro .wp-block-woocommerce-product-image {
	width: 100% !important;
	/* FSE inline override */
	max-width: 200px;
	aspect-ratio: 1 / 1;
	margin: 0 auto;
	overflow: hidden;
}

.series-products-intro .wc-block-components-product-image img,
.series-products-intro .wp-block-woocommerce-product-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.series-products-intro .wc-block-components-product-price {
	font-size: 0.875rem;
	text-align: center;
}

.series-products-intro .wc-block-components-product-button {
	margin-top: auto;
}

/* ============================================
   TABLET PORTRAIT (768px)
   ============================================ */
@media (max-width: 768px) {

	/* Hero - tablet adjustments */
	.series-hero-section .wp-block-cover {
		min-height: 80vh;
		background-repeat: no-repeat !important;
		/* FSE inline override */
		background-size: cover !important;
		/* FSE inline override */
		background-position: center center !important;
		/* FSE inline override */
	}

	.series-hero-section .wp-block-cover__inner-container {
		min-height: 60vh;
		padding-left: var(--wp--preset--spacing--40);
		padding-right: var(--wp--preset--spacing--40);
	}

	/* Tablet: Center image for balanced composition */
	.series-hero-section .wp-block-cover__image-background {
		object-position: center center !important;
		/* FSE inline override */
		background-repeat: no-repeat !important;
		/* FSE inline override */
		background-size: cover !important;
		/* FSE inline override */
		background-position: center center !important;
		/* FSE inline override */
	}

	/* Hero logo adjustments */
	.wp-block-cover .wp-block-image img {
		width: var(--series-logo-size-md, 180px) !important;
		/* FSE inline override */
	}

	/* Hero CTA button - consistent padding */
	.series-hero-section .wp-block-buttons {
		margin-top: var(--wp--preset--spacing--40) !important;
		/* FSE inline override */
	}

	.series-hero-section .wp-block-button__link {
		padding: var(--series-btn-padding-y, 12px) var(--series-btn-padding-x, 28px);
	}

	/* Upcoming Events - single column on tablet */
	.series-upcoming-events .wp-block-post-template {
		flex-direction: column;
		align-items: center;
	}

	.series-upcoming-events .wp-block-post-template>* {
		flex: 0 0 100%;
		max-width: 500px;
		width: 100%;
	}

	/* Past Events - 2 columns */
	.series-past-events .wp-block-post-template {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Feature cards - stack vertically with proper gap */
	.series-features.stack-on-mobile {
		flex-direction: column;
		gap: var(--wp--preset--spacing--30) !important;
		/* FSE override */
	}

	.series-features .wp-block-column {
		flex-basis: 100% !important;
		/* FSE override */
		width: 100%;
	}

	.series-features .wp-block-cover {
		min-height: 200px !important;
		/* FSE inline override */
	}

	/* Instagram - 3 cols on tablet with padding */
	#sbi_images {
		grid-template-columns: repeat(3, 1fr) !important;
		/* plugin override */
		padding: 0 var(--wp--preset--spacing--30);
	}

	/* Shop preview - stack columns */
	.stack-on-mobile {
		flex-direction: column;
		gap: var(--wp--preset--spacing--50) !important;
		/* FSE override */
	}

	.stack-on-mobile .wp-block-column {
		flex-basis: 100% !important;
		/* FSE override */
		width: 100%;
	}

	.stack-on-mobile .wp-block-column[style*="60%"],
	.stack-on-mobile .wp-block-column[style*="40%"] {
		flex-basis: 100% !important;
		/* FSE inline override */
	}

	/* Center shop preview product */
	.series-shop-preview {
		max-width: 400px;
		margin: 0 auto;
	}

	/* Shop grid - 2 columns */
	.series-product-grid .wc-block-product-template {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Marquee allow wrap on tablet */
	.has-primary-background-color.alignfull {
		white-space: normal;
		text-align: center;
		padding-left: var(--wp--preset--spacing--30) !important;
		/* FSE inline override */
		padding-right: var(--wp--preset--spacing--30) !important;
		/* FSE inline override */
	}

	/* Single Event - stack poster and details on tablet */
	.single-tc_events .wp-block-columns.alignwide {
		flex-direction: column;
	}

	.single-tc_events .wp-block-columns.alignwide>.wp-block-column {
		flex-basis: 100% !important;
		/* FSE override */
		max-width: 100%;
	}

	.single-tc_events .wp-block-columns.alignwide>.wp-block-column:first-child {
		max-width: 600px;
		margin: 0 auto;
	}

	/* More Events grid - 2 columns on tablet */
	.single-tc_events .wp-block-query .wp-block-post-template,
	.series-more-events {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ============================================
   MOBILE (600px)
   ============================================ */
@media (max-width: 600px) {

	/* Hero - mobile optimized */
	.series-hero-section .wp-block-cover {
		min-height: 85vh;
		background-repeat: no-repeat !important;
		/* FSE inline override */
		background-size: cover !important;
		/* FSE inline override */
		background-position: center center !important;
		/* FSE inline override */
	}

	.series-hero-section .wp-block-cover__inner-container {
		min-height: 65vh;
		padding-left: var(--wp--preset--spacing--30);
		padding-right: var(--wp--preset--spacing--30);
	}

	/* Small mobile: Center image for consistency across devices */
	.series-hero-section .wp-block-cover__image-background {
		object-position: center center !important;
		/* FSE inline override */
		background-repeat: no-repeat !important;
		/* FSE inline override */
		background-size: cover !important;
		/* FSE inline override */
		background-position: center center !important;
		/* FSE inline override */
	}

	/* Hero logo smaller */
	.wp-block-cover .wp-block-image img {
		width: var(--series-logo-size-sm, 160px) !important;
		/* FSE inline override */
	}

	/* Hero tagline - smaller text */
	.series-hero-section .has-small-font-size p {
		font-size: 0.875rem;
		line-height: 1.6;
	}

	/* Hero CTA - compact and centered on mobile */
	.series-hero-section .wp-block-buttons {
		margin-top: var(--wp--preset--spacing--40) !important;
		/* FSE inline override */
		width: 100%;
		justify-content: center;
	}

	.series-hero-section .wp-block-button {
		width: auto;
		max-width: 280px;
	}

	.series-hero-section .wp-block-button__link {
		font-size: 0.8125rem;
		padding: var(--series-btn-padding-y, 12px) var(--series-btn-padding-x-sm, 24px);
		white-space: nowrap;
		display: inline-block;
	}

	/* Feature cards - fixed height on mobile */
	.series-features .wp-block-cover {
		min-height: 180px !important;
		/* FSE inline override */
	}

	/* Instagram - 2 cols on mobile with padding */
	#sbi_images {
		grid-template-columns: repeat(2, 1fr) !important;
		/* plugin override */
		padding: 0 var(--wp--preset--spacing--30);
	}

	/* Past events - single column on mobile */
	.series-past-events .wp-block-post-template {
		grid-template-columns: 1fr;
	}

	/* Shop grid - 2 columns on mobile */
	.series-product-grid .wc-block-product-template {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--wp--preset--spacing--30);
	}

	/* Marquee text smaller on mobile */
	.has-primary-background-color.has-small-font-size {
		font-size: 0.6875rem;
		letter-spacing: 0.03em !important;
		/* FSE inline override */
	}

	/* Padding adjustments for mobile */
	.series-features-section {
		padding-left: var(--wp--preset--spacing--30);
		padding-right: var(--wp--preset--spacing--30);
	}

	/* CTA button constrained width on mobile */
	.wp-block-group.has-foreground-background-color .wp-block-buttons {
		max-width: 320px;
		margin-left: auto;
		margin-right: auto;
	}

	/* Single Event - mobile adjustments */
	.single-tc_events .wp-block-query .wp-block-post-template,
	.series-more-events {
		grid-template-columns: 1fr;
	}

	/* Sponsor section - wrap on mobile */
	.series-sponsor-section {
		flex-wrap: wrap;
	}

	/* Disable parallax on mobile - causes jank on iOS/Android */
	.wp-block-cover.has-parallax,
	.wp-block-cover.has-parallax .wp-block-cover__image-background {
		background-attachment: scroll !important;
	}
}

/* ============================================
   SMALL MOBILE (480px)
   ============================================ */
@media (max-width: 480px) {

	/* Hero - small mobile */
	.series-hero-section .wp-block-cover {
		min-height: 100vh;
		min-height: 100svh;
		/* Use small viewport height for mobile browsers */
	}

	.series-hero-section .wp-block-cover__inner-container {
		min-height: 80vh;
		min-height: 80svh;
	}

	.series-hero-section .wp-block-cover .wp-block-image img {
		width: var(--series-logo-size-xs, 140px) !important;
		/* FSE inline override */
	}

	/* Hero CTA - compact on small mobile */
	.series-hero-section .wp-block-button__link {
		font-size: 0.75rem;
		padding: var(--series-btn-padding-y-sm, 10px) var(--series-btn-padding-x-sm, 20px);
		letter-spacing: var(--series-ls-cta, 0.08em) !important;
		/* FSE inline override */
	}

	/* Event cards */
	.series-upcoming-events .wp-block-cover {
		min-height: var(--series-card-height-upcoming, 350px) !important;
		/* FSE inline override */
	}

	/* Collapse event cards without featured images */
	.wp-block-query .wp-block-cover:not(:has(.wp-block-cover__image-background)),
	.series-upcoming-events .wp-block-cover:not(:has(.wp-block-cover__image-background)) {
		min-height: auto !important;
		/* FSE inline override */
	}

	/* Products intro - full width, centered */
	.series-products-intro {
		padding-left: var(--wp--preset--spacing--30);
		padding-right: var(--wp--preset--spacing--30);
	}

	/* Buttons full width on small mobile - except outline/nav buttons */
	.wp-block-buttons:not(.is-style-outline-group) {
		width: 100%;
	}

	.wp-block-button:not(.is-style-outline) {
		width: 100%;
	}

	.wp-block-button:not(.is-style-outline) .wp-block-button__link {
		width: 100%;
		max-width: 320px;
		margin-left: auto;
		margin-right: auto;
		text-align: center;
	}

	/* Outline buttons keep auto width */
	.wp-block-button.is-style-outline {
		width: auto;
	}

	.wp-block-button.is-style-outline .wp-block-button__link {
		width: auto;
		padding-left: var(--series-btn-padding-x, 28px);
		padding-right: var(--series-btn-padding-x, 28px);
	}
}

/* ============================================
   VERY SMALL SCREENS (360px)
   ============================================ */
@media (max-width: 360px) {
	/* small device override */

	/* Hero logo even smaller */
	.series-hero-section .wp-block-cover .wp-block-image img {
		width: var(--series-logo-size-xs, 140px) !important;
		/* FSE inline override */
	}

	/* Instagram single column */
	#sbi_images {
		grid-template-columns: repeat(2, 1fr) !important;
		/* plugin override */
	}

	/* Product grid single column */
	.series-product-grid .wc-block-product-template {
		grid-template-columns: 1fr;
	}

	/* Feature cards smaller */
	.series-features .wp-block-cover {
		min-height: 200px !important;
		/* FSE inline override */
	}
}

/* ============================================
   2026 UX ENHANCEMENTS
   ============================================ */

/* Mobile navigation touch targets */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	min-width: 44px;
	min-height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--background, #F2F2F2) !important;
	/* counter parent !important */
}

/* Mobile menu icon SVG fill - ensure visibility on dark header */
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg {
	fill: var(--wp--preset--color--background, #F2F2F2) !important;
	/* counter parent !important */
}

/* Accent hover state for brand consistency */
.wp-block-navigation__responsive-container-open:hover,
.wp-block-navigation__responsive-container-close:hover {
	color: var(--wp--preset--color--primary, #C6A15B) !important;
	/* counter parent !important */
}

.wp-block-navigation__responsive-container-open:hover svg,
.wp-block-navigation__responsive-container-close:hover svg {
	fill: var(--wp--preset--color--primary, #C6A15B) !important;
	/* counter parent !important */
}

/* ============================================
   MOBILE NAV OVERLAY - Dark Theme Fix
   Parent ponyfill forces color: foreground (dark) on the overlay
   which also has a dark bg. Must override for visibility.
   Matches parent breakpoint: 1024px + landscape 1366px
   ============================================ */
@media (max-width: 1024px),
(orientation: landscape) and (max-width: 1366px) {

	/* Mobile menu overlay - must fill viewport and hide page content */
	.wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		/* counter parent !important */
		top: 0 !important;
		/* counter parent !important */
		left: 0 !important;
		/* counter parent !important */
		right: 0 !important;
		/* counter parent !important */
		bottom: 0 !important;
		/* counter parent !important */
		width: 100% !important;
		/* FSE inline override */
		height: 100% !important;
		/* FSE inline override */
		min-height: 100vh !important;
		/* FSE inline override */
		min-height: 100dvh !important;
		/* FSE inline override */
		background-color: var(--wp--preset--color--foreground, #0B0B0B) !important;
		/* counter parent !important */
		z-index: var(--series-z-page-loading, 99999) !important;
		/* counter parent !important */
		overflow-y: auto !important;
		/* counter parent !important */
		overflow-x: hidden !important;
		/* counter parent !important */
		display: flex !important;
		/* FSE inline override */
		flex-direction: column !important;
		/* counter parent !important */
		padding: 0 !important;
		/* FSE inline override */
		margin: 0 !important;
		/* FSE inline override */
	}

	/* Prevent body scroll when menu is open */
	body:has(.wp-block-navigation__responsive-container.is-menu-open) {
		overflow: hidden !important;
		/* counter parent !important */
		position: fixed !important;
		/* counter parent !important */
		width: 100% !important;
		/* FSE inline override */
	}

	/* Menu content container - centered with proper spacing */
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		flex: 1 !important;
		/* counter parent !important */
		display: flex !important;
		/* FSE inline override */
		flex-direction: column !important;
		/* counter parent !important */
		justify-content: center !important;
		/* counter parent !important */
		align-items: center !important;
		/* counter parent !important */
		padding: var(--wp--preset--spacing--60, 2.5rem) !important;
		/* FSE inline override */
		gap: var(--wp--preset--spacing--50, 1.5rem) !important;
		/* counter parent !important */
		width: 100% !important;
		/* FSE inline override */
		max-width: 100% !important;
		/* FSE inline override */
		background-color: var(--wp--preset--color--foreground, #0B0B0B) !important;
		/* counter parent !important */
	}

	/* Menu items should stack nicely */
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		display: flex !important;
		/* FSE inline override */
		flex-direction: column !important;
		/* counter parent !important */
		align-items: center !important;
		/* counter parent !important */
		gap: var(--wp--preset--spacing--40, 1rem) !important;
		/* counter parent !important */
	}

	/* Override parent's dark-on-dark text */
	.wp-block-navigation.is-responsive .wp-block-navigation__responsive-container {
		color: var(--wp--preset--color--background, #F2F2F2) !important;
		/* counter parent !important */
	}

	/* Menu item links */
	.wp-block-navigation.is-responsive .wp-block-navigation__responsive-container .wp-block-navigation-item a {
		color: var(--wp--preset--color--background, #F2F2F2) !important;
		/* counter parent !important */
	}

	/* Menu item hover/focus */
	.wp-block-navigation.is-responsive .wp-block-navigation__responsive-container .wp-block-navigation-item a:hover,
	.wp-block-navigation.is-responsive .wp-block-navigation__responsive-container .wp-block-navigation-item a:focus {
		color: var(--wp--preset--color--primary, #C6A15B) !important;
		/* counter parent !important */
	}

	/* Close button */
	.wp-block-navigation.is-responsive .wp-block-navigation__responsive-container-close {
		color: var(--wp--preset--color--background, #F2F2F2) !important;
		/* counter parent !important */
	}

	.wp-block-navigation.is-responsive .wp-block-navigation__responsive-container-close svg {
		fill: var(--wp--preset--color--background, #F2F2F2) !important;
		/* counter parent !important */
	}

	.wp-block-navigation.is-responsive .wp-block-navigation__responsive-container-close:hover {
		color: var(--wp--preset--color--primary, #C6A15B) !important;
		/* counter parent !important */
	}

	.wp-block-navigation.is-responsive .wp-block-navigation__responsive-container-close:hover svg {
		fill: var(--wp--preset--color--primary, #C6A15B) !important;
		/* counter parent !important */
	}

	/* Use child heading font, not parent Clash Display */
	.wp-block-navigation.is-responsive .wp-block-navigation__responsive-container .wp-block-navigation__container {
		font-family: var(--wp--preset--font-family--heading, 'Integral CF', serif) !important;
		/* counter parent !important */
	}

	/* Social links visible in mobile overlay */
	.wp-block-navigation.is-responsive .wp-block-navigation__responsive-container .wp-block-social-links a {
		color: var(--wp--preset--color--background, #F2F2F2) !important;
		/* counter parent !important */
	}

	.wp-block-navigation.is-responsive .wp-block-navigation__responsive-container .wp-block-social-links a:hover {
		color: var(--wp--preset--color--primary, #C6A15B) !important;
		/* counter parent !important */
	}
}

/* Microinteractions - Event Card Hover */
.series-upcoming-events .wp-block-cover,
.series-past-events .wp-block-cover {
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1),
		box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
	height: 100%;
}

.series-upcoming-events .wp-block-cover:hover,
.series-past-events .wp-block-cover:hover {
	transform: translateY(-8px) scale(1.02);
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5),
		0 0 0 1px rgba(var(--series-primary-rgb), 0.1);
}

/* Button Hover Glow Effect */
.wp-block-button__link {
	transition: transform 0.3s var(--series-ease-out), box-shadow 0.3s var(--series-ease-out), background-position 0.5s ease;
	position: relative;
}

.wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 40px -10px rgba(var(--series-primary-rgb), 0.5);
}

/* Outline Button Default - Visible border */
.wp-block-button.is-style-outline .wp-block-button__link {
	border: 2px solid currentColor;
	background-color: transparent;
}

/* Outline Button Hover - Add lift and subtle glow */
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: rgba(var(--series-primary-rgb), 0.1);
	transform: translateY(-2px);
	box-shadow: 0 8px 25px -8px rgba(var(--series-primary-rgb), 0.25),
		0 0 0 1px rgba(var(--series-primary-rgb), 0.3);
}

/* Primary Button Glow */
.has-primary-background-color.wp-block-button__link:hover {
	box-shadow: 0 10px 40px -10px rgba(var(--series-primary-rgb), 0.6),
		0 0 20px rgba(var(--series-primary-rgb), 0.3);
}

/* Feature Cards Hover */
.series-features .wp-block-cover {
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
	height: 100%;
}

.series-features .wp-block-cover:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.15);
	border-color: var(--wp--preset--color--primary);
}

/* Feature Card SVG Icons - Styling and hover effects */
.series-feature-icon {
	color: var(--wp--preset--color--primary, #C6A15B);
	margin-bottom: var(--wp--preset--spacing--30, 1rem);
	transition: transform 0.3s ease, filter 0.3s ease;
	line-height: 1;
}

.series-feature-icon svg {
	display: block;
	width: 42px;
	height: 42px;
}

.series-features .wp-block-cover:hover .series-feature-icon {
	transform: scale(1.1);
	filter: drop-shadow(0 0 12px rgba(var(--series-primary-rgb), 0.6));
}

/* Legacy: Feature Card Hieroglyph Icons - Glow on hover (fallback) */
.series-features .wp-block-cover__inner-container>p:first-of-type {
	transition: text-shadow 0.3s ease, transform 0.3s ease;
}

.series-features .wp-block-cover:hover .wp-block-cover__inner-container>p:first-of-type {
	text-shadow: 0 0 20px rgba(var(--series-primary-rgb), 0.6), 0 0 40px rgba(var(--series-primary-rgb), 0.3);
	transform: scale(1.05);
}

/* Touch Device Feedback - Feature Cards */
@media (hover: none) {
	.series-features .wp-block-cover:active {
		transform: translateY(-2px);
		border-color: var(--wp--preset--color--primary);
		box-shadow: 0 15px 30px -10px rgba(0, 0, 0, 0.12);
	}

	.series-features .wp-block-cover:active .series-feature-icon {
		transform: scale(1.05);
	}
}

/* Product Card Hover */
.series-product-grid .wc-block-components-product-image {
	transition: transform 0.4s ease;
	overflow: hidden;
	border-radius: var(--series-radius-xl) var(--series-radius-xl) 0 0;
}

.series-product-grid .wc-block-components-product-image img {
	transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.series-product-grid li:hover .wc-block-components-product-image img {
	transform: scale(1.08);
}

/* Link Hover Underline Animation */
.wp-block-navigation a,
.site-footer a {
	position: relative;
}

.wp-block-navigation a::after,
.site-footer a::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 0;
	height: 1px;
	background: var(--wp--preset--color--primary);
	transition: width 0.3s ease;
}

/* Exclude buttons from underline animation */
.wp-block-button__link::after,
.wp-element-button::after,
.series-hero-content a.wp-block-button__link::after {
	display: none;
	content: none;
}

.wp-block-navigation a:hover::after,
.site-footer a:hover::after {
	width: 100%;
}

/* Hero content entrance animation */
@keyframes hero-animate-from-bottom {
	0% {
		opacity: 0;
		transform: translateY(30px);
	}

	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.h-animate-from-bottom {
	animation: hero-animate-from-bottom 0.8s ease-out forwards;
}

/* Ticket Section Heading */
#tickets>h3.wp-block-heading {
	font-size: clamp(1.25rem, 3vw, 1.5rem);
	font-weight: 700;
	letter-spacing: 0.02em;
	margin-bottom: var(--wp--preset--spacing--20);
}

/* Product Loading Skeleton */
.series-product-grid.is-loading .wc-block-components-product-image,
.series-product-grid .wc-block-components-skeleton {
	background: linear-gradient(90deg, var(--wp--preset--color--secondary, #1A1A1A) 25%, var(--series-gray-700, #2a2a2a) 50%, var(--wp--preset--color--secondary, #1A1A1A) 75%);
	background-size: 200% 100%;
	animation: skeleton-loading 1.5s ease-in-out infinite;
	border-radius: var(--series-radius-xl) var(--series-radius-xl) 0 0;
	min-height: 280px;
}

/* Instagram Feed Lazy Load Placeholder */
.series-instagram-wrapper {
	min-height: 200px;
	position: relative;
}

.series-instagram-wrapper.is-loading::before {
	content: 'Loading Instagram...';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: rgba(255, 255, 255, 0.5);
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

/* ============================================
   FOCUS STATES - ACCESSIBILITY (WCAG AA Enhanced)
   ============================================ */
.wp-block-button__link:focus-visible,
a:focus-visible {
	outline: 3px solid var(--series-accent-light);
	outline-offset: 3px;
	box-shadow: 0 0 0 5px rgba(212, 175, 97, 0.3);
}

/* Dark outline for elements on accent backgrounds */
.has-primary-background-color .wp-block-button__link:focus-visible,
.has-primary-background-color a:focus-visible {
	outline-color: var(--wp--preset--color--foreground);
	outline-width: 3px;
	box-shadow: 0 0 0 5px rgba(var(--series-foreground-rgb), 0.3);
}

.wp-block-navigation a:focus-visible {
	outline: 3px solid var(--series-accent-light);
	outline-offset: 2px;
	border-radius: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
	.wp-block-button__link {
		border: 2px solid currentColor !important;
	}

	.site-header {
		background-color: #000 !important;
		backdrop-filter: none !important;
	}
}

/* ============================================
   SECTION NAVIGATION - Production Grade
   ============================================
   Fixed navigation bar that appears after scrolling past hero.
   Properly positioned below the sticky header.
   ============================================ */

/* Base state: hidden above viewport */
.series-section-nav {
	position: fixed;
	top: calc(var(--series-header-height, 76px) - 1px);
	left: 0;
	right: 0;
	width: 100%;
	z-index: var(--series-z-section-nav, 600);
	background-color: var(--wp--preset--color--foreground, #0B0B0B);
	border-bottom: 1px solid rgba(var(--series-primary-rgb), 0.3);
	transform: translateY(-100%);
	opacity: 0;
	visibility: hidden;
	transition:
		transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		visibility 0s linear 0.3s;
	margin: 0;
	padding: 0;
}

/* Visible state: slides down into view */
.series-section-nav.is-visible {
	transform: translateY(0);
	opacity: 1;
	visibility: visible;
	transition:
		transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		visibility 0s linear 0s;
}

/* Inner container - handles horizontal scroll on mobile */
/* Inner list - semantic ul/li structure like WP navigation */
.series-section-nav__list {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	padding: 0.625rem 1rem;
	/* 10px 16px */
	max-width: 1200px;
	margin: 0 auto;
	list-style: none;
	/* Mobile horizontal scroll */
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	/* Hide scrollbar */
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.series-section-nav__list::-webkit-scrollbar {
	display: none;
}

/* List items */
.series-section-nav__item {
	display: inline-flex;
	flex-shrink: 0;
}

/* Navigation links */
.series-section-nav__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--wp--preset--font-family--mono, monospace);
	font-size: 0.75rem;
	/* 12px — WCAG cognitive minimum for nav labels */
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: rgba(var(--series-background-rgb), 0.7);
	text-decoration: none;
	padding: 0.625rem 0.75rem;
	/* 10px 12px - increased for touch */
	border-radius: 4px;
	white-space: nowrap;
	min-height: var(--series-touch-target, 44px);
	/* WCAG 2.1 AA minimum */
	transition:
		color 0.2s ease,
		background-color 0.2s ease;
}

.series-section-nav__link:hover {
	color: var(--wp--preset--color--primary, #C6A15B);
	background-color: rgba(var(--series-primary-rgb), 0.1);
}

.series-section-nav__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 2px;
	color: var(--wp--preset--color--background, #F2F2F2);
}

/* Active state - current section */
.series-section-nav__link.is-active {
	color: var(--wp--preset--color--foreground, #0B0B0B);
	background-color: var(--wp--preset--color--primary, #C6A15B);
}

/* Tablet and up: larger touch targets and spacing */
@media (min-width: 768px) {
	.series-section-nav__list {
		gap: 0.75rem;
		padding: 0.75rem 1.5rem;
		/* No scroll needed on larger screens */
		overflow-x: visible;
	}

	.series-section-nav__link {
		font-size: 0.75rem;
		/* 12px */
		padding: 0.5rem 1rem;
		min-height: var(--series-touch-target, 44px);
	}
}

/* ============================================
   min-width: 1024px — CONSOLIDATED
   ============================================ */
@media (min-width: 1024px) {

	/* Header: hide social icons in desktop nav
	   ponyfill activates hamburger at <=1024px */
	.site-header .wp-block-navigation__container>.wp-block-navigation-item>.wp-block-social-links {
		display: none;
	}

	/* Hero: full impact height */
	.series-hero-section .wp-block-cover {
		min-height: 80vh;
	}

	/* More events: 3-column grid */
	.series-more-events {
		grid-template-columns: repeat(3, 1fr);
	}

	/* Section nav: large desktop */
	.series-section-nav__list {
		gap: 1rem;
	}

	.series-section-nav__link {
		font-size: 0.8125rem;
		padding: 0.5rem 1.25rem;
	}
}

/* High contrast mode */
@media (forced-colors: active) {
	.series-section-nav {
		border: 1px solid CanvasText;
	}

	.series-section-nav__link.is-active {
		background-color: Highlight;
		color: HighlightText;
	}
}

/* Small phones (iPhone SE, etc.) */
@media (max-width: 374px) {

	/* small device override */
	.series-section-nav__list {
		gap: 0.25rem;
		padding: 0.5rem 0.75rem;
	}

	.series-section-nav__link {
		font-size: 0.625rem;
		padding: 0.5rem 0.5rem;
		letter-spacing: 0.05em;
	}

	/* Hide About link on smallest screens - content is immediately visible below hero */
	.series-section-nav__link[href="#about"] {
		display: none;
	}

	/* Reserve space for CTA button */
	.series-sticky-ticket-bar__info {
		max-width: calc(100% - 100px);
	}

	.series-sticky-ticket-bar__cta {
		padding: 10px 12px;
		font-size: 0.6875rem;
		letter-spacing: 0.04em;
	}
}

/* All mobile phones - ensure CTA never truncates */
@media (max-width: 768px) {
	.series-sticky-ticket-bar__content {
		gap: 12px;
		/* Tighter gap on mobile */
	}

	.series-sticky-ticket-bar__info {
		flex: 1 1 auto;
		max-width: calc(100% - 120px);
		/* Reserve space for GET TICKETS button */
		overflow: hidden;
	}

	.series-sticky-ticket-bar__cta {
		flex: 0 0 auto;
		/* Never shrink, never grow */
	}
}

/* Landscape phones - reduce height to preserve content space */
@media (orientation: landscape) and (max-height: 500px) {
	.series-section-nav__list {
		padding: 0.375rem 1rem;
	}

	.series-section-nav__link {
		min-height: 36px;
		padding: 0.375rem 0.75rem;
	}

	.series-sticky-ticket-bar {
		padding: 8px 16px;
		padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
	}

	.series-sticky-ticket-bar__title {
		font-size: 0.75rem;
	}

	.series-sticky-ticket-bar__cta {
		padding: 8px 16px;
		min-height: 36px;
	}
}

/* GPU compositing — will-change lifecycle managed by JS (initStickyWillChange).
   isolation:isolate retained to ensure correct stacking context. */
.series-section-nav,
.series-sticky-ticket-bar {
	isolation: isolate;
	/* Creates stacking context without breaking fixed positioning */
}

/* Section anchors scroll offset - accounts for both headers */
/* scroll-margin-top for these anchors is set with .series-upcoming-section in the global anchor rule above */

/* ============================================
   EVENT NOTICE SHARED STYLES
   Extracted from inline template styles for maintainability.
   ============================================ */
.series-event-notice {
	text-align: center;
	max-width: 600px;
	margin: 0 auto;
}

.series-event-notice--full {
	padding: 60px 20px;
}

.series-event-notice--slim {
	padding: 24px 20px;
}

.series-event-notice__title {
	font-size: 1.75rem;
	font-weight: 700;
	margin-bottom: 12px;
	color: var(--wp--preset--color--primary, #C6A15B);
}

.series-event-notice__text {
	font-size: 1.125rem;
	line-height: 1.6;
	color: rgba(var(--series-background-rgb), 0.7);
	margin-bottom: 32px;
}

.series-event-notice__text--highlight {
	font-size: 1.125rem;
	line-height: 1.6;
	color: var(--wp--preset--color--primary, #C6A15B);
	margin: 0;
	font-weight: 600;
}

.series-event-notice__actions {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
}

.series-event-notice__cta {
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground);
	padding: 14px 32px;
	border-radius: var(--series-radius-pill);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* ============================================
   EVENT STATE: ELEMENT VISIBILITY (consolidated)
   Body classes set by PHP: event-state--{upcoming|happening|ended}
                            event-tickets--{available|sold-out}
   ============================================ */

/* Hide hero CTA + wrapper when ended OR sold out (any state).
   Specificity 0-3-1 beats FSE layout centering rule (0-3-0). */
body:is(.event-state--ended, .event-tickets--sold-out) .wp-block-button.series-hero-cta,
body:is(.event-state--ended, .event-tickets--sold-out) .wp-block-button.series-cta-button {
	display: none;
}

body:is(.event-state--ended, .event-tickets--sold-out) .series-hero-content .wp-block-buttons {
	display: none;
}

/* Hide sticky bar when ended OR sold out */
:is(.event-state--ended, .event-tickets--sold-out) .series-sticky-ticket-bar {
	display: none;
}

/* Hide tickets section + nav link: ended OR happening+sold-out.
   Upcoming+sold-out keeps tickets visible as social proof. */
:is(.event-state--ended, .event-state--happening.event-tickets--sold-out) #tickets {
	display: none;
}

:is(.event-state--ended, .event-state--happening.event-tickets--sold-out) .series-section-nav__link[href="#tickets"] {
	display: none;
}

/* Hide countdown "ended" text — the notice shortcode handles messaging */
.event-state--ended .series-countdown--ended {
	display: none;
}

.series-urgency-hint.is-final-tier {
	background: linear-gradient(135deg, rgba(239, 68, 68, 0.1) 0%, rgba(239, 68, 68, 0.05) 100%);
	border-color: rgba(239, 68, 68, 0.25);
	color: var(--series-error-light);
}

@keyframes pulse-urgency {

	0%,
	100% {
		opacity: 1;
	}

	50% {
		opacity: 0.8;
	}
}

/* ============================================
   STICKY TICKET BAR (Mobile-First)
   ============================================ */
.series-sticky-ticket-bar {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: var(--series-z-sticky-bar, 700);
	padding: 12px 16px;
	padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
	background: rgba(var(--series-foreground-rgb), 0.95);
	backdrop-filter: blur(16px) saturate(180%);
	-webkit-backdrop-filter: blur(16px) saturate(180%);
	border-top: 1px solid rgba(var(--series-primary-rgb), 0.2);
	transform: translateY(100%);
	opacity: 0;
	visibility: hidden;
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1),
		opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1),
		visibility 0s 0.4s;
}

/* Content wrapper for flex layout */
.series-sticky-ticket-bar__content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

.series-sticky-ticket-bar.is-visible {
	transform: translateY(0);
	opacity: 1;
	visibility: visible;
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1),
		opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1),
		visibility 0s;
}

.series-sticky-ticket-bar__info {
	flex: 1 1 0;
	min-width: 0;
	overflow: hidden;
}

.series-sticky-ticket-bar__title {
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--wp--preset--color--background, #F2F2F2);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	margin: 0;
	line-height: 1.3;
}

.series-sticky-ticket-bar__price {
	display: block;
	font-size: 0.75rem;
	color: var(--wp--preset--color--primary, #C6A15B);
	font-weight: 600;
	margin: 2px 0 0;
}

.series-sticky-ticket-bar__price:empty {
	display: none;
}

.series-sticky-ticket-bar__cta {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 24px;
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	font-size: 0.8125rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	text-decoration: none;
	border-radius: 4px;
	min-height: 44px;
	/* Touch target */
	min-width: 110px;
	/* Fallback for browsers that don't support max-content */
	min-width: max-content;
	/* Prevent text truncation */
	white-space: nowrap;
	/* Keep text on one line */
	overflow: visible;
	/* Never clip button content */
	text-overflow: clip;
	/* Don't ellipsize */
	transition: transform var(--series-duration-normal) ease, box-shadow var(--series-duration-normal) ease;
}

.series-sticky-ticket-bar__cta:hover {
	transform: scale(1.02);
	box-shadow: 0 8px 25px -8px rgba(var(--series-primary-rgb), 0.5);
}

.series-sticky-ticket-bar__cta:focus-visible {
	outline: 2px solid var(--wp--preset--color--background, #F2F2F2);
	outline-offset: 2px;
}

/* Desktop: Larger bar with more info */
@media (min-width: 768px) {
	.series-sticky-ticket-bar {
		padding: 16px 24px;
		padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
		justify-content: center;
		gap: 24px;
	}

	.series-sticky-ticket-bar__info {
		flex: none;
		text-align: right;
	}

	.series-sticky-ticket-bar__title {
		font-size: 1rem;
	}

	.series-sticky-ticket-bar__price {
		font-size: 0.875rem;
	}

	.series-sticky-ticket-bar__cta {
		padding: 14px 32px;
		font-size: 0.875rem;
	}
}

/* Centered container on tablet+ */
@media (min-width: 768px) {
	.series-sticky-ticket-bar {
		max-width: 600px;
		left: 50%;
		right: auto;
		transform: translateX(-50%) translateY(100%);
		border-radius: var(--series-radius-md) var(--series-radius-md) 0 0;
	}

	.series-sticky-ticket-bar.is-visible {
		transform: translateX(-50%) translateY(0);
	}
}

/* Slightly wider on large screens */
@media (min-width: 1280px) {
	.series-sticky-ticket-bar {
		max-width: 550px;
	}
}

/* Reduced motion + large screens - fix transform for centered sticky bar */
@media (prefers-reduced-motion: reduce) and (min-width: 1280px) {
	.series-sticky-ticket-bar.is-visible {
		transform: translateX(-50%) translateY(0);
	}
}

/* Sold out state for sticky bar */
.series-sticky-ticket-bar.is-sold-out .series-sticky-ticket-bar__price {
	color: var(--series-text-muted-light, #666666);
}

.series-sticky-ticket-bar.is-sold-out .series-sticky-ticket-bar__cta {
	background: var(--series-text-muted-light, #666666);
	color: var(--wp--preset--color--background, #F2F2F2);
}

/* Focus styles for add-to-cart buttons (WCAG 2.1 compliance) */
.tickera .add_to_cart_button:focus-visible,
.tickera .tc-wb-add-to-cart a:focus-visible,
.woocommerce .add_to_cart_button:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 2px;
	box-shadow: 0 0 0 4px rgba(var(--series-primary-rgb), 0.3);
}

/* ============================================
   ADD TO CART LOADING OVERLAY
   ============================================ */
.series-tickets-loading {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(var(--series-foreground-rgb), 0.85);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: var(--series-z-notification, 950);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease, visibility 0s 0.2s;
}

#tickets.is-loading .series-tickets-loading {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.2s ease, visibility 0s;
}

.series-tickets-loading__spinner {
	width: 40px;
	height: 40px;
	border: 3px solid rgba(var(--series-primary-rgb), 0.2);
	border-top-color: var(--wp--preset--color--primary, #C6A15B);
	border-radius: 50%;
	animation: series-spin 0.8s linear infinite;
}

@keyframes series-spin {
	to {
		transform: rotate(360deg);
	}
}

/* ============================================
   PAGE-LEVEL LOADING OVERLAY
   Used for checkout→thank you transition
   ============================================ */
.series-page-loading {
	position: fixed;
	inset: 0;
	background: var(--wp--preset--color--foreground, #0B0B0B);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: var(--series-z-page-loading);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.15s ease-out, visibility 0s 0.15s;
}

.series-page-loading.is-active {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.15s ease-out, visibility 0s;
}

.series-page-loading__content {
	text-align: center;
}

.series-page-loading__spinner {
	width: 48px;
	height: 48px;
	border: 3px solid rgba(var(--series-primary-rgb), 0.15);
	border-top-color: var(--wp--preset--color--primary, #C6A15B);
	border-radius: 50%;
	animation: series-spin 0.8s linear infinite;
}

/* ============================================
   TICKERA TABLE - Production Grade
   Mobile-first responsive design with card layout
   ============================================ */

/* Container */
.tickera {
	max-width: 900px;
	margin: 0 auto;
	padding: 0 16px;
}

/* Base table styles */
.tickera .event_tickets {
	width: 100%;
	border-collapse: collapse;
}

/* ===========================================
   TABLE LAYOUT - All screen sizes
   =========================================== */
.tickera .event_tickets th,
.tickera .event_tickets td {
	padding: 16px 12px;
	text-align: left;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	vertical-align: middle;
}

.tickera .event_tickets th {
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--primary, #C6A15B);
	background: transparent;
}

/* Ticket name column */
.tickera .event_tickets td:first-child {
	font-weight: 700;
	color: var(--wp--preset--color--background, #F2F2F2);
}

/* Sold out row styling */
.tickera .event_tickets tr:has(span.is-sold-out),
.tickera .event_tickets tr.is-sold-out-row {
	opacity: 0.65;
}

/* ===========================================
   MOBILE: Stacked ticket cards
   =========================================== */
@media (max-width: 767px) {

	/* Container */
	.tickera {
		padding: 0;
	}

	/* Break table structure */
	.tickera .event_tickets,
	.tickera .event_tickets tbody,
	.tickera .event_tickets tr,
	.tickera .event_tickets td {
		display: block !important;
		/* counter parent */
		width: 100% !important;
		/* counter parent */
	}

	/* Hide header row */
	.tickera .event_tickets tr:has(th) {
		display: none !important;
		/* counter parent — overrides display:block !important on tr */
	}

	/* Each row becomes a card */
	.tickera .event_tickets tr {
		background: rgba(var(--series-secondary-rgb), 0.7) !important;
		/* plugin override */
		border-radius: var(--series-radius-lg) !important;
		/* plugin override */
		padding: 16px;
		margin-bottom: 12px;
	}

	.tickera .event_tickets tr:last-child {
		margin-bottom: 0;
	}

	/* Reset ALL cell styles aggressively */
	.tickera .event_tickets td {
		padding: 0;
		margin: 0;
		border: none;
		text-align: left;
	}

	/* Reset all child elements inside cells */
	.tickera .event_tickets td * {
		margin: 0;
		padding: 0;
	}

	/* Ticket name */
	.tickera .event_tickets td[data-column="Ticket Type"] {
		font-weight: 700;
		font-size: 0.875rem;
		line-height: 1.4;
		color: var(--wp--preset--color--background, #F2F2F2) !important;
		/* plugin override */
		margin-bottom: 4px;
	}

	/* Price */
	.tickera .event_tickets td[data-column="Price"] {
		color: var(--wp--preset--color--primary, #C6A15B) !important;
		/* plugin override */
		font-weight: 700;
		font-size: 1.125rem !important;
		/* plugin override */
		margin-bottom: 8px;
	}

	.tickera .event_tickets .woocommerce-Price-amount {
		font-size: 1.125rem !important;
		/* plugin override */
	}

	/* Show currency symbol */
	.tickera .event_tickets .woocommerce-Price-currencySymbol {
		display: inline;
	}

	/* Cart cell - no extra margin */
	.tickera .event_tickets td[data-column="Cart"] {
		margin-top: 0;
	}

	/* Reset WooCommerce add_to_cart paragraph wrapper */
	.tickera .event_tickets td[data-column="Cart"] p,
	.tickera .event_tickets td[data-column="Cart"] .product {
		margin: 0;
		padding: 0;
	}

	/* Full-width button */
	.tickera .event_tickets .add_to_cart_button,
	.tickera .event_tickets .button {
		width: 100% !important;
		/* counter parent */
		min-height: 48px;
		padding: 14px 20px;
		font-size: 0.8125rem !important;
		/* plugin override */
		font-weight: 700 !important;
		/* plugin override */
		line-height: 1 !important;
		/* plugin override */
		text-align: center !important;
		/* plugin override */
		display: flex !important;
		/* counter parent */
		align-items: center !important;
		/* plugin override */
		justify-content: center !important;
		/* plugin override */
		box-sizing: border-box !important;
		/* plugin override */
		border-radius: var(--series-radius-sm) !important;
		/* plugin override */
	}

	/* Sold out state */
	.tickera .event_tickets span.is-sold-out {
		width: 100%;
		min-height: 48px;
		padding: 14px 20px;
		font-size: 0.8125rem !important;
		/* plugin override */
		font-weight: 700 !important;
		/* plugin override */
		line-height: 1 !important;
		/* plugin override */
		text-align: center !important;
		/* plugin override */
		display: flex;
		align-items: center !important;
		/* plugin override */
		justify-content: center !important;
		/* plugin override */
		box-sizing: border-box !important;
		/* plugin override */
		border-radius: var(--series-radius-sm) !important;
		/* plugin override */
		background: rgba(255, 255, 255, 0.1) !important;
		/* plugin override */
		color: var(--wp--preset--color--background, #F2F2F2) !important;
		/* plugin override */
		opacity: 0.7 !important;
		/* plugin override */
	}

	/* Sold out row card style */
	.tickera .event_tickets tr:has(span.is-sold-out),
	.tickera .event_tickets tr.is-sold-out-row {
		opacity: 0.6;
	}
}

/* ===========================================
   DESKTOP: Traditional table layout
   =========================================== */
@media (min-width: 768px) {
	.tickera {
		padding: 0;
	}

	.tickera .event_tickets th,
	.tickera .event_tickets td {
		padding: 20px 16px;
		text-align: left;
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
		/* event page is dark — white-alpha row divider */
		vertical-align: middle;
	}

	.tickera .event_tickets th {
		font-size: 0.75rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: var(--series-text-muted-light, #666666);
		background: transparent;
	}

	/* Sold out row styling on desktop - :has() for modern browsers, .is-sold-out-row for Firefox fallback */
	.tickera .event_tickets tr:has(span.is-sold-out),
	.tickera .event_tickets tr.is-sold-out-row {
		opacity: 0.65;
	}

	.tickera .event_tickets tr:has(span.is-sold-out):hover,
	.tickera .event_tickets tr.is-sold-out-row:hover {
		opacity: 0.75;
	}
}

/* ===========================================
   PRICE STYLING (All Breakpoints)
   =========================================== */
.tickera .event_tickets .woocommerce-Price-amount {
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--wp--preset--color--primary, #C6A15B);
	font-family: var(--wp--preset--font-family--mono, 'Space Mono', monospace);
	letter-spacing: -0.02em;
}

/* Sold out price - strikethrough (with Firefox fallback) */
.tickera .event_tickets tr:has(span.is-sold-out) .woocommerce-Price-amount,
.tickera .event_tickets tr.is-sold-out-row .woocommerce-Price-amount {
	text-decoration: line-through;
	opacity: 0.6;
}

/* Price currency symbol slightly smaller */
.tickera .event_tickets .woocommerce-Price-currencySymbol {
	font-size: 0.8em;
	vertical-align: baseline;
	margin-right: 2px;
}

.tickera .event_tickets .add_to_cart_button,
.tickera .event_tickets .button.wp-element-button,
.tickera .event_tickets span.is-sold-out,
.tickera .event_tickets span.button,
.tickera .event_tickets .tc-wb-add-to-cart .button,
.tickera .event_tickets .tc-wb-add-to-cart span.is-sold-out,
table.event_tickets.tickera .add_to_cart_button,
table.event_tickets.tickera .button.wp-element-button,
table.event_tickets.tickera span.is-sold-out,
table.event_tickets.tickera span.button {
	display: inline-flex;
	align-items: center !important;
	/* plugin override - wp-element-button inline */
	justify-content: center !important;
	/* plugin override - wp-element-button inline */
	min-height: 48px;
	padding: 12px 24px;
	background: linear-gradient(135deg, var(--series-accent-light, #D4AF61) 0%, var(--series-accent-base, #C6A15B) 50%, var(--series-accent-dark, #B8924F) 100%) !important;
	/* plugin override */
	color: var(--wp--preset--color--foreground, #0B0B0B) !important;
	/* plugin override */
	font-family: var(--wp--preset--font-family--mono, 'Space Mono', monospace) !important;
	/* plugin override */
	font-size: 0.8125rem !important;
	/* plugin override */
	font-weight: 700 !important;
	/* plugin override */
	text-transform: uppercase !important;
	/* plugin override */
	letter-spacing: 0.06em !important;
	/* plugin override */
	text-decoration: none !important;
	/* plugin override */
	border: none !important;
	/* plugin override */
	border-radius: var(--series-radius-sm) !important;
	/* plugin override */
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
	white-space: nowrap !important;
	/* plugin override */
	box-sizing: border-box !important;
	/* plugin override */
	box-shadow: 0 4px 12px -2px rgba(var(--series-primary-rgb), 0.3);
}

/* Desktop: constrain button width */
@media (min-width: 768px) {

	.tickera .event_tickets .add_to_cart_button,
	.tickera .event_tickets .button.wp-element-button,
	table.event_tickets.tickera .add_to_cart_button,
	table.event_tickets.tickera .button.wp-element-button {
		width: auto;
		min-width: 160px;
		max-width: 220px;
	}
}

/* Sold out button - gray disabled state */
.tickera .event_tickets span.is-sold-out,
.tickera .event_tickets .tc-wb-add-to-cart span.is-sold-out,
table.event_tickets.tickera span.is-sold-out {
	background: linear-gradient(135deg, var(--series-gray-400, #9ca3af) 0%, var(--series-gray-500, #6b7280) 100%) !important;
	/* plugin override */
	color: var(--wp--preset--color--background, #F2F2F2) !important;
	/* plugin override */
	cursor: not-allowed !important;
	/* plugin override */
	pointer-events: none;
	box-shadow: none;
}

.tickera .event_tickets .add_to_cart_button:hover,
.tickera .event_tickets .button.wp-element-button:hover,
table.event_tickets.tickera .add_to_cart_button:hover,
table.event_tickets.tickera .button.wp-element-button:hover {
	transform: translateY(-3px) scale(1.02);
	box-shadow: 0 12px 28px -6px rgba(var(--series-primary-rgb), 0.5);
	filter: brightness(1.05);
}

.tickera .event_tickets .add_to_cart_button:active,
.tickera .event_tickets .button.wp-element-button:active,
table.event_tickets.tickera .add_to_cart_button:active,
table.event_tickets.tickera .button.wp-element-button:active {
	transform: translateY(-1px) scale(0.99);
	box-shadow: 0 6px 16px -4px rgba(var(--series-primary-rgb), 0.4);
}

/* Hide duplicate Tickera table from auto-insert in post content */
.wp-block-post-content .tickera,
.entry-content .tickera {
	display: none;
}

/* Ticket handling fee disclosure */
.series-ticket-fee-notice {
	margin: 8px 0 0;
	padding: 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.8rem;
	line-height: 1.4;
	color: rgba(255, 255, 255, 0.5);
	text-align: center;
}

.series-ticket-fee-notice .woocommerce-Price-amount {
	color: var(--wp--preset--color--primary);
}

/* ============================================
   TRUST SIGNALS (Monochrome Accent Theme)
   ============================================ */
.series-trust-signals {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 32px;
	align-items: center;
	justify-content: center;
	margin-top: var(--wp--preset--spacing--40, 32px);
	padding: var(--wp--preset--spacing--30, 24px) 0;
	border-top: none;
}

@media (max-width: 600px) {
	.series-trust-signals {
		justify-content: center;
		gap: 12px 20px;
	}

	.series-trust-signal {
		flex: 1 1 calc(50% - 10px);
		justify-content: center;
	}
}

.series-trust-signal {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--wp--preset--font-family--mono, 'Space Mono', monospace);
	font-size: 0.6875rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.6);
	/* Trust signals only render on dark event/ticket pages */
	text-transform: uppercase;
	letter-spacing: 0.05em;
	white-space: nowrap;
	flex-shrink: 0;
}

.series-trust-signal svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	color: var(--wp--preset--color--primary, #C6A15B);
	opacity: 0.8;
}

/* All icons use accent color for consistency */
.series-trust-signal--secure svg,
.series-trust-signal--instant svg,
.series-trust-signal--guarantee svg {
	color: var(--wp--preset--color--primary, #C6A15B);
}

/* Dark background variant */
.has-foreground-background-color .series-trust-signals,
.has-background-background-color .series-trust-signals {
	border-top: none;
}

.has-foreground-background-color .series-trust-signal {
	color: rgba(255, 255, 255, 0.6);
}

/* ============================================
   TICKETS SECTION HEADER - Dark Theme
   ============================================ */
.series-tickets-section {
	max-width: 1200px;
	margin: var(--wp--preset--spacing--40, 24px) auto;
	padding: 0 var(--wp--preset--spacing--40, 24px);
}

.series-tickets-header {
	text-align: center;
	margin-bottom: var(--wp--preset--spacing--30, 16px);
}

.series-tickets-title {
	font-family: var(--wp--preset--font-family--heading, 'Integral CF', sans-serif);
	font-size: clamp(1.5rem, 4vw, 2rem);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--background, #F2F2F2);
	margin: 0;
}

/* ============================================
   DARK THEME TICKET TABLE OVERRIDES
   ============================================ */
/* Dark background context - table headers */
.has-foreground-background-color .tickera .event_tickets th {
	color: rgba(255, 255, 255, 0.5);
	border-bottom-color: rgba(255, 255, 255, 0.1);
}

/* Dark background context - table cells */
.has-foreground-background-color .tickera .event_tickets td {
	border-bottom-color: rgba(255, 255, 255, 0.1);
	color: var(--wp--preset--color--background, #F2F2F2);
}

/* Mobile dark theme - handled by main mobile section */

/* ============================================
   SKIP LINK - ACCESSIBILITY
   ============================================ */
.series-skip-link {
	position: fixed;
	top: 0;
	left: 50%;
	transform: translate(-50%, -100%);
	z-index: var(--series-z-skip-link, 100000);
	padding: 12px 24px;
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	font-size: 0.875rem;
	font-weight: 700;
	text-decoration: none;
	border-radius: 0 0 var(--series-radius-sm) var(--series-radius-sm);
	transition: transform 0.3s ease;
}

.series-skip-link:focus {
	transform: translate(-50%, 0);
	outline: 3px solid var(--wp--preset--color--foreground, #0B0B0B);
	outline-offset: 2px;
}

/* ============================================
   AVAILABILITY BADGES
   ============================================ */
.series-availability-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 0.625rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	padding: 4px 10px;
	border-radius: var(--series-radius-md);
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: var(--series-z-dropdown);
}

.series-availability-badge--low-stock {
	background: var(--series-error, #EF4444);
	color: var(--wp--preset--color--background, #F2F2F2);
	animation: pulse-badge 2s ease-in-out infinite;
}

.series-availability-badge--sold-out {
	background: rgba(0, 0, 0, 0.7);
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-availability-badge--available {
	background: var(--series-success, #22C55E);
	color: var(--wp--preset--color--background, #F2F2F2);
}

@keyframes pulse-badge {

	0%,
	100% {
		opacity: 1;
		transform: scale(1);
	}

	50% {
		opacity: 0.85;
		transform: scale(1.02);
	}
}

/* Sold out row - strike through price */
.tickera tr.is-sold-out-row td[data-column="Price"] .woocommerce-Price-amount {
	text-decoration: line-through;
	opacity: 0.6;
}

/* ============================================
   PRICE DISPLAY ON EVENT CARDS
   ============================================ */
.series-event-price {
	display: inline-block;
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--wp--preset--color--primary, #C6A15B);
	margin-top: 8px;
}

.series-event-price::before {
	content: 'From ';
	font-weight: 500;
	opacity: 0.8;
}

/* ============================================
   PHASE 4: CONTENT SECTIONS
   ============================================ */

/* Section Title */
.series-section-title {
	font-size: 1.5rem;
	font-weight: 700;
	margin: var(--wp--preset--spacing--60, 48px) 0 var(--wp--preset--spacing--40, 24px);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.series-section-title:first-child {
	margin-top: 0;
}

/* ============================================
   LINEUP SECTION (Categorized)
   ============================================ */
.series-lineup-section {
	margin: var(--wp--preset--spacing--50, 40px) auto;
	max-width: 1200px;
	padding: 0 var(--wp--preset--spacing--40, 24px);
}

.series-lineup-category {
	margin-bottom: var(--wp--preset--spacing--40, 32px);
}

.series-lineup-category:last-child {
	margin-bottom: 0;
}

.series-lineup-category .series-section-title {
	font-size: clamp(0.875rem, 2vw, 1.125rem);
	margin-bottom: var(--wp--preset--spacing--20, 16px);
	padding-bottom: 8px;
	color: var(--wp--preset--color--primary, #C6A15B);
}

/* Grid layout - 2-column for artist lineup */
.series-lineup-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--wp--preset--spacing--30, 24px) var(--wp--preset--spacing--40, 32px);
}

@media (min-width: 768px) {
	.series-lineup-grid {
		gap: var(--wp--preset--spacing--40, 32px) var(--wp--preset--spacing--50, 48px);
	}
}

/* Fixed column overrides - with mobile fallbacks */
.series-lineup-grid--2 {
	grid-template-columns: repeat(2, 1fr);
}

.series-lineup-grid--3 {
	grid-template-columns: repeat(3, 1fr);
}

.series-lineup-grid--4 {
	grid-template-columns: repeat(4, 1fr);
}

/* Mobile fallbacks for fixed column grids - see max-width: 480px consolidated */

@media (min-width: 480px) and (max-width: 768px) {
	.series-lineup-grid--4 {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 600px) {

	.series-lineup-grid--3,
	.series-lineup-grid--4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* List style for many artists (e.g., exhibition) */
.series-lineup-list {
	padding: var(--wp--preset--spacing--10, 8px) 0;
}

.series-lineup-names {
	font-size: 0.9375rem;
	line-height: 2;
	margin: 0;
	text-transform: uppercase;
}

.series-lineup-names a {
	color: inherit;
	text-decoration: none;
	text-transform: uppercase;
	transition: color 0.2s ease;
}

.series-lineup-names a:hover {
	color: var(--wp--preset--color--primary, #C6A15B);
}

.series-lineup-names .series-artist-subtitle {
	font-size: 0.75rem;
	opacity: 0.5;
}

/* Artist cards */
.series-artist-card {
	text-align: center;
}

/* Artist photo - uses CSS custom property for sizing */
.series-artist-photo {
	width: var(--series-artist-photo-size);
	height: var(--series-artist-photo-size);
	margin: 0 auto var(--wp--preset--spacing--20, 12px);
	border-radius: 50%;
	overflow: hidden;
	position: relative;
	border: 2px solid transparent;
	background:
		linear-gradient(135deg, rgba(var(--series-primary-rgb), 0.1), rgba(var(--series-primary-rgb), 0.05)) padding-box,
		linear-gradient(135deg, rgba(var(--series-primary-rgb), 0.3), rgba(var(--series-primary-rgb), 0.1)) border-box;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	box-shadow: 0 4px 20px -4px rgba(0, 0, 0, 0.3);
}

.series-artist-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

/* Hover effects for all artist cards */
.series-artist-card:hover .series-artist-photo {
	transform: scale(1.05);
	box-shadow: 0 10px 30px -10px rgba(var(--series-primary-rgb), 0.4);
}

.series-artist-card:hover .series-artist-photo img {
	transform: scale(1.1);
}

/* No-photo artist cards - clean text-only style */
.series-artist-card--no-photo {
	background: transparent;
	border: none;
	border-radius: 0;
	padding: var(--wp--preset--spacing--20, 12px) var(--wp--preset--spacing--10, 8px);
	transition: none;
}

.series-artist-card--no-photo:hover {
	background: transparent;
}

.series-artist-card--no-photo .series-artist-info {
	margin-top: 0;
}

.series-artist-card--no-photo .series-artist-name {
	font-size: clamp(0.875rem, 2vw, 1.125rem);
}

/* Multi-photo B2B acts - overlapping circles */
.series-artist-photo--multi {
	display: flex;
	justify-content: center;
	align-items: center;
}

.series-artist-photo--multi img {
	border-radius: 50%;
	border: 2px solid var(--wp--preset--color--foreground, #0B0B0B);
	position: relative;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.series-artist-photo--count-2 {
	width: 130%;
	margin-left: -15%;
}

.series-artist-photo--count-2 img {
	width: 65%;
	height: auto;
	aspect-ratio: 1;
}

.series-artist-photo--count-2 img:nth-child(2) {
	margin-left: -25%;
	z-index: 1;
}

.series-artist-photo--count-3 {
	width: 150%;
	margin-left: -25%;
}

.series-artist-photo--count-3 img {
	width: 50%;
	height: auto;
	aspect-ratio: 1;
}

.series-artist-photo--count-3 img:nth-child(2) {
	margin-left: -20%;
	z-index: 1;
}

.series-artist-photo--count-3 img:nth-child(3) {
	margin-left: -20%;
	z-index: 2;
}

.series-artist-photo--count-4 {
	width: 170%;
	margin-left: -35%;
}

.series-artist-photo--count-4 img {
	width: 42%;
	height: auto;
	aspect-ratio: 1;
}

.series-artist-photo--count-4 img:nth-child(2) {
	margin-left: -18%;
	z-index: 1;
}

.series-artist-photo--count-4 img:nth-child(3) {
	margin-left: -18%;
	z-index: 2;
}

.series-artist-photo--count-4 img:nth-child(4) {
	margin-left: -18%;
	z-index: 3;
}

/* Artist link icons row */
.series-artist-links {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	margin-top: 6px;
	flex-wrap: wrap;
}

.series-artist-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	color: rgba(255, 255, 255, 0.45);
	transition: color 0.2s ease, transform 0.2s ease;
}

.series-artist-link:hover {
	color: var(--wp--preset--color--primary, #C6A15B);
	transform: scale(1.15);
}

.series-artist-link svg {
	width: 100%;
	height: 100%;
	fill: currentColor;
}

/* Platform-specific hover colors */
.series-artist-link--soundcloud:hover {
	color: #ff5500;
}

.series-artist-link--spotify:hover {
	color: #1db954;
}

.series-artist-link--instagram:hover {
	color: #e4405f;
}

.series-artist-link--youtube:hover {
	color: #ff0000;
}

.series-artist-link--facebook:hover {
	color: #1877f2;
}

.series-artist-link--tiktok:hover {
	color: #00f2ea;
}

.series-artist-link--bandcamp:hover {
	color: #629aa9;
}

.series-artist-link--mixcloud:hover {
	color: #5000ff;
}

.series-artist-link--ra:hover {
	color: var(--wp--preset--color--primary, #C6A15B);
}

.series-artist-link--x:hover {
	color: #ffffff;
}

/* Artist name and subtitle */
.series-artist-name {
	font-size: clamp(0.8125rem, 2vw, 1rem);
	font-weight: 700;
	margin: 0 0 2px;
	line-height: 1.3;
	text-transform: uppercase;
}

.series-artist-name a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}

.series-artist-name a:hover {
	color: var(--wp--preset--color--primary, #C6A15B);
}

.series-artist-name a:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 2px;
	border-radius: 2px;
}

.series-artist-role,
.series-artist-subtitle {
	display: block;
	font-size: 0.6875rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	opacity: 0.5;
	line-height: 1.4;
}

/* ============================================
   SOCIAL LINKS SECTION
   ============================================ */
.series-social-section {
	margin: var(--wp--preset--spacing--40, 32px) 0;
	padding: var(--wp--preset--spacing--30, 24px);
	border-radius: var(--series-radius-sm);
	text-align: center;
}

.series-social-label {
	display: block;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: var(--wp--preset--spacing--20, 16px);
	opacity: 0.5;
}

/* ============================================
   SOCIAL LINKS (Dynamic from Customizer)
   ============================================ */
.series-social-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

/* Icon-only style (default) */
.series-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px;
	background: var(--series-surface-base);
	border: 1px solid var(--series-surface-divider);
	border-radius: 50%;
	color: inherit;
	text-decoration: none;
	font-size: 0.8125rem;
	font-weight: 500;
	transition: background-color var(--series-duration-normal, 0.3s) var(--series-ease-out, ease), color var(--series-duration-normal, 0.3s) var(--series-ease-out, ease);
	min-width: var(--series-touch-target, 44px);
	min-height: var(--series-touch-target, 44px);
}

.series-social-link:hover {
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	transform: translateY(-2px);
}

.series-social-link:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 2px;
}

.series-social-link svg {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
}

.series-social-link span {
	display: none;
}

/* Text style - show labels */
.series-social-links[style*="text"] .series-social-link,
.series-social-link:has(span:not(:empty)) {
	border-radius: var(--series-radius-xl);
	padding: 8px 14px;
}

@media (min-width: 480px) {
	.series-social-link span {
		display: inline;
	}

	.series-social-link:has(span) {
		padding: 10px 18px;
	}
}

/* Mobile Social Section Fix */
@media (max-width: 768px) {
	.series-social-section {
		padding: 20px 16px;
		margin: 24px 0;
	}

	.series-social-label {
		font-size: 0.625rem;
		margin-bottom: 16px;
	}

	.series-social-links {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 12px;
		width: 100%;
	}

	.series-social-link,
	.series-social-link:has(span:not(:empty)) {
		width: 48px;
		height: 48px;
		min-width: 48px;
		min-height: 48px;
		padding: 0;
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.series-social-link svg {
		width: 20px;
		height: 20px;
	}

	.series-social-link span {
		display: none;
	}
}

/* EVENT PAGE SOCIAL OVERRIDE - Show proper icon grid, not footer text list */
.series-social-section .series-social-links {
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 12px;
}

.series-social-section .series-social-link,
.series-social-section .series-social-link:has(span:not(:empty)) {
	background: var(--series-surface-base);
	border: 1px solid var(--series-surface-divider);
	border-radius: 50%;
	padding: 12px;
	min-width: 48px;
	min-height: 48px;
	width: 48px;
	height: 48px;
}

.series-social-section .series-social-link svg {
	display: block;
	width: 22px;
	height: 22px;
}

.series-social-section .series-social-link span {
	display: none;
}

.series-social-section .series-social-link:hover {
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	transform: translateY(-2px);
}

/* ============================================
   CONTACT INFO (Dynamic from Customizer)
   ============================================ */
.series-contact-info {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-top: var(--wp--preset--spacing--20, 8px);
}

.series-contact-item {
	display: block;
	font-size: 0.75rem;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #999);
	text-decoration: none;
	transition: color var(--series-duration-normal, 0.3s) var(--series-ease-out, ease);
}

.series-contact-item:hover {
	color: var(--wp--preset--color--primary, #C6A15B);
}

.series-contact-item--address {
	text-transform: none;
	white-space: pre-line;
}

/* ============================================
   MOBILE HERO HEIGHT CAP - Event Pages
   ============================================ */
@media (max-width: 768px) {
	.single-tc_events .wp-block-post-featured-image {
		max-height: 60vh;
		overflow: hidden;
	}

	.single-tc_events .wp-block-post-featured-image img {
		object-fit: cover;
		height: 100%;
		width: 100%;
	}
}

/* ============================================
   FOOTER STACKING CLASSES
   ============================================ */
@media (max-width: 768px) {

	.stack-on-tablet-portrait,
	.stack-on-tablet--portrait {
		flex-direction: column;
		gap: var(--wp--preset--spacing--40, 24px) !important;
		/* FSE override */
	}

	.stack-on-tablet-portrait>.wp-block-column,
	.stack-on-tablet--portrait>.wp-block-column {
		flex-basis: 100% !important;
		/* FSE override */
		width: 100% !important;
		/* FSE inline override */
		padding-right: 0 !important;
		/* FSE inline override */
		padding-left: 0 !important;
		/* FSE inline override */
		text-align: center;
	}

	/* Center footer contact info and social links on mobile */
	.stack-on-tablet-portrait .series-contact-info {
		align-items: center;
	}

	.stack-on-tablet-portrait .series-footer-social-list {
		align-items: center;
	}

	/* Footer bottom bar stacking */
	.wp-block-group.alignfull[style*="border-top"] {
		flex-direction: column;
		text-align: center;
		gap: 8px;
	}
}

/* ============================================
   GLOBAL TOUCH TARGETS
   ============================================ */
@media (max-width: 768px) {

	/* Navigation and footer links */
	.wp-block-navigation a,
	.site-footer a,
	.wp-block-group.has-foreground-background-color a {
		min-height: var(--series-touch-target, 44px);
		display: inline-flex;
		align-items: center;
	}

	/* All buttons must have touch-safe sizing */
	.wp-block-button__link {
		min-height: var(--series-touch-target, 44px);
		padding-top: 12px !important;
		/* counter parent ponyfill !important */
		padding-bottom: 12px !important;
		/* counter parent ponyfill !important */
	}

	/* Instagram follow button on mobile */
	.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link {
		min-width: var(--series-touch-target, 44px);
		padding-left: var(--wp--preset--spacing--40, 1.5rem);
		padding-right: var(--wp--preset--spacing--40, 1.5rem);
	}

	/* Product add-to-cart buttons */
	.series-product-grid .wc-block-components-product-button a {
		min-height: var(--series-touch-target, 44px);
		padding: 12px 20px;
	}
}

/* ============================================
   LAYOUT SHIFT PREVENTION
   ============================================ */
/* Event featured images - reserve space before load */
.single-tc_events .wp-block-post-featured-image img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	width: 100%;
	height: auto;
}

/* More events grid images */
.series-more-events .wp-block-post-featured-image img {
	aspect-ratio: 3 / 4;
	object-fit: cover;
	width: 100%;
	height: auto;
}

/* Reserved height for dynamic content */
.series-countdown {
	min-height: 100px;
}

.series-sticky-ticket-bar__price {
	min-height: 1em;
}

/* ============================================
   REVEAL ANIMATIONS (FOUC Prevention)
   ============================================ */
.js-reveal-from-top,
.js-reveal-from-bottom {
	opacity: 0;
	transition: opacity var(--series-duration-slow, 0.5s) var(--series-ease-out, ease),
		transform var(--series-duration-slow, 0.5s) var(--series-ease-out, ease);
}

.js-reveal-from-top {
	transform: translateY(-20px);
}

.js-reveal-from-bottom {
	transform: translateY(20px);
}

.js-reveal-from-top.is-revealed,
.js-reveal-from-bottom.is-revealed,
/* Fallback: reveal if JS hasn't run after 2s */
.js-reveal-from-top:not(.is-revealed):not([data-reveal-pending]),
.js-reveal-from-bottom:not(.is-revealed):not([data-reveal-pending]) {
	opacity: 1;
	transform: translateY(0);
}

/* ============================================
   VENUE SECTION
   ============================================ */
.series-venue-section {
	margin: var(--wp--preset--spacing--50, 40px) auto;
	max-width: 1200px;
	padding: 2rem;
	border-radius: var(--series-radius-md);
}

.series-venue-content {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--wp--preset--spacing--30, 24px);
}

.series-venue-map {
	position: relative;
	z-index: 1;
	/* Keep map below fixed nav elements */
	border-radius: var(--series-radius-md);
	overflow: hidden;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.03) 25%, rgba(255, 255, 255, 0.06) 50%, rgba(255, 255, 255, 0.03) 75%);
	background-size: 200% 100%;
	animation: skeleton-pulse 1.5s ease-in-out infinite;
}

@keyframes skeleton-pulse {
	0% {
		background-position: 200% 0;
	}

	100% {
		background-position: -200% 0;
	}
}

.series-venue-map iframe {
	position: relative;
	z-index: 0;
	/* Contain Google Maps internal z-indices */
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	min-height: 200px;
	max-height: 350px;
	border: none;
}

.series-venue-info {
	padding: var(--wp--preset--spacing--20, 16px);
	border-radius: var(--series-radius-sm);
}

.series-venue-name {
	font-size: clamp(1rem, 3vw, 1.25rem);
	font-weight: 800;
	margin: 0 0 6px;
}

.series-venue-address {
	font-size: 0.875rem;
	opacity: 0.7;
	margin: 0 0 var(--wp--preset--spacing--20, 16px);
	line-height: 1.5;
}

.series-venue-directions {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary, #C6A15B);
	text-decoration: none;
	transition: color 0.2s ease;
}

.series-venue-directions:hover {
	color: var(--wp--preset--color--primary, #C6A15B);
	opacity: 0.85;
}

.series-venue-directions:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 2px;
	border-radius: 2px;
}

.series-venue-directions svg {
	width: 14px;
	height: 14px;
	transition: transform 0.2s ease;
}

.series-venue-directions:hover svg {
	transform: translateX(3px);
}

/* ============================================
   FAQ ACCORDION
   ============================================ */
.series-faq-section {
	margin: var(--wp--preset--spacing--50, 40px) auto;
	max-width: 1200px;
	padding: 0 var(--wp--preset--spacing--40, 24px);
}

.series-faq-accordion {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.series-faq-item {
	background: var(--series-surface-base);
	border-top: 1px solid var(--series-surface-divider);
	border-radius: 0;
	overflow: hidden;
	transition: border-color 0.2s ease;
}

/* Modern browsers: :has() selector */
.series-faq-item:has(.series-faq-question[aria-expanded="true"]) {
	background: var(--series-surface-emphasis);
}

/* Fallback for older browsers: JS adds .is-open class */
.series-faq-item.is-open {
	background: var(--series-surface-emphasis);
}

.series-faq-question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	padding: 12px 16px;
	background: transparent;
	border: none;
	color: inherit;
	font-size: clamp(0.875rem, 2vw, 1rem);
	font-weight: 600;
	text-align: left;
	cursor: pointer;
	transition: background 0.2s ease;
}

.series-faq-question:hover {
	background: var(--series-surface-emphasis);
}

.series-faq-question:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 2px;
	border-radius: var(--series-radius-sm);
}

.series-faq-question span {
	flex: 1;
}

.series-faq-icon {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	transition: transform 0.3s ease;
	opacity: 0.5;
}

.series-faq-question[aria-expanded="true"] .series-faq-icon {
	transform: rotate(180deg);
}

.series-faq-answer {
	overflow: hidden;
	transition: max-height 0.3s ease;
}

.series-faq-answer[hidden] {
	display: none;
}

.series-faq-answer-content {
	padding: 0 16px 16px;
	font-size: 0.875rem;
	line-height: 1.6;
	opacity: 0.75;
}

/* Light background variant */
.has-background-background-color .series-faq-item {
	background: transparent;
}

.has-background-background-color .series-faq-item:has(.series-faq-question[aria-expanded="true"]),
.has-background-background-color .series-faq-item.is-open {
	background: rgba(var(--series-primary-rgb), 0.08);
}

.has-background-background-color .series-faq-question:hover {
	background: rgba(0, 0, 0, 0.02);
}

.has-background-background-color .series-venue-info {
	background: transparent;
}

.has-background-background-color .series-venue-map {
	background: rgba(0, 0, 0, 0.05);
}

.has-background-background-color .series-artist-photo {
	background: rgba(0, 0, 0, 0.08);
}

.has-background-background-color .series-artist-placeholder {
	background: linear-gradient(135deg, rgba(var(--series-primary-rgb), 0.12) 0%, rgba(var(--series-primary-rgb), 0.06) 100%);
	color: rgba(var(--series-primary-rgb), 0.7);
}

/* ============================================
   SHARE BUTTONS
   ============================================ */
.series-share-section {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin: var(--wp--preset--spacing--30, 24px) 0;
	flex-wrap: wrap;
}

.series-share-label {
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	opacity: 0.5;
}

.series-share-buttons {
	display: flex;
	gap: 8px;
}

/* Mobile Share Section Fix */
@media (max-width: 768px) {
	.series-share-section {
		flex-direction: column;
		gap: 12px;
		padding: 16px;
		margin: 20px 0;
	}

	.series-share-label {
		font-size: 0.625rem;
		margin-bottom: 4px;
	}

	.series-share-buttons {
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		gap: 12px;
		width: 100%;
	}

	.series-share-btn {
		width: 48px;
		height: 48px;
		min-width: 48px;
		min-height: 48px;
	}

	.series-share-btn svg {
		width: 20px;
		height: 20px;
	}
}

.series-share-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--series-surface-base);
	border: 1px solid var(--series-surface-divider);
	color: inherit;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
	position: relative;
}

.series-share-btn svg {
	width: 18px;
	height: 18px;
}

.series-share-btn:hover {
	transform: translateY(-2px);
}

.series-share-btn:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 2px;
}

.series-share-btn--facebook:hover {
	background: #1877f2;
	color: #fff;
}

.series-share-btn--twitter:hover {
	background: #000;
	color: #fff;
}

.series-share-btn--whatsapp:hover {
	background: #25d366;
	color: #fff;
}

.series-share-btn--telegram:hover {
	background: #0088cc;
	color: #fff;
}

.series-share-btn--copy:hover {
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
}

.series-copy-tooltip {
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%) scale(0.8);
	padding: 4px 10px;
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	font-size: 0.6875rem;
	font-weight: 600;
	border-radius: 4px;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
}

.series-share-btn--copy.is-copied .series-copy-tooltip {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) scale(1);
}

/* Light background variant */
.has-background-background-color .series-share-btn {
	background: transparent;
}

.has-background-background-color .series-social-section {
	background: transparent;
}

.has-background-background-color .series-social-link {
	background: transparent;
}

/* ==========================================================================
   PHASE 6: COUNTDOWN TIMER
   ========================================================================== */

.series-countdown {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 0.75rem;
	font-family: var(--wp--preset--font-family--mono, 'Space Mono', monospace);
	min-height: auto;
}

.series-countdown__unit {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 72px;
	padding: 0.5rem;
}

.series-countdown__number {
	font-size: 3.5rem;
	font-weight: 700;
	line-height: 1;
	color: var(--wp--preset--color--primary, #C6A15B);
	font-variant-numeric: tabular-nums;
	text-shadow: 0 2px 8px rgba(var(--series-primary-rgb), 0.25);
}

.series-countdown__label {
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: rgba(255, 255, 255, 0.8);
	margin-top: 0.5rem;
	font-weight: 500;
}

.series-countdown__separator {
	font-size: 2.5rem;
	font-weight: 700;
	color: var(--wp--preset--color--primary, #C6A15B);
	line-height: 1;
	margin-bottom: 1.5rem;
	opacity: 0.5;
}

.series-countdown__ended {
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary, #C6A15B);
	text-align: center;
	animation: pulse-glow 2s ease-in-out infinite;
}

/* Countdown state: Event is live / happening now */
.series-countdown__live {
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--series-success, #22C55E);
	text-align: center;
	animation: pulse-glow-green 2s ease-in-out infinite;
}

.series-countdown--live {
	justify-content: center;
}

@keyframes pulse-glow-green {

	0%,
	100% {
		opacity: 1;
		text-shadow: 0 0 10px rgba(34, 197, 94, 0.3);
	}

	50% {
		opacity: 0.85;
		text-shadow: 0 0 20px rgba(34, 197, 94, 0.6);
	}
}

/* Countdown state: Event ended / happening now */
.series-countdown--ended {
	justify-content: center;
}

/* Countdown state: Happening today (less than 24 hours) */
.series-countdown--today .series-countdown__number {
	color: var(--series-success, #22C55E);
	/* Success green - excitement color */
	animation: pulse-subtle 1s ease-in-out infinite;
}

.series-countdown--today .series-countdown__label {
	color: rgba(34, 197, 94, 0.8);
}

@keyframes pulse-subtle {

	0%,
	100% {
		opacity: 1;
	}

	50% {
		opacity: 0.7;
	}
}

@keyframes pulse-glow {

	0%,
	100% {
		opacity: 1;
		text-shadow: 0 0 10px rgba(var(--series-primary-rgb), 0.3);
	}

	50% {
		opacity: 0.85;
		text-shadow: 0 0 20px rgba(var(--series-primary-rgb), 0.6);
	}
}

/* Responsive countdown - smaller on mobile */
@media (max-width: 600px) {
	.series-countdown {
		gap: 0.4rem;
	}

	.series-countdown__unit {
		min-width: 56px;
		padding: 0.25rem;
	}

	.series-countdown__number {
		font-size: 2.25rem;
	}

	.series-countdown__label {
		font-size: 0.65rem;
	}

	.series-countdown__separator {
		font-size: 1.75rem;
		margin-bottom: 1.25rem;
	}
}

/* Hero style - larger, for homepage/hero sections */
.series-countdown--hero .series-countdown__number {
	font-size: 4.5rem;
	text-shadow: 0 4px 16px rgba(var(--series-primary-rgb), 0.35);
}

.series-countdown--hero .series-countdown__unit {
	min-width: 100px;
}

.series-countdown--hero .series-countdown__separator {
	font-size: 3rem;
}

@media (max-width: 600px) {
	.series-countdown--hero .series-countdown__number {
		font-size: 2.75rem;
	}

	.series-countdown--hero .series-countdown__unit {
		min-width: 64px;
	}

	.series-countdown--hero .series-countdown__separator {
		font-size: 2rem;
	}
}

/* Minimal style - inline, smaller */
.series-countdown--minimal {
	gap: 0.25rem;
}

.series-countdown--minimal .series-countdown__unit {
	min-width: auto;
	flex-direction: row;
	gap: 0.25rem;
}

.series-countdown--minimal .series-countdown__number {
	font-size: 1rem;
}

.series-countdown--minimal .series-countdown__label {
	font-size: 0.625rem;
	margin-top: 0;
}

.series-countdown--minimal .series-countdown__separator {
	font-size: 1rem;
	margin-bottom: 0;
}

/* Next Event Countdown (Homepage) */
.series-next-event-countdown {
	text-align: center;
	padding: 2rem;
}

.series-next-event-countdown__label {
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--wp--preset--color--primary, #C6A15B);
	margin: 0 0 0.5rem 0;
}

.series-next-event-countdown__title {
	font-size: 2rem;
	font-weight: 700;
	margin: 0 0 0.5rem 0;
}

.series-next-event-countdown__title a {
	color: var(--wp--preset--color--background, #F2F2F2);
	text-decoration: none;
	transition: color 0.2s ease;
}

.series-next-event-countdown__title a:hover {
	color: var(--wp--preset--color--primary, #C6A15B);
}

.series-next-event-countdown__date {
	font-size: 1rem;
	color: rgba(255, 255, 255, 0.7);
	margin: 0 0 1.5rem 0;
}

/* Light background variants */
.has-background-background-color .series-countdown__label {
	color: rgba(0, 0, 0, 0.6);
}

.has-background-background-color .series-next-event-countdown__title a {
	color: var(--wp--preset--color--foreground, #0B0B0B);
}

.has-background-background-color .series-next-event-countdown__date {
	color: rgba(0, 0, 0, 0.6);
}

/* Responsive */
@media screen and (max-width: 600px) {

	/* Note: font-size handled by the max-width: 600px block above */
	.series-countdown__unit {
		min-width: 45px;
	}

	.series-countdown__separator {
		font-size: 1.5rem;
	}

	.series-countdown__label {
		font-size: 0.625rem;
	}

	.series-countdown--hero .series-countdown__number {
		font-size: 2.25rem;
	}

	.series-countdown--hero {
		justify-content: center;
	}

	.series-countdown--hero .series-countdown__unit {
		min-width: 46px;
	}

	.series-next-event-countdown__title {
		font-size: 1.5rem;
	}
}

/* ============================================
   HOMEPAGE: NEXT EVENT SPOTLIGHT
   Two-column layout: Poster LEFT, Info RIGHT
   Preserves poster artwork - no text overlays
   ============================================ */
.series-spotlight {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--wp--preset--spacing--60, 2.5rem);
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--wp--preset--spacing--50, 1.5rem);
	min-height: 500px;
}

/* LEFT: Poster image - clean, no overlays */
.series-spotlight__poster {
	position: relative;
}

.series-spotlight__poster-link {
	display: block;
	border-top-right-radius: 50px;
	overflow: hidden;
	transition: transform 0.3s var(--series-ease-out), box-shadow 0.3s var(--series-ease-out);
}

.series-spotlight__poster-link:hover {
	transform: scale(1.02);
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5),
		0 0 40px rgba(var(--series-primary-rgb), 0.2);
}

.series-spotlight__poster-img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-top-right-radius: 50px;
}

/* RIGHT: Event info on dark background */
.series-spotlight__info {
	text-align: left;
	padding: var(--wp--preset--spacing--50, 2rem);
}

.series-spotlight__label {
	display: block;
	font-family: var(--wp--preset--font-family--mono, 'IBM Plex Mono', monospace);
	font-size: var(--wp--preset--font-size--tiny, 13px);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--primary, #C6A15B);
	margin-bottom: var(--wp--preset--spacing--20, 0.5rem);
}

.series-spotlight__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 700;
	color: var(--wp--preset--color--background, #F2F2F2);
	margin: 0 0 var(--wp--preset--spacing--30, 1rem);
	line-height: 1.1;
}

.series-spotlight__date {
	display: block;
	font-family: var(--wp--preset--font-family--mono, 'IBM Plex Mono', monospace);
	font-size: var(--wp--preset--font-size--tiny, 13px);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--background, #F2F2F2);
	margin-bottom: 4px;
}

.series-spotlight__venue {
	display: block;
	font-family: var(--wp--preset--font-family--mono, 'IBM Plex Mono', monospace);
	font-size: var(--wp--preset--font-size--tiny, 13px);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--primary, #C6A15B);
	margin-bottom: var(--wp--preset--spacing--30, 1rem);
}

.series-spotlight__countdown {
	margin: var(--wp--preset--spacing--40, 1.5rem) 0;
}

/* Button wrapper for proper centering on mobile */
.series-spotlight__cta-wrapper {
	display: block;
	text-align: left;
}

/* Spotlight CTA inherits from .wp-element-button via theme.json.
   Only add layout-specific styles here. */
.series-spotlight__cta {
	display: inline-block;
	text-decoration: none;
}

/* Mobile: Stack vertically */
@media (max-width: 820px) {
	.series-spotlight {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--40, 1rem);
		margin: 0;
		padding: 0 var(--wp--preset--spacing--30, 0.75rem);
		min-height: auto;
	}

	.series-spotlight__poster {
		max-width: 100%;
		margin: 0 auto;
	}

	.series-spotlight__poster-img {
		max-height: none;
		width: 100%;
	}

	.series-spotlight__info {
		text-align: center;
		padding: var(--wp--preset--spacing--30, 1rem);
	}

	.series-spotlight__title {
		font-size: clamp(1.5rem, 6vw, 2rem);
	}

	/* CTA button on mobile - center wrapper */
	.series-spotlight__cta-wrapper {
		text-align: center;
	}

	.series-spotlight__more {
		display: block;
		text-align: center;
	}
}

/* "More events coming" link */
.series-spotlight__more {
	display: inline-block;
	margin-top: var(--wp--preset--spacing--30, 1rem);
	font-family: var(--wp--preset--font-family--mono, 'IBM Plex Mono', monospace);
	font-size: var(--wp--preset--font-size--tiny, 13px);
	font-weight: 500;
	color: var(--wp--preset--color--primary, #C6A15B);
	text-decoration: none;
	letter-spacing: 0.03em;
	transition: color 0.2s ease, transform 0.2s ease;
}

.series-spotlight__more:hover {
	color: var(--wp--preset--color--background, #F2F2F2);
	transform: translateX(4px);
}

.series-spotlight__more:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 4px;
	border-radius: 2px;
}

/* Hide decorative arrow characters from CTA buttons */
.series-spotlight__cta>span[aria-hidden="true"],
.series-spotlight__more>span[aria-hidden="true"] {
	display: none;
}

/* Outline variant for CTA button */
.series-spotlight__cta--outline {
	background: transparent;
	color: var(--wp--preset--color--primary, #C6A15B);
	border: 2px solid var(--wp--preset--color--primary, #C6A15B);
}

.series-spotlight__cta--outline:hover {
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	box-shadow: 0 10px 40px -10px rgba(var(--series-primary-rgb), 0.4);
}

/* Fallback when no featured image */
.series-spotlight__poster--no-image {
	background: linear-gradient(135deg,
			var(--wp--preset--color--secondary, #1A1A1A) 0%,
			var(--wp--preset--color--foreground, #0B0B0B) 100%);
	border-radius: 0 var(--series-radius-xl) 0 0;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 400px;
}

.series-spotlight__poster--no-image .series-spotlight__poster-img {
	display: none;
}

.series-spotlight__poster--no-image::before {
	content: "☥";
	font-size: 6rem;
	color: var(--wp--preset--color--primary, #C6A15B);
	opacity: 0.3;
}

/* ============================================
   HOMEPAGE: SPOTLIGHT EMPTY STATE
   Shown when no upcoming events exist
   ============================================ */
.series-spotlight-empty {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 400px;
	padding: var(--wp--preset--spacing--70, 4rem) var(--wp--preset--spacing--50, 2rem);
	background: var(--wp--preset--color--foreground, #0B0B0B);
	text-align: center;
}

.series-spotlight-empty__content {
	max-width: 600px;
}

.series-spotlight-empty__icon {
	display: block;
	font-size: 4rem;
	color: var(--wp--preset--color--primary, #C6A15B);
	margin-bottom: var(--wp--preset--spacing--30, 1rem);
	opacity: 0.6;
}

.series-spotlight-empty__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.5rem, 4vw, 2rem);
	font-weight: 700;
	color: var(--wp--preset--color--background, #F2F2F2);
	margin: 0 0 var(--wp--preset--spacing--30, 1rem);
}

.series-spotlight-empty__desc {
	font-size: var(--wp--preset--font-size--small, 14px);
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.6;
	margin: 0 0 var(--wp--preset--spacing--40, 1.5rem);
}

.series-spotlight-empty__actions {
	margin-bottom: var(--wp--preset--spacing--50, 2rem);
}

.series-spotlight-empty__newsletter {
	padding-top: var(--wp--preset--spacing--40, 1.5rem);
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.series-spotlight-empty__newsletter .series-newsletter {
	margin-top: 0;
}

@media (max-width: 768px) {
	.series-spotlight-empty {
		min-height: 350px;
		padding: var(--wp--preset--spacing--50, 2rem) var(--wp--preset--spacing--30, 1rem);
	}

	.series-spotlight-empty__icon {
		font-size: 3rem;
	}
}

/* ============================================
   HOMEPAGE: NEWSLETTER FORM
   Styled to match Eveny theme patterns - clean, simple form
   ============================================ */
.series-newsletter {
	max-width: 480px;
	margin: var(--wp--preset--spacing--40, 1.5rem) auto 0;
	text-align: center;
}

.series-newsletter__title {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--wp--preset--color--background, #F2F2F2);
	margin: 0 0 8px;
}

.series-newsletter__desc {
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.7);
	margin: 0 0 20px;
}

.series-newsletter__form {
	/* Inherits from parent - no additional styling needed */
	display: block;
}

.series-newsletter__row {
	display: flex;
	gap: 10px;
	margin-bottom: var(--wp--preset--spacing--30, 1rem);
}

.series-newsletter__input {
	flex: 1;
	padding: 14px 20px;
	font-size: 0.9375rem;
	background: var(--wp--preset--color--secondary, #1A1A1A);
	border: 2px solid rgba(255, 255, 255, 0.15);
	border-radius: var(--series-radius-pill);
	color: var(--wp--preset--color--background, #F2F2F2);
	outline: none;
	transition: border-color 0.2s ease;
}

.series-newsletter__input::placeholder {
	color: rgba(255, 255, 255, 0.4);
}

.series-newsletter__input:focus {
	border-color: var(--wp--preset--color--primary, #C6A15B);
}

.series-newsletter__button {
	padding: 14px 28px;
	font-size: var(--wp--preset--font-size--tiny, 13px);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: var(--series-ls-cta, 0.08em);
	background: linear-gradient(135deg, var(--series-accent-deep) 0%, var(--series-accent-gold) 50%, var(--wp--preset--color--primary) 100%);
	background-size: 200% 200%;
	color: var(--wp--preset--color--foreground, #0B0B0B);
	border: none;
	border-radius: var(--series-radius-pill);
	cursor: pointer;
	transition: transform 0.3s ease, box-shadow 0.3s ease, background-position 0.5s ease;
	white-space: nowrap;
	position: relative;
	overflow: hidden;
}

.series-newsletter__button:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 25px -5px rgba(var(--series-primary-rgb), 0.4);
	background-position: 100% 100%;
}

.series-newsletter__button:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	transform: none;
}

.series-newsletter__gdpr {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 10px;
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.5);
	text-align: left;
	cursor: pointer;
	margin-top: var(--wp--preset--spacing--20, 0.5rem);
}

.series-newsletter__gdpr input[type="checkbox"] {
	flex-shrink: 0;
	width: 16px;
	height: 16px;
	margin-top: 2px;
	accent-color: var(--wp--preset--color--primary, #C6A15B);
}

.series-newsletter__gdpr a {
	color: var(--wp--preset--color--primary, #C6A15B);
	text-decoration: underline;
}

.series-newsletter__gdpr a:hover {
	text-decoration: none;
}

.series-newsletter__status {
	margin-top: var(--wp--preset--spacing--30, 1rem);
	font-size: 0.875rem;
	font-weight: 600;
	min-height: 24px;
}

.series-newsletter__status.success {
	color: var(--series-success, #22C55E);
}

.series-newsletter__status.error {
	color: var(--series-error, #EF4444);
}

/* Newsletter input error state */
.series-newsletter__input.has-error,
.series-newsletter__input:invalid:not(:placeholder-shown) {
	border-color: var(--series-error, #EF4444);
	box-shadow: 0 0 0 1px var(--series-error, #EF4444);
}

.series-newsletter__input.has-error:focus,
.series-newsletter__input:invalid:not(:placeholder-shown):focus {
	border-color: var(--series-error, #EF4444);
	box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.3);
	outline: none;
}

/* Newsletter Button Loading States */
.series-newsletter__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 140px;
	/* Prevent button from shrinking when loading */
	min-height: 48px;
	/* Consistent height */
}

.series-newsletter__button-text {
	display: inline-block;
}

.series-newsletter__button-loading {
	display: none;
	/* Hidden by default */
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

/* Loading state - show spinner, hide text */
.series-newsletter__button.is-loading .series-newsletter__button-text {
	opacity: 0;
	position: absolute;
}

.series-newsletter__button.is-loading .series-newsletter__button-loading {
	display: flex;
	align-items: center;
	justify-content: center;
}

.series-newsletter__button.is-loading {
	pointer-events: none;
}

/* Spinner Animation */
.series-spinner {
	animation: series-spin 1s linear infinite;
}

.series-spinner circle {
	stroke-dasharray: 31.4 31.4;
	stroke-dashoffset: 10;
}

/* ============================================
   ENHANCED AVAILABILITY BADGES
   ============================================ */
.series-availability-badge--selling-fast {
	background: linear-gradient(135deg, var(--series-error, #EF4444) 0%, var(--series-error-dark, #DC2626) 100%);
	color: var(--wp--preset--color--background, #F2F2F2);
	animation: pulse-badge 1.5s ease-in-out infinite;
}

/* ============================================
   VENUE ON EVENT CARDS
   ============================================ */
.series-event-venue {
	display: block;
	font-family: var(--wp--preset--font-family--mono, monospace);
	font-size: 0.6875rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--primary, #C6A15B);
	margin-top: 4px;
	opacity: 0.9;
}

/* Past events - muted venue color */
.series-past-events .series-event-venue {
	color: rgba(255, 255, 255, 0.6);
}

/* ============================================
   BLOCK PATTERNS - NATIVE BLOCK STYLING
   Series Design System
   ============================================ */

/* FAQ Accordion using core/details */
.series-faq-section .series-faq-accordion {
	gap: 0;
}

.series-faq-item.wp-block-details {
	border-radius: 0;
	transition: background-color var(--series-duration-normal) ease;
}

.series-faq-item.wp-block-details:first-child {
	border-radius: var(--series-radius-sm) var(--series-radius-sm) 0 0;
}

.series-faq-item.wp-block-details:last-child {
	border-radius: 0 0 var(--series-radius-sm) var(--series-radius-sm);
	margin-bottom: 0;
}

.series-faq-item.wp-block-details:only-child {
	border-radius: var(--series-radius-sm);
}

.series-faq-item.wp-block-details summary {
	padding: 1.25rem 1.5rem;
	font-family: var(--wp--preset--font-family--heading, 'Integral CF', serif);
	font-size: clamp(0.95rem, 2vw, 1.1rem);
	font-weight: 600;
	color: var(--wp--preset--color--background);
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	transition: color 0.2s ease;
}

.series-faq-item.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.series-faq-item.wp-block-details summary::after {
	content: '+';
	font-size: 1.5rem;
	font-weight: 300;
	color: var(--wp--preset--color--primary, #C6A15B);
	transition: transform 0.3s ease;
}

.series-faq-item.wp-block-details[open] summary::after {
	content: '−';
}

.series-faq-item.wp-block-details summary:hover {
	color: var(--wp--preset--color--primary, #C6A15B);
}

.series-faq-item.wp-block-details> :not(summary) {
	padding: 0 1.5rem 1.25rem;
	color: rgba(var(--series-background-rgb), 0.85);
	font-size: 0.95rem;
	line-height: 1.7;
}

/* Venue Section Pattern — consolidated into VENUE SECTION above */

.series-venue-columns {
	margin-top: 1.5rem;
}

/* Social Share Pattern */
.series-share-section {
	gap: 1rem;
	align-items: center;
	padding: 1rem 0;
}

.series-share-section .series-share-label {
	margin: 0;
	color: rgba(var(--series-background-rgb), 0.7);
}

.series-share-buttons.wp-block-social-links {
	gap: 0.75rem;
}

.series-share-buttons .wp-social-link {
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.series-share-buttons .wp-social-link:hover {
	transform: scale(1.1);
	opacity: 0.9;
}

/* Sponsor logos in block patterns - grayscale filter */
.series-sponsor-logos {
	gap: 2rem;
	margin-top: 1.5rem;
}

.series-sponsor-logo img {
	filter: grayscale(100%) brightness(1.5);
	opacity: 0.6;
	transition: filter 0.3s ease, opacity 0.3s ease;
}

.series-sponsor-logo:hover img {
	filter: grayscale(0%) brightness(1);
	opacity: 1;
}

/* Footer Social Links — vertical text list matching footer columns */
.series-footer-social-list {
	flex-direction: column;
	gap: 0;
	margin-top: var(--wp--preset--spacing--20);
}

.series-footer-social-list .series-social-link,
.series-footer-social-list .series-social-link:has(span:not(:empty)) {
	background: transparent;
	border: none;
	border-radius: 0;
	padding: 0;
	min-width: auto;
	min-height: auto;
	width: auto;
	height: auto;
	justify-content: flex-start;
	color: var(--wp--preset--color--muted, #999);
	font-size: var(--wp--preset--font-size--tiny);
	font-weight: 400;
	line-height: 1.8;
	transition: color 0.2s ease;
}

.series-footer-social-list .series-social-link svg {
	display: none;
}

.series-footer-social-list .series-social-link span {
	display: inline;
}

.series-footer-social-list .series-social-link:hover {
	background: transparent;
	color: var(--wp--preset--color--background, #F2F2F2);
	transform: none;
}

.series-footer-social-list .series-social-link:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 2px;
	border-radius: 2px;
}

/* Footer Contact Info Group */
.series-contact-info a {
	color: var(--wp--preset--color--muted, #999);
	text-decoration: none;
	transition: color 0.2s ease;
}

/* ============================================
   PAGINATION - ARIA & ACCESSIBILITY
   ============================================ */
/* Style for current page in pagination */
.wp-block-query-pagination-numbers .page-numbers.current,
.wp-block-query-pagination-numbers a[aria-current="page"] {
	color: var(--wp--preset--color--primary, #C6A15B);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

.series-contact-info a:hover {
	color: var(--wp--preset--color--background);
}

.series-contact-info a:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 2px;
	border-radius: 2px;
}

/* ============================================================================
   PARTNERS SECTION - Marquee Animation
   ============================================================================ */

.series-partners-section {
	text-align: center;
	overflow: hidden;
}

.series-partners__title {
	font-family: var(--wp--preset--font-family--heading, 'Integral CF', sans-serif);
	font-size: clamp(1.25rem, 3vw, 1.75rem);
	font-weight: 700;
	color: var(--wp--preset--color--background, #F2F2F2);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 2.5rem;
	padding: 0 1rem;
}

/* Marquee container */
.series-partners__marquee {
	position: relative;
	width: 100%;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}

/* Animated track - slides left infinitely */
.series-partners__track {
	display: flex;
	align-items: center;
	gap: 5rem;
	width: max-content;
	animation: marquee-scroll 20s linear infinite;
}

/* Pause animation on hover or keyboard focus for better UX (WCAG 2.2.2) */
.series-partners__marquee:hover .series-partners__track,
.series-partners__marquee:focus-within .series-partners__track {
	animation-play-state: paused;
}

.series-partner-logo {
	flex: 0 0 auto;
}

.series-partner-logo img {
	height: 70px;
	width: auto;
	max-width: 180px;
	object-fit: contain;
	filter: grayscale(100%) invert(1) brightness(2);
	opacity: 0.8;
	transition: filter 0.4s ease, opacity 0.4s ease, transform 0.4s ease;
}

.series-partner-logo:hover img,
.series-partner-logo a:focus img {
	filter: grayscale(0%) invert(0) brightness(1);
	opacity: 1;
	transform: scale(1.05);
}

.series-partner-logo a {
	display: block;
}

.series-partner-logo a:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 4px;
	border-radius: 4px;
}

/* Responsive: smaller logos on mobile */
@media (max-width: 600px) {
	.series-partners__track {
		gap: 3rem;
		animation-duration: 10s;
	}

	.series-partner-logo img {
		height: 45px;
		max-width: 120px;
	}
}

/* ============================================
   SECTION SPACING VARIABLE
   ============================================ */
:root {
	--series-section-gap: 64px;
}

@media (max-width: 768px) {
	:root {
		--series-section-gap: 48px;
	}
}

/* ============================================
   EVENT DATE (EU Format)
   ============================================ */
.series-event-date {
	font-family: var(--wp--preset--font-family--mono, 'Space Mono', monospace);
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--primary, #C6A15B);
	margin: 0 0 var(--wp--preset--spacing--10, 8px);
}

.series-event-date__day {
	font-weight: 700;
}

.series-event-date__separator {
	opacity: 0.5;
}

/* ============================================
   EVENT SUBTITLE (Poster Style)
   ============================================ */
.series-event-subtitle {
	display: block;
	font-family: var(--wp--preset--font-family--heading, 'Integral CF', serif);
	font-size: 1.5rem;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--wp--preset--color--background, #F2F2F2);
	background: none;
	border: none;
	padding: 0;
	margin-top: var(--wp--preset--spacing--20, 16px);
	margin-bottom: 0;
}

/* ============================================
   SPONSOR SECTION
   ============================================ */
.series-sponsor-section {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--wp--preset--spacing--30, 16px);
	padding: var(--wp--preset--spacing--50, 40px) var(--wp--preset--spacing--40, 32px);
	margin-top: var(--wp--preset--spacing--50, 40px);
	border-radius: 0;
	border-top: 1px solid var(--series-surface-divider);
	border-bottom: 1px solid var(--series-surface-divider);
	background: var(--series-surface-base);
	text-align: center;
}

.series-sponsor-section__label {
	font-family: var(--wp--preset--font-family--mono, 'Space Mono', monospace);
	font-size: 0.625rem;
	text-transform: uppercase;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: rgba(255, 255, 255, 0.4);
	margin-bottom: 4px;
}

.series-sponsors-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--wp--preset--spacing--40, 24px);
}

.series-sponsor-logo {
	max-height: 48px;
	max-width: 120px;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: brightness(0) invert(1);
	opacity: 0.85;
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.series-sponsor-logo:hover {
	opacity: 1;
	transform: scale(1.05);
}

.series-sponsor-name {
	font-weight: 700;
	font-size: 1rem;
	color: var(--wp--preset--color--primary, #C6A15B);
}

/* Mobile Sponsor Section - smaller sizing */
@media (max-width: 768px) {
	.series-sponsor-section {
		gap: var(--wp--preset--spacing--20, 12px);
		padding: var(--wp--preset--spacing--40, 24px) var(--wp--preset--spacing--30, 20px);
		margin-top: var(--wp--preset--spacing--40, 24px);
	}

	.series-sponsor-section__label {
		font-size: 0.5625rem;
	}

	.series-sponsors-list {
		gap: var(--wp--preset--spacing--30, 20px);
	}

	.series-sponsor-logo {
		max-height: 36px;
		max-width: 100px;
	}
}

/* ============================================
   TICKET TABLE UX IMPROVEMENTS
   ============================================ */
.tickera .event_tickets tr {
	transition: background-color 0.2s ease;
}

.tickera .event_tickets tr:hover {
	background-color: rgba(var(--series-primary-rgb), 0.05);
}

.tickera .event_tickets td:first-child {
	min-width: 140px;
	font-weight: 600;
}

/* Active/selected row state */
.tickera .event_tickets tr.selected,
.tickera .event_tickets tr:focus-within {
	background-color: rgba(var(--series-primary-rgb), 0.1);
	box-shadow: inset 3px 0 0 var(--wp--preset--color--primary, #C6A15B);
}

/* Mobile card layout - consolidated to MOBILE CARD LAYOUT section above */

/* Artist placeholder - gradient background when no image */
.series-artist-placeholder {
	background: linear-gradient(135deg, rgba(var(--series-primary-rgb), 0.12) 0%, rgba(var(--series-primary-rgb), 0.06) 100%);
}

/* ============================================
   NORMALIZED SECTION SPACING
   bottom-only margin so back-to-back sections
   don't double the gap (margin-top + margin-bottom)
   ============================================ */
.series-lineup-section,
.series-venue-section,
.series-faq-section,
.series-social-section,
.series-share-section {
	margin-top: 0;
	margin-bottom: var(--series-section-gap);
}

/* first-child already has margin-top: 0 from parent rule above */

/* ============================================
   SINGLE EVENT PAGE - HEADLINE HIERARCHY
   ============================================ */
.single-tc_events h1.wp-block-post-title,
.single-tc_events .wp-block-post-title {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
	margin-bottom: var(--wp--preset--spacing--30, 20px);
}

.single-tc_events h2.wp-block-heading,
.single-tc_events .series-section-title {
	font-size: clamp(1.5rem, 3.5vw, 2rem);
	font-weight: 700;
	line-height: 1.2;
	margin-bottom: var(--wp--preset--spacing--40, 24px);
}

.single-tc_events h3.wp-block-heading {
	font-size: clamp(1.125rem, 2.5vw, 1.5rem);
	font-weight: 600;
	line-height: 1.3;
	margin-bottom: var(--wp--preset--spacing--30, 16px);
}

/* ============================================
   URGENCY BADGES - Enhanced Styling
   ============================================ */
.series-urgency-hint {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	font-family: var(--wp--preset--font-family--mono, 'Space Mono', monospace);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	border-radius: var(--series-radius-sm);
	animation: subtle-pulse 2s ease-in-out infinite;
}

/* Default: Selling fast - amber/accent */
.series-urgency-hint {
	background: linear-gradient(135deg, rgba(251, 191, 36, 0.15) 0%, rgba(245, 158, 11, 0.1) 100%);
	color: var(--series-warning);
}

.series-urgency-hint::before {
	content: '';
	display: inline-block;
	width: 8px;
	height: 8px;
	background: currentColor;
	border-radius: 50%;
	animation: blink-dot 1.5s ease-in-out infinite;
}

/* Low stock - red-orange (more urgent) */
.series-urgency-hint.is-low-stock {
	background: linear-gradient(135deg, rgba(239, 68, 68, 0.15) 0%, rgba(220, 38, 38, 0.1) 100%);
	color: var(--series-error, #EF4444);
}

/* Sold out - gray (neutral) */
.series-urgency-hint.is-sold-out {
	background: linear-gradient(135deg, rgba(107, 114, 128, 0.15) 0%, rgba(75, 85, 99, 0.1) 100%);
	color: var(--series-gray-500, #6b7280);
	animation: none;
}

.series-urgency-hint.is-sold-out::before {
	animation: none;
	opacity: 0.5;
}

@keyframes blink-dot {

	0%,
	100% {
		opacity: 1;
	}

	50% {
		opacity: 0.3;
	}
}

@keyframes subtle-pulse {

	0%,
	100% {
		opacity: 1;
	}

	50% {
		opacity: 0.85;
	}
}

/* ============================================
   ABOUT SECTION - Enhanced Typography
   ============================================ */
.single-tc_events .wp-block-group p,
.single-tc_events .event-description p,
.single-tc_events .wp-block-post-content>p {
	font-size: clamp(1rem, 2vw, 1.125rem);
	line-height: 1.75;
	margin-bottom: 1.5em;
}

.single-tc_events .wp-block-group p:last-child,
.single-tc_events .event-description p:last-child {
	margin-bottom: 0;
}

/* Add visual separator between About content sections */
.single-tc_events .wp-block-separator,
.single-tc_events hr {
	border: none;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(var(--series-primary-rgb), 0.3), transparent);
	margin: var(--series-section-gap, 48px) 0;
}

/* ============================================
   STICKY TICKET BAR - Polish
   ============================================ */
.series-sticky-ticket-bar__cta {
	background: linear-gradient(135deg, var(--series-accent-light, #D4AF61) 0%, var(--series-accent-base, #C6A15B) 50%, var(--series-accent-dark, #B8924F) 100%);
	box-shadow: 0 4px 16px -4px rgba(var(--series-primary-rgb), 0.4);
}

.series-sticky-ticket-bar__cta:hover {
	transform: scale(1.03);
	box-shadow: 0 8px 28px -6px rgba(var(--series-primary-rgb), 0.6);
	filter: brightness(1.05);
}

.series-sticky-ticket-bar__price {
	font-size: 0.9375rem;
	font-weight: 700;
}

/* Improved visibility on scroll */
.series-sticky-ticket-bar.is-visible {
	box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.25);
}

/* ============================================
   PRIORITY 1: PRICE FORMAT FIX
   Hide "za" suffix from WooCommerce prices (Slovak locale issue)
   ============================================ */
.woocommerce-Price-amount+span:not(.woocommerce-Price-currencySymbol),
.tickera .event_tickets td:has(.woocommerce-Price-amount)::after,
.woocommerce-Price-amount~*:not(.woocommerce-Price-currencySymbol):not(.woocommerce-Price-amount) {
	display: none;
}

/* ============================================
   PRIORITY 1: SOLD-OUT TIER VISUAL STATE
   ============================================ */
/* Sold-out row - reduce opacity and visual weight */
.tickera .event_tickets tr:has(span.is-sold-out),
table.event_tickets.tickera tr:has(span.is-sold-out) {
	opacity: 0.5;
}

/* Sold-out badge - red background */
.tickera .event_tickets span.is-sold-out,
table.event_tickets.tickera span.is-sold-out {
	background: var(--series-error-dark, #DC2626) !important;
	/* plugin override */
	color: var(--wp--preset--color--background, #F2F2F2) !important;
	/* plugin override */
	cursor: not-allowed !important;
	/* plugin override */
	pointer-events: none !important;
	/* plugin override */
	box-shadow: none !important;
	/* plugin override */
	opacity: 1 !important;
	/* plugin override */
}

/* Disable hover effects on sold-out rows */
.tickera .event_tickets tr:has(span.is-sold-out):hover,
table.event_tickets.tickera tr:has(span.is-sold-out):hover {
	background: transparent !important;
	/* plugin override */
}

/* ============================================
   PRIORITY 2: ABOUT SECTION PARAGRAPH SPACING
   ============================================ */
.series-about-section {
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
	padding: 0 var(--wp--preset--spacing--40, 24px);
}

.series-about-section p,
#about p,
.single-tc_events .wp-block-post-content p {
	margin-bottom: var(--wp--preset--spacing--40, 24px);
	max-width: 100%;
}

.series-about-section p:last-child,
#about p:last-child {
	margin-bottom: 0;
}

/* ============================================
   min-width: 600px — CONSOLIDATED
   ============================================ */
@media (min-width: 600px) {

	/* More events: 2-column grid */
	.series-more-events {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--wp--preset--spacing--40, 32px);
	}

	/* Venue: 2-column layout */
	.series-venue-content {
		grid-template-columns: 1.5fr 1fr;
		align-items: start;
	}

	/* Venue info: increased padding */
	.series-venue-info {
		padding: var(--wp--preset--spacing--30, 24px);
	}

	/* FAQ: tablet+ padding */
	.series-faq-question {
		padding: 16px 20px;
	}

	.series-faq-answer-content {
		padding: 0 20px 20px;
		font-size: 0.9375rem;
	}

	/* Tickera table: desktop spacing */
	.tickera .event_tickets th,
	.tickera .event_tickets td,
	table.event_tickets.tickera th,
	table.event_tickets.tickera td {
		padding: var(--wp--preset--spacing--40, 24px) var(--wp--preset--spacing--30, 20px);
	}
}

/* Tickera table headers - non-interactive */
.tickera .event_tickets th,
table.event_tickets.tickera th,
.tickera .event_tickets thead th,
.event_tickets th {
	cursor: default;
	pointer-events: none;
	-webkit-user-select: none;
	user-select: none;
	background: transparent;
}

.tickera .event_tickets th:hover,
table.event_tickets.tickera th:hover,
.event_tickets th:hover {
	background: transparent;
	color: inherit;
	cursor: default;
}

/* ============================================
   VENUE MAP PLACEHOLDER - Show button fallback
   ============================================ */
.series-venue-map-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 200px;
	background: rgba(var(--series-primary-rgb), 0.08);
	border: 1px dashed rgba(var(--series-primary-rgb), 0.3);
	border-radius: var(--series-radius-sm);
	margin-bottom: 20px;
}

.series-venue-map-placeholder a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 24px;
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	text-decoration: none;
	font-weight: 700;
	text-transform: uppercase;
	font-size: 0.875rem;
	letter-spacing: 0.05em;
	border-radius: 4px;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.series-venue-map-placeholder a:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px -6px rgba(var(--series-primary-rgb), 0.4);
}

/* ============================================
   PRINT STYLES
   ============================================ */
@media print {

	.series-sticky-ticket-bar,
	.series-section-nav,
	.series-skip-link,
	.series-share-section,
	.series-social-section,
	#wpadminbar {
		display: none !important;
	}

	.wp-block-post-featured-image img {
		max-width: 60%;
		height: auto;
	}

	body {
		background: #fff !important;
		color: #000 !important;
	}

	a {
		color: #000 !important;
		text-decoration: underline !important;
	}

	.wp-block-cover {
		min-height: auto !important;
	}
}

/* ============================================
   THANK YOU PAGE - TICKET CONFIRMATION
   ============================================ */
.series-ticket-confirmation {
	margin: 0.75rem 0 1.5rem;
	text-align: center;
	overflow: hidden;
}

.series-ticket-confirmation__hero {
	background: transparent;
	border-radius: 0;
	padding: 0.5rem 0;
	margin-bottom: 1rem;
}

.series-ticket-confirmation__event-name {
	color: var(--wp--preset--color--primary, #C6A15B);
	font-size: clamp(1rem, 5vw, 1.5rem);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin: 0 0 0.5rem;
	line-height: 1.1;
}

.series-ticket-confirmation__details {
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.9rem;
	margin: 0 0 1rem;
	line-height: 1.5;
}

.series-ticket-confirmation__date {
	display: block;
}

.series-ticket-confirmation__venue {
	display: block;
	color: rgba(255, 255, 255, 0.65);
	font-size: 0.9rem;
	margin-top: 0.25rem;
}

.series-ticket-confirmation__downloads {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	max-width: 320px;
	margin: 0 auto;
}

.series-ticket-confirmation__download-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	padding: var(--series-btn-padding-y) var(--series-btn-padding-x);
	border-radius: var(--series-radius-sm);
	font-size: 0.95rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: var(--series-ls-cta);
	text-decoration: none;
	transition: transform var(--series-duration-fast) var(--series-ease-out),
		box-shadow var(--series-duration-fast) var(--series-ease-out);
	min-height: 48px;
	border: none;
	cursor: pointer;
	-webkit-font-smoothing: antialiased;
}

.series-ticket-confirmation__download-btn:hover,
.series-ticket-confirmation__download-btn:focus {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(var(--series-primary-rgb), 0.35);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	outline: none;
}

.series-ticket-confirmation__download-btn:focus-visible {
	outline: 2px solid var(--wp--preset--color--background, #F2F2F2);
	outline-offset: 2px;
}

.series-ticket-confirmation__download-btn svg {
	flex-shrink: 0;
}

/* Meta section - secondary info */
.series-ticket-confirmation__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1rem 1.5rem;
	padding: 1rem 0;
	font-size: 0.9rem;
}

.series-ticket-confirmation__email {
	color: rgba(255, 255, 255, 0.6);
	margin: 0;
	word-break: break-word;
	overflow-wrap: break-word;
}

.series-ticket-confirmation__email strong {
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-ticket-confirmation__calendar {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 8px 4px;
	white-space: nowrap;
	color: var(--wp--preset--color--primary, #C6A15B);
	text-decoration: none;
	font-weight: 500;
	transition: color var(--series-duration-fast) var(--series-ease-out);
}

.series-ticket-confirmation__calendar:hover {
	color: var(--wp--preset--color--accent-light, #E8D5A3);
	text-decoration: underline;
}

.series-ticket-confirmation__calendar:focus-visible {
	outline: 2px solid var(--wp--preset--color--background, #F2F2F2);
	outline-offset: 2px;
}

/* Pending state: shown when Tickera hasn't generated tickets yet */
.series-ticket-confirmation__pending {
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.95rem;
	margin: 0;
	padding: 1rem 0;
}

/* Hide billing address for ticket-only orders */
.series-hide-billing {
	display: none;
}

/* Ensure proper contrast on dark background */
.woocommerce-order-received .series-thankyou-newsletter a {
	color: inherit;
	text-decoration: underline;
}






/* ============================================
   THANK YOU PAGE - CONTACT FOOTER
   Instagram and email contact info
   ============================================ */
.series-thankyou-contact {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0;
	padding: 1rem 0 0;
	margin: 0.5rem 0 0;
}

@media (max-width: 480px) {
	.series-thankyou-contact {
		flex-direction: column;
	}

	.series-thankyou-contact__separator {
		display: none;
	}
}

.series-thankyou-contact__link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 8px 4px;
	color: var(--wp--preset--color--primary, #C6A15B);
	text-decoration: none;
	font-size: 0.95rem;
	font-weight: 500;
	transition: color var(--series-duration-fast) var(--series-ease-out);
}

.series-thankyou-contact__link:hover {
	color: var(--wp--preset--color--accent-light, #E8D5A3);
}

.series-thankyou-contact__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--background, #F2F2F2);
	outline-offset: 2px;
}

.series-thankyou-contact__separator {
	color: var(--wp--preset--color--muted, #999);
	padding: 0 0.75rem;
	font-size: 0.95rem;
}

/* Bridge duplicate output suppressed via PHP hook; CSS fallback. */
.tc_order_tickets_wrapper,
.tc-wb-order-tickets {
	display: none;
}

/* ============================================
   THANK YOU PAGE - NEWSLETTER SECTION
   ============================================ */
.series-thankyou-newsletter {
	background: transparent;
	border-radius: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	padding: 1.5rem 0;
	margin: 2rem 0 1.5rem;
}

.series-thankyou-newsletter__header {
	text-align: center;
}

.series-thankyou-newsletter__header h3 {
	font-size: 1.5rem;
	font-weight: 800;
	margin: 0 0 0.5rem;
	color: var(--wp--preset--color--background, #F2F2F2);
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.series-thankyou-newsletter__header p {
	color: rgba(var(--series-background-rgb), 0.7);
	margin: 0 0 1.5rem;
	font-size: 0.95rem;
}

.series-thankyou-newsletter__form {
	max-width: 500px;
	margin: 0 auto;
}

.series-thankyou-newsletter__consent {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	text-align: left;
	margin-bottom: 1.25rem;
	cursor: pointer;
	min-height: 44px;
	padding: 8px 0;
}

.series-thankyou-newsletter__consent input[type="checkbox"] {
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	min-width: 24px;
	min-height: 24px;
	margin-top: 0;
	accent-color: var(--wp--preset--color--primary, #C6A15B);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	background: transparent;
	border: 2px solid rgba(255, 255, 255, 0.5);
	border-radius: 4px;
	position: relative;
}

.series-thankyou-newsletter__consent input[type="checkbox"]:hover {
	border-color: var(--wp--preset--color--primary, #C6A15B);
}

.series-thankyou-newsletter__consent input[type="checkbox"]:checked {
	background: var(--wp--preset--color--primary, #C6A15B);
	border-color: var(--wp--preset--color--primary, #C6A15B);
}

.series-thankyou-newsletter__consent input[type="checkbox"]:checked::after {
	content: '';
	position: absolute;
	left: 7px;
	top: 3px;
	width: 6px;
	height: 11px;
	border: solid var(--wp--preset--color--foreground, #0B0B0B);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.series-thankyou-newsletter__consent span {
	color: rgba(var(--series-background-rgb), 0.8);
	font-size: 0.85rem;
	line-height: 1.5;
}

.series-thankyou-newsletter__submit {
	display: inline-block;
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	border: none;
	padding: var(--series-btn-padding-y) var(--series-btn-padding-x);
	font-size: 0.9rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: var(--series-ls-cta);
	border-radius: var(--series-radius-sm);
	cursor: pointer;
	transition: background-color var(--series-duration-fast) var(--series-ease-out),
		transform var(--series-duration-fast) var(--series-ease-out);
	width: 100%;
	min-height: 48px;
}

.series-thankyou-newsletter__submit:hover {
	background: var(--wp--preset--color--accent-light, #E8D5A3);
	transform: translateY(-1px);
}

.series-thankyou-newsletter__submit:focus-visible {
	outline: 2px solid var(--wp--preset--color--background, #F2F2F2);
	outline-offset: 2px;
}

.series-thankyou-newsletter__submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
	transform: none;
}

.series-thankyou-newsletter__status {
	margin-top: 1rem;
}

.series-thankyou-newsletter__status .error {
	color: var(--series-error-light);
	font-size: 0.9rem;
}

.series-thankyou-newsletter__success {
	color: var(--wp--preset--color--primary, #C6A15B);
	font-size: 1.1rem;
	font-weight: 600;
	padding: 1rem;
}

.series-thankyou-newsletter__success span {
	display: inline-block;
	margin-right: 0.5rem;
	font-size: 1.25rem;
}

/* ============================================
   THANK YOU PAGE - MOBILE RESPONSIVE FIXES
   ============================================ */

/* Heading size override — WP core / legacy-template heading is enormous.
   For ticket orders the download button is the priority, so minimise chrome. */
.series-ticket-order h1.wp-block-heading,
.series-ticket-order h1.wp-block-woocommerce-legacy-template {
	font-size: clamp(1rem, 3.5vw, 1.35rem) !important;
	/* WP core override */
	letter-spacing: 0.06em;
	text-transform: uppercase;
	margin-bottom: var(--wp--preset--spacing--20);
	overflow-wrap: break-word;
	word-break: break-word;
}

/* Order overview — extra compact for ticket orders */
.series-ticket-order .woocommerce-order-overview {
	padding: 0;
	gap: 0.25rem 0.75rem;
	margin: 0.5rem 0;
}

.series-ticket-order .woocommerce-order-overview li strong {
	font-size: 0.75rem;
}

@media (max-width: 600px) {

	/* All order confirmation headings — prevent overflow on mobile */
	.woocommerce-order-received h1.wp-block-heading,
	.woocommerce-order-received h1.wp-block-woocommerce-legacy-template {
		font-size: clamp(0.95rem, 4vw, 1.25rem) !important;
		/* WP core override */
		letter-spacing: 0.04em;
	}

	/* Order overview — 2-col on mobile, no box */
	.woocommerce-order-received .woocommerce-order-overview {
		grid-template-columns: 1fr 1fr;
		gap: 0.25rem 0.5rem;
		padding: 0;
	}

	/* Newsletter form - Full width on mobile */
	.series-thankyou-newsletter__form {
		max-width: 100%;
		padding: 0 0.75rem;
	}

	.series-thankyou-newsletter {
		padding: 1.25rem 0.75rem;
		margin: var(--wp--preset--spacing--40) 0;
		border-radius: var(--series-radius-sm);
	}

	.series-thankyou-newsletter__header h3 {
		font-size: 1.25rem;
	}

	.series-thankyou-newsletter__header p {
		font-size: 0.9rem;
	}

	/* Order accordion - reduce vertical bloat on mobile */
	.series-order-details-collapse {
		margin: 1rem 0;
	}
}

/* ============================================
   THANK YOU PAGE - COLLAPSIBLE ORDER DETAILS
   ============================================ */
.series-order-details-collapse {
	margin: 2rem 0;
	border-radius: var(--series-radius-sm);
	overflow: hidden;
}

.series-order-details-collapse summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	cursor: pointer;
	-webkit-user-select: none;
	user-select: none;
	list-style: none;
	color: rgba(255, 255, 255, 0.85);
}

.series-order-details-collapse summary::-webkit-details-marker {
	display: none;
}

.series-order-details-collapse__title {
	font-weight: 700;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.9);
}

.series-order-details-collapse__icon {
	font-size: 0.75rem;
	transition: transform 0.2s ease;
	color: var(--wp--preset--color--primary, #C6A15B);
}

.series-order-details-collapse[open] .series-order-details-collapse__icon {
	transform: rotate(180deg);
}

.series-order-details-collapse .woocommerce-order-details {
	padding: 1rem 0;
}

/* ============================================
   THANK YOU PAGE - UX IMPROVEMENTS
   ============================================ */

/* Hide Order Again button ONLY for ticket-only orders */
.series-ticket-order:not(.series-mixed-order) .order-again {
	display: none;
}

/* For mixed orders, style the Order Again button subtly */
.series-mixed-order .order-again {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(var(--series-primary-rgb), 0.2);
}

.series-mixed-order .order-again .button {
	background: transparent;
	border: 1px solid rgba(var(--series-primary-rgb), 0.5);
	color: var(--wp--preset--color--primary, #C6A15B);
	font-size: 0.85rem;
}

.series-mixed-order .order-again .button:hover {
	background: rgba(var(--series-primary-rgb), 0.1);
}

/* Billing address + customer details: hide for ticket-only orders.
   The ticket hero section shows "Confirmation sent to [email]" which is sufficient. */
.series-ticket-order:not(.series-mixed-order) .woocommerce-customer-details,
.series-ticket-order:not(.series-mixed-order) .wc-block-order-confirmation-billing-address,
.series-ticket-order:not(.series-mixed-order) .wc-block-order-confirmation-shipping-address {
	display: none;
}

/* ============================================
   THANK YOU PAGE - SIMPLIFIED FOR TICKET ORDERS
   Hide redundant WooCommerce blocks
   ============================================ */

/* WC downloads block removed from FSE template. Summary block not in template.
   Defensive hide only for the summary in case WC core injects it. */
.series-ticket-order .wc-block-order-confirmation-summary {
	display: none;
}

/* Simplified status block for ticket orders */
.series-ticket-order .wc-block-order-confirmation-status {
	background: transparent;
	border: none;
	padding: 0;
	margin-bottom: var(--wp--preset--spacing--20);
}

.series-ticket-order .wc-block-order-confirmation-status p {
	font-size: clamp(0.9rem, 2.5vw, 1rem);
	color: rgba(255, 255, 255, 0.7);
}

/* Totals block simplified */
.series-ticket-order .wc-block-order-confirmation-totals {
	background: var(--series-surface-base);
	border-top: 1px solid var(--series-surface-divider);
	border-bottom: 1px solid var(--series-surface-divider);
	border-radius: 0;
	padding: 1.25rem;
	margin-top: 1.5rem;
}

.series-ticket-order .wc-block-order-confirmation-totals-wrapper {
	max-width: 100%;
}

/* Tickera table styling removed — Bridge output suppressed at PHP hook level.
   See functions.php series_remove_bridge_tickera_table(). */

/* Order overview list — flat, no box, minimal vertical space */
.woocommerce-order-received .woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 0.5rem 1rem;
	list-style: none;
	margin: 0.75rem 0;
	background: transparent;
	border: none;
	border-radius: 0;
	padding: 0;
}

.woocommerce-order-received .woocommerce-order-overview li {
	display: flex;
	flex-direction: column;
	font-size: 0.7rem;
	color: rgba(var(--series-background-rgb), 0.45);
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.woocommerce-order-received .woocommerce-order-overview li strong {
	font-size: 0.8rem;
	color: rgba(var(--series-background-rgb), 0.75);
	margin-top: 0.15rem;
	text-transform: none;
	letter-spacing: 0;
	word-break: break-word;
}

/* ============================================
   404 PAGE STYLES
   ============================================ */
.error404 .wp-block-search {
	max-width: 400px;
	margin: 0 auto;
}

.error404 .wp-block-search__inside-wrapper {
	border: 2px solid var(--wp--preset--color--primary, #C6A15B);
}

.error404 .wp-block-search__input {
	background: var(--wp--preset--color--background, #F2F2F2);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	border: none;
}

.error404 .wp-block-search__button {
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	padding: 12px 16px;
}

.error404 .wp-block-search__button:hover {
	background: var(--series-accent-light);
}

/* ============================================
   SEARCH PAGE STYLES
   ============================================ */
.search .wp-block-search {
	max-width: 500px;
	margin: 0 auto;
}

.search .wp-block-search__inside-wrapper {
	border: 2px solid var(--wp--preset--color--primary, #C6A15B);
}

.search .wp-block-search__input {
	background: var(--wp--preset--color--background, #F2F2F2);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	border: none;
	padding: 14px 20px;
}

.search .wp-block-search__button {
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	padding: 14px 18px;
}

.search .wp-block-search__button:hover {
	background: var(--series-accent-light);
}

/* Search result cards */
.series-search-result {
	transition: transform var(--series-duration-normal) var(--series-ease-out),
		box-shadow var(--series-duration-normal) var(--series-ease-out);
}

.series-search-result:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
}

.series-search-result .wp-block-post-featured-image img {
	transition: transform var(--series-duration-normal) var(--series-ease-out);
}

.series-search-result:hover .wp-block-post-featured-image img {
	transform: scale(1.05);
}

.series-search-result .wp-block-post-featured-image {
	overflow: hidden;
	border-radius: var(--series-radius-lg) var(--series-radius-lg) 0 0;
}

.series-search-result .wp-block-post-excerpt__more-link {
	display: inline-block;
	margin-top: 0.5rem;
	text-transform: uppercase;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.05em;
}

/* ============================================
   CONTACT PAGE STYLES
   ============================================ */
.series-contact-page {
	max-width: 800px;
	margin: 0 auto;
}

.series-contact-intro {
	text-align: center;
	margin-bottom: 3rem;
}

.series-contact-tagline {
	font-size: 1.1rem;
	line-height: 1.7;
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-contact-methods {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 2rem;
	margin-bottom: 3rem;
}

.series-contact-method {
	background: var(--series-surface-emphasis);
	border-top: 1px solid var(--series-surface-divider);
	border-bottom: 1px solid var(--series-surface-divider);
	border-radius: 0;
	padding: 1.5rem;
	text-align: center;
}

.series-contact-method h3 {
	font-size: 1rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 0.75rem;
	color: var(--wp--preset--color--primary, #C6A15B);
}

.series-contact-method p {
	margin: 0.5rem 0 0;
	font-size: 0.95rem;
}

.series-contact-method a {
	color: var(--wp--preset--color--primary, #C6A15B);
	font-weight: 600;
}

.series-contact-note {
	font-size: 0.8rem;
	opacity: 0.7;
}

.series-contact-form-section {
	margin-top: 2rem;
	padding-top: 2rem;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.series-contact-form-section h2 {
	text-align: center;
	font-size: 1.5rem;
	font-weight: 700;
	margin-bottom: 1.5rem;
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-contact-placeholder {
	text-align: center;
	padding: 2rem;
	background: var(--series-surface-base);
	border-top: 1px solid var(--series-surface-divider);
	border-bottom: 1px solid var(--series-surface-divider);
	border-radius: 0;
}

/* ============================================
   REFUND POLICY PAGE STYLES
   ============================================ */
.series-refund-policy {
	max-width: 800px;
	margin: 0 auto;
	line-height: 1.8;
}

.series-policy-updated {
	background: rgba(var(--series-primary-rgb), 0.1);
	padding: 0.75rem 1rem;
	border-radius: var(--series-radius-sm);
	font-size: 0.9rem;
	margin-bottom: 2rem;
}

.series-refund-policy h2 {
	font-size: 1.75rem;
	font-weight: 800;
	margin: 2rem 0 1rem;
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-refund-policy h3 {
	font-size: 1.15rem;
	font-weight: 700;
	margin: 1.75rem 0 0.75rem;
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-refund-policy ul {
	margin: 1rem 0;
	padding-left: 1.5rem;
}

.series-refund-policy li {
	margin-bottom: 0.5rem;
}

.series-refund-policy a {
	color: var(--wp--preset--color--primary, #C6A15B);
	font-weight: 600;
}

/* ============================================
   FAQ PAGE STYLES (Dark Theme)
   ============================================ */
.series-faq-page {
	max-width: 800px;
	margin: 0 auto;
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-faq-intro {
	text-align: center;
	font-size: 1.1rem;
	margin-bottom: 2rem;
	color: var(--wp--preset--color--muted, rgba(255, 255, 255, 0.7));
}

.series-faq-intro a {
	color: var(--wp--preset--color--primary, #C6A15B);
	font-weight: 600;
}

.series-faq-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.series-faq-item {
	background: var(--series-surface-base);
	border-top: 1px solid var(--series-surface-divider);
	border-radius: 0;
	overflow: hidden;
}

.series-faq-item[open] {
	background: var(--series-surface-emphasis);
}

.series-faq-question {
	padding: 1.25rem 1.5rem;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	user-select: none;
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-faq-question::-webkit-details-marker {
	display: none;
}

.series-faq-question::after {
	content: '+';
	font-size: 1.5rem;
	font-weight: 400;
	color: var(--wp--preset--color--primary, #C6A15B);
	transition: transform 0.2s ease;
}

.series-faq-item[open] .series-faq-question::after {
	content: '−';
}

.series-faq-answer {
	padding: 0 1.5rem 1.25rem;
	line-height: 1.7;
}

.series-faq-answer a {
	color: var(--wp--preset--color--primary, #C6A15B);
	font-weight: 600;
}

/* ============================================
   CONTACT FORM 7 STYLES
   ============================================
   Custom styling for CF7 forms to match Series Starter brand.
   GDPR compliant with proper focus states and accessibility.
   ============================================ */

/* Container & Layout */
.wpcf7 {
	font-family: inherit;
}

.wpcf7-form {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

/* Form Labels */
.wpcf7-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.5rem;
	color: var(--wp--preset--color--background, #F2F2F2);
	font-size: 0.9375rem;
}

/* Input Fields */
.wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance):not(.wpcf7-radio):not(.wpcf7-checkbox) {
	width: 100%;
	padding: 0.875rem 1rem;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--wp--preset--color--background, #F2F2F2);
	background-color: var(--series-surface-base);
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: var(--series-radius-sm, 8px);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	-webkit-appearance: none;
	appearance: none;
}

.wpcf7-form-control:not(.wpcf7-submit):focus {
	outline: none;
	border-color: var(--wp--preset--color--primary, #C6A15B);
	box-shadow: 0 0 0 3px rgba(var(--series-primary-rgb), 0.15);
}

/* Placeholder Text */
.wpcf7-form-control::placeholder {
	color: rgba(255, 255, 255, 0.4);
}

/* Textarea */
.wpcf7-textarea {
	min-height: 160px;
	resize: vertical;
}

/* Select Dropdown */
.wpcf7-select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23999' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	padding-right: 2.5rem;
	cursor: pointer;
}

/* Submit Button */
.wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: var(--series-btn-padding-y, 12px) var(--series-btn-padding-x, 28px);
	font-size: 1rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: var(--series-ls-cta, 0.08em);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	background-color: var(--wp--preset--color--primary, #C6A15B);
	border: 2px solid var(--wp--preset--color--primary, #C6A15B);
	border-radius: var(--series-radius-pill, 30px);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
	min-height: var(--series-touch-target, 44px);
	width: 100%;
}

@media (min-width: 480px) {
	.wpcf7-submit {
		width: auto;
	}
}

.wpcf7-submit:hover,
.wpcf7-submit:focus {
	background-color: var(--wp--preset--color--accent-light, #E8D5A3);
	border-color: var(--wp--preset--color--accent-light, #E8D5A3);
	color: var(--wp--preset--color--foreground, #0B0B0B);
}

.wpcf7-submit:focus {
	outline: none;
	box-shadow: 0 0 0 3px rgba(var(--series-primary-rgb), 0.3);
}

.wpcf7-submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* Acceptance Checkbox (GDPR) */
.wpcf7-acceptance {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	cursor: pointer;
}

.wpcf7-acceptance input[type="checkbox"] {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	margin-top: 0.125rem;
	accent-color: var(--wp--preset--color--primary, #C6A15B);
	cursor: pointer;
}

.wpcf7-acceptance .wpcf7-list-item-label {
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--wp--preset--color--background, #F2F2F2);
}

.wpcf7-acceptance a {
	color: var(--wp--preset--color--primary, #C6A15B);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.wpcf7-acceptance a:hover {
	color: var(--wp--preset--color--accent-light, #E8D5A3);
}

/* Validation Errors */
.wpcf7-not-valid {
	border-color: var(--series-error-dark, #DC2626);
}

.wpcf7-not-valid-tip {
	display: block;
	margin-top: 0.375rem;
	font-size: 0.8125rem;
	color: var(--series-error-dark, #DC2626);
	font-weight: 500;
}

/* Response Messages */
.wpcf7-response-output {
	margin: 1.5rem 0 0 !important;
	/* plugin inline override */
	padding: 1rem 1.25rem !important;
	/* plugin inline override */
	border-radius: var(--series-radius-sm, 8px);
	font-size: 0.9375rem;
	line-height: 1.5;
	text-align: center;
}

.wpcf7-mail-sent-ok,
.wpcf7 form.sent .wpcf7-response-output {
	background-color: rgba(34, 197, 94, 0.15);
	border: 2px solid var(--series-success, #22C55E);
	color: var(--series-success-light);
}

.wpcf7-validation-errors,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
	background-color: rgba(220, 38, 38, 0.15);
	border: 2px solid var(--series-error-dark, #DC2626);
	color: var(--series-error-light);
}

.wpcf7-mail-sent-ng,
.wpcf7 form.failed .wpcf7-response-output {
	background-color: rgba(220, 38, 38, 0.15);
	border: 2px solid var(--series-error-dark, #DC2626);
	color: var(--series-error-light);
}

.wpcf7-spam-blocked,
.wpcf7 form.spam .wpcf7-response-output {
	background-color: rgba(234, 179, 8, 0.15);
	border: 2px solid var(--series-warning);
	color: var(--series-warning-light);
}

/* Loading Spinner */
.wpcf7-spinner {
	display: inline-block;
	width: 24px;
	height: 24px;
	border: 3px solid rgba(var(--series-primary-rgb), 0.3);
	border-top-color: var(--wp--preset--color--primary, #C6A15B);
	border-radius: 50%;
	animation: wpcf7-spin 0.8s linear infinite;
	margin-left: 0.5rem;
}

@keyframes wpcf7-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Form Row Layout */
.cf7-form-row {
	display: grid;
	gap: 1.5rem;
}

@media (min-width: 768px) {
	.cf7-form-row.two-col {
		grid-template-columns: 1fr 1fr;
	}
}

/* Required Field Indicator */
.wpcf7-form label .required {
	color: var(--series-error-dark, #DC2626);
	margin-left: 0.25rem;
}

/* reCAPTCHA Badge Positioning */
.grecaptcha-badge {
	z-index: var(--series-z-recaptcha);
}

/* Contact Page Specific Styles */
.contact-page .contact-form-section .wpcf7 {
	max-width: 100%;
}

.contact-page .contact-card__inner {
	text-align: center;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.contact-page .contact-card__inner:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(255, 255, 255, 0.05);
}

.contact-page .contact-card__link a {
	color: var(--wp--preset--color--primary, #C6A15B);
	font-weight: 600;
	text-decoration: none;
	transition: color 0.2s ease;
}

.contact-page .contact-card__link a:hover {
	color: var(--wp--preset--color--accent-light, #E8D5A3);
	text-decoration: underline;
}

/* Newsletter Form in Contact Page */
.contact-page .newsletter-cta .series-newsletter {
	max-width: 480px;
	margin: 0 auto;
}

/* ============================================
   PRIVACY POLICY & TERMS PAGE STYLES
   ============================================ */
.series-privacy-policy,
.series-terms-of-service {
	max-width: 800px;
	margin: 0 auto;
	line-height: 1.8;
}

.series-privacy-policy h2,
.series-terms-of-service h2 {
	font-size: 1.75rem;
	font-weight: 800;
	margin: 2.5rem 0 1rem;
	color: var(--wp--preset--color--background, #F2F2F2);
	padding-top: 1rem;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.series-privacy-policy h2:first-of-type,
.series-terms-of-service h2:first-of-type {
	border-top: none;
	padding-top: 0;
}

.series-privacy-policy h3,
.series-terms-of-service h3 {
	font-size: 1.15rem;
	font-weight: 700;
	margin: 1.75rem 0 0.75rem;
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-privacy-policy ul,
.series-terms-of-service ul {
	margin: 1rem 0;
	padding-left: 1.5rem;
}

.series-privacy-policy li,
.series-terms-of-service li {
	margin-bottom: 0.5rem;
}

.series-privacy-policy a,
.series-terms-of-service a {
	color: var(--wp--preset--color--primary, #C6A15B);
	font-weight: 600;
}

/* Policy Tables */
.series-policy-table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0;
	font-size: 0.9rem;
}

.series-policy-table th,
.series-policy-table td {
	padding: 0.75rem 1rem;
	text-align: left;
	border: 1px solid rgba(255, 255, 255, 0.1);
}

.series-policy-table th {
	background: rgba(255, 255, 255, 0.05);
	font-weight: 700;
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-policy-table tbody tr:nth-child(even) {
	background: rgba(255, 255, 255, 0.02);
}

@media (max-width: 768px) {
	.series-policy-table {
		font-size: 0.8rem;
	}

	.series-policy-table th,
	.series-policy-table td {
		padding: 0.5rem 0.75rem;
	}
}

/* ============================================
   ABOUT PAGE STYLES
   ============================================ */
.series-about-page {
	max-width: 800px;
	margin: 0 auto;
	line-height: 1.8;
}

.series-about-intro {
	text-align: center;
	margin-bottom: 3rem;
}

.series-about-tagline {
	font-size: 1.5rem;
	font-weight: 700;
	font-style: italic;
	color: var(--wp--preset--color--primary, #C6A15B);
	margin: 0;
}

.series-about-page h2 {
	font-size: 1.75rem;
	font-weight: 800;
	margin: 2.5rem 0 1rem;
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-about-page p {
	margin-bottom: 1rem;
}

.series-values-list {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0;
}

.series-values-list li {
	padding: 1rem 1.25rem;
	margin-bottom: 1rem;
	background: rgba(var(--series-primary-rgb), 0.05);
	border-left: 4px solid var(--wp--preset--color--primary, #C6A15B);
	border-radius: 0 var(--series-radius-sm) var(--series-radius-sm) 0;
}

.series-values-list li strong {
	display: block;
	margin-bottom: 0.25rem;
	color: var(--wp--preset--color--primary, #C6A15B);
}

.series-about-cta {
	display: inline-block;
	margin: 1rem 0;
}

.series-about-page a:not(.series-about-cta) {
	color: var(--wp--preset--color--primary, #C6A15B);
	font-weight: 600;
}

/* ============================================
   TABLET RESPONSIVE BREAKPOINTS (600px - 1024px)
   Fills the gap between mobile and desktop
   ============================================ */

@media (min-width: 600px) and (max-width: 1024px) {

	/* Event Cards Grid - 2 columns on tablet */
	.series-past-events .wp-block-post-template,
	.series-upcoming-events .wp-block-post-template {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--wp--preset--spacing--40);
	}

	/* Hero Section - Adjust padding and sizing */
	.series-hero-section .wp-block-cover {
		min-height: 70vh;
	}

	.series-hero-section .wp-block-image img {
		max-width: 220px;
	}

	/* Spotlight Section - Stack on tablet */
	.series-spotlight-section .wp-block-columns {
		flex-direction: column;
	}

	.series-spotlight-section .wp-block-column {
		flex-basis: 100% !important;
		/* FSE override */
		max-width: 100%;
	}

	/* Features Grid - 2 columns */
	.series-features .wp-block-columns {
		flex-wrap: wrap;
	}

	.series-features .wp-block-column {
		flex-basis: calc(50% - var(--wp--preset--spacing--30)) !important;
		/* FSE override */
		margin-bottom: var(--wp--preset--spacing--40);
	}

	/* Contact Cards - 2 columns then full */
	.series-contact-section .wp-block-columns {
		flex-wrap: wrap;
	}

	.series-contact-section .wp-block-column {
		flex-basis: calc(50% - var(--wp--preset--spacing--20)) !important;
		/* FSE override */
		margin-bottom: var(--wp--preset--spacing--30);
	}

	.series-contact-section .wp-block-column:last-child {
		flex-basis: 100% !important;
		/* FSE override */
	}

	/* Countdown - Smaller numbers */
	.series-countdown__number {
		font-size: clamp(2rem, 6vw, 3.5rem);
	}

	.series-countdown__label {
		font-size: 0.7rem;
	}

	/* Lineup Grid - 2 columns */
	.series-lineup .wp-block-columns {
		flex-wrap: wrap;
	}

	.series-lineup .wp-block-column {
		flex-basis: calc(50% - var(--wp--preset--spacing--30)) !important;
		/* FSE override */
	}

	/* Shop Grid - 2 columns */
	.series-shop-preview .products,
	.series-shop-preview .wp-block-post-template {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Partners Logo Grid - Larger logos */
	.series-partners-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: var(--wp--preset--spacing--40);
	}

	/* FAQ - Full width */
	.series-faq {
		max-width: 100%;
		padding: 0 var(--wp--preset--spacing--40);
	}

	/* Venue Map - Full width */
	.series-venue-map iframe {
		height: 350px;
	}

	/* Typography scaling — cap parent theme's large calc() sizes */
	h1,
	.has-huge-font-size {
		font-size: clamp(2rem, 5vw, 3rem);
	}

	h2,
	.has-large-font-size {
		font-size: clamp(1.5rem, 4vw, 2.25rem);
	}

	.has-big-font-size {
		font-size: clamp(1.5rem, 5vw, 2.25rem);
	}

	.has-gigantic-font-size {
		font-size: clamp(2rem, 6vw, 3rem);
	}

	.has-colossal-font-size {
		font-size: clamp(2rem, 7vw, 3.5rem);
	}
}

/* ============================================
   WOOCOMMERCE CART/CHECKOUT RESPONSIVE LAYOUT
   Minimal overrides - let native blocks work
   ============================================ */

/* Cart Block - Mobile Layout */
@media (max-width: 768px) {

	/* Touch-friendly quantity selector */
	.wc-block-components-quantity-selector {
		min-height: 44px;
	}

	.wc-block-components-quantity-selector button {
		min-width: 44px;
		min-height: 44px;
	}

	.wc-block-components-quantity-selector input {
		min-height: 44px;
		font-size: 1rem;
	}

	/* Proceed to checkout button - Full width */
	.wc-block-cart__submit-button {
		width: 100%;
		min-height: 56px;
		font-size: 1rem;
		font-weight: 700;
	}
}

/* Checkout Block - Mobile Layout */
/* Let WooCommerce handle collapsible order summary natively */
@media (max-width: 768px) {

	/* Form inputs - Touch friendly with 16px to prevent iOS zoom */
	.wc-block-components-text-input input,
	.wc-block-components-combobox input,
	.wc-block-components-text-input textarea {
		min-height: 48px;
		padding: 12px 16px;
		font-size: 16px;
		border-radius: var(--series-radius-sm);
		border: 1px solid rgba(255, 255, 255, 0.2);
	}

	.wc-block-components-text-input input:focus,
	.wc-block-components-combobox input:focus {
		border-color: var(--wp--preset--color--primary, #C6A15B);
		outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
		outline-offset: 2px;
		box-shadow: 0 0 0 2px rgba(var(--series-primary-rgb), 0.2);
	}

	/* Payment methods - Touch targets */
	.wc-block-components-radio-control-accordion-option {
		padding: var(--wp--preset--spacing--30);
		margin-bottom: var(--wp--preset--spacing--20);
		border-radius: var(--series-radius-sm);
		border: 1px solid rgba(255, 255, 255, 0.15);
	}

	.wc-block-components-radio-control-accordion-option label {
		min-height: 44px;
		display: flex;
		align-items: center;
	}

	/* Place order button - Full width */
	.wc-block-components-checkout-place-order-button {
		width: 100%;
		min-height: 56px;
		font-size: 1.1rem;
		font-weight: 700;
		border-radius: var(--series-radius-sm);
	}
}

/* ============================================
   CART/CHECKOUT - ESSENTIAL FIXES
   ============================================ */

/* WooCommerce Combobox Dropdown - Dark Theme */
/* !important needed to override WooCommerce inline styles and React portal styling */
.wc-block-components-combobox-control__menu,
.components-popover__content,
[role="listbox"] {
	background: var(--wp--preset--color--foreground, #0B0B0B) !important;
	/* plugin override */
	border: 1px solid rgba(255, 255, 255, 0.2) !important;
	/* plugin override */
	border-radius: var(--series-radius-sm) !important;
	/* plugin override */
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4) !important;
	/* plugin override */
	margin-top: 4px;
	z-index: var(--series-z-dropdown, 100);
	max-height: 200px;
	overflow-y: auto;
}

.wc-block-components-combobox-control__option,
[role="option"] {
	background: transparent !important;
	/* plugin override */
	color: var(--wp--preset--color--background, #F2F2F2) !important;
	/* plugin override */
	padding: 12px 16px;
	cursor: pointer;
	transition: background 0.15s ease;
	min-height: 44px;
	/* WCAG touch target */
	display: flex;
	align-items: center;
}

.wc-block-components-combobox-control__option:hover,
.wc-block-components-combobox-control__option:focus,
.wc-block-components-combobox-control__option[aria-selected="true"],
[role="option"]:hover,
[role="option"]:focus,
[role="option"][aria-selected="true"] {
	background: rgba(var(--series-primary-rgb), 0.15) !important;
	/* plugin override */
}

.wc-block-components-combobox-control__option:focus {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: -2px;
}

/* WooCommerce Select (Country/State) Dropdown - Dark Theme */
.wc-block-components-country-input select,
.wc-block-components-state-input select,
.wc-block-checkout select {
	background: var(--series-surface-base);
	color: var(--wp--preset--color--background, #F2F2F2);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: var(--series-radius-sm);
	padding: 12px 40px 12px 16px;
	min-height: 48px;
	font-size: 16px;
	/* Prevent iOS zoom */
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='%23F2F2F2'%3E%3Cpath d='M6 8L2 4h8z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
}

.wc-block-components-country-input select:focus,
.wc-block-components-state-input select:focus,
.wc-block-checkout select:focus {
	border-color: var(--wp--preset--color--primary, #C6A15B);
	outline: none;
	box-shadow: 0 0 0 2px rgba(var(--series-primary-rgb), 0.2);
}

/* Touch Target Improvements - WCAG 2.2 AA (44x44px minimum) */
.wc-block-cart-item__remove-link,
.wc-block-components-quantity-selector button,
.wc-block-checkout .wc-block-components-checkbox__input,
.wc-block-components-radio-control input[type="radio"] {
	min-height: 44px;
	min-width: 44px;
}

/* Remove link - Make more prominent on mobile */
@media (max-width: 768px) {
	.wc-block-cart-item__remove-link {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 10px;
		background: transparent;
		border: 1px solid var(--series-surface-divider);
		border-radius: 0;
		font-size: 0.875rem;
		text-decoration: none;
	}

	.wc-block-cart-item__remove-link:hover,
	.wc-block-cart-item__remove-link:focus {
		background: rgba(255, 0, 0, 0.1);
		color: var(--series-error-light);
	}
}

/* Checkbox styling - Larger and touch-friendly */
.wc-block-checkout__terms .wc-block-components-checkbox__input,
.wc-block-checkout__use-address-for-billing .wc-block-components-checkbox__input {
	width: 24px;
	height: 24px;
	min-width: 24px;
	flex-shrink: 0;
}

/* Terms checkbox wrapper - Full touch area */
.wc-block-checkout__terms .wc-block-components-checkbox,
.wc-block-checkout__use-address-for-billing .wc-block-components-checkbox {
	padding: 10px 0;
	min-height: 44px;
	display: flex;
	align-items: center;
	gap: 12px;
}

/* ===========================================
   18+ Age Declaration Checkbox (Tickera Bridge)
   Minimal, elegant styling matching theme
   =========================================== */
.tc-wb-block-components-confirm_age {
	background: var(--series-surface-base);
	border: 1px solid rgba(var(--series-primary-rgb), 0.3);
	border-radius: 0;
	padding: 16px;
	margin: 16px 0;
}

.tc-wb-block-components-confirm_age .wc-block-components-checkbox {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 44px;
	margin: 0;
	padding: 0;
}

.tc-wb-block-components-confirm_age .wc-block-components-checkbox__input {
	width: 24px;
	height: 24px;
	min-width: 24px;
	flex-shrink: 0;
	accent-color: var(--wp--preset--color--primary, #C6A15B);
}

.tc-wb-block-components-confirm_age .wc-block-components-checkbox__label {
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--wp--preset--color--background, #F2F2F2);
	text-transform: uppercase;
	letter-spacing: 0.03em;
	cursor: pointer;
}

/* Focus state for accessibility */
.tc-wb-block-components-confirm_age .wc-block-components-checkbox__input:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 2px;
}

/* Checked state - subtle golden glow */
.tc-wb-block-components-confirm_age:has(.wc-block-components-checkbox__input:checked) {
	border-color: var(--wp--preset--color--primary, #C6A15B);
	box-shadow: 0 0 0 1px rgba(var(--series-primary-rgb), 0.2);
}

/* Text Overflow Prevention */
.wc-block-cart-item__product-name,
.wc-block-components-product-name,
.wc-block-checkout__sidebar .wc-block-components-product-name {
	overflow-wrap: break-word;
	word-break: break-word;
	hyphens: auto;
}

/* Product names in cart - Truncate with ellipsis if too long */
.wc-block-cart-item__product-name a {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Email addresses - Prevent overflow */
.wc-block-order-confirmation-summary-address,
.wc-block-order-confirmation-billing-address,
.woocommerce-order-received address {
	overflow-wrap: break-word;
	word-break: break-word;
}

/* Breadcrumb/header text on small screens */
@media (max-width: 400px) {

	/* small device override */
	.wc-block-components-checkout-step__title {
		font-size: 1rem;
	}

	.wc-block-components-checkout-step__description {
		font-size: 0.8rem;
	}
}

/* Focus states - Keyboard accessibility */
.wc-block-cart a:focus-visible,
.wc-block-checkout a:focus-visible,
.wc-block-cart button:focus-visible,
.wc-block-checkout button:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #C6A15B);
	outline-offset: 2px;
}

/* ============================================
   ORDER CONFIRMATION / THANK YOU PAGE
   ============================================ */

/* WC legacy template h1 — the parent heading font makes "Order confirmation"
   enormous. Tame it globally; ticket-order override is tighter (see above). */
h1.wp-block-woocommerce-legacy-template {
	font-size: clamp(1.15rem, 3.5vw, 1.5rem) !important;
	/* WP core override */
	letter-spacing: 0.06em;
	text-transform: uppercase;
	margin-bottom: var(--wp--preset--spacing--20);
	overflow-wrap: break-word;
	word-break: break-word;
}

/* Reduce main padding on order-received — checkout form needs the
   space but the shorter thank-you content does not. */
.woocommerce-order-received .wp-block-group.has-global-padding {
	padding-bottom: var(--wp--preset--spacing--30) !important;
	/* FSE inline override */
}

/* Target order content wrapper, NOT the body element */
.woocommerce-order-received .woocommerce-order {
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	max-width: 980px;
	margin: 0 auto;
}

/* Ensure proper text contrast on order-received page */
.woocommerce-order-received,
.woocommerce-order-received .woocommerce-order {
	color: var(--wp--preset--color--background, #F2F2F2);
}

/* Thank-you message: keep lean so the download button is above the fold */
.woocommerce-order-received .woocommerce-thankyou-order-received {
	text-align: center;
	font-size: clamp(0.9rem, 2.5vw, 1.05rem);
	color: rgba(var(--series-background-rgb), 0.7);
	margin-bottom: var(--wp--preset--spacing--20);
	line-height: 1.5;
}

/* .woocommerce-order-overview is styled in the TICKET CONFIRMATION section above */

.woocommerce-order-received h2 {
	font-size: 1.25rem;
	color: var(--wp--preset--color--background, #F2F2F2);
	margin: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--20);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	padding-bottom: var(--wp--preset--spacing--20);
}

.woocommerce-order-received table {
	width: 100%;
	border-collapse: collapse;
}

.woocommerce-order-received th,
.woocommerce-order-received td {
	padding: var(--wp--preset--spacing--20);
	text-align: left;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.woocommerce-order-received th {
	color: var(--wp--preset--color--muted, #666);
	font-weight: 500;
	font-size: 0.875rem;
	text-transform: uppercase;
}

.woocommerce-order-received td {
	color: var(--wp--preset--color--background, #F2F2F2);
}

.woocommerce-order-received .product-name {
	color: var(--wp--preset--color--background, #F2F2F2);
}

.woocommerce-order-received .amount {
	color: var(--wp--preset--color--primary, #C6A15B);
	font-weight: 600;
}

/* Mobile Thank You */
@media (max-width: 600px) {

	.woocommerce-order-received table,
	.woocommerce-order-received thead,
	.woocommerce-order-received tbody,
	.woocommerce-order-received th,
	.woocommerce-order-received td,
	.woocommerce-order-received tr {
		display: block;
	}

	.woocommerce-order-received thead {
		display: none;
	}

	.woocommerce-order-received tr {
		margin-bottom: var(--wp--preset--spacing--20);
		padding: var(--wp--preset--spacing--20);
		background: rgba(255, 255, 255, 0.02);
		border-radius: var(--series-radius-sm);
	}

	.woocommerce-order-received td {
		display: flex;
		justify-content: space-between;
		border: none;
		padding: var(--wp--preset--spacing--10) 0;
	}

	.woocommerce-order-received td::before {
		content: attr(data-title);
		font-weight: 500;
		color: var(--wp--preset--color--muted, #666);
	}
}

/* ============================================
   BLOCK EDITOR STYLES
   Inline editing styles for Series blocks
   ============================================ */

.series-spotlight-editor,
.series-newsletter-editor,
.series-faq-editor,
.series-lineup-editor,
.series-venue-editor,
.series-shop-editor,
.series-partners-editor,
.series-sponsors-editor {
	padding: var(--wp--preset--spacing--30);
	border: 1px dashed rgba(var(--series-primary-rgb), 0.3);
	border-radius: var(--series-radius-sm);
	background: rgba(var(--series-foreground-rgb), 0.02);
}

.series-spotlight-editor__label,
.series-newsletter-editor__title,
.series-faq-editor__title,
.series-lineup-editor__title,
.series-venue-editor__title,
.series-shop-editor__title,
.series-partners-editor__title,
.series-sponsors-editor__title {
	font-size: 1.5rem;
	font-weight: 700;
	margin-bottom: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--primary, #C6A15B);
}

.series-newsletter-editor__description,
.series-shop-editor__subtitle {
	font-size: 1rem;
	color: var(--wp--preset--color--muted, #666);
	margin-bottom: var(--wp--preset--spacing--30);
}

.series-newsletter-editor__form {
	display: flex;
	gap: var(--wp--preset--spacing--20);
	align-items: center;
	flex-wrap: wrap;
}

.series-newsletter-editor__input {
	flex: 1;
	min-width: 200px;
	padding: 12px 16px;
	border: 1px solid rgba(0, 0, 0, 0.2);
	border-radius: var(--series-radius-sm);
	background: rgba(255, 255, 255, 0.9);
}

.series-newsletter-editor__button {
	display: inline-block;
	padding: 12px 24px;
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	font-weight: 700;
	border-radius: var(--series-radius-sm);
	cursor: text;
}

.series-faq-editor__meta-notice {
	padding: var(--wp--preset--spacing--30);
	background: rgba(var(--series-primary-rgb), 0.1);
	border-radius: var(--series-radius-sm);
	text-align: center;
	color: var(--wp--preset--color--muted, #666);
}

/* ============================================
   SHOP PAGE - Product Grid (3 columns)
   ============================================ */
.series-product-grid .wc-block-product-template,
.series-product-grid .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--40, 32px);
}

@media (max-width: 600px) {

	.series-product-grid .wc-block-product-template,
	.series-product-grid .wp-block-post-template {
		grid-template-columns: 1fr;
	}
}

/* Product Card Styling */
.series-product-card {
	transition: border-color var(--series-duration-normal) var(--series-ease-out);
	border: 2px solid transparent;
}

.series-product-card:hover {
	border-color: var(--wp--preset--color--primary);
}

.series-product-card .wp-block-woocommerce-product-image img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

/* ============================================
   SINGLE PRODUCT PAGE
   ============================================ */
.series-product-layout {
	margin-bottom: var(--wp--preset--spacing--60);
}

/* Product Gallery */
.series-product-layout .wp-block-woocommerce-product-image-gallery img {
	border-radius: 0;
}

/* Add to Cart Form */
.series-add-to-cart .wc-block-components-product-add-to-cart-button {
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--foreground);
	border-radius: 0 !important;
	/* FSE inline override */
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 700;
	padding: 16px 32px;
}

.series-add-to-cart .wc-block-components-product-add-to-cart-button:hover {
	opacity: 0.9;
}

.series-add-to-cart .wc-block-components-quantity-selector {
	border-radius: 0;
	border-color: var(--wp--preset--color--muted);
}

/* Product Meta */
.series-product-meta {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	margin-top: var(--wp--preset--spacing--40);
	padding-top: var(--wp--preset--spacing--30);
}

/* Product Tabs */
.series-product-tabs .wc-block-components-tab-panel__tab-content {
	color: var(--wp--preset--color--background);
}

.series-product-tabs .wc-block-components-tab-panel__tabs {
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.series-product-tabs button[role="tab"] {
	color: var(--wp--preset--color--muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 600;
}

.series-product-tabs button[role="tab"][aria-selected="true"] {
	color: var(--wp--preset--color--primary);
	border-bottom-color: var(--wp--preset--color--primary);
}

/* Related Products */
.series-related-products .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--wp--preset--spacing--40);
}

/* ============================================
   max-width: 1024px — CONSOLIDATED
   ============================================ */
@media (max-width: 1024px) {

	/* Past events: tablet 2-column grid */
	.series-past-events .wp-block-post-template {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--wp--preset--spacing--30);
	}

	.series-past-events .wp-block-cover:has(.wp-block-cover__image-background) {
		min-height: 260px;
		aspect-ratio: 4 / 5;
	}

	.series-past-events .wp-block-cover:not(:has(.wp-block-cover__image-background)) {
		min-height: auto !important;
		/* FSE inline override */
		aspect-ratio: unset;
		height: auto !important;
		/* FSE inline override */
	}

	/* Hero: reduce height on tablet */
	.series-hero-section .wp-block-cover {
		min-height: 85vh;
	}

	.series-hero-section .wp-block-cover__inner-container {
		min-height: 70vh;
	}

	/* Product grid: 3 columns on tablet landscape */
	.series-product-grid .wc-block-product-template {
		grid-template-columns: repeat(3, 1fr);
	}

	/* Shop preview section columns */
	.stack-on-mobile .wp-block-column[style*="60%"],
	.stack-on-mobile .wp-block-column[style*="40%"] {
		flex-basis: 50% !important;
		/* FSE inline override */
	}

	/* Shop page: product grid 2-col */
	.series-product-grid .wc-block-product-template,
	.series-product-grid .wp-block-post-template {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Related products: 2-col */
	.series-related-products .wp-block-post-template {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.series-related-products .wp-block-post-template {
		grid-template-columns: 1fr;
	}
}

/* ============================================
   TICKETS SECTION SPACING OVERRIDES
   ============================================ */

/* Tighten overall section margins */
.series-tickets-section {
	margin-top: 24px;
	margin-bottom: 24px;
}

.series-tickets-header {
	margin-bottom: 12px;
}

/* Tighten urgency badge spacing */
.series-urgency-hint {
	margin-bottom: 16px;
}

/* Reduce spacer in ticket section */
.series-tickets-section .wp-block-spacer {
	height: 20px !important;
	/* FSE inline override */
}

/* Trust signals tighter spacing */
.series-trust-signals {
	margin-top: 16px;
	padding-top: 16px;
}

/* ============================================
   UI CORRECTIONS
   Button underline, header bleed, social icons,
   button centering, ticket card spacing
   ============================================ */

/* GET TICKETS button underline (Desktop + Mobile) */
.wp-block-button a::after,
.wp-block-button__link::after,
.wp-element-button::after,
a.wp-block-button__link::after,
.series-hero-content .wp-block-button a::after,
.series-sticky-ticket-bar__cta::after {
	display: none;
	content: none;
	width: 0;
	height: 0;
	background: none;
}

/* Sticky section nav header background bleed */
.series-section-nav {
	background-color: var(--wp--preset--color--foreground, #0B0B0B);
	background: var(--wp--preset--color--foreground, #0B0B0B);
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.series-section-nav::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--wp--preset--color--foreground, #0B0B0B);
	z-index: -1;
}

/* FOLLOW US section - ensure icons and links display */
.series-social-section {
	min-height: auto;
}

.series-social-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	min-height: 48px;
}

.series-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	visibility: visible;
	opacity: 1;
}

.series-social-link svg {
	display: block;
	visibility: visible;
	opacity: 1;
	width: 20px;
	height: 20px;
	fill: currentColor;
}

/* GET TICKETS button text centering (Mobile) */
@media (max-width: 768px) {

	.series-hero-content .wp-block-button__link,
	.series-hero-content .wp-element-button,
	.wp-block-button__link {
		display: flex;
		justify-content: center;
		align-items: center;
		text-align: center;
	}
}

/* Ticket card - consolidated to MOBILE CARD LAYOUT section */

/* Mobile social section empty box */
@media (max-width: 768px) {
	.series-social-section {
		padding: 20px;
		min-height: auto;
	}

	.series-social-section .series-social-links {
		justify-content: center;
		gap: 16px;
	}

	.series-social-section .series-social-link {
		width: 48px;
		height: 48px;
		padding: 12px;
		border-radius: 50% !important;
		/* FSE inline override */
		background: rgba(255, 255, 255, 0.08);
	}

	.series-social-section .series-social-link svg {
		width: 22px;
		height: 22px;
	}

	.series-social-section .series-social-link span {
		display: none;
	}
}

/* ===========================================
   Force Native WooCommerce Checkboxes
   Parent theme (Eveny) applies custom checkbox styling via theme.json
   that breaks WooCommerce React checkbox components
   =========================================== */
.wc-block-components-checkbox__input[type="checkbox"],
.wc-block-checkout .wc-block-components-checkbox__input,
.wc-block-cart .wc-block-components-checkbox__input,
input[type="checkbox"].wc-block-components-checkbox__input {
	-webkit-appearance: checkbox !important;
	/* plugin override */
	-moz-appearance: checkbox !important;
	/* plugin override */
	appearance: checkbox !important;
	/* plugin override */
	background: none !important;
	/* plugin override */
	border: none !important;
	/* plugin override */
}

.wc-block-components-checkbox__input[type="checkbox"]::before,
.wc-block-components-checkbox__input[type="checkbox"]::after {
	display: none !important;
	/* plugin override */
	content: none !important;
	/* plugin override */
}

/* ===========================================
   Hide "Ready for Next Event?" CTA
   Using inline style selector (more reliable than :has())
   Target: Accent box in footer with border-top-right-radius:50px
   =========================================== */
body.single-tc_events .wp-block-group.alignwide.has-primary-background-color[style*="border-top-right-radius"],
body.woocommerce-cart .wp-block-group.alignwide.has-primary-background-color[style*="border-top-right-radius"],
body.woocommerce-checkout .wp-block-group.alignwide.has-primary-background-color[style*="border-top-right-radius"] {
	display: none;
}

/* ===========================================
   F5: Exclusive Event Application Form
   =========================================== */
.series-exclusive-apply {
	max-width: 640px;
	margin: 2rem auto;
	padding: 2rem;
	background: var(--wp--preset--color--secondary, #1A1A1A);
	border-radius: var(--series-radius-sm);
	color: var(--wp--preset--color--background, #F2F2F2);
}

@media (min-width: 768px) {
	.series-exclusive-apply form {
		display: flex;
		flex-wrap: wrap;
		gap: 0 var(--wp--preset--spacing--30, 16px);
	}

	.series-exclusive-apply .series-field {
		flex: 1 1 calc(50% - 8px);
		min-width: 0;
	}

	/* Message textarea and remaining elements span full width */
	.series-exclusive-apply .series-field:has(textarea),
	.series-exclusive-apply .series-submit,
	.series-exclusive-apply .series-result {
		flex-basis: 100%;
	}
}

.series-exclusive-apply h3 {
	margin-top: 0;
}

.series-exclusive-apply .series-field {
	margin-bottom: 1rem;
}

.series-exclusive-apply label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.3rem;
	font-size: 0.9rem;
}

.series-exclusive-apply input,
.series-exclusive-apply textarea {
	width: 100%;
	padding: 0.6rem;
	background: var(--series-surface-base);
	border: 1px solid var(--series-overlay-border);
	border-radius: 4px;
	font-size: 0.95rem;
	font-family: inherit;
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-exclusive-apply textarea {
	min-height: 100px;
	resize: vertical;
}

.series-exclusive-apply .series-submit {
	padding: 0.7rem 2rem;
	font-weight: 600;
	cursor: pointer;
	border: none;
	border-radius: 4px;
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	font-size: 1rem;
}

.series-exclusive-apply .series-submit:hover {
	opacity: 0.85;
}

.series-exclusive-apply .series-result {
	margin-top: 1rem;
	padding: 0.8rem;
	border-radius: 4px;
	display: none;
}

.series-exclusive-apply .series-result.is-success {
	display: block;
	background: rgba(34, 197, 94, 0.1);
	border: 1px solid var(--series-success);
	color: var(--series-success);
}

.series-exclusive-apply .series-result.is-error {
	display: block;
	background: rgba(239, 68, 68, 0.1);
	border: 1px solid var(--series-error);
	color: var(--series-error-light);
}

/* F5: Exclusive event badge — bordered pill (rendered after heading) */
.series-exclusive-badge {
	display: inline-block;
	font-size: 0.75rem;
	padding: var(--series-badge-padding-sm, 6px 12px);
	border-radius: var(--series-radius-pill);
	background: transparent;
	border: 1px solid var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--primary, #C6A15B);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 600;
	margin-top: var(--wp--preset--spacing--20, 12px);
}

/* Hide empty social section (no links configured for event) */
.series-social-section:not(:has(.series-social-link)) {
	display: none;
}

/* F5: Honeypot field */
.series-hp {
	position: absolute !important;
	left: -9999px !important;
}

/* F5: Per-ticket Apply button in event ticket table */
.series-apply-trigger {
	padding: 0.5rem 1.4rem;
	min-height: 44px;
	font-weight: 600;
	cursor: pointer;
	border: 1px solid var(--wp--preset--color--primary, #C6A15B);
	border-radius: 4px;
	background: transparent;
	color: var(--wp--preset--color--primary, #C6A15B);
	font-size: 0.9rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	transition: background 0.2s, color 0.2s;
}

.series-apply-trigger:hover,
.series-apply-trigger:focus-visible {
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
}

/* F5: Ticket application modal (inline on event page) */
.series-ticket-apply-modal {
	position: fixed;
	inset: 0;
	z-index: var(--series-z-modal, 9999);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.series-ticket-apply-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.7);
}

.series-ticket-apply-content {
	position: relative;
	max-width: 540px;
	width: 100%;
	padding: 2rem;
	background: var(--wp--preset--color--secondary, #1A1A1A);
	border: 1px solid var(--series-overlay-border);
	border-radius: var(--series-radius-sm);
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-ticket-apply-close {
	position: absolute;
	top: 12px;
	right: 16px;
	background: none;
	border: none;
	color: var(--wp--preset--color--background, #F2F2F2);
	font-size: 1.6rem;
	cursor: pointer;
	line-height: 1;
	min-width: 44px;
	min-height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.series-ticket-apply-content h3 {
	margin-top: 0;
}

.series-ticket-apply-content .series-field {
	margin-bottom: 1rem;
}

.series-ticket-apply-content label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.3rem;
	font-size: 0.9rem;
}

.series-ticket-apply-content input,
.series-ticket-apply-content textarea {
	width: 100%;
	padding: 0.6rem;
	background: var(--series-surface-base);
	border: 1px solid var(--series-overlay-border);
	border-radius: 4px;
	font-size: 0.95rem;
	font-family: inherit;
	color: var(--wp--preset--color--background, #F2F2F2);
}

.series-ticket-apply-content textarea {
	min-height: 100px;
	resize: vertical;
}

.series-ticket-apply-content .series-submit {
	padding: 0.7rem 2rem;
	font-weight: 600;
	cursor: pointer;
	border: none;
	border-radius: 4px;
	background: var(--wp--preset--color--primary, #C6A15B);
	color: var(--wp--preset--color--foreground, #0B0B0B);
	font-size: 1rem;
}

.series-ticket-apply-content .series-submit:hover {
	opacity: 0.85;
}

.series-ticket-apply-content .series-result {
	margin-top: 1rem;
	padding: 0.8rem;
	border-radius: 4px;
	display: none;
}

.series-ticket-apply-content .series-result.is-success {
	display: block;
	background: rgba(34, 197, 94, 0.1);
	border: 1px solid var(--series-success);
	color: var(--series-success);
}

.series-ticket-apply-content .series-result.is-error {
	display: block;
	background: rgba(239, 68, 68, 0.1);
	border: 1px solid var(--series-error);
	color: var(--series-error-light);
}

/* ===========================================
   HOMEPAGE MOBILE PASS 1
   Hero dead space, countdown legibility, past-events CTA shape
   =========================================== */

@media (max-width: 768px) {
	body.home .series-hero-section .wp-block-cover {
		min-height: 78svh !important;
		/* FSE inline override */
		min-height: 78vh !important;
		/* FSE inline override */
	}

	body.home .series-hero-section .wp-block-cover__inner-container {
		min-height: auto !important;
		/* FSE inline override */
		padding-top: clamp(4.5rem, 12vh, 6rem) !important;
		/* FSE inline override */
		padding-bottom: clamp(1.25rem, 4vh, 2rem) !important;
		/* FSE inline override */
	}
}

@media (max-width: 600px) {
	body.home .series-countdown--hero {
		justify-content: center;
		gap: 0.2rem;
	}

	body.home .series-countdown--hero .series-countdown__unit {
		min-width: 58px;
		padding: 0.25rem 0.15rem;
	}

	body.home .series-countdown--hero .series-countdown__number {
		font-size: 2.35rem;
	}

	body.home .series-countdown--hero .series-countdown__label {
		font-size: 0.68rem;
		letter-spacing: 0.1em;
	}

	body.home .series-countdown--hero .series-countdown__separator {
		font-size: 1.5rem;
		margin-bottom: 1rem;
	}
}

/* ============================================
   max-width: 480px — CONSOLIDATED (part 2)
   ============================================ */
@media (max-width: 480px) {

	/* Lineup grid: 3/4-col → 2-col */
	.series-lineup-grid--3,
	.series-lineup-grid--4 {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Newsletter: column layout */
	.series-newsletter__row {
		flex-direction: column;
		gap: 12px;
	}

	.series-newsletter__input {
		width: 100%;
		font-size: 16px;
		padding: 16px 20px;
	}

	.series-newsletter__button {
		width: 100%;
		padding: 16px 24px;
		font-size: 0.875rem;
	}

	.series-newsletter__gdpr {
		font-size: 0.6875rem;
		line-height: 1.5;
	}

	/* Thank you page: compact padding */
	.series-ticket-confirmation__hero {
		padding: 1rem 0;
		background: transparent;
		border-radius: 0;
	}

	.series-ticket-confirmation__event-name {
		font-size: clamp(1rem, 5vw, 1.5rem);
		letter-spacing: 0.03em;
		margin: 0 0 0.5rem;
		line-height: 1.1;
	}

	.series-ticket-confirmation__meta {
		flex-direction: column;
		gap: 0.5rem;
		overflow-wrap: break-word;
		word-break: break-word;
	}

	.series-ticket-confirmation__email {
		word-break: break-word;
		overflow-wrap: break-word;
		font-size: 0.85rem;
	}

	/* Homepage: past events CTA */
	body.home .series-past-events-cta {
		margin-top: 1.25rem;
	}

	body.home .series-past-events-cta .wp-block-buttons {
		width: auto;
		justify-content: center;
	}

	body.home .series-past-events-cta .wp-block-button {
		width: auto;
		max-width: none;
	}

	body.home .series-past-events-cta .wp-block-button__link {
		width: auto;
		max-width: none;
		padding: 10px 22px;
		font-size: 0.75rem;
		line-height: 1.2;
		white-space: normal;
	}

	/* Homepage: countdown + past section */
	body.home .series-countdown--hero {
		gap: 0.1rem;
	}

	body.home .series-countdown--hero .series-countdown__number {
		font-size: 2.1rem;
	}

	body.home .series-countdown--hero .series-countdown__unit {
		min-width: 52px;
	}

	body.home .series-past-section {
		padding-top: var(--wp--preset--spacing--50, 2rem);
		padding-bottom: var(--wp--preset--spacing--50, 2rem);
	}

	body.home .series-past-section>.wp-block-buttons {
		margin-top: 1.25rem !important;
		/* FSE inline override */
		justify-content: center;
	}

	body.home .series-past-section>.wp-block-buttons .wp-block-button,
	body.home .series-past-section>.wp-block-buttons .wp-block-button.is-style-outline {
		width: auto;
		max-width: none;
	}

	body.home .series-past-section>.wp-block-buttons .wp-block-button__link {
		width: auto;
		max-width: none;
		padding: 10px 22px;
		font-size: 0.75rem;
		line-height: 1.2;
		white-space: normal;
	}
}

/* ============================================
   HOMEPAGE MOBILE PASS 2
   ============================================ */

@media (max-width: 768px) {
	body.home .series-hero-section .alignwide {
		max-width: min(92vw, 440px);
	}

	body.home .series-hero-section .wp-block-button,
	body.home .series-hero-section .wp-block-button__link {
		width: auto;
		max-width: 100%;
	}

	body.home .series-hero-section .wp-block-button__link {
		display: inline-flex;
		padding-left: clamp(20px, 6vw, 30px) !important;
		/* FSE inline override */
		padding-right: clamp(20px, 6vw, 30px) !important;
		/* FSE inline override */
	}
}

@media (max-width: 600px) {
	body.home .series-features.stack-on-mobile {
		gap: var(--wp--preset--spacing--40, 1.5rem) !important;
		/* FSE override */
	}

	body.home .series-hero-section .has-small-font-size p {
		margin-top: 0.85rem !important;
		/* FSE inline override */
		line-height: 1.45;
	}

	body.home .series-hero-section .wp-block-buttons {
		margin-top: 1rem !important;
		/* FSE inline override */
	}

	body.home .series-features .wp-block-cover,
	body.home .series-features .wp-block-cover[style*="min-height"] {
		min-height: 190px !important;
		/* FSE inline override */
	}

	body.home .series-features .wp-block-cover__inner-container {
		padding: 1.1rem 0.9rem !important;
		/* FSE inline override */
	}
}

/* ============================================
   PARENT PONYFILL RESPONSIVE OVERRIDES
   Counter parent CSS that assumes light theme or
   uses different breakpoints/values.
   ============================================ */

/* Counter parent's mobile button padding (ponyfill: 2.2em !important at 600px)
   Child button system already wins on specificity, but explicit mobile
   override prevents any cascade edge cases */
@media (max-width: 600px) {
	div.wp-block-button .wp-block-button__link {
		padding: 12px 24px !important;
		/* counter parent !important */
	}

	/* Outline buttons keep the border visible */
	div.wp-block-button.is-style-outline .wp-block-button__link {
		padding: 12px 24px !important;
		/* counter parent !important */
	}
}

/* ============================================
   ROOT PADDING ALIGNMENT
   Parent ponyfill.css uses --wp--custom--gap--horizontal for padding.
   Child theme.json overrides this via custom.gap.horizontal to match
   styles.spacing.padding. No additional CSS overrides needed —
   useRootPaddingAwareAlignments handles .alignfull breakout.

   Only exception: sticky header needs explicit breakout because
   WordPress doesn't apply alignfull logic to sticky wrappers.
   ============================================ */
.wp-site-blocks>.wp-block-group.is-position-sticky {
	margin-left: calc(-1 * var(--wp--style--root--padding-right, var(--wp--custom--gap--horizontal)));
	margin-right: calc(-1 * var(--wp--style--root--padding-left, var(--wp--custom--gap--horizontal)));
	max-width: none;
}

/* ============================================
   MOBILE FOOTER FIXES ONLY
   Parent theme handles responsive layout via:
   - .stack-on-tablet-portrait class
   - .padding--horizontal-default class  
   - ponyfill.css breakpoints (1024px, 820px, 600px)
   ============================================ */

@media (max-width: 600px) {

	/* Footer CTA box - reduce arch radius on mobile */
	footer .wp-block-group.has-primary-background-color[style*="border-top-right-radius"] {
		border-top-right-radius: 24px;
	}

	/* Footer columns - remove inline padding-right on mobile */
	footer .wp-block-column[style*="padding-right"] {
		padding-right: 0 !important;
		/* FSE inline override */
	}
}

/* ============================================
   REDUCED MOTION — CONSOLIDATED
   Accessibility: disable animations for
   motion-sensitive users (WCAG 2.2 AA)
   ============================================ */
@media (prefers-reduced-motion: reduce) {

	/* Global animation / transition kill */
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	/* Parallax */
	.wp-block-cover.has-parallax .wp-block-cover__image-background,
	.series-hero-section .wp-block-cover.has-parallax {
		background-attachment: scroll !important;
	}

	/* Hover transforms */
	.series-upcoming-events .wp-block-cover:hover,
	.series-past-events .wp-block-cover:hover,
	.series-features .wp-block-cover:hover,
	.series-upcoming-events .wp-block-post-template>*:hover .wp-block-cover,
	.series-past-events .wp-block-post-template>*:hover .wp-block-cover,
	.wp-block-button__link:hover {
		transform: none !important;
	}

	/* Gradient background-position */
	.wp-block-button__link.has-primary-background-color,
	.wp-block-read-more {
		background-position: center center !important;
	}

	/* Hero entrance */
	.h-animate-from-bottom {
		animation: none;
		opacity: 1;
		transform: none;
	}

	/* Marquee */
	.series-marquee__track {
		animation: none;
	}

	.series-marquee__content:not(:first-child) {
		display: none;
	}

	.series-marquee {
		text-align: center;
	}

	/* Section nav */
	.series-section-nav {
		transition: opacity 0.15s ease, visibility 0s linear 0.15s;
		transform: none;
	}

	.series-section-nav.is-visible {
		transition: opacity 0.15s ease, visibility 0s linear 0s;
	}

	/* Sticky ticket bar */
	.series-sticky-ticket-bar {
		transition: none !important;
	}

	.series-sticky-ticket-bar:not(.is-visible) {
		visibility: hidden;
		opacity: 0;
	}

	.series-sticky-ticket-bar.is-visible {
		visibility: visible;
		opacity: 1;
		transform: translateY(0);
	}

	/* Loading spinners */
	.series-tickets-loading__spinner,
	.series-page-loading__spinner {
		animation: none;
		border-color: var(--wp--preset--color--primary, #C6A15B);
		border-top-color: transparent;
	}

	.series-spinner {
		animation: none;
	}

	/* Reveal animations */
	.js-reveal-from-top,
	.js-reveal-from-bottom {
		opacity: 1;
		transform: none;
		transition: none;
	}

	/* FAQ / Artists / Share */
	.series-faq-icon,
	.series-artist-photo,
	.series-artist-photo img,
	.series-share-btn {
		transition: none !important;
	}

	/* Countdown */
	.series-countdown__ended,
	.series-countdown--today .series-countdown__number {
		animation: none;
	}

	.series-countdown,
	.series-next-event-countdown__title a {
		transition: none !important;
	}

	/* Partners marquee */
	.series-partners__track {
		animation: none;
		justify-content: center;
		flex-wrap: wrap;
		gap: 2rem 3rem;
		width: 100%;
		max-width: 1000px;
		margin: 0 auto;
	}

	.series-partners__marquee {
		-webkit-mask-image: none;
		mask-image: none;
	}

	/* Urgency badges */
	.series-urgency-hint,
	.series-urgency-hint::before {
		animation: none;
	}
}