/* Single event detail page — TROTB */
.single-tribe_events #tribe-events-pg-template {
	max-width: 100%;
	padding: 0;
}

.single-tribe_events .trotb-ev-single #trotb-events-single-root {
	/* Avoid overflow-x: clip — it hides the related-events carousel’s full-bleed breakout */
	max-width: 100%;
	box-sizing: border-box;
}

.trotb-ev-single .trotb-ev-hero {
	--trotb-hero-cream: #f7f1eb;
	position: relative;
	min-height: 440px;
	padding: 50px 0;
	color: #1e3558;
	overflow: hidden;
	width: 100%;
	max-width: 100%;
	isolation: isolate;
	background-color: var(--trotb-hero-cream);
	box-sizing: border-box;
}

.trotb-ev-single .trotb-ev-hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	background-color: var(--trotb-hero-cream);
	background-image: var(--trotb-hero-bg, none);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

.trotb-ev-single .trotb-ev-hero--placeholder .trotb-ev-hero__media {
	background-image:
		linear-gradient(135deg, #efe4da 0%, #faf5f1 52%, #e8dbd2 100%);
}

/* Readability + “left column” over full-bleed photo */
.trotb-ev-single .trotb-ev-hero__scrim {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(
		105deg,
		rgb(247 241 235 / 0.94) 0%,
		rgb(247 241 235 / 0.78) min(38%, 420px),
		rgb(247 241 235 / 0.28) 52%,
		transparent 72%
	);
}

.trotb-ev-single .trotb-ev-hero--placeholder .trotb-ev-hero__scrim {
	background: linear-gradient(
		105deg,
		rgb(247 241 235 / 0.55) 0%,
		transparent 85%
	);
}

/* Full-width row aligned with site container; text block pinned left */
.trotb-ev-single .trotb-ev-hero__inner.nicdark_container {
	position: relative;
	z-index: 3;
	box-sizing: border-box;
	width: min(1200px, 92%);
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding: 28px min(12px, 4vw) 32px;
	text-align: left;
}

.trotb-ev-single .trotb-ev-hero__content {
	max-width: min(600px, 56vw);
	margin-left: 0;
	margin-right: auto;
	padding: 20px 22px 24px;
	background: rgb(255 255 255 / 0.45);
	border-radius: 8px;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}

@media (max-width: 859px) {
	.trotb-ev-single .trotb-ev-hero {
		padding: 40px 0;
		min-height: 100%;
	}

	.trotb-ev-single .trotb-ev-hero__scrim {
		background: linear-gradient(
			to bottom,
			rgb(247 241 235 / 0.97) 0%,
			rgb(247 241 235 / 0.85) min(68%, 420px),
			rgb(247 241 235 / 0.2) 100%
		);
	}

	.trotb-ev-single .trotb-ev-hero__inner.nicdark_container {
		padding: 0;
	}

	.trotb-ev-single .trotb-ev-hero__content {
		max-width: 100%;
	}

	.trotb-ev-single .trotb-ev-quickfacts {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px 16px;
	}

	.trotb-ev-carousel-next,
	.trotb-ev-carousel-prev {
		transform: scale(0.92);
	}
}

.trotb-ev-single .trotb-ev-back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #a86b3a;
	text-decoration: none;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	margin-bottom: 20px;
}

.trotb-ev-single .trotb-ev-back:hover {
	color: #8b5228;
	text-decoration: underline;
}

.trotb-ev-single .trotb-ev-title {
	margin: 0 0 25px;
	font-family: 'Playfair Display', sans-serif;
	font-size: 60px;
	line-height: 1.18;
	font-weight: 700;
	max-width: 600px;
	color: #000000;
}

.trotb-ev-single .trotb-ev-meta {
	list-style: none;
	padding: 0;
	margin: 0 0 26px;
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	gap: 12px;
	align-items: flex-start;
}

.trotb-ev-single .trotb-ev-meta__item {
	display: inline-flex;
	align-items: flex-start;
	gap: 10px;
	max-width: 560px;
	font-size: 16px;
	line-height: 1.45;
	color: #000000;
	font-family: 'Roboto', sans-serif
}

.trotb-ev-single .trotb-ev-meta__item i {
	width: 22px;
	flex-shrink: 0;
	margin-top: 2px;
	color: #a86b3a;
	font-size: 18px;
}

.trotb-ev-single .trotb-ev-quickfacts {
    display: flex;
    flex-wrap: wrap;       
    gap: 12px 32px;         
    margin-top: 24px;
    max-width: 100%;      
}

.trotb-ev-single .trotb-ev-quickfacts__item {
	padding: 0;
	font-size: 15px;
	display: flex;
	align-items: center;
	gap: 10px;
	color: #000000;
	font-weight: 500;
	font-family: 'Roboto', sans-serif
}

.trotb-ev-single .trotb-ev-quickfacts__item i {
	color: #a86b3a;
	font-size: 18px;
    flex-shrink: 0;
}

.trotb-ev-single .trotb-ev-body-wrap {
	padding: 56px 0 40px;
	background: #fff;
	overflow-x: clip;
}

.trotb-ev-single .trotb-ev-body-wrap .nicdark_container {
	box-sizing: border-box;
	width: 100%;
	max-width: min(1200px, 100%);
	padding-inline: clamp(14px, 4vw, 24px);
}

.trotb-ev-single .trotb-ev-columns {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 360px);
	gap: 48px 40px;
	align-items: start;
	min-width: 0;
	width: 100%;
}

.trotb-ev-single .trotb-ev-main,
.trotb-ev-single .trotb-ev-side {
	min-width: 0;
}

.trotb-ev-single .trotb-ev-h2 {
	font-family: 'Playfair Display', sans-serif;
	font-size: 1.75rem;
	color: #1e3558;
	margin: 0 0 18px;
	font-weight: 700;
	line-height: 2.3rem;
}

.trotb-ev-single .trotb-ev-h3 {
	font-family: 'Playfair Display', sans-serif;
	font-size: 1.25rem;
	color: #1e3558;
	margin: 0 0 16px;
	font-weight: 700;
}

.trotb-ev-single .trotb-ev-block {
	margin-bottom: 44px;
}

.trotb-ev-single .trotb-ev-content {
	font-size: 16px;
	line-height: 1.75;
	color: #333;
	max-width: 760px;
}

.trotb-ev-single .trotb-ev-video {
	position: relative;
	border-radius: 6px;
	overflow: hidden;
	background: #0f172a;
	aspect-ratio: 16 / 9;
	max-width: 760px;
}

.trotb-ev-single .trotb-ev-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: none;
}

.trotb-ev-single .trotb-ev-video-caption {
	margin-top: 12px;
	font-size: 15px;
	color: #916d45;
	max-width: 760px;
	text-align: center;
}

.trotb-ev-single .trotb-ev-learn-grid {
	list-style: none;
	padding: 0;
	margin: 10px 0 0 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 32px;
	max-width: 760px;
}

.trotb-ev-single .trotb-ev-learn-grid__cell {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 18px;
	line-height: 1.5;
	color: #000000;
	font-family: 'Roboto', sans-serif
}

.trotb-ev-single .trotb-ev-check {
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	border-radius: 50%;
	background: #e4c99a33;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #a67d45;
	font-size: 12px;
}

.trotb-ev-single .trotb-ev-panel {
	border: 1px solid #e2e2e2;
	border-radius: 6px;
	padding: 20px 20px 22px;
	background: #fff;
	margin-bottom: 24px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.trotb-ev-single .trotb-ev-panel--details {
	background: #faf6f1;
	border-color: #e9dfd3;
}

.trotb-ev-single .trotb-ev-cf7 .wpcf7 input[type="text"],
.trotb-ev-single .trotb-ev-cf7 .wpcf7 input[type="email"],
.trotb-ev-single .trotb-ev-cf7 .wpcf7 input[type="tel"],
.trotb-ev-single .trotb-ev-cf7 .wpcf7 textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 14px;
	border: 1px solid #cfd4dc;
	border-radius: 4px;
	font-size: 14px;
}

.trotb-ev-single .trotb-ev-cf7 label {
	display: block;
	font-size: 13px;
	margin-bottom: 6px;
	color: #4a5462;
	font-weight: 600;
}

.trotb-ev-single .trotb-ev-cf7 .wpcf7-submit {
	width: 100%;
	margin-top: 8px;
	padding: 12px 18px;
	background: #bf9d6f;
	border: none;
	border-radius: 4px;
	color: #fff;
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
}

.trotb-ev-single .trotb-ev-cf7 .wpcf7-submit:hover {
	background: #aa8a61;
}

.trotb-ev-single .trotb-ev-detail-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.trotb-ev-single .trotb-ev-detail-list li {
	display: grid;
	grid-template-columns: 28px minmax(0, 85px) minmax(0, 1fr);
	align-items: start;
	padding: 10px 0;
	border-bottom: 1px solid #ebe3d8;
	font-size: 15px;
	column-gap: 8px;
}

.trotb-ev-single .trotb-ev-detail-list li:last-child {
	border-bottom: none;
}

.trotb-ev-single .trotb-ev-di {
	color: #a67d45;
}

.trotb-ev-single .trotb-ev-dt {
	color: #5a6470;
	font-family: 'Roboto', sans-serif;
	font-weight: 600;
}

.trotb-ev-single .trotb-ev-dv {
	color: #000000;
	font-family: 'Roboto', sans-serif;
}

.trotb-ev-single .trotb-ev-hr {
	border: none;
	border-top: 1px solid #e0d4c6;
	margin: 16px 0;
}

.trotb-ev-single .trotb-ev-organizer {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: #3a4149;
}

.trotb-ev-single .trotb-ev-related {
	background: #f7f4ef;
	padding: 52px 0 64px;
	border-top: 1px solid #ebe5dc;
	/* Cards use vw-based width; gutters keep swipe area inside the viewport */
	--trotb-rcard-gap: clamp(14px, 3vw, 22px);
	--trotb-related-inline: clamp(14px, 4vw, 12px);
}

.trotb-ev-single .trotb-ev-related__top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 22px;
}

.trotb-ev-single .trotb-ev-related__controls {
	display: flex;
	gap: 10px;
}

.trotb-ev-single .trotb-ev-related__top .trotb-ev-h2 {
	margin-bottom: 0;
	line-height: 1.28;
	word-break: break-word;
	overflow-wrap: break-word;
}

.trotb-ev-single .trotb-ev-carousel-btn {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid #c4a574;
	background: #fff;
	color: #a67d45;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.trotb-ev-single .trotb-ev-carousel-btn:hover {
	background: #faf6f1;
}

.trotb-ev-single .trotb-ev-related .nicdark_container {
	width: 100%;
	max-width: 1200px;
	box-sizing: border-box;
	padding-left: var(--trotb-related-inline);
	padding-right: var(--trotb-related-inline);
}

.trotb-ev-single .trotb-ev-carousel-viewport {
	box-sizing: border-box;
	container-type: inline-size;
	container-name: trotb-rc;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow-x: auto;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	-ms-overflow-style: none;
	overscroll-behavior-x: contain;
	scroll-padding-inline: var(--trotb-related-inline);
	scroll-snap-type: inline proximity;
	touch-action: pan-x pinch-zoom;
}

.trotb-ev-single .trotb-ev-carousel-track {
	display: flex;
	flex-wrap: nowrap;
	gap: var(--trotb-rcard-gap);
	padding: 0 0 12px;
	width: max-content;
	box-sizing: border-box;
}

.trotb-ev-single .trotb-ev-rcard {
	flex: 0 0 auto;
	width: 280px;
	max-width: 280px;
	background: #fff;
	border: 1px solid #e5e0d8;
	border-radius: 6px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
	box-sizing: border-box;
	min-width: 0;
	overflow-wrap: break-word;
	word-wrap: break-word;
	scroll-snap-align: start;
}

.trotb-ev-single .trotb-ev-rcard__thumb {
	display: block;
	position: relative;
	width: 100%;
	min-height: 0;
	flex-shrink: 0;
	overflow: hidden;
	background: #ebe3d9;
	aspect-ratio: 16 / 10;
	max-height: 200px;
}

.trotb-ev-single .trotb-ev-rcard__thumb img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.trotb-ev-single .trotb-ev-rcard__body {
	padding: 16px 16px 18px;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}

.trotb-ev-single .trotb-ev-rcard__title {
	font-family: 'Playfair Display', sans-serif;
	font-size: 1.125rem;
	color: #1e3558;
	margin: 0 0 10px;
	line-height: 1.35;
	flex-grow: 0;
	font-weight: 600;
}

.trotb-ev-single .trotb-ev-rcard__meta {
	list-style: none;
	padding: 0 0 14px;
	margin: 0 0 auto 0;
	font-size: 13px;
	color: #4a5462;
}

.trotb-ev-single .trotb-ev-rcard__meta li {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin-bottom: 6px;
	line-height: 1.35;
	min-width: 0;
	font-family: 'Roboto', sans-serif;
	color: #000000;
	word-break: break-word;
}

.trotb-ev-single .trotb-ev-rcard__meta i {
	color: #a67d45;
	width: 16px;
	text-align: center;
}

.trotb-ev-single .trotb-ev-rcard__btn {
	display: inline-block;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	border: 1px solid #c4a574;
	padding: 10px 14px;
	border-radius: 30px;
	color: #a67d45;
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
}

.trotb-ev-single .trotb-ev-rcard__btn:hover {
	background: #faf7f3;
	color: #8a6940;
}

@media (max-width: 1199px) {
	.trotb-ev-single .trotb-ev-columns {
		grid-template-columns: 1fr;
		gap: 32px 0;
	}

	.trotb-ev-single .trotb-ev-main,
	.trotb-ev-single .trotb-ev-side {
		grid-column: 1;
		min-width: 0;
		width: 100%;
		max-width: none;
	}

	.trotb-ev-single .trotb-ev-learn-grid {
		grid-template-columns: 1fr;
	}

	.trotb-ev-single .trotb-ev-related {
		padding-left: 0;
		padding-right: 0;
	}

	/* Full-bleed carousel: aligns first card with screen edge padding (no phantom left gutter) */
	.trotb-ev-single .trotb-ev-carousel-viewport {
		width: 100vw;
		max-width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		padding-inline: clamp(14px, 4vw, 22px);
		scroll-padding-inline: clamp(14px, 4vw, 22px);
	}
}

@supports not (container-type: inline-size) {
	/* Tablet / iPad: 3 tiles (full-bleed strip ≤1199px) */
	@media (max-width: 1199px) and (min-width: 681px) {
		.trotb-ev-single .trotb-ev-rcard {
			flex: 0 0 calc((100vw - 2 * clamp(14px, 4vw, 22px) - 44px) / 3);
			width: calc((100vw - 2 * clamp(14px, 4vw, 22px) - 44px) / 3);
			min-width: 0;
			max-width: none;
			box-sizing: border-box;
		}
	}

	/* Laptop / desktop: 4 tiles (carousel sits in main container; ~120px ≈ side padding + gutters) */
	@media (min-width: 1200px) {
		.trotb-ev-single .trotb-ev-rcard {
			flex: 0 0 calc((100vw - 120px - 66px) / 4);
			width: calc((100vw - 120px - 66px) / 4);
			min-width: 0;
			max-width: none;
			box-sizing: border-box;
		}
	}

	/* Narrow phones: one slide fills the carousel strip */
	@media (max-width: 680px) {
		.trotb-ev-single .trotb-ev-rcard {
			flex-shrink: 0;
			flex-basis: calc(100vw - 2 * clamp(14px, 4vw, 22px));
			width: calc(100vw - 2 * clamp(14px, 4vw, 22px));
			min-width: 0;
			max-width: none;
			box-sizing: border-box;
			scroll-snap-align: center;
			scroll-snap-stop: always;
		}
	}
}

@supports (container-type: inline-size) {
	/* Phones & narrow viewports: exactly one card visible (fills strip) */
	@container trotb-rc (max-width: 680px) {
		.trotb-ev-single .trotb-ev-carousel-track > .trotb-ev-rcard {
			flex-shrink: 0;
			flex: 0 0 100cqi;
			width: 100cqi;
			min-width: 0;
			max-width: none;
			box-sizing: border-box;
			scroll-snap-align: center;
			scroll-snap-stop: always;
		}
	}

	/*
	 * Tablet / iPad: 3 cards across (2 flex gaps @ ~22px).
	 * Laptop / desktop: 4 cards across (3 flex gaps @ ~22px). 100cqi = carousel inner width.
	 */
	@container trotb-rc (min-width: 681px) and (max-width: 1280px) {
		.trotb-ev-single .trotb-ev-carousel-track > .trotb-ev-rcard {
			flex-shrink: 0;
			flex: 0 0 calc((100cqi - 44px) / 3);
			width: calc((100cqi - 44px) / 3);
			min-width: 0;
			max-width: none;
			box-sizing: border-box;
		}
	}

	@container trotb-rc (min-width: 1281px) {
		.trotb-ev-single .trotb-ev-carousel-track > .trotb-ev-rcard {
			flex-shrink: 0;
			flex: 0 0 calc((100cqi - 66px) / 4);
			width: calc((100cqi - 66px) / 4);
			min-width: 0;
			max-width: none;
			box-sizing: border-box;
		}
	}
}

/* One-slide-at-a-time on narrow screens (outside @container — viewport is the query container itself) */
@media (max-width: 680px) {
	.trotb-ev-single .trotb-ev-carousel-viewport {
		scroll-snap-type: inline mandatory;
	}
}

@media (max-width: 600px) {
	.trotb-ev-single .trotb-ev-related__top {
		flex-direction: column;
		align-items: stretch;
	}

	.trotb-ev-single .trotb-ev-related__controls {
		justify-content: flex-end;
	}
}

.trotb-ev-single .trotb-ev-cf7 br {
    display: none !important;
}

.trotb-ev-single .trotb-ev-panel.trotb-ev-panel--form {
    height: auto !important;
    overflow: visible;
	display: flex;
    flex-direction: column;
}

.trotb-ev-single .trotb-ev-cf7 .wpcf7-not-valid-tip {
    display: block;
    font-size: 13px !important;
    background-color: #d9534f !important; 
    color: #fff !important;
    border-radius: 4px !important;
    box-sizing: border-box;
    width: 100%;
}

.trotb-ev-single .trotb-ev-cf7 .wpcf7-response-output {
	clear: both !important;
    margin: 15px 0 0 !important;
    padding: 10px !important;
    font-size: 14px;
    border-radius: 4px;
    box-sizing: border-box;
    width: 100%;
}


.trotb-ev-hero__content-col {
    width: 55%; 
    padding: 60px 0;
}

.trotb-ev-hero-hr {
    border: 0;
    height: 2px;
	background-color: rgba(0, 0, 0, 0.2);
    margin: 25px 0;
    width: 100%;
    max-width: 550px; 
}
@media (max-width: 768px) { 
	.trotb-ev-single .trotb-ev-title {
		font-size: 36px;
	}
	.trotb-ev-single .trotb-ev-h2 {
		font-size: 1.5rem;
	}
	.trotb-ev-single .trotb-ev-detail-list li {
		font-size: 14px;
		padding: 6px 0;
	}
	.trotb-ev-single .trotb-ev-detail-list {
		line-height: 24px;
	}
	.trotb-ev-single .trotb-ev-learn-grid__cell {
		font-size: 15px;
		line-height: 24px;
	}
}