/* ----- SCHEDULE PAGES CSS ------ */

/* Error message */
.dirtcar-error {
	padding: 20px;
	text-align: center;
	background: #fee;
	border: 1px solid #c00;
	color: #c00;
	border-radius: 5px;
}

/* Season dropdown (used by getYears function) */
.seasondropdown {
	padding: 0px !important;
	font-size: 12px;
}

/* ----- TICKET MODAL ----- */

.ticket-modal {
	display: none;
	position: fixed;
	z-index: 9999;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
}

.ticket-modal-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.8);
	opacity: 0;
	transition: opacity 0.3s ease;
}

.ticket-modal.is-open .ticket-modal-overlay {
	opacity: 1;
}

.ticket-modal-container {
	position: relative;
	background-color: #fff;
	width: 90%;
	max-width: 450px;
	max-height: 90vh;
	overflow-y: auto;
	border-radius: 8px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
	transform: scale(0.9) translateY(20px);
	opacity: 0;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.ticket-modal.is-open .ticket-modal-container {
	transform: scale(1) translateY(0);
	opacity: 1;
}

.ticket-modal-close {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 10;
	background: rgba(0, 0, 0, 0.5);
	border: none;
	color: #fff;
	font-size: 24px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	cursor: pointer;
	transition: background-color 0.2s ease;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	padding-bottom: 2px;
}

.ticket-modal-close:hover {
	background: rgba(0, 0, 0, 0.8);
}

.ticket-modal-header {
	position: relative;
	height: 150px;
	overflow: hidden;
	border-radius: 8px 8px 0 0;
	background-color: #1a1a1a;
}

.ticket-modal-bg-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.5;
}

.ticket-modal-track-logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	max-width: 200px;
	max-height: 80px;
	width: auto !important;
	height: auto !important;
}

.ticket-modal-body {
	padding: 25px;
	text-align: center;
}

.ticket-modal-title {
	font-family: 'Oswald', sans-serif;
	font-size: 22px;
	font-weight: 600;
	text-transform: uppercase;
	color: #000;
	margin: 0 0 8px 0;
}

.ticket-modal-track {
	font-family: 'Oswald', sans-serif;
	font-size: 16px;
	font-weight: 400;
	color: #666;
	margin: 0 0 4px 0;
}

.ticket-modal-date {
	font-family: 'Oswald', sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: #999;
	margin: 0 0 20px 0;
}

.ticket-modal-buttons {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 20px;
}

.ticket-modal-btn {
	display: block;
	padding: 14px 20px;
	font-family: 'Oswald', sans-serif;
	font-size: 16px;
	font-weight: 600;
	text-transform: uppercase;
	text-decoration: none !important;
	text-align: center;
	color: #fff !important;
	background-color: #333;
	border-radius: 4px;
	transition: background-color 0.2s ease, transform 0.1s ease;
}

.ticket-modal-btn:hover {
	transform: translateY(-2px);
	text-decoration: none !important;
}

/* Sprint Cars - Blue buttons */
.ticket-modal-btn-sprintcars {
	background-color: #127bbe;
}

.ticket-modal-btn-sprintcars:hover {
	background-color: #0e5a8a;
	color: #fff !important;
}

/* Late Models - Yellow buttons */
.ticket-modal-btn-latemodels {
	background-color: #ffde00;
	color: #000 !important;
}

.ticket-modal-btn-latemodels:hover {
	background-color: #d4b800;
	color: #000 !important;
}

/* DIRTcar Summer Nationals - Red buttons */
.ticket-modal-btn-helltour {
	background-color: #F15A22;
}

.ticket-modal-btn-helltour:hover {
	background-color: #c9481a;
	color: #fff !important;
}

/* Summit Modified Nationals - Blue buttons */
.ticket-modal-btn-modnats {
	background-color: #003da5;
}

.ticket-modal-btn-modnats:hover {
	background-color: #002d7a;
	color: #fff !important;
}

/* Xtreme Outlaw - Red buttons */
.ticket-modal-btn-xo {
	background-color: #C12B2A;
}

.ticket-modal-btn-xo:hover {
	background-color: #9a2322;
	color: #fff !important;
}

/* Volusia Speedway Park - Green buttons */
.ticket-modal-btn-volusia {
	background-color: #1a7a3a;
}

.ticket-modal-btn-volusia:hover {
	background-color: #145e2d;
	color: #fff !important;
}

.ticket-modal-phone {
	font-family: 'Oswald', sans-serif;
	font-size: 14px;
	color: #666;
	margin: 0;
}

@media only screen and (max-width: 767px) {
	.ticket-modal-container {
		width: 95%;
		max-height: 85vh;
	}

	.ticket-modal-header {
		height: 120px;
	}

	.ticket-modal-body {
		padding: 20px;
	}

	.ticket-modal-title {
		font-size: 18px;
	}
}

/* ----- EVENT BUTTONS ----- */

/* Base button styles - applies to all buttons */
.schedule-event-buttons a {
	display: inline-block !important;
	font-family: 'Oswald', sans-serif !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	padding: 6px 14px !important;
	border-radius: 3px !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease !important;
	line-height: 1.4 !important;
	border: none !important;
}

/* Sprint Cars - Blue */
.schedule-event-buttons a#modal-link-sprintcars {
	background-color: #127bbe !important;
	color: #fff !important;
}

.schedule-event-buttons a#modal-link-sprintcars:hover {
	background-color: #0e5a8a !important;
}

/* Late Models - Yellow */
.schedule-event-buttons a#modal-link-latemodels {
	background-color: #ffde00 !important;
	color: #000 !important;
}

.schedule-event-buttons a#modal-link-latemodels:hover {
	background-color: #d4b800 !important;
}

/* Combined - Red */
.schedule-event-buttons a#modal-link-latemodels-sprintcars {
	background-color: #ea0000 !important;
	color: #fff !important;
}

.schedule-event-buttons a#modal-link-latemodels-sprintcars:hover {
	background-color: #b80000 !important;
}

/* Xtreme Outlaw - Red */
.schedule-event-buttons a#modal-link-xo {
	background-color: #C12B2A !important;
	color: #fff !important;
}

.schedule-event-buttons a#modal-link-xo:hover {
	background-color: #9a2322 !important;
}

/* ASCS - Red */
.schedule-event-buttons a#modal-link-ascs {
	background-color: #A93339 !important;
	color: #fff !important;
}

.schedule-event-buttons a#modal-link-ascs:hover {
	background-color: #8a2a2e !important;
}

/* Super DIRTcar Series - Red */
.schedule-event-buttons a#modal-link-sdcs {
	background-color: #f51d26 !important;
	color: #fff !important;
}

.schedule-event-buttons a#modal-link-sdcs:hover {
	background-color: #d4181f !important;
}

/* DIRTcar Summer Nationals - Red */
.schedule-event-buttons a#modal-link-helltour {
	background-color: #F15A22 !important;
	color: #fff !important;
}

.schedule-event-buttons a#modal-link-helltour:hover {
	background-color: #c9481a !important;
}

/* Summit Modified Nationals - Blue */
.schedule-event-buttons a#modal-link-modnats {
	background-color: #003da5 !important;
	color: #fff !important;
}

.schedule-event-buttons a#modal-link-modnats:hover {
	background-color: #002d7a !important;
}

/* Volusia Speedway Park - Green */
.schedule-event-buttons a#modal-link-volusia {
	background-color: #1a7a3a !important;
	color: #fff !important;
}

.schedule-event-buttons a#modal-link-volusia:hover {
	background-color: #145e2d !important;
}

/* Cancelled - Dark Gray */
.schedule-event-buttons a#modal-link-cancelled {
	background-color: #3c3c3c !important;
	color: #fff !important;
}

.schedule-event-buttons a#modal-link-cancelled:hover {
	background-color: #555 !important;
}

/* Postponed - Medium Gray */
.schedule-event-buttons a#modal-link-postponed {
	background-color: #818080 !important;
	color: #fff !important;
}

.schedule-event-buttons a#modal-link-postponed:hover {
	background-color: #999 !important;
}

/* ----- MONTH GROUPS ----- */

.month-group {
	margin-bottom: 30px;
}

.month-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 12px 15px;
	background-color: #1a1a1a;
	margin-bottom: 10px;
	border-radius: 4px;
}

.month-title {
	font-family: 'Oswald', sans-serif;
	font-size: 20px;
	font-weight: 600 !important;
	text-transform: uppercase;
	color: #fff !important;
	margin: 0;
}

.month-event-count {
	font-family: 'Oswald', sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: #aaa;
	text-transform: uppercase;
}

.month-events {
	/* Container for events within a month */
}

/* ----- SCHEDULE BOX (Event Card) ----- */

/* Base styles for all schedule boxes */
.schedulebox,
.scheduleboxpostponed,
.scheduleboxcancelled {
	display: grid;
	grid-template-columns: 0.3fr 2.0fr 0.4fr 1.3fr;
	grid-template-rows: 1fr;
	gap: 0px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	margin-bottom: 10px;
	align-items: center;
	border-radius: 6px;
	overflow: hidden;
	min-height: 90px;
}

.schedulebox:hover,
.scheduleboxpostponed:hover,
.scheduleboxcancelled:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 25px rgba(0,0,0,0.12);
}

/* Default state */
.schedulebox {
	background-color: #f9f9f9;
	border: 1px solid #ececec;
}

/* Postponed state */
.scheduleboxpostponed {
	background-color: #b1b1b1;
}

/* Cancelled state */
.scheduleboxcancelled {
	background-color: #636262;
}

/* ----- DATE COLUMNS ----- */

/* Base date column styles */
.datecolumnsprint,
.datecolumnlm,
.datecolumncombined,
.datecolumnother,
.datecolumnascs,
.datecolumnascspostponed,
.datecolumnascscancelled,
.datecolumnxo,
.datecolumnxopostponed,
.datecolumnxocancelled,
.datecolumnsdcs,
.datecolumnsdcspostponed,
.datecolumnsdcscancelled,
.datecolumnsprintpostponed,
.datecolumnlmpostponed,
.datecolumnsprintcancelled,
.datecolumnlmcancelled,
.datecolumnhelltour,
.datecolumnhelltourpostponed,
.datecolumnhelltourcancelled,
.datecolumnmodnats,
.datecolumnmodnatspostponed,
.datecolumnmodnatscancelled,
.datecolumnvolusia,
.datecolumnvolusiapostponed,
.datecolumnvolusiacancelled {
	text-align: center;
	font-family: 'Oswald', sans-serif;
	align-self: stretch;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 10px 5px;
}

/* Sprint Cars - Blue */
.datecolumnsprint {
	background-color: #127bbe;
	color: #fff;
}

/* Late Models - Yellow */
.datecolumnlm {
	background-color: #ffde00;
	color: #000;
}

/* Combined - Red */
.datecolumncombined {
	background-color: #ea0000;
	color: #fff;
}

/* ASCS - Red */
.datecolumnascs {
	background-color: #A93339;
	color: #fff;
}

.datecolumnascspostponed {
	background-color: #818080;
	color: #fff;
}

.datecolumnascscancelled {
	background-color: #4a4a4a;
	color: rgba(255, 255, 255, 0.4);
}

/* Xtreme Outlaw - Red */
.datecolumnxo {
	background-color: #C12B2A;
	color: #fff;
}

.datecolumnxopostponed {
	background-color: #818080;
	color: #fff;
}

.datecolumnxocancelled {
	background-color: #4a4a4a;
	color: rgba(255, 255, 255, 0.4);
}

/* Super DIRTcar Series - Red */
.datecolumnsdcs {
	background-color: #f51d26;
	color: #fff;
}

.datecolumnsdcspostponed {
	background-color: #818080;
	color: #fff;
}

.datecolumnsdcscancelled {
	background-color: #4a4a4a;
	color: rgba(255, 255, 255, 0.4);
}

/* DIRTcar Summer Nationals - Red */
.datecolumnhelltour {
	background-color: #F15A22;
	color: #fff;
}

.datecolumnhelltourpostponed {
	background-color: #818080;
	color: #fff;
}

.datecolumnhelltourcancelled {
	background-color: #4a4a4a;
	color: rgba(255, 255, 255, 0.4);
}

/* Summit Modified Nationals - Blue */
.datecolumnmodnats {
	background-color: #003da5;
	color: #fff;
}

.datecolumnmodnatspostponed {
	background-color: #818080;
	color: #fff;
}

.datecolumnmodnatscancelled {
	background-color: #4a4a4a;
	color: rgba(255, 255, 255, 0.4);
}

/* Volusia Speedway Park - Green */
.datecolumnvolusia {
	background-color: #1a7a3a;
	color: #fff;
}

.datecolumnvolusiapostponed {
	background-color: #818080;
	color: #fff;
}

.datecolumnvolusiacancelled {
	background-color: #4a4a4a;
	color: rgba(255, 255, 255, 0.4);
}

/* Other/Default - Gray */
.datecolumnother {
	background-color: #4a4a4a;
	color: #fff;
}

/* Postponed - Medium Gray */
.datecolumnsprintpostponed,
.datecolumnlmpostponed {
	background-color: #818080;
	color: #fff;
}

/* Cancelled - Muted text */
.datecolumnsprintcancelled,
.datecolumnlmcancelled {
	background-color: #4a4a4a;
	color: rgba(255, 255, 255, 0.4);
}

/* Date text styles */
.schedule-date-day,
.schedule-date-month,
.schedule-date-num {
	margin: 0;
	line-height: 1.1;
}

.schedule-date-day {
	font-size: 11px;
	font-weight: 400;
	text-transform: uppercase;
}

.schedule-date-month {
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
}

.schedule-date-num {
	font-size: 28px;
	font-weight: 600;
}

.schedule-date-mobile {
	font-size: 18px;
	font-weight: 500;
	padding: 10px;
}

/* ----- EVENT CONTENT ----- */

/* Event details container */
.event-details,
.schednamemargin {
	margin-left: 15px;
	padding: 10px 0;
	min-width: 0; /* Prevent grid blowout */
}

/* Event title */
.event-title,
.scheduletitle {
	font-family: 'Oswald', sans-serif;
	font-size: 22px;
	line-height: 1.2;
	font-weight: 600;
	margin: 0 0 6px 0;
	color: #000;
}

.event-title.cancelled,
.event-title.postponed,
.scheduletitlecancelled,
.scheduletitlepostponed {
	font-size: 20px;
	color: #333;
}

/* Rescheduled notice */
.event-rescheduled {
	font-family: 'Oswald', sans-serif;
	font-size: 12px;
	font-weight: 400;
	font-style: italic;
	color: #cc6600;
	margin: 2px 0 0 0;
}

/* Event location */
.event-location {
	font-family: 'Oswald', sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: #666;
	margin: 0;
}

/* Cancelled box has a dark background, so its text needs to be light */
.scheduleboxcancelled .event-title,
.scheduleboxcancelled .event-title.cancelled {
	color: #fff;
}

.scheduleboxcancelled .event-location {
	color: rgba(255, 255, 255, 0.75);
}

.scheduleboxcancelled .event-series {
	color: rgba(255, 255, 255, 0.6);
}

/* Event series (shown on track-based schedules like Volusia) */
.event-series {
	font-family: 'Oswald', sans-serif;
	font-size: 12px;
	font-weight: 400;
	color: #999;
	margin: 2px 0 0 0;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Event/promo logos */
.schedlogos,
.schedlogoscancelled,
.schedlogospostponed {
	padding: 8px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	max-height: 110px;
	overflow: hidden;
	width: 100%;
	box-sizing: border-box;
}

.schedlogos img,
.schedlogoscancelled img,
.schedlogospostponed img {
	max-width: 110px !important;
	max-height: 70px;
	width: auto;
	height: auto;
	object-fit: contain;
}

.schedlogos:has(img + img) img,
.schedlogoscancelled:has(img + img) img,
.schedlogospostponed:has(img + img) img {
	max-height: 48px;
}

.schedlogoscancelled img,
.schedlogospostponed img {
	filter: grayscale(100%);
	opacity: 0.5;
}

/* Winner headshot */
.winner-headshot {
	display: flex;
	align-items: stretch;
	justify-content: center;
	align-self: stretch;
	padding: 6px;
}

.winner-headshot img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 4px;
}

/* Winner text */
.schedulewinner {
	font-family: 'Oswald', sans-serif;
	font-size: 13px;
	text-align: center;
	margin-top: 0;
	margin-bottom: 0;
	color: #333;
	width: 100%;
}

/* Event buttons container */
.schedule-event-buttons {
	text-align: center;
	padding: 10px;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 6px;
}

@media screen and (max-width: 767px) {
	.winner-headshot {
		margin-bottom: 10px;
	}

	.winner-headshot img {
		max-width: 60px;
		max-height: 60px;
		padding: 2px;
	}
}

/* ----- RESPONSIVE STYLES ----- */

/* Desktop: Hide mobile date, set min-width on date columns */
@media screen and (min-width: 768px) {
	.mobiledate {
		display: none !important;
	}

	.datecolumnsprint,
	.datecolumnlm,
	.datecolumncombined,
	.datecolumnother,
	.datecolumnascs,
	.datecolumnascspostponed,
	.datecolumnascscancelled,
	.datecolumnxo,
	.datecolumnxopostponed,
	.datecolumnxocancelled,
	.datecolumnsdcs,
	.datecolumnsdcspostponed,
	.datecolumnsdcscancelled,
	.datecolumnsprintpostponed,
	.datecolumnlmpostponed,
	.datecolumnsprintcancelled,
	.datecolumnlmcancelled,
	.datecolumnhelltour,
	.datecolumnhelltourpostponed,
	.datecolumnhelltourcancelled,
	.datecolumnmodnats,
	.datecolumnmodnatspostponed,
	.datecolumnmodnatscancelled,
	.datecolumnvolusia,
	.datecolumnvolusiapostponed,
	.datecolumnvolusiacancelled {
		min-width: 80px;
	}
}

/* Tablet: Smaller text */
@media screen and (max-width: 1024px) {
	.event-details,
	.schednamemargin {
		font-size: 14px;
	}

	.event-title,
	.scheduletitle {
		font-size: 18px;
	}

	.event-location {
		font-size: 13px;
	}

	.event-series {
		font-size: 11px;
	}
}

/* Mobile: Stack layout */
@media screen and (max-width: 767px) {
	.schedulebox,
	.scheduleboxpostponed,
	.scheduleboxcancelled {
		display: flex;
		flex-direction: column;
		text-align: center;
	}

	.mobiledate {
		display: flex !important;
		justify-content: center;
	}

	.desktopdate {
		display: none !important;
	}

	.event-details,
	.schednamemargin {
		margin: 10px 15px;
		padding: 0;
	}

	.event-title,
	.scheduletitle {
		font-size: 20px;
	}

	.schedlogos {
		padding: 10px;
	}

	.schedlogos img {
		max-width: 80px;
	}

	.schedule-event-buttons {
		padding: 15px;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
	}
}

/* ----- SCHEDULE HEADER ----- */

.schedule-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 15px;
	margin-bottom: 20px;
	padding-bottom: 20px;
	border-bottom: 2px solid #eee;
}

.schedule-title {
	font-family: 'Oswald', sans-serif;
	font-size: 28px;
	font-weight: 600;
	text-transform: uppercase;
	margin: 0;
	color: #000;
}

.schedule-header-buttons {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

/* Hide print/calendar buttons on recaps page */
.schedule-header.is-recaps-page .schedule-header-buttons {
	display: none;
}

.schedule-header-btn,
a.schedule-header-btn,
a.schedule-header-btn:visited,
a.schedule-header-btn:active {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	font-family: 'Oswald', sans-serif;
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	text-decoration: none !important;
	color: #333 !important;
	background-color: #fff;
	border: 2px solid #ddd;
	border-radius: 6px;
	cursor: pointer;
	transition: all 0.2s ease;
}

.schedule-header-btn:hover,
a.schedule-header-btn:hover {
	background-color: #f5f5f5;
	border-color: #ccc;
	color: #333 !important;
	text-decoration: none !important;
}

.schedule-header-btn .btn-icon {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}

/* ----- CALENDAR DROPDOWN ----- */

.calendar-dropdown {
	position: relative;
	display: inline-block;
}

.calendar-dropdown-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.calendar-dropdown-toggle .dropdown-arrow {
	width: 12px;
	height: 12px;
	transition: transform 0.2s ease;
}

.calendar-dropdown.is-open .calendar-dropdown-toggle .dropdown-arrow {
	transform: rotate(180deg);
}

.calendar-dropdown-menu {
	position: absolute;
	top: 100%;
	right: 0;
	margin-top: 4px;
	background: #fff;
	border: 2px solid #ddd;
	border-radius: 6px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	min-width: 160px;
	z-index: 100;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.calendar-dropdown.is-open .calendar-dropdown-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.calendar-dropdown-item {
	display: block;
	padding: 12px 16px;
	font-family: 'Oswald', sans-serif;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none !important;
	color: #333 !important;
	transition: background-color 0.2s ease;
	border-bottom: 1px solid #eee;
}

.calendar-dropdown-item:last-child {
	border-bottom: none;
}

.calendar-dropdown-item:first-child {
	border-radius: 4px 4px 0 0;
}

.calendar-dropdown-item:last-child {
	border-radius: 0 0 4px 4px;
}

.calendar-dropdown-item:hover {
	text-decoration: none !important;
}

.calendar-dropdown-sprint:hover {
	background-color: #127bbe;
	color: #fff !important;
}

.calendar-dropdown-latemodel:hover {
	background-color: #ffde00;
	color: #000 !important;
}

@media screen and (max-width: 767px) {
	.calendar-dropdown-menu {
		right: auto;
		left: 0;
	}
}

@media screen and (max-width: 767px) {
	.schedule-header {
		flex-direction: column;
		align-items: flex-start;
	}

	.schedule-title {
		font-size: 24px;
	}

	.schedule-header-buttons {
		width: 100%;
	}

	.schedule-header-btn {
		flex: 1;
		justify-content: center;
	}
}

/* ----- DIRTVISION CTA ----- */

.dirtvision-cta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	padding: 20px 25px;
	margin-bottom: 20px;
	background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);
	border-radius: 8px;
}

.dirtvision-cta-content {
	display: flex;
	align-items: center;
	gap: 20px;
}

.dirtvision-logo {
	height: 35px !important;
	width: auto !important;
	max-width: 125px !important;
}

.dirtvision-cta-text {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.dirtvision-cta-heading {
	font-family: 'Oswald', sans-serif;
	font-size: 18px;
	font-weight: 600;
	text-transform: uppercase;
	color: #fff;
}

.dirtvision-cta-subtext {
	font-family: 'Oswald', sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: #aaa;
}

.dirtvision-cta-btn,
a.dirtvision-cta-btn,
a.dirtvision-cta-btn:visited {
	display: inline-block;
	padding: 12px 24px;
	font-family: 'Oswald', sans-serif;
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	text-decoration: none !important;
	color: #fff !important;
	background-color: #ea0000;
	border-radius: 4px;
	transition: background-color 0.2s ease;
	white-space: nowrap;
}

.dirtvision-cta-btn:hover,
a.dirtvision-cta-btn:hover {
	background-color: #b80000;
	color: #fff !important;
}

/* Sprint Cars - Blue button */
.dirtvision-cta-sprint .dirtvision-cta-btn,
.dirtvision-cta-sprint a.dirtvision-cta-btn {
	background-color: #127bbe;
}

.dirtvision-cta-sprint .dirtvision-cta-btn:hover,
.dirtvision-cta-sprint a.dirtvision-cta-btn:hover {
	background-color: #0e5a8a;
}

/* Late Models - Yellow button */
.dirtvision-cta-latemodel .dirtvision-cta-btn,
.dirtvision-cta-latemodel a.dirtvision-cta-btn {
	background-color: #ffde00;
	color: #000 !important;
}

.dirtvision-cta-latemodel .dirtvision-cta-btn:hover,
.dirtvision-cta-latemodel a.dirtvision-cta-btn:hover {
	background-color: #d4b800;
	color: #000 !important;
}

/* Xtreme Outlaw - Red button */
.dirtvision-cta-xo .dirtvision-cta-btn,
.dirtvision-cta-xo a.dirtvision-cta-btn {
	background-color: #C12B2A;
}

.dirtvision-cta-xo .dirtvision-cta-btn:hover,
.dirtvision-cta-xo a.dirtvision-cta-btn:hover {
	background-color: #9a2322;
}

/* ASCS - Red button */
.dirtvision-cta-ascs .dirtvision-cta-btn,
.dirtvision-cta-ascs a.dirtvision-cta-btn {
	background-color: #A93339;
}

.dirtvision-cta-ascs .dirtvision-cta-btn:hover,
.dirtvision-cta-ascs a.dirtvision-cta-btn:hover {
	background-color: #8a2a2e;
}

/* Super DIRTcar Series - Red button */
.dirtvision-cta-sdcs .dirtvision-cta-btn,
.dirtvision-cta-sdcs a.dirtvision-cta-btn {
	background-color: #f51d26;
}

.dirtvision-cta-sdcs .dirtvision-cta-btn:hover,
.dirtvision-cta-sdcs a.dirtvision-cta-btn:hover {
	background-color: #d4181f;
}

/* DIRTcar Summer Nationals - Orange button */
.dirtvision-cta-helltour .dirtvision-cta-btn,
.dirtvision-cta-helltour a.dirtvision-cta-btn {
	background-color: #F15A22;
}

.dirtvision-cta-helltour .dirtvision-cta-btn:hover,
.dirtvision-cta-helltour a.dirtvision-cta-btn:hover {
	background-color: #c9481a;
}

/* Summit Modified Nationals - Blue button */
.dirtvision-cta-modnats .dirtvision-cta-btn,
.dirtvision-cta-modnats a.dirtvision-cta-btn {
	background-color: #003da5;
}

.dirtvision-cta-modnats .dirtvision-cta-btn:hover,
.dirtvision-cta-modnats a.dirtvision-cta-btn:hover {
	background-color: #002d7a;
}

@media screen and (max-width: 767px) {
	.dirtvision-cta {
		flex-direction: column;
		text-align: center;
		padding: 20px;
	}

	.dirtvision-cta-content {
		flex-direction: column;
	}

	.dirtvision-cta-btn {
		width: 100%;
		text-align: center;
	}
}

/* ----- SCHEDULE FILTERS ----- */

.schedule-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
	margin-bottom: 20px;
	padding: 15px 20px;
	background: #f5f5f5;
	border-radius: 5px;
	align-items: flex-end;
}

.filter-group {
	display: flex;
	flex-direction: column;
	gap: 5px;
	flex: 1 1 0;
	min-width: 150px;
}

.filter-group label {
	font-family: 'Oswald', sans-serif;
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	color: #666;
	letter-spacing: 0.5px;
}

.schedule-filter-select {
	padding: 10px 14px;
	font-family: 'Oswald', sans-serif;
	font-size: 14px;
	font-weight: 400;
	border: 1px solid #ccc;
	border-radius: 3px;
	background-color: #fff;
	width: 100%;
	cursor: pointer;
	transition: border-color 0.2s ease;
	box-sizing: border-box;
	height: 40px;
}

.schedule-filter-select:hover {
	border-color: #999;
}

.schedule-filter-select:focus {
	outline: none;
	border-color: #127bbe;
	box-shadow: 0 0 0 2px rgba(18, 123, 190, 0.1);
}

/* Sprint Cars filter focus */
.schedule-filters-sprint .schedule-filter-select:focus {
	border-color: #127bbe;
	box-shadow: 0 0 0 2px rgba(18, 123, 190, 0.1);
}

/* Late Models filter focus */
.schedule-filters-latemodel .schedule-filter-select:focus {
	border-color: #ffde00;
	box-shadow: 0 0 0 2px rgba(255, 222, 0, 0.15);
}

/* WoO filter focus */
.schedule-filters-woo .schedule-filter-select:focus {
	border-color: #ea0000;
	box-shadow: 0 0 0 2px rgba(234, 0, 0, 0.1);
}

/* Xtreme Outlaw filter focus */
.schedule-filters-xo .schedule-filter-select:focus {
	border-color: #C12B2A;
	box-shadow: 0 0 0 2px rgba(193, 43, 42, 0.15);
}

/* ASCS filter focus */
.schedule-filters-ascs .schedule-filter-select:focus {
	border-color: #A93339;
	box-shadow: 0 0 0 2px rgba(169, 51, 57, 0.15);
}

/* Super DIRTcar Series filter focus */
.schedule-filters-sdcs .schedule-filter-select:focus {
	border-color: #f51d26;
	box-shadow: 0 0 0 2px rgba(245, 29, 38, 0.15);
}

/* DIRTcar Summer Nationals filter focus */
.schedule-filters-helltour .schedule-filter-select:focus {
	border-color: #F15A22;
	box-shadow: 0 0 0 2px rgba(241, 90, 34, 0.15);
}

/* Summit Modified Nationals filter focus */
.schedule-filters-modnats .schedule-filter-select:focus {
	border-color: #003da5;
	box-shadow: 0 0 0 2px rgba(0, 61, 165, 0.15);
}

.filter-group-button {
	flex: 0 0 auto;
	align-self: flex-end;
}

.clear-filters-btn {
	padding: 10px 20px;
	font-family: 'Oswald', sans-serif;
	font-size: 14px;
	font-weight: 500;
	text-transform: uppercase;
	color: #fff;
	border: 1px solid transparent;
	border-radius: 3px;
	cursor: pointer;
	transition: background-color 0.2s ease;
	box-sizing: border-box;
	height: 40px;
}

/* Sprint Cars - Blue */
.clear-filters-btn-sprint {
	background-color: #127bbe;
}

.clear-filters-btn-sprint:hover {
	background-color: #0e5a8a;
}

/* Late Models - Yellow */
.clear-filters-btn-latemodel {
	background-color: #ffde00;
	color: #000;
}

.clear-filters-btn-latemodel:hover {
	background-color: #d4b800;
}

/* World of Outlaws - Red */
.clear-filters-btn-woo {
	background-color: #ea0000;
}

.clear-filters-btn-woo:hover {
	background-color: #b80000;
}

/* Xtreme Outlaw - Red */
.clear-filters-btn-xo {
	background-color: #C12B2A;
}

.clear-filters-btn-xo:hover {
	background-color: #9a2322;
}

/* ASCS - Red */
.clear-filters-btn-ascs {
	background-color: #A93339;
}

.clear-filters-btn-ascs:hover {
	background-color: #8a2a2e;
}

/* Super DIRTcar Series - Red */
.clear-filters-btn-sdcs {
	background-color: #f51d26;
}

.clear-filters-btn-sdcs:hover {
	background-color: #d4181f;
}

/* DIRTcar Summer Nationals - Red */
.clear-filters-btn-helltour {
	background-color: #F15A22;
}

.clear-filters-btn-helltour:hover {
	background-color: #c9481a;
}

/* Summit Modified Nationals - Blue */
.clear-filters-btn-modnats {
	background-color: #003da5;
}

.clear-filters-btn-modnats:hover {
	background-color: #002d7a;
}

.no-filter-results {
	padding: 40px 20px;
	text-align: center;
	font-family: 'Oswald', sans-serif;
	font-size: 18px;
	color: #666;
	background: #f9f9f9;
	border: 1px dashed #ccc;
	border-radius: 5px;
}

/* Filter hidden - used by JS filters, respected by print */
.filter-hidden {
	display: none !important;
}

/* Mobile responsive for filters */
@media screen and (max-width: 767px) {
	.schedule-filters {
		flex-direction: column;
		gap: 12px;
		padding: 15px;
	}

	.filter-group {
		width: 100%;
	}

	.schedule-filter-select {
		width: 100%;
		min-width: unset;
	}

	.filter-group-button {
		margin-left: 0;
		width: 100%;
	}

	.clear-filters-btn {
		width: 100%;
	}
}

/* ----- HOMEPAGE CTA BOXES ----- */

.homepage-cta-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin: 40px 0;
}

.homepage-cta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	padding: 25px 30px;
	background: #1a1a1a;
	border-radius: 6px;
}

.homepage-cta-content {
	display: flex;
	align-items: center;
	gap: 20px;
}

.homepage-cta-icon {
	flex-shrink: 0;
	color: #ea0000;
}

.homepage-cta-text {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.homepage-cta-heading {
	font-family: 'Oswald', sans-serif;
	font-size: 20px;
	font-weight: 600;
	text-transform: uppercase;
	color: #fff;
}

.homepage-cta-subtext {
	font-family: 'Oswald', sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: #888;
}

.homepage-cta-btn,
a.homepage-cta-btn,
a.homepage-cta-btn:visited {
	flex-shrink: 0;
	display: inline-block;
	padding: 12px 28px;
	font-family: 'Oswald', sans-serif;
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	text-decoration: none !important;
	color: #fff !important;
	background: #ea0000;
	border-radius: 4px;
}

.homepage-cta-btn:hover,
a.homepage-cta-btn:hover {
	background: #c00;
	color: #fff !important;
}

@media screen and (max-width: 1024px) {
	.homepage-cta {
		flex-direction: column;
		text-align: center;
		padding: 25px 20px;
	}

	.homepage-cta-content {
		flex-direction: column;
	}

	.homepage-cta-btn {
		width: 100%;
		text-align: center;
	}
}

@media screen and (max-width: 767px) {
	.homepage-cta-grid {
		grid-template-columns: 1fr;
		gap: 15px;
		margin: 30px 0;
	}

	.homepage-cta-heading {
		font-size: 18px;
	}
}

/* ----- PRINT STYLES ----- */

@media print {
	/* Hide non-essential elements */
	.schedule-filters,
	.schedule-header-buttons,
	.calendar-dropdown,
	.dirtvision-cta,
	.schedule-event-buttons,
	.ticket-modal,
	.winner-headshot,
	.schedulewinner,
	.schedlogos,
	.schedlogoscancelled,
	.schedlogospostponed,
	.homepage-cta-grid,
	.mobiledate,
	/* Hide site header, navigation, and footer */
	header,
	#header,
	.site-header,
	#masthead,
	.header,
	.main-header,
	.mobile-menu,
	.mobile-nav,
	.nav-menu,
	.main-navigation,
	nav:not(.schedule-container nav),
	footer,
	#footer,
	.site-footer,
	.footer,
	/* Respect filtered events */
	.filter-hidden {
		display: none !important;
	}

	/* Reset page margins - minimal for max content */
	@page {
		margin: 0.3in 0.4in;
		size: portrait;
	}

	/* Remove backgrounds and shadows for cleaner print */
	* {
		box-shadow: none !important;
		text-shadow: none !important;
	}

	body {
		font-size: 8pt;
		line-height: 1.1;
		color: #000 !important;
		background: #fff !important;
	}

	/* Schedule header - minimal */
	.schedule-header {
		border-bottom: 1px solid #000;
		padding-bottom: 4px;
		margin-bottom: 6px;
	}

	.schedule-title {
		font-size: 12pt;
		color: #000 !important;
	}

	/* Month groups - tight spacing */
	.month-group {
		margin-bottom: 2px;
	}

	.month-header {
		background: #000 !important;
		color: #fff !important;
		padding: 2px 6px;
		margin-bottom: 1px;
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}

	.month-title {
		font-size: 9pt;
		color: #fff !important;
	}

	.month-event-count {
		font-size: 7pt;
		color: #ccc !important;
	}

	/* Ultra-compact single-line event rows */
	.schedulebox,
	.scheduleboxpostponed,
	.scheduleboxcancelled {
		display: flex !important;
		flex-direction: row !important;
		align-items: center !important;
		gap: 0 !important;
		margin-bottom: 0 !important;
		min-height: 0 !important;
		height: auto !important;
		border-radius: 0 !important;
		border: none !important;
		border-bottom: 1px solid #ddd !important;
		background: #fff !important;
		padding: 1px 0 !important;
	}

	.schedulebox:hover,
	.scheduleboxpostponed:hover,
	.scheduleboxcancelled:hover {
		transform: none !important;
	}

	/* Date column - inline compact */
	.desktopdate {
		display: flex !important;
		flex-shrink: 0;
		width: 65px;
	}

	.schedule-date {
		display: flex !important;
		flex-direction: row !important;
		align-items: baseline !important;
		gap: 2px;
	}

	.datecolumnsprint,
	.datecolumnlm,
	.datecolumncombined,
	.datecolumnother,
	.datecolumnascs,
	.datecolumnascspostponed,
	.datecolumnascscancelled,
	.datecolumnxo,
	.datecolumnxopostponed,
	.datecolumnxocancelled,
	.datecolumnsdcs,
	.datecolumnsdcspostponed,
	.datecolumnsdcscancelled,
	.datecolumnsprintpostponed,
	.datecolumnlmpostponed,
	.datecolumnsprintcancelled,
	.datecolumnlmcancelled,
	.datecolumnhelltour,
	.datecolumnhelltourpostponed,
	.datecolumnhelltourcancelled,
	.datecolumnmodnats,
	.datecolumnmodnatspostponed,
	.datecolumnmodnatscancelled,
	.datecolumnvolusia,
	.datecolumnvolusiapostponed,
	.datecolumnvolusiacancelled {
		background: none !important;
		color: #000 !important;
		padding: 0 4px !important;
		min-width: auto !important;
		flex-direction: row !important;
		align-items: baseline !important;
		gap: 2px;
	}

	/* Series indicator - inline badge */
	.datecolumnsprint::before,
	.datecolumnlm::before,
	.datecolumncombined::before,
	.datecolumnascs::before,
	.datecolumnascscancelled::before,
	.datecolumnascspostponed::before,
	.datecolumnxo::before,
	.datecolumnxocancelled::before,
	.datecolumnxopostponed::before,
	.datecolumnsdcs::before,
	.datecolumnsdcscancelled::before,
	.datecolumnsdcspostponed::before,
	.datecolumnsprintcancelled::before,
	.datecolumnlmcancelled::before,
	.datecolumnsprintpostponed::before,
	.datecolumnlmpostponed::before,
	.datecolumnhelltour::before,
	.datecolumnhelltourcancelled::before,
	.datecolumnhelltourpostponed::before,
	.datecolumnmodnats::before,
	.datecolumnmodnatscancelled::before,
	.datecolumnmodnatspostponed::before,
	.datecolumnvolusia::before,
	.datecolumnvolusiacancelled::before,
	.datecolumnvolusiapostponed::before {
		display: inline-block;
		font-size: 5pt;
		font-weight: bold;
		padding: 0 2px;
		margin-right: 2px;
		vertical-align: middle;
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}

	.datecolumnsprint::before {
		content: "SC";
		background: #000;
		color: #fff;
	}

	.datecolumnlm::before {
		content: "LM";
		background: #666;
		color: #fff;
	}

	.datecolumncombined::before {
		content: "BOTH";
		background: #333;
		color: #fff;
	}

	.datecolumnascs::before {
		content: "ASCS";
		background: #A93339;
		color: #fff;
	}

	.datecolumnxo::before {
		content: "XO";
		background: #C12B2A;
		color: #fff;
	}

	.datecolumnsdcs::before {
		content: "SDCS";
		background: #f51d26;
		color: #fff;
	}

	.datecolumnhelltour::before {
		content: "SN";
		background: #F15A22;
		color: #fff;
	}

	.datecolumnmodnats::before {
		content: "MN";
		background: #003da5;
		color: #fff;
	}

	.datecolumnvolusia::before {
		content: "VSP";
		background: #1a7a3a;
		color: #fff;
	}

	.datecolumnsprintcancelled::before,
	.datecolumnlmcancelled::before,
	.datecolumnascscancelled::before,
	.datecolumnxocancelled::before,
	.datecolumnsdcscancelled::before,
	.datecolumnhelltourcancelled::before,
	.datecolumnmodnatscancelled::before,
	.datecolumnvolusiacancelled::before {
		content: "X";
		background: #999;
		color: #fff;
	}

	.datecolumnsprintpostponed::before,
	.datecolumnlmpostponed::before,
	.datecolumnascspostponed::before,
	.datecolumnxopostponed::before,
	.datecolumnsdcspostponed::before,
	.datecolumnhelltourpostponed::before,
	.datecolumnmodnatspostponed::before,
	.datecolumnvolusiapostponed::before {
		content: "P";
		background: #999;
		color: #fff;
	}

	.schedule-date-day {
		display: none !important;
	}

	.schedule-date-month {
		font-size: 7pt !important;
		order: 2;
	}

	.schedule-date-num {
		font-size: 9pt !important;
		font-weight: 600 !important;
		order: 1;
	}

	/* Event details - single line */
	.event-details,
	.schednamemargin {
		display: flex !important;
		flex-direction: row !important;
		align-items: baseline !important;
		flex-wrap: nowrap !important;
		gap: 6px;
		margin-left: 4px !important;
		padding: 0 !important;
		flex: 1;
		min-width: 0;
		overflow: hidden;
	}

	.event-title,
	.scheduletitle {
		font-size: 8pt !important;
		font-weight: 600 !important;
		margin: 0 !important;
		color: #000 !important;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		max-width: 55%;
	}

	.event-title.cancelled,
	.event-title.postponed,
	.scheduletitlecancelled,
	.scheduletitlepostponed {
		font-size: 8pt !important;
		color: #666 !important;
		text-decoration: line-through;
	}

	.event-location {
		font-size: 7pt !important;
		color: #444 !important;
		margin: 0 !important;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		flex: 1;
	}

	.event-series {
		font-size: 6pt !important;
		color: #666 !important;
		margin: 0 !important;
	}

	/* Hide location separator on print - we use flex gap */
	.event-location::before {
		content: "— ";
		color: #999;
	}

	/* No footer legend - save space */
	.schedule-container::after {
		display: none;
	}

	/* Ensure links don't show underlines or URLs */
	a {
		text-decoration: none !important;
		color: inherit !important;
	}

	/* Hide WordPress admin bar if present */
	#wpadminbar {
		display: none !important;
	}

	/* IMPORTANT: Filtered events must stay hidden when printing */
	/* This must come last to override .schedulebox display rules */
	.filter-hidden,
	.schedulebox.filter-hidden,
	.scheduleboxpostponed.filter-hidden,
	.scheduleboxcancelled.filter-hidden,
	.month-group.filter-hidden {
		display: none !important;
	}
}
