/* ---------- Single event ---------- */

/* Screen-reader-only text */
.sab-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Clearfix for floated rows */
.sab-cf::after { content: ""; display: table; clear: both; }

/* Headings in Feed Store */
.sab-event h1,
.sab-event h2,
.sab-event h3,
.sab-event h4,
.sab-event h5,
.sab-event h6 {
	font-family: "Feed Store", serif !important;
}

/* Text links inside content areas — not buttons */
.sab-event-intro a:not([class]),
.sab-event-moreinfo a:not([class]),
.sab-event-book-desc a:not([class]),
.sab-lineup-bio a:not([class]),
.sab-event-body a:not([class]) {
	color: #3F5461 !important;
	text-decoration: underline !important;
}
.sab-event-intro a:not([class]):hover,
.sab-event-moreinfo a:not([class]):hover,
.sab-event-book-desc a:not([class]):hover,
.sab-lineup-bio a:not([class]):hover,
.sab-event-body a:not([class]):hover {
	color: #506A7A !important;
}

/* Event name subtitle (unchanged — not a heading) */
.sab-event-name {
	text-transform: uppercase;
	font-size: 1.2rem;
	font-weight: 700;
	color: #332E2B;
	margin: .25rem 0 1rem;
}

/* Meta strip — line top and bottom, items left, actions right */
.sab-event-meta {
	padding: 1rem 0;
	border-top: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	margin: 0 0 1.5rem;
}
.sab-event-meta-row {
	display: flex !important;
	flex-wrap: nowrap;
	align-items: center;
	gap: 2rem;
}
.sab-event-meta-items {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem 2.5rem;
	flex: 1 1 auto;
	min-width: 0;
}
.sab-event-meta-item {
	display: flex;
	flex-direction: column;
	gap: .2rem;
	flex: 0 0 auto;
}
.sab-event-meta-label {
	font-size: .7em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	opacity: .45;
}
.sab-event-meta-value { font-size: .95em; }
.sab-event-meta-actions {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	flex: 0 0 auto;
}
.sab-event-directions-link { font-size: .8rem; color: #3F5461; text-decoration: underline; }
.sab-event-directions-link:hover { color: #506A7A; }

/* Ticket button — understated */
.sab-event-ticket-btn {
	display: inline-block;
	font-size: .8rem;
	font-weight: 700;
	color: #3F5461;
	background: #fff;
	border: 1px solid #3F5461;
	padding: .45em 1.1em;
	text-decoration: none;
	white-space: nowrap;
}
.sab-event-ticket-btn:hover { background: #E5DBC2; color: #332E2B; }

/* Sold Out badge */
.sab-event-soldout {
	display: inline-block;
	font-size: .9rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #fff;
	background: #332E2B;
	padding: .5em 1.1em;
	white-space: nowrap;
}

/* Past-event line */
.sab-event-passed {
	display: inline-block;
	font-size: .9rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: #9B9B9B;
	white-space: nowrap;
    margin: 1rem 0;
}

/* Feature ticket button + custom button, inside the description */
.sab-event-intro-ticket { margin: 1.25rem 0 0; }
.sab-event-intro-btn { margin: 1.25rem 0 0; }
.sab-event-ticket-btn--feature,
.sab-event-custom-btn {
	display: inline-block;
	font-size: 1.2rem;
	font-weight: 700;
	color: #fff;
	background: #3F5461;
	border: 1px solid #3F5461;
	padding: .7em 2em;
	text-decoration: none;
}
.sab-event-ticket-btn--feature:hover,
.sab-event-custom-btn:hover { color: #fff; background: #506A7A; border-color: #506A7A; }

/* Hero — featured image left, description right */
.sab-event-hero { margin: 1.5rem 0 2rem; }
.sab-event-image { float: left; width: 46%; margin: 0 4% 1rem 0; }
.sab-event-image img { display: block; width: 100%; height: auto; }
.sab-event-intro { float: right; width: 50%; }

/* Section headings — larger, with separation */
.sab-event-details section { margin: 0 0 2rem; }
.sab-event-details h2 {
	margin: 2.5rem 0 1.5rem;
	padding-bottom: .4rem;
	text-transform: uppercase;
	font-size: 1.6rem;
	font-weight: 700;
	color: #332E2B;
	border-bottom: 1px solid #332E2B;
}

/* Video embed — callout box, video floated left, caption right */
.sab-event-video {
	background: #F0F5FA;
	padding: 1.5rem;
	margin: 0 0 2rem;
}
.sab-event-video-frame {
	float: left;
	width: 33%;
	aspect-ratio: 16 / 9;
	margin: 0;
}
.sab-event-video-frame iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}
.sab-event-video-caption {
	float: right;
	width: 66%;
	padding-left: 1.25rem;
	font-family: "Feed Store", serif;
	font-size: 1.75rem;
	line-height: 1.25;
	color: #332E2B;
}

/* More Info — optional callout */
.sab-event-moreinfo--callout {
	background: #F0F5FA;
	border-left: 4px solid #3F5461;
	padding: 1.25rem 1.5rem;
	font-size: 1.05rem;
	color: #332E2C;
}
.sab-event-moreinfo--callout > *:first-child { margin-top: 0; }
.sab-event-moreinfo--callout > *:last-child { margin-bottom: 0; }

/* Lineup — photo left (caption beneath, centered), biography right */
.sab-lineup-row { margin: 0 0 3rem; }
.sab-lineup-photo {
	float: left;
	width: 33%;
	margin: 0 4% 1rem 0;
}
.sab-lineup-photo img { display: block; width: 100%; height: auto; }
.sab-lineup-photo figcaption {
	padding: 1rem;
	font-size: .75rem;
	line-height: 1.4;
	text-align: center;
	color: #9B9B9B;
}
.sab-lineup-body { float: right; width: 63%; }
.sab-lineup-name { color: #332E2C; margin: 0 0 .5rem; }
.sab-lineup-time { margin-left: .5rem; font-weight: 400; font-size: .85em; color: #9B9B9B; }
.sab-lineup-web { margin: .75rem 0 0; }
.sab-lineup-web a {
	display: inline-block;
	font-size: .7rem;
	font-weight: 600;
	color: #9B9B9B;
	border: 1px solid #9B9B9B;
	padding: .3em .8em;
	text-decoration: none;
	letter-spacing: .03em;
}
.sab-lineup-web a:hover { color: #3F5461; border-color: #3F5461; }

/* About the book — cover left 50%, info right 50% */
.sab-event-book-cover {
	float: left;
	width: 50%;
	padding-right: 1.5rem;
	margin: 0 0 1rem 0;
}
.sab-event-book-cover img { display: block; width: 100%; height: auto; }
.sab-event-book-body { float: right; width: 50%; }
.sab-event-book-title { margin: 0 0 .25rem; color: #332E2C; }
.sab-event-book-title a { color: #3F5461; text-decoration: none; }
.sab-event-book-subtitle { margin: 0 0 .5rem; font-style: italic; color: #9B9B9B; }
.sab-event-book-price { margin: 0 0 .75rem; font-weight: 700; color: #332E2C; }
.sab-event-book-desc { margin: 0 0 1rem; }
.sab-event-book-btn {
	display: inline-block;
	font-weight: 700;
	color: #fff;
	background: #3F5461;
	border: 1px solid #3F5461;
	padding: .55em 1.4em;
	text-decoration: none;
}
.sab-event-book-btn:hover { background: #506A7A; border-color: #506A7A; }

/* Bottom ticket CTA */
.sab-event-cta {
	margin: 3rem 0 0;
	padding: 2.25rem 1.5rem;
	background: #3F5461;
	text-align: center;
}
.sab-event-cta-text {
	margin: 0 0 1.15rem;
	font-size: 1.35rem;
	font-weight: 700;
	color: #fff;
}
.sab-event-cta-btn {
	display: inline-block;
	font-size: 1rem;
	font-weight: 700;
	color: #332E2B;
	background: #E5DBC2;
	border: 1px solid #E5DBC2;
	padding: .65em 1.8em;
	text-decoration: none;
}
.sab-event-cta-btn:hover { background: #fff; border-color: #fff; }

/* Back to all tour dates */
.sab-event-back { margin: 2.5rem 0 0; }
.sab-event-back a { font-size: .9rem; color: #3F5461; text-decoration: none; }
.sab-event-back a:hover { color: #506A7A; text-decoration: underline; }

/* Stack on small screens */
@media (max-width: 782px) {
	.sab-event-image,
	.sab-event-intro,
	.sab-lineup-photo,
	.sab-lineup-body,
	.sab-event-book-cover,
	.sab-event-book-body,
	.sab-event-video-frame,
	.sab-event-video-caption {
		float: none;
		width: 100%;
		margin: 0 0 1rem 0;
	}
	.sab-event-book-cover { padding-right: 0; }
}

@media (max-width: 600px) {
	.sab-event-meta-row { flex-wrap: wrap; }
	.sab-event-meta-items { gap: 1rem 2rem; }
	.sab-event-meta-actions { width: 100%; }
}

/* Breadcrumb */
.sab-event-crumbs {
	margin: 0 0 1rem;
	font-size: .8rem;
	color: #9B9B9B;
}
.sab-event-crumbs a {
	color: #3F5461;
	text-decoration: none;
}
.sab-event-crumbs a:hover {
	color: #506A7A;
	text-decoration: underline;
}
.sab-event-crumbs-sep { margin: 0 .4rem; opacity: .5; }
.sab-event-crumbs-current { color: #9B9B9B; }