/* ------------------------------------------------------------
 * Think Bright Events: Frontend Styles (Anderson Center)
 * ------------------------------------------------------------ */

:root {
	--tb-color-gold: #c9a44c;
	--tb-color-charcoal: #1a1a1a;
	--tb-color-gray-light: #f7f7f7;
	--tb-color-gray-mid: #e0e0e0;
	--tb-color-gray-dark: #666666;
	--tb-color-white: #ffffff;
	--tb-font-inherit: inherit;
}

/* Base Wrapper */
.tb-layout-single-day,
.tb-layout-multi-day,
.tb-layout-month-long {
	font-family: var(--tb-font-inherit);
	color: var(--tb-color-charcoal);
	line-height: 1.6;
	max-width: 1200px;
	margin: 0 auto;
	padding-bottom: 80px;
}

/* -------------------------
 * Shared Components
 * ------------------------- */

/* Buttons */
.tb-btn {
	display: inline-block;
	padding: 12px 24px;
	border-radius: 4px;
	font-size: 0.95rem;
	font-weight: 600;
	text-decoration: none;
	text-align: center;
	transition: all 0.3s ease;
	cursor: pointer;
	border: 1px solid transparent;
}
.tb-btn-gold {
	background-color: var(--tb-color-gold);
	color: var(--tb-color-white);
}
.tb-btn-gold:hover {
	background-color: #b59242;
	color: var(--tb-color-white);
}
.tb-btn-dark {
	background-color: var(--tb-color-charcoal);
	color: var(--tb-color-white);
}
.tb-btn-dark:hover {
	background-color: #000;
	color: var(--tb-color-white);
}
.tb-btn-outline {
	background-color: transparent;
	border-color: var(--tb-color-charcoal);
	color: var(--tb-color-charcoal);
}
.tb-btn-outline:hover {
	background-color: var(--tb-color-charcoal);
	color: var(--tb-color-white);
}
.tb-btn-text {
	background-color: transparent;
	color: var(--tb-color-gold);
	font-weight: 600;
	text-decoration: none;
}
.tb-btn-text:hover {
	text-decoration: underline;
}
.tb-full-width {
	display: block;
	width: 100%;
}
.tb-mt-15 {
	margin-top: 15px;
}

/* Badges */
.tb-badges {
	margin-bottom: 15px;
}
.tb-badge {
	display: inline-block;
	background-color: rgba(255, 255, 255, 0.2);
	color: var(--tb-color-white);
	padding: 6px 14px;
	border-radius: 20px;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin-right: 8px;
	backdrop-filter: blur(4px);
}
.tb-badge-gold {
	background-color: var(--tb-color-gold);
	color: var(--tb-color-white);
}

/* Section Titles */
.tb-section-title {
	font-size: 2.2rem;
	font-weight: 300;
	margin: 0 0 30px 0;
	color: var(--tb-color-charcoal);
}

/* Key Details Panel */
.tb-key-details-panel {
	background: var(--tb-color-gray-light);
	border-left: 4px solid var(--tb-color-gold);
	padding: 30px;
	border-radius: 0 8px 8px 0;
}
.tb-panel-title {
	font-size: 1.5rem;
	margin: 0 0 20px 0;
	color: var(--tb-color-charcoal);
}
.tb-panel-title-small {
	font-size: 1.2rem;
	margin: 0 0 15px 0;
	color: var(--tb-color-charcoal);
}
.tb-kd-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}
.tb-kd-item {
	display: flex;
	flex-direction: column;
	margin-bottom: 15px;
}
.tb-kd-label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--tb-color-gold);
	font-weight: 700;
	margin-bottom: 5px;
}
.tb-kd-value {
	font-size: 1rem;
	font-weight: 500;
	color: var(--tb-color-charcoal);
}

/* -------------------------
 * Layout: Single Day
 * ------------------------- */

.tb-layout-single-day .tb-hero {
	height: 450px;
	background-size: cover;
	background-position: center;
	position: relative;
	border-radius: 12px;
	overflow: hidden;
	margin-bottom: 40px;
	display: flex;
	align-items: flex-end;
}
.tb-layout-single-day .tb-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 50%, transparent 100%);
}
.tb-layout-single-day .tb-hero-content-wrap {
	position: relative;
	z-index: 2;
	padding: 40px;
	color: var(--tb-color-white);
}
.tb-layout-single-day .tb-hero-title {
	font-size: 3rem;
	font-weight: 300;
	margin: 0 0 10px 0;
	color: var(--tb-color-white);
	line-height: 1.2;
}
.tb-layout-single-day .tb-hero-meta {
	display: flex;
	gap: 20px;
	font-size: 1.1rem;
	opacity: 0.9;
}

.tb-layout-single-day .tb-body-grid {
	display: grid;
	grid-template-columns: 1fr 350px;
	gap: 50px;
}
.tb-layout-single-day .tb-event-description {
	font-size: 1.1rem;
	color: var(--tb-color-gray-dark);
	margin-bottom: 40px;
}

/* Sidebar Timeline */
.tb-layout-single-day .tb-sidebar {
	position: sticky;
	top: 30px;
}
.tb-layout-single-day .tb-schedule-panel {
	background: #fff;
	padding: 0;
}
.tb-layout-single-day .tb-timeline {
	position: relative;
	margin-bottom: 30px;
	padding-left: 20px;
}
.tb-layout-single-day .tb-timeline::before {
	content: '';
	position: absolute;
	left: 0;
	top: 10px;
	bottom: 0;
	width: 2px;
	background: var(--tb-color-gold);
}
.tb-layout-single-day .tb-tl-item {
	position: relative;
	margin-bottom: 25px;
}
.tb-layout-single-day .tb-tl-dot {
	position: absolute;
	left: -24px;
	top: 6px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--tb-color-gold);
	border: 2px solid #fff;
}
.tb-layout-single-day .tb-tl-time {
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--tb-color-gold);
	display: block;
	margin-bottom: 5px;
}
.tb-layout-single-day .tb-tl-title {
	font-size: 1.15rem;
	margin: 0 0 5px 0;
	color: var(--tb-color-charcoal);
}
.tb-layout-single-day .tb-tl-desc {
	font-size: 0.95rem;
	color: var(--tb-color-gray-dark);
}

/* -------------------------
 * Layout: Multi Day
 * ------------------------- */

.tb-layout-multi-day .tb-hero {
	height: 500px;
	background-size: cover;
	background-position: center;
	border-radius: 12px;
	position: relative;
	margin-bottom: 60px;
	display: flex;
	align-items: center;
}
.tb-layout-multi-day .tb-hero-card {
	background: #fff;
	padding: 50px;
	border-radius: 0 8px 8px 0;
	max-width: 500px;
	box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}
.tb-layout-multi-day .tb-hero-subtitle {
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--tb-color-gold);
	font-weight: 700;
	margin-bottom: 15px;
}
.tb-layout-multi-day .tb-hero-title {
	font-size: 2.5rem;
	font-weight: 300;
	line-height: 1.2;
	margin: 0 0 20px 0;
	color: var(--tb-color-charcoal);
}
.tb-layout-multi-day .tb-hero-desc {
	color: var(--tb-color-gray-dark);
	margin-bottom: 30px;
	font-size: 1.05rem;
}
.tb-layout-multi-day .tb-hero-actions {
	display: flex;
	align-items: center;
	gap: 20px;
}
.tb-layout-multi-day .tb-date-box {
	font-weight: 600;
	color: var(--tb-color-charcoal);
}

/* Day Switcher */
.tb-layout-multi-day .tb-day-tabs {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 30px;
	border-bottom: 1px solid var(--tb-color-gray-mid);
	padding-bottom: 15px;
}
.tb-layout-multi-day .tb-tabs-list {
	display: flex;
	gap: 30px;
}
.tb-layout-multi-day .tb-tab-btn {
	background: transparent;
	border: none;
	padding: 0;
	cursor: pointer;
	text-align: left;
	position: relative;
	color: var(--tb-color-gray-dark);
}
.tb-layout-multi-day .tb-tab-btn.active {
	color: var(--tb-color-charcoal);
}
.tb-layout-multi-day .tb-tab-btn.active::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -16px;
	height: 3px;
	background: var(--tb-color-gold);
}
.tb-layout-multi-day .tb-tab-mini {
	display: block;
	font-size: 0.8rem;
	text-transform: uppercase;
	font-weight: 700;
	margin-bottom: 5px;
}
.tb-layout-multi-day .tb-tab-main {
	display: block;
	font-size: 1.3rem;
	font-weight: 300;
}
.tb-layout-multi-day .tb-tabs-legend {
	display: flex;
	gap: 10px;
}
.tb-layout-multi-day .tb-legend-pill {
	font-size: 0.8rem;
	padding: 4px 10px;
	border: 1px solid var(--tb-color-gray-mid);
	border-radius: 20px;
	color: var(--tb-color-gray-dark);
}

/* Schedule List */
.tb-layout-multi-day .tb-schedule-list {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.tb-layout-multi-day .tb-schedule-row {
	display: flex;
	gap: 30px;
	background: #fff;
	border: 1px solid var(--tb-color-gray-mid);
	border-radius: 8px;
	padding: 30px;
}
.tb-layout-multi-day .tb-row-dark {
	background: var(--tb-color-charcoal);
	color: var(--tb-color-white);
	border-color: var(--tb-color-charcoal);
}
.tb-layout-multi-day .tb-sr-time {
	min-width: 120px;
}
.tb-layout-multi-day .tb-time-big {
	font-size: 1.8rem;
	font-weight: 300;
	line-height: 1.1;
}
.tb-layout-multi-day .tb-time-small {
	font-size: 0.85rem;
	color: var(--tb-color-gold);
	font-weight: 700;
	margin-top: 5px;
}
.tb-layout-multi-day .tb-sr-content {
	flex: 2;
}
.tb-layout-multi-day .tb-sr-badge {
	display: inline-block;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: 700;
	color: var(--tb-color-gold);
	margin-bottom: 10px;
}
.tb-layout-multi-day .tb-row-dark .tb-sr-badge {
	background: var(--tb-color-gold);
	color: var(--tb-color-white);
	padding: 4px 10px;
	border-radius: 4px;
}
.tb-layout-multi-day .tb-sr-title {
	font-size: 1.5rem;
	margin: 0 0 10px 0;
	color: inherit;
}
.tb-layout-multi-day .tb-row-dark .tb-sr-title {
	color: var(--tb-color-white);
}
.tb-layout-multi-day .tb-sr-desc {
	font-size: 1rem;
	opacity: 0.8;
	margin-bottom: 15px;
}
.tb-layout-multi-day .tb-sr-location {
	font-size: 0.9rem;
	font-weight: 600;
}
.tb-layout-multi-day .tb-sr-extras {
	flex: 1;
	background: var(--tb-color-gray-light);
	padding: 20px;
	border-radius: 6px;
}
.tb-layout-multi-day .tb-extras-title {
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin: 0 0 10px 0;
	color: var(--tb-color-charcoal);
}
.tb-layout-multi-day .tb-extras-content {
	font-size: 0.9rem;
	color: var(--tb-color-gray-dark);
	font-style: italic;
}

/* -------------------------
 * Layout: Month Long (Festival)
 * ------------------------- */

.tb-layout-month-long .tb-hero {
	height: 450px;
	background-size: cover;
	background-position: center;
	position: relative;
	border-radius: 12px;
	overflow: hidden;
	margin-bottom: 50px;
	display: flex;
	align-items: flex-end;
}
.tb-layout-month-long .tb-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 50%, transparent 100%);
}
.tb-layout-month-long .tb-hero-content-wrap {
	position: relative;
	z-index: 2;
	padding: 40px;
	color: var(--tb-color-white);
}
.tb-layout-month-long .tb-hero-title {
	font-size: 3.5rem;
	font-weight: 300;
	margin: 0 0 10px 0;
	line-height: 1.1;
	color: var(--tb-color-white);
}
.tb-layout-month-long .tb-hero-desc-short {
	font-size: 1.2rem;
	opacity: 0.9;
	max-width: 600px;
}

.tb-layout-month-long .tb-intro-grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 50px;
	margin-bottom: 60px;
}
.tb-layout-month-long .tb-event-description {
	font-size: 1.1rem;
	color: var(--tb-color-gray-dark);
}

/* Curated Experiences Grid */
.tb-curated-experiences-section {
	margin-bottom: 60px;
}
.tb-curated-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 30px;
}
.tb-curated-card {
	background: #fff;
	border: 1px solid var(--tb-color-gray-mid);
	border-radius: 8px;
	overflow: hidden;
	transition: transform 0.3s, box-shadow 0.3s;
	display: flex;
	flex-direction: column;
}
.tb-curated-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 15px 30px rgba(0,0,0,0.08);
}
.tb-cc-image {
	height: 220px;
	background-size: cover;
	background-position: center;
	background-color: var(--tb-color-gray-light);
}
.tb-cc-content {
	padding: 25px;
	flex: 1;
	display: flex;
	flex-direction: column;
}
.tb-cc-subtitle {
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--tb-color-gold);
	font-weight: 700;
	margin-bottom: 8px;
}
.tb-cc-title {
	font-size: 1.3rem;
	margin: 0 0 15px 0;
	color: var(--tb-color-charcoal);
	line-height: 1.3;
}
.tb-cc-desc {
	font-size: 0.95rem;
	color: var(--tb-color-gray-dark);
	margin-bottom: 20px;
	flex: 1;
}
.tb-cc-link {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--tb-color-charcoal);
	text-decoration: none;
	display: inline-block;
	margin-top: auto;
}
.tb-cc-link:hover {
	color: var(--tb-color-gold);
}

/* Full Schedule */
.tb-layout-month-long .tb-fs-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 30px;
	border-bottom: 1px solid var(--tb-color-gray-mid);
	padding-bottom: 20px;
}
.tb-layout-month-long .tb-fs-filters {
	display: flex;
	gap: 15px;
}
.tb-layout-month-long .tb-fs-filter {
	background: transparent;
	border: 1px solid var(--tb-color-gray-mid);
	padding: 6px 16px;
	border-radius: 20px;
	font-size: 0.85rem;
	cursor: pointer;
	color: var(--tb-color-gray-dark);
}
.tb-layout-month-long .tb-fs-filter.active {
	background: var(--tb-color-charcoal);
	color: var(--tb-color-white);
	border-color: var(--tb-color-charcoal);
}
.tb-layout-month-long .tb-fs-list {
	display: flex;
	flex-direction: column;
}
.tb-layout-month-long .tb-fs-row {
	display: flex;
	gap: 30px;
	padding: 25px 0;
	border-bottom: 1px solid var(--tb-color-gray-mid);
	align-items: center;
}
.tb-layout-month-long .tb-fs-date {
	min-width: 80px;
	display: flex;
	flex-direction: column;
}
.tb-layout-month-long .tb-fs-d-main {
	font-size: 1.3rem;
	font-weight: 300;
}
.tb-layout-month-long .tb-fs-d-sub {
	font-size: 0.8rem;
	color: var(--tb-color-gold);
	font-weight: 700;
}
.tb-layout-month-long .tb-fs-time {
	min-width: 100px;
	font-size: 1.1rem;
	font-weight: 600;
}
.tb-layout-month-long .tb-fs-content {
	flex: 1;
}
.tb-layout-month-long .tb-fs-title {
	font-size: 1.2rem;
	margin: 0 0 5px 0;
}
.tb-layout-month-long .tb-fs-desc {
	font-size: 0.95rem;
	color: var(--tb-color-gray-dark);
}
.tb-layout-month-long .tb-fs-action {
	min-width: 100px;
	text-align: right;
}
.tb-layout-month-long .tb-fs-footer {
	text-align: center;
	margin-top: 40px;
}

/* -------------------------
 * Responsive
 * ------------------------- */

@media (max-width: 992px) {
	.tb-layout-single-day .tb-body-grid,
	.tb-layout-month-long .tb-intro-grid {
		grid-template-columns: 1fr;
		gap: 30px;
	}
	.tb-layout-single-day .tb-sidebar {
		position: static;
	}
	.tb-layout-multi-day .tb-schedule-row {
		flex-direction: column;
		gap: 15px;
	}
	.tb-layout-multi-day .tb-sr-time {
		margin-bottom: 10px;
	}
}

@media (max-width: 768px) {
	.tb-layout-single-day .tb-hero-title { font-size: 2.2rem; }
	.tb-layout-multi-day .tb-hero-title { font-size: 2rem; }
	.tb-layout-month-long .tb-hero-title { font-size: 2.5rem; }
	
	.tb-layout-multi-day .tb-hero-card { padding: 30px; margin: 20px; border-radius: 8px; }
	
	.tb-kd-grid { grid-template-columns: 1fr; }
	
	.tb-layout-month-long .tb-fs-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}
	.tb-layout-month-long .tb-fs-action {
		text-align: left;
	}
	.tb-layout-month-long .tb-fs-header {
		flex-direction: column;
		align-items: flex-start;
		gap: 15px;
	}
	.tb-layout-month-long .tb-fs-filters {
		flex-wrap: wrap;
	}
}

/* -------------------------
 * Shortcode Calendar Views
 * ------------------------- */

.tb-events-wrapper {
	max-width: 1200px;
	margin: 40px auto;
	font-family: inherit;
	color: var(--tb-color-charcoal);
}

.tb-events-header-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 20px;
	flex-wrap: wrap;
	gap: 20px;
}

.tb-events-nav {
	display: flex;
	align-items: center;
	gap: 15px;
}

.tb-cal-nav-btn {
	background: none;
	border: none;
	cursor: pointer;
	color: var(--tb-color-charcoal);
	padding: 5px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: background-color 0.2s, color 0.2s;
}

.tb-cal-nav-btn:hover {
	background-color: var(--tb-color-gold-light, #f4ecd8);
	color: var(--tb-color-gold);
}

.tb-cal-month-year {
	margin: 0;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
}

.tb-events-controls {
	display: flex;
	align-items: center;
	gap: 20px;
}

.tb-timeframe-toggle {
	display: flex;
	background: #f5f5f5;
	border-radius: 30px;
	overflow: hidden;
	padding: 4px;
}

.tb-time-btn {
	background: transparent;
	border: none;
	padding: 8px 20px;
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
	border-radius: 26px;
	transition: background-color 0.2s, color 0.2s;
	color: #666;
}

.tb-time-btn:hover {
	color: var(--tb-color-charcoal);
}

.tb-time-btn.active {
	background: #fff;
	color: var(--tb-color-charcoal);
	box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.tb-view-toggles {
	display: flex;
	gap: 8px;
}

.tb-toggle-btn {
	background: transparent;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 8px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #666;
	transition: all 0.2s;
}

.tb-toggle-btn:hover {
	border-color: #999;
	color: #333;
}

.tb-toggle-btn.active {
	background-color: #666;
	border-color: #666;
	color: #fff;
}

/* Filter Dropdown Popover */
.tb-filter-dropdown-container {
	position: relative;
	display: inline-block;
}

.tb-filter-dropdown {
	position: absolute;
	top: 100%;
	right: 0;
	margin-top: 10px;
	background: #fff;
	border: 1px solid #eee;
	border-radius: 8px;
	padding: 15px;
	box-shadow: 0 4px 15px rgba(0,0,0,0.1);
	z-index: 100;
	display: none;
	min-width: 200px;
	animation: tbModalFadeIn 0.2s ease;
}

.tb-filter-dropdown.active {
	display: block;
}

/* Events Filters */
.tb-events-filters {
	display: block;
}

.tb-filter-checkboxes {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.tb-filter-checkbox-label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 1rem;
	font-weight: 500;
	color: var(--tb-color-charcoal);
	cursor: pointer;
	padding: 4px 0;
	transition: all 0.2s ease;
}

.tb-filter-checkbox-label:hover {
	color: var(--tb-color-gold);
}

.tb-filter-checkbox {
	width: 18px;
	height: 18px;
	cursor: pointer;
	accent-color: var(--tb-color-gold);
	margin: 0;
}

.tb-checkbox-text {
	user-select: none;
}

.tb-filter-toggle-btn {
	margin-left: 10px;
	color: var(--tb-color-gold);
	background: #fff;
}
.tb-filter-toggle-btn:hover {
	background: #f1f1f1;
}

.tb-views-container {
	position: relative;
	min-height: 400px;
}

.tb-view {
	display: none;
	animation: fadeIn 0.3s ease;
}

.tb-view.active {
	display: block;
}

@keyframes fadeIn {
	from { opacity: 0; transform: translateY(5px); }
	to { opacity: 1; transform: translateY(0); }
}

/* Calendar Grid */
.tb-calendar-grid {
	background: #fff;
	border: 1px solid #eee;
	border-radius: 12px;
	overflow: hidden;
}

.tb-cal-header-row {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	background: #fafafa;
	border-bottom: 1px solid #eee;
}

.tb-cal-header-day {
	padding: 15px 10px;
	text-align: center;
	font-weight: 600;
	font-size: 0.9rem;
	color: #666;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.tb-cal-body {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	background: #eee;
	gap: 1px;
}

.tb-day {
	background: #fff;
	min-height: 120px;
	padding: 10px;
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.tb-day-number {
	font-weight: 600;
	color: #333;
	margin-bottom: 5px;
	font-size: 1rem;
}

.tb-event-span {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 6px 8px;
	border-radius: 4px;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 600;
	text-decoration: none;
	line-height: 1.2;
	transition: opacity 0.2s;
}

.tb-event-span:hover {
	opacity: 0.85;
	color: #fff;
}

.tb-event-icon-small {
	width: 14px;
	height: 14px;
	object-fit: contain;
}

/* List View */
.tb-list-body {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.tb-list-item {
	display: flex;
	background: #fff;
	border: 1px solid #eee;
	border-radius: 12px;
	text-decoration: none;
	color: inherit;
	overflow: hidden;
	transition: transform 0.2s, box-shadow 0.2s;
}

.tb-list-item:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 25px rgba(0,0,0,0.05);
}

.tb-list-date-box {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 20px 15px;
	color: #fff;
	min-width: 120px;
}

.tb-list-date-box .month { font-size: 1rem; font-weight: 700; text-transform: uppercase; }
.tb-list-date-box .day { font-size: 2.5rem; font-weight: 800; line-height: 1; margin: 5px 0; text-align: center; }
.tb-list-date-box .year { font-size: 0.9rem; opacity: 0.8; }

.tb-list-content {
	padding: 20px 25px;
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.tb-list-title {
	margin: 0 0 10px 0;
	font-size: 1.4rem;
	font-weight: 700;
	color: #1b2c45;
}

.tb-list-excerpt {
	margin: 0;
	color: #666;
	font-size: 0.95rem;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}


/* Card View */
.tb-card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 25px;
}

.tb-card-item {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	border: 1px solid #eee;
	transition: transform 0.3s, box-shadow 0.3s;
}

.tb-card-item:hover {
	transform: translateY(-5px);
	box-shadow: 0 15px 30px rgba(0,0,0,0.08);
}

.tb-card-image {
	height: 180px;
	background-size: cover;
	background-position: center;
	background-color: var(--tb-color-gray-light);
	position: relative;
}

.tb-card-date-badge {
	position: absolute;
	top: 15px;
	right: 15px;
	background: #c9a44c;
	color: #fff;
	padding: 8px 12px;
	border-radius: 20px;
	font-size: 0.8rem;
	font-weight: 700;
	box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.tb-card-content {
	padding: 25px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.tb-card-title {
	margin: 0 0 12px 0;
	font-size: 1.25rem;
}

.tb-card-excerpt {
	margin: 0 0 20px 0;
	font-size: 0.9rem;
	color: #666;
	line-height: 1.5;
	flex: 1;
}

.tb-card-footer {
	font-weight: 700;
	font-size: 0.9rem;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.tb-no-events {
	padding: 40px;
	text-align: center;
	font-size: 1.1rem;
	color: #888;
	background: #f9f9f9;
	border-radius: 8px;
	grid-column: 1 / -1;
}

@media (max-width: 768px) {
	.tb-events-header-bar {
		flex-direction: column;
		align-items: flex-start;
	}
	.tb-cal-header-day {
		font-size: 0.7rem;
		padding: 10px 5px;
	}
	.tb-day {
		min-height: 80px;
	}
	.tb-event-span {
		font-size: 0.65rem;
		padding: 4px;
	}
}

/* -------------------------
 * Quick-View Modal
 * ------------------------- */

.tb-modal {
	display: none; /* Hidden by default */
	position: fixed;
	z-index: 99999;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(4px);
}

.tb-modal.active {
	display: flex;
	align-items: center;
	justify-content: center;
	animation: fadeIn 0.3s ease;
}

.tb-modal-content {
	background-color: #fff;
	margin: auto;
	padding: 0;
	border-radius: 12px;
	width: 90%;
	max-width: 600px;
	position: relative;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
	overflow: hidden;
}

.tb-modal-close {
	position: absolute;
	right: 20px;
	top: 15px;
	color: #fff;
	font-size: 28px;
	font-weight: bold;
	cursor: pointer;
	z-index: 10;
	text-shadow: 0 1px 3px rgba(0,0,0,0.5);
	transition: color 0.2s;
}

.tb-modal-close:hover {
	color: var(--tb-color-gold);
}

.tb-modal-header {
	height: 200px;
	background-size: cover;
	background-position: center;
	background-color: var(--tb-color-gray-dark);
	position: relative;
}

.tb-modal-header::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
}

.tb-modal-header-content {
	position: absolute;
	bottom: 20px;
	left: 30px;
	right: 30px;
	z-index: 2;
	color: #fff;
}

.tb-modal-title {
	margin: 0 0 5px 0;
	font-size: 1.8rem;
	color: #fff;
}

.tb-modal-date {
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--tb-color-gold);
}

.tb-modal-body-inner {
	padding: 30px;
}

.tb-modal-excerpt {
	font-size: 1.05rem;
	color: #444;
	line-height: 1.6;
	margin-bottom: 25px;
}

.tb-modal-actions {
	display: flex;
	gap: 15px;
	flex-wrap: wrap;
}

/* -------------------------
 * Calendar Thumbnail Mod
 * ------------------------- */

.tb-cal-thumb {
	display: flex;
	align-items: center;
	height: 40px;
	background-size: cover;
	background-position: center;
	background-color: var(--tb-color-gray-dark);
	border-radius: 6px;
	overflow: hidden;
	position: relative;
	text-decoration: none;
	margin-top: 5px;
	transition: transform 0.2s, opacity 0.2s;
}

.tb-cal-thumb:hover {
	transform: scale(1.02);
	opacity: 0.9;
}

.tb-cal-thumb-title {
	position: relative;
	z-index: 2;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 600;
	padding: 0 8px;
	line-height: 1.2;
	width: 100%;
	display: flex;
	align-items: center;
	gap: 6px;
}

.tb-cal-thumb-title span.dashicons {
	flex-shrink: 0;
}

.tb-cal-thumb-text-wrapper {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* -------------------------
 * Feature Carousel
 * ------------------------- */
.tb-feature-carousel-wrapper {
	position: relative;
	width: 100%;
	margin: 30px 0;
}
.tb-feature-carousel {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	gap: 20px;
	padding-bottom: 15px;
	scrollbar-width: none; /* Hide scrollbar for cleaner look */
}
.tb-feature-carousel::-webkit-scrollbar {
	display: none;
}
.tb-feature-slide {
	flex: 0 0 85%;
	min-width: 280px;
	max-width: 800px;
	height: 400px;
	border-radius: 12px;
	scroll-snap-align: center;
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: flex-end;
	padding: 30px;
	box-sizing: border-box;
	position: relative;
	box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}
@media (min-width: 768px) {
	.tb-feature-slide {
		flex: 0 0 70%;
		padding: 40px;
	}
}
.tb-feature-content {
	color: #fff;
	z-index: 2;
	max-width: 600px;
}
.tb-feature-title {
	font-size: 2rem;
	margin: 0 0 10px 0;
	font-weight: 700;
	line-height: 1.2;
	color: #fff;
}
.tb-feature-excerpt {
	font-size: 1.1rem;
	margin: 0 0 20px 0;
	line-height: 1.5;
	opacity: 0.9;
}

/* Carousel Controls */
.tb-carousel-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(255, 255, 255, 0.9);
	border: none;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 10px;
	cursor: pointer;
	box-shadow: 0 4px 10px rgba(0,0,0,0.15);
	color: var(--tb-color-charcoal);
	z-index: 10;
	transition: all 0.2s;
}
.tb-carousel-nav:hover {
	background: var(--tb-color-gold);
	color: #fff;
}
.tb-carousel-prev {
	left: -20px;
}
.tb-carousel-next {
	right: -20px;
}
.tb-carousel-dots {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-top: 15px;
}
.tb-carousel-dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--tb-color-gray-mid);
	border: none;
	cursor: pointer;
	padding: 0;
	transition: background-color 0.2s;
}
.tb-carousel-dot.active, .tb-carousel-dot:hover {
	background: var(--tb-color-gold);
}

/* Button Hover Override (Gray) */
.tb-events-wrapper .tb-btn:hover,
.tb-layout-single-day .tb-btn:hover,
.tb-layout-multi-day .tb-btn:hover,
.tb-layout-month-long .tb-btn:hover,
.tb-events-wrapper button:hover,
.tb-layout-single-day button:hover,
.tb-layout-multi-day button:hover,
.tb-layout-month-long button:hover {
	background-color: #666666 !important;
	color: #ffffff !important;
	border-color: #666666 !important;
}

/* User Specified Hover Override */
[type=button]:focus, [type=button]:hover, [type=submit]:focus, [type=submit]:hover, button:focus, button:hover {
    background-color: #c3c4c7 !important;
    color: #fff !important;
    text-decoration: none !important;
}

/* Modal Visibility Fix */
#tb-event-modal:not(.active) {
    display: none !important;
}

/* -------------------------
 * Mobile Optimizations
 * ------------------------- */
@media (max-width: 600px) {
	/* Calendar Grid - Mobile Dot/Bar Pattern */
	.tb-calendar-grid .tb-cal-thumb {
		height: 24px;
		justify-content: center;
		padding: 2px;
	}
	.tb-calendar-grid .tb-cal-thumb-text-wrapper {
		display: none; /* Hide text on small screens */
	}
	.tb-calendar-grid .tb-cal-thumb-title {
		justify-content: center;
		padding: 0;
		gap: 0;
	}
	.tb-calendar-grid .tb-cal-thumb-title span.dashicons {
		margin: 0 !important;
	}
}
