/**
 * TKU Events Styles — editorial-Swiss restyle of The Events Calendar (v2).
 *
 * Assumes TEC skeleton stylesheet mode. Selectors verified against the
 * plugin's own view templates (src/views/v2/* and src/views/single-event.php).
 *
 * Scopes:
 *   Archive views (Views V2)  → .tribe-common / .tribe-events
 *   Single event (legacy)     → .tribe-events-single (body.single-tribe_events)
 *
 * System: plum only loud color · gold hairlines/marks only · 1px hairlines
 * carry structure · zero radius · zero shadows · micro-labels 11px caps.
 */

/* ============================================================
   1. Tokens
   Divi does not set a body font outside its own modules, so TEC
   markup falls back to Times — the font stack must be explicit.
   Soleil is loaded site-wide by the Typekit kit.
   ============================================================ */
:root {
	--tks-plum: #491245;
	--tks-ink: #0a0a0a;
	--tks-line: #e4e4e4;
	--tks-gold: #d6ba97;
	--tks-warm: #f5f5f1;
	--tks-mute: #6b6660;
	--tks-sans: "soleil", "Soleil", -apple-system, BlinkMacSystemFont, "Segoe UI",
		Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* ============================================================
   2. Base resets inside event scopes
   ============================================================ */
.tribe-common,
.tribe-events-single {
	font-family: var(--tks-sans);
	color: var(--tks-ink);
}

.tribe-common *,
.tribe-events-single * {
	border-radius: 0 !important;
	box-shadow: none !important;
}

/* <address> and <time> ship browser italics/serif defaults */
.tribe-common address,
.tribe-events-single address {
	font-style: normal;
}

/* Native form controls: strip UA chrome, inherit our type */
.tribe-common button,
.tribe-common input,
.tribe-common select,
.tribe-events-single button {
	appearance: none;
	-webkit-appearance: none;
	border: 0;
	background: none;
	font-family: inherit;
	font-size: inherit;
	color: inherit;
	cursor: pointer;
}

.tribe-common a,
.tribe-events-single a {
	color: var(--tks-plum);
	text-decoration: none;
}

.tribe-common a:hover,
.tribe-events-single a:hover {
	color: var(--tks-ink);
}

/* System container — the Divi TB template doesn't constrain the
   events area, so the 1240px editorial measure is set here */
.tribe-events.tribe-common,
#tribe-events-content.tribe-events-single {
	max-width: 1240px;
	margin-left: auto;
	margin-right: auto;
}

/* Header: skeleton runs `row-reverse wrap` — force a clean stack:
   events bar on top, view title below */
/* Header row (Figma update): kicker+title left, search box + tabs
   right, bottom-aligned to the title */
.tribe-events.tribe-common .tribe-events-header {
	display: flex;
	flex-flow: row wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 28px;
	margin: 0 0 24px;
	padding: 0;
	background: transparent;
}

/* Flatten both wrappers so title, search, tabs, and TODAY are all
   direct flex items of the header and can be ordered freely:
   title (1) → search (2) → tabs (3) → TODAY (4). !important because
   skeleton re-asserts display:flex on both at breakpoint-medium. */
.tribe-events.tribe-common .tribe-events-header__events-bar,
.tribe-events.tribe-common .tribe-events-header--has-event-search .tribe-events-header__events-bar,
.tribe-events.tribe-common .tribe-events-c-top-bar,
.tribe-events.tribe-common .tribe-events-header--has-event-search .tribe-events-header__top-bar {
	display: contents !important;
}

.tribe-events.tribe-common .tribe-events-c-top-bar__datepicker-container {
	max-width: none;
}

/* ============================================================
   3. Top bar ("Upcoming" + today)
   TEC's view JS never binds inside the Divi Theme Builder template
   (double-render eats its inline bootstrap), so every JS-only
   control is hidden or neutralized; real links stay.
   ============================================================ */

/* Hero kicker (Figma: plum 11px caps label + 56px gold tick, 14px gap,
   22px above the title) — pure CSS so it survives AJAX re-renders.
   The gold tick is a background gradient on the pseudo-element. */
.tribe-events.tribe-common .tribe-events-c-top-bar__datepicker {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 22px;
	margin: 0;
}

.tribe-events.tribe-common .tribe-events-c-top-bar__datepicker::before {
	content: 'EVENTS CALENDAR';
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	line-height: 1;
	color: var(--tks-plum);
	padding-right: 70px; /* 14px gap + 56px tick */
	background: linear-gradient(var(--tks-gold), var(--tks-gold)) right center / 56px 1px no-repeat;
}

/* Datepicker toggle = dead JS → static view title, display type
   (Figma: 72px Extra Bold, -2.5% tracking, 102% line height) */
.tribe-common button.tribe-events-c-top-bar__datepicker-button {
	font-size: clamp(40px, 5vw, 72px);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.02;
	color: var(--tks-ink);
	padding: 0;
	pointer-events: none;
	cursor: default;
}

.tribe-common .tribe-events-c-top-bar__datepicker-button svg {
	display: none; /* caret implies a dropdown that can't open */
}

/* Prev/next arrows are JS-driven buttons that stay disabled in this
   setup — hide them. Compound selector + !important required: when TEC
   adds breakpoint classes (AJAX re-render OR window resize), skeleton
   re-shows the nav with `display: block !important` at (0,3,0). */
.tribe-events.tribe-common .tribe-events-c-top-bar__nav {
	display: none !important;
}

/* TEC's screen-reader helpers (full-width content-title block, 1px
   search h2) become flex items once the wrappers are flattened — take
   them out of the flow, keep them readable to assistive tech */
.tribe-events.tribe-common .tribe-events-header__content-title,
.tribe-events.tribe-common .tribe-events-c-events-bar > .tribe-common-a11y-visual-hide {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0);
}

/* Header row order: title leads and absorbs space; TODAY closes the
   tab group at the right */
.tribe-events.tribe-common .tribe-events-c-top-bar__datepicker,
.tribe-events.tribe-common .tribe-events-c-top-bar__datepicker-container {
	order: 1;
	flex: 1 1 auto;
	min-width: 0;
	max-width: none;
}

.tribe-events.tribe-common a.tribe-events-c-top-bar__today-button {
	order: 4;
	flex: 0 0 auto;
	width: auto !important; /* skeleton's mobile base makes it width:100% */
	margin: 0 0 22px; /* same seat as the view tabs */
}

/* TEC ships TODAY with its a11y-hide class until its (broken-here) JS
   decides to show it — force it visible from first paint in all states */
.tribe-events.tribe-common a.tribe-events-c-top-bar__today-button.tribe-common-a11y-hidden {
	display: inline-block !important;
	visibility: visible !important;
	position: static !important;
	width: auto !important;
	height: auto !important;
	clip: auto !important;
	clip-path: none !important;
	overflow: visible !important;
}

/* Kill the medium-state padding skeleton puts on the title button */
.tribe-events.tribe-common button.tribe-events-c-top-bar__datepicker-button {
	padding: 0;
	margin: 0;
}

/* JS-only actions placeholder — 0×0 but in-flow, adds a phantom flex
   gap before the title once the wrappers are flattened */
.tribe-events.tribe-common .tribe-events-c-top-bar__actions {
	display: none !important;
}

/* TEC's inner container swaps gutters 19px→42px when breakpoint
   classes land, shifting the whole page on resize — our 1240px root
   is the grid, so drop TEC's gutters on desktop */
@media (min-width: 768px) {
	.tribe-events.tribe-common .tribe-common-l-container {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

/* "Today" is a real link — styled as a fourth tab alongside
   List / Month / Day (action, not a view, so no active underline) */
.tribe-common a.tribe-events-c-top-bar__today-button {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tks-mute);
	border: 0;
	background: transparent;
	padding: 6px 0;
	border-bottom: 2px solid transparent;
	line-height: 1;
}

.tribe-common a.tribe-events-c-top-bar__today-button:hover {
	color: var(--tks-ink);
	background: transparent;
}

/* The view title shows TEC's mobile span ("8/2026") by default —
   swap to the desktop span ("August 2026") */
.tribe-events.tribe-common .tribe-events-c-top-bar__datepicker-mobile {
	display: none !important;
}

.tribe-events.tribe-common .tribe-events-c-top-bar__datepicker-desktop {
	display: inline !important;
	visibility: visible !important;
	position: static !important;
	width: auto !important;
	height: auto !important;
	clip: auto !important;
	clip-path: none !important;
	overflow: visible !important;
}

/* Bottom prev/next (real links in list view) */
.tribe-common .tribe-events-c-nav {
	border-top: 1px solid var(--tks-ink);
	padding-top: 18px;
	margin-top: 8px;
}

.tribe-common .tribe-events-c-nav__list {
	list-style: none;
	display: flex;
	justify-content: space-between;
	margin: 0;
	padding: 0;
}

.tribe-common .tribe-events-c-nav__prev,
.tribe-common .tribe-events-c-nav__next,
.tribe-common .tribe-events-c-nav__today {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tks-ink);
}

.tribe-common a.tribe-events-c-nav__prev:hover,
.tribe-common a.tribe-events-c-nav__next:hover {
	color: var(--tks-plum);
}

.tribe-common button.tribe-events-c-nav__prev:disabled,
.tribe-common button.tribe-events-c-nav__next:disabled {
	color: var(--tks-mute);
	cursor: default;
}

/* ============================================================
   4. Events bar — locked-down, JS-free layout.
   The search form is a native GET form and the view "tabs" are
   real links; expose both permanently, hide the dead toggles.
   ============================================================ */
/* The bar wrapper is display:contents (see header rules) — its former
   layout duties now live on its children below */

/* Dead JS toggles */
.tribe-common button.tribe-events-c-events-bar__search-button,
.tribe-common button.tribe-events-c-view-selector__button {
	display: none !important;
}

/* Force the search form visible (skeleton hides it behind the toggle).
   Compound prefix: at breakpoint-medium skeleton re-grows the container
   with `flex: 1 1 auto` at (0,3,0). */
.tribe-events.tribe-common .tribe-events-c-events-bar__search-container {
	order: 2;
	margin: 0 0 10px; /* optical seat on the title baseline */
}

.tribe-events.tribe-common .tribe-events-c-events-bar__search-container,
.tribe-events.tribe-common .tribe-events-c-events-bar__search {
	display: block !important;
	position: static !important;
	flex: 0 0 auto;
	width: auto;
	border: 0;
	background: transparent;
	padding: 0;
}

.tribe-events.tribe-common form.tribe-events-c-search {
	display: flex;
	align-items: center;
	gap: 0;
	width: auto;
}

.tribe-events.tribe-common .tribe-events-c-search__input-group {
	flex: 0 0 auto;
	display: flex;
	width: auto;
	max-width: none;
}

.tribe-events.tribe-common .tribe-events-c-search__input-control {
	flex: 0 0 auto;
	width: auto;
	max-width: none;
	position: relative;
	margin: 0;
	padding: 0;
}

/* Redundant visual label + inline icon — the placeholder carries it */
.tribe-common .tribe-events-c-search .tribe-common-form-control-text__label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.tribe-common .tribe-events-c-search__input-control svg {
	display: none;
}

/* Enclosed, filled field (Figma update) — reads unmistakably as an
   input, can't be confused with the system's hairline rules */
.tribe-common input.tribe-events-c-search__input {
	width: 280px;
	border: 0;
	background: var(--tks-warm);
	font-size: 15px;
	padding: 14px 18px;
	color: var(--tks-ink);
}

.tribe-common input.tribe-events-c-search__input::placeholder {
	color: var(--tks-mute);
}

.tribe-common input.tribe-events-c-search__input:focus {
	outline: 1px solid var(--tks-plum);
	outline-offset: 0;
}

/* No visible submit (Figma update) — Enter submits; the button stays
   in the DOM so implicit form submission keeps working */
.tribe-events.tribe-common .tribe-common-c-btn.tribe-events-c-search__button {
	display: none !important;
}

/* View tabs — real links, always visible, caps labels; they sit right
   beside the search box, with TODAY closing the group after them. */
.tribe-common .tribe-events-c-events-bar__views {
	order: 3;
	margin: 0 0 22px; /* optical center against the search box */
	flex: 0 0 auto;
	display: flex;
	align-items: center;
}

.tribe-events.tribe-common .tribe-events-c-events-bar__views > h3 {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.tribe-events.tribe-common .tribe-events-c-view-selector,
.tribe-events.tribe-common .tribe-events-c-view-selector__content,
.tribe-events.tribe-common .tribe-events-c-view-selector__list {
	margin: 0;
	padding: 0;
}

.tribe-events.tribe-common .tribe-events-c-view-selector__list {
	align-items: center;
}

/* Skeleton gives the selector its icon-mode width (29px) — let it size
   to the tabs so they stay inside the bar */
.tribe-events.tribe-common .tribe-events-c-view-selector,
.tribe-events.tribe-common .tribe-events-c-events-bar__views {
	width: auto;
	min-width: 0;
	max-width: none;
}

.tribe-common .tribe-events-c-view-selector__content {
	display: block !important;
	position: static !important;
	transform: none !important; /* skeleton's dropdown translate survives the position override */
	border: 0;
	background: transparent;
	padding: 0;
}

.tribe-common .tribe-events-c-view-selector__list {
	list-style: none;
	display: flex;
	gap: 28px;
	margin: 0;
	padding: 0;
}

.tribe-common .tribe-events-c-view-selector__list-item-icon {
	display: none;
}

.tribe-common a.tribe-events-c-view-selector__list-item-link {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tks-mute);
	line-height: 1;
	padding: 6px 0;
	border-bottom: 2px solid transparent;
}

.tribe-common a.tribe-events-c-view-selector__list-item-link:hover {
	color: var(--tks-ink);
}

.tribe-common .tribe-events-c-view-selector__list-item--active a.tribe-events-c-view-selector__list-item-link {
	color: var(--tks-ink);
	border-bottom-color: var(--tks-plum);
}

/* Stack the bar on small screens: full-width search under the title */
@media (max-width: 767px) {
	.tribe-common .tribe-events-c-events-bar {
		flex-direction: column;
		align-items: stretch;
		gap: 18px;
		width: 100%;
	}

	.tribe-events.tribe-common .tribe-events-c-events-bar__search-container,
	.tribe-events.tribe-common form.tribe-events-c-search,
	.tribe-events.tribe-common .tribe-events-c-search__input-group,
	.tribe-events.tribe-common .tribe-events-c-search__input-control {
		width: 100%;
		flex: 1 1 auto;
	}

	.tribe-common input.tribe-events-c-search__input {
		width: 100%;
	}

	.tribe-common .tribe-events-c-events-bar__views {
		margin-left: 0;
	}
}

/* ============================================================
   5. List view — editorial rows: text left, plate photo right
   ============================================================ */

/* Month separator → micro-label on an ink rule.
   Compound prefix required (skeleton zeroes the border at higher
   specificity); the label is a bare h3 in this TEC version. */
.tribe-events.tribe-common .tribe-events-calendar-list__month-separator {
	border-bottom: 1px solid var(--tks-ink);
	padding-bottom: 10px;
	margin-top: 56px;
}

.tribe-events.tribe-common .tribe-events-calendar-list__month-separator h3,
.tribe-events.tribe-common .tribe-events-calendar-list__month-separator-text {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tks-mute);
	margin: 0;
	padding: 0;
}

/* Row: hairline under each event. The date tag is a chip OVERLAID on
   the image's top-left corner (Figma events redesign 2026-08-14). */
.tribe-events.tribe-common .tribe-events-calendar-list__event-row {
	border-bottom: 1px solid var(--tks-line);
	padding: 48px 0;
	margin: 0;
	display: flex;
	flex-flow: row nowrap;
	gap: 0;
	position: relative;
}

.tribe-events.tribe-common .tribe-events-calendar-list__event-date-tag {
	position: absolute;
	top: 48px; /* match row padding-top so it sits on the image corner */
	left: 0;
	z-index: 1;
	width: auto;
	flex: none;
	background: var(--tks-warm);
	padding: 12px 18px 14px;
	margin: 0;
}

.tribe-events.tribe-common .tribe-events-calendar-list__event-wrapper {
	flex: 1 1 0;
	min-width: 0;
	padding: 0;
}

/* Kill the g-row negative gutters that pull content over the date rail */
.tribe-events.tribe-common .tribe-events-calendar-list__event.tribe-common-g-row--gutters {
	margin-left: 0;
	margin-right: 0;
}

/* Article holds image-wrapper + details: flip to text-left / photo-right.
   .tribe-common prefix required — skeleton's g-col rules outrank
   single-class selectors. */
.tribe-events.tribe-common .tribe-events-calendar-list__event {
	display: flex;
	flex-flow: row nowrap; /* skeleton's mobile-first base is a column */
	align-items: flex-start;
	gap: 32px;
}

/* Image LEFT, details RIGHT (Figma events redesign 2026-08-14) */
.tribe-events.tribe-common .tribe-events-calendar-list__event-details {
	order: 2;
	flex: 1 1 0;
	min-width: 0;
	width: auto;
	max-width: none;
	padding: 0;
}

.tribe-events.tribe-common .tribe-events-calendar-list__event-featured-image-wrapper {
	order: 1;
	flex: 0 0 40%;
	width: 40%;
	max-width: 40%;
	margin: 0;
	padding: 0;
}

.tribe-common .tribe-events-calendar-list__event-featured-image-wrapper img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

@media (max-width: 767px) {
	.tribe-events.tribe-common .tribe-events-calendar-list__event {
		flex-direction: column;
		gap: 20px;
	}

	.tribe-events.tribe-common .tribe-events-calendar-list__event-featured-image-wrapper {
		flex-basis: auto;
		width: 100%;
		max-width: none;
	}
}

/* Featured events: 2px plum top rule (same device as distinctives cards) */
.tribe-events-calendar-list__event-row--featured .tribe-events-calendar-list__event {
	border-top: 2px solid var(--tks-plum);
	padding-top: 24px;
}

/* Date tag — caps weekday, plum numeral */
.tribe-events-calendar-list__event-date-tag-weekday {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tks-mute);
}

.tribe-events-calendar-list__event-date-tag-daynum {
	font-size: 34px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--tks-plum);
}

/* Title */
.tribe-events-calendar-list__event-title {
	margin: 6px 0 10px;
}

.tribe-events-calendar-list__event-title,
.tribe-events-calendar-list__event-title-link {
	font-size: clamp(20px, 2.2vw, 28px);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--tks-ink);
}

.tribe-events-calendar-list__event-title-link:hover {
	color: var(--tks-plum);
}

/* Meta lines */
.tribe-events-calendar-list__event-datetime-wrapper {
	font-size: 13px;
	color: var(--tks-mute);
	margin-bottom: 2px;
}

.tribe-events-calendar-list__event-venue {
	font-size: 13px;
	color: var(--tks-mute);
}

.tribe-events-calendar-list__event-venue-title {
	font-weight: 700;
	color: var(--tks-ink);
}

/* Category tag → quiet micro-label */
.tec-events-calendar-list__event-categories {
	margin-top: 8px;
}

.tec-events-calendar-list__category {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--tks-mute);
	background: none;
	border: 0;
	padding: 0;
}

/* TEC ships the excerpt with .tribe-common-a11y-hidden — the redesign
   wants it visible, so force it on */
.tribe-events.tribe-common .tribe-events-calendar-list__event-description {
	display: block !important;
	visibility: visible !important;
	position: static !important;
	width: auto !important;
	height: auto !important;
	clip: auto !important;
	clip-path: none !important;
	overflow: visible !important;
	white-space: normal !important;
	font-size: 15px;
	line-height: 1.65;
	color: var(--tks-mute);
	margin-top: 14px;
}

.tribe-events.tribe-common .tribe-events-calendar-list__event-description p {
	margin: 0;
}

.tribe-events-calendar-list__event-cost {
	font-size: 13px;
	font-weight: 700;
	color: var(--tks-ink);
	margin-top: 10px;
}

/* ============================================================
   5b. Day view — mirrors the list rows (image left 40%, details
   right), time separators match the month micro-labels
   ============================================================ */
.tribe-events.tribe-common .tribe-events-calendar-day__time-separator {
	border-bottom: 1px solid var(--tks-ink);
	padding-bottom: 10px;
	margin-top: 56px;
}

.tribe-events.tribe-common .tribe-events-calendar-day__time-separator-heading {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tks-mute);
	margin: 0;
	padding: 0;
}

.tribe-events.tribe-common .tribe-events-calendar-day__event {
	display: block; /* skeleton makes the article a flex row, letting the content wrapper balloon */
	border-bottom: 1px solid var(--tks-line);
	padding: 48px 0;
	margin: 0;
}

.tribe-events.tribe-common .tribe-events-calendar-day__event-content {
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-start;
	gap: 32px;
	margin: 0;
	padding: 0;
	width: auto;
	max-width: none;
}

.tribe-events.tribe-common .tribe-events-calendar-day__event-featured-image-wrapper {
	order: 1;
	flex: 0 0 40%;
	width: 40%;
	max-width: 40%;
	min-width: 0;
	margin: 0;
	padding: 0;
}

.tribe-events.tribe-common .tribe-events-calendar-day__event-featured-image-wrapper img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.tribe-events.tribe-common .tribe-events-calendar-day__event-details {
	order: 2;
	flex: 1 1 0;
	min-width: 0;
	width: auto;
	max-width: none;
	padding: 0;
}

/* Datetime reads above the title, as in the list */
.tribe-events.tribe-common .tribe-events-calendar-day__event-header {
	display: flex;
	flex-direction: column;
}

.tribe-events.tribe-common .tribe-events-calendar-day__event-datetime-wrapper {
	order: -1;
	font-size: 13px;
	color: var(--tks-mute);
	margin-bottom: 2px;
}

.tribe-events.tribe-common .tribe-events-calendar-day__event-title {
	margin: 6px 0 10px;
}

.tribe-events.tribe-common .tribe-events-calendar-day__event-title,
.tribe-events.tribe-common a.tribe-events-calendar-day__event-title-link {
	font-size: clamp(20px, 2.2vw, 28px);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--tks-ink);
}

.tribe-events.tribe-common a.tribe-events-calendar-day__event-title-link:hover {
	color: var(--tks-plum);
}

.tribe-events.tribe-common .tribe-events-calendar-day__event-venue {
	font-size: 13px;
	color: var(--tks-mute);
}

.tribe-events.tribe-common .tribe-events-calendar-day__event-venue-title {
	font-weight: 700;
	color: var(--tks-ink);
}

.tribe-events.tribe-common .tribe-events-calendar-day__event-description {
	display: block !important;
	visibility: visible !important;
	position: static !important;
	width: auto !important;
	height: auto !important;
	clip: auto !important;
	clip-path: none !important;
	overflow: visible !important;
	white-space: normal !important;
	font-size: 15px;
	line-height: 1.65;
	color: var(--tks-mute);
	margin-top: 14px;
}

@media (max-width: 767px) {
	.tribe-events.tribe-common .tribe-events-calendar-day__event-content {
		flex-direction: column;
		gap: 20px;
	}

	.tribe-events.tribe-common .tribe-events-calendar-day__event-featured-image-wrapper {
		flex-basis: auto;
		width: 100%;
		max-width: none;
	}
}

/* ============================================================
   6. Subscribe / Add-to-calendar dropdown (archive AND single —
   the single page reuses this v2 component)
   ============================================================ */
.tribe-events-c-subscribe-dropdown__container,
.tribe-events-c-subscribe-dropdown {
	border: 0;
	background: transparent;
	padding: 0;
	margin: 0;
}

/* The "button" is a div wrapping a native button — style the div */
.tribe-common .tribe-events-c-subscribe-dropdown__button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	border: 1px solid var(--tks-ink);
	background: transparent;
	padding: 12px 22px;
	width: auto;
}

.tribe-common .tribe-events-c-subscribe-dropdown__button:hover {
	border-color: var(--tks-plum);
	background: var(--tks-plum);
}

.tribe-common .tribe-events-c-subscribe-dropdown__button:hover button,
.tribe-common .tribe-events-c-subscribe-dropdown__button:hover svg {
	color: #fff;
	fill: #fff;
}

.tribe-common .tribe-events-c-subscribe-dropdown__button button,
.tribe-common .tribe-events-c-subscribe-dropdown__button-text {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tks-ink);
	padding: 0;
}

/* Open dropdown panel */
.tribe-events-c-subscribe-dropdown__content {
	border: 1px solid var(--tks-line);
	background: #fff;
}

.tribe-events-c-subscribe-dropdown__list {
	list-style: none;
	margin: 0;
	padding: 8px 0;
}

.tribe-events-c-subscribe-dropdown__list-item a {
	display: block;
	padding: 8px 18px;
	font-size: 13px;
	color: var(--tks-ink);
}

.tribe-events-c-subscribe-dropdown__list-item a:hover {
	color: var(--tks-plum);
	background: var(--tks-warm);
}

/* ============================================================
   7. Single event (legacy template)
   ============================================================ */

/* Back link → micro-label */
.tribe-events-back {
	margin-bottom: 40px;
}

.tribe-events-back a {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tks-mute);
}

.tribe-events-back a:hover {
	color: var(--tks-plum);
}

/* Title — page-level display type */
.tribe-events-single-event-title {
	font-size: clamp(34px, 4.6vw, 64px);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.02;
	color: var(--tks-ink);
	margin: 0 0 18px;
}

/* Schedule line (date/time + cost) — quiet meta under the title */
.tribe-events-schedule {
	margin: 0 0 36px;
}

.tribe-events-schedule h2,
.tribe-events-schedule .tribe-events-schedule__datetime {
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0;
	color: var(--tks-mute);
	margin: 0;
}

.tribe-events-schedule .tribe-events-cost {
	font-weight: 700;
	color: var(--tks-ink);
}

/* Featured image — plate crop, hairline below, controlled spacing */
.tribe-events-single .tribe-events-event-image {
	margin: 0 0 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--tks-line);
}

.tribe-events-single .tribe-events-event-image img {
	display: block;
	width: 100%;
	height: auto;
}

/* Description — collapse when empty (kills the dead gap on
   image-only events) */
.tribe-events-single-event-description {
	font-size: 16px;
	line-height: 1.65;
	color: var(--tks-ink);
	margin: 32px 0;
}

.tribe-events-single-event-description:empty {
	display: none;
	margin: 0;
}

/* Meta block (Details / Venue / Organizer) — plate-style */
.tribe-events-event-meta {
	border-top: 1px solid var(--tks-ink);
	border-bottom: 1px solid var(--tks-line);
	background: transparent;
	font-size: 14px;
	color: var(--tks-mute);
	margin: 40px 0;
	padding: 26px 0 30px;
}

.tribe-events-single-section-title {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tks-ink);
	margin: 0 0 16px;
}

.tribe-events-event-meta dt {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--tks-mute);
	margin: 12px 0 2px;
}

.tribe-events-event-meta dd {
	color: var(--tks-ink);
	margin: 0;
}

.tribe-events-event-meta a {
	color: var(--tks-plum);
}

/* Prev/next event footer nav — hairline top, quiet links */
.tribe-events-single .tribe-events-nav-pagination {
	border-top: 1px solid var(--tks-line);
	padding-top: 20px;
	margin-top: 8px;
}

.tribe-events-single .tribe-events-sub-nav {
	list-style: none;
	display: flex;
	justify-content: space-between;
	gap: 24px;
	margin: 0;
	padding: 0;
}

.tribe-events-single .tribe-events-sub-nav a {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--tks-ink);
}

.tribe-events-single .tribe-events-sub-nav a:hover {
	color: var(--tks-plum);
}

.tribe-events-single .tribe-events-sub-nav span {
	color: var(--tks-gold);
}

/* ============================================================
   8. Month view — force the DESKTOP grid (TEC ships both variants;
   the mobile one is a dead-JS button + dot icons)
   ============================================================ */
.tribe-events.tribe-common .tribe-events-calendar-month__day-cell--mobile {
	display: none !important;
}

.tribe-events.tribe-common .tribe-events-calendar-month__day-cell--desktop {
	display: block !important;
	visibility: visible !important;
	position: static !important;
	width: auto !important;
	height: auto !important;
	clip: auto !important;
	clip-path: none !important;
	overflow: visible !important;
	padding: 10px 12px 14px;
}

.tribe-events.tribe-common .tribe-events-calendar-month {
	width: 100%;
	border-collapse: collapse;
}

/* Weekday header — micro-labels on an ink rule */
.tribe-events.tribe-common .tribe-events-calendar-month__header-column {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tks-mute);
	text-align: left;
	padding: 0 12px 10px;
	border-bottom: 1px solid var(--tks-ink);
}

/* Day cells — hairline grid, generous height */
.tribe-events.tribe-common .tribe-events-calendar-month__day {
	border: 1px solid var(--tks-line);
	min-height: 120px;
	height: 120px;
	vertical-align: top;
	padding: 0;
}

.tribe-events.tribe-common .tribe-events-calendar-month__day-date {
	font-size: 12px;
	font-weight: 700;
	color: var(--tks-mute);
	margin: 0 0 8px;
}

/* Days outside the current month recede */
.tribe-events.tribe-common .tribe-events-calendar-month__day--other-month .tribe-events-calendar-month__day-date {
	color: var(--tks-line);
}

/* Today — plum numeral */
.tribe-events.tribe-common .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date,
.tribe-events.tribe-common .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link {
	color: var(--tks-plum);
}

/* Events inside cells — quiet titles, plum on hover */
.tribe-events.tribe-common .tribe-events-calendar-month__calendar-event {
	margin: 0 0 8px;
}

.tribe-events.tribe-common .tribe-events-calendar-month__calendar-event-datetime {
	font-size: 10px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--tks-mute);
}

.tribe-events.tribe-common .tribe-events-calendar-month__calendar-event-title,
.tribe-events.tribe-common a.tribe-events-calendar-month__calendar-event-title-link {
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--tks-ink);
}

.tribe-events.tribe-common a.tribe-events-calendar-month__calendar-event-title-link:hover {
	color: var(--tks-plum);
}

/* Multiday bars — plum */
.tribe-events.tribe-common .tribe-events-calendar-month__multiday-event-bar {
	background: var(--tks-plum);
}

.tribe-events.tribe-common .tribe-events-calendar-month__multiday-event-bar-title {
	color: #fff;
	font-size: 11px;
	font-weight: 700;
}

/* "+2 more" link — micro-label */
.tribe-events.tribe-common a.tribe-events-calendar-month__more-events-link {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tks-plum);
}

/* Mobile-day drawer markup (belongs to the dead mobile variant) */
.tribe-events.tribe-common .tribe-events-calendar-month-mobile-events {
	display: none !important;
}
