/* LUGBN: Events — booking prompt and past-event photos. */

.lugbn-event-prompt,
.lugbn-upgrade-cta--event {
	margin: 24px 0;
}

.lugbn-event-prompt {
	padding: 16px 18px;
	background: var(--lu-color-green-tint, #E8EDE5);
	border: 1px solid var(--lu-color-rough, #D4D8D0);
	border-left: 3px solid var(--lu-color-deep-forest, #032E1C);
	border-radius: var(--lu-radius-md, 8px);
}

.lugbn-event-prompt__text {
	margin: 0 0 12px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--lu-color-deep-forest, #032E1C);
}

.lugbn-event-prompt__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
	margin: 0;
}

.lugbn-event-prompt__btn {
	display: inline-block;
	padding: 11px 20px;
	border-radius: var(--lu-radius-full, 9999px);
	background: var(--lu-color-electric-turf, #1FCB60);
	color: var(--lu-color-deep-forest, #032E1C);
	font-weight: 600;
	font-size: 15px;
	text-decoration: none;
}

.lugbn-event-prompt__btn:hover,
.lugbn-event-prompt__btn:focus {
	background: var(--lu-color-deep-forest, #032E1C);
	color: var(--lu-color-birdie-lime, #B5EB79);
	text-decoration: none;
}

.lugbn-event-prompt__link {
	color: var(--lu-color-deep-forest, #032E1C);
	font-size: 14px;
	text-decoration: underline;
}

.lugbn-event-photos {
	margin: 32px 0;
}

.lugbn-event-photos__title {
	margin: 0 0 16px;
	font-size: 22px;
}

.lugbn-event-photos__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 8px;
}

.lugbn-event-photos__item {
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: var(--lu-radius-md, 8px);
}

.lugbn-event-photos__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.2s ease;
}

.lugbn-event-photos__item:hover img,
.lugbn-event-photos__item:focus img {
	transform: scale(1.03);
}


/* ═══ Page shell ═══════════════════════════════════════════════════════════
   Internal-page treatment (lu-internal.css tokens; no Anton). Literal
   fallbacks in every var(): this page loads lu-internal.css, which does not
   define --lu-space-* or --lu-container-*. */

body.lu-events-page {
	background: var(--lu-color-green-white, #F2F5F0);
	/* Required by the full-bleed band — -100vw would otherwise scroll. */
	overflow-x: hidden;

	/* TEC's own theme variables, declared on :root by variables-skeleton.css. */
	--tec-font-family-sans-serif: var(--lu-font-body, 'Instrument Sans', sans-serif);
	--tec-font-family-base: var(--lu-font-body, 'Instrument Sans', sans-serif);
	--tec-color-text-primary: var(--lu-color-graphite, #2A2D2F);
	--tec-color-text-secondary: var(--lu-color-caddy, #6B7570);
	--tec-color-text-event-title: var(--lu-color-deep-forest, #032E1C);
	--tec-color-text-events-title: var(--lu-color-deep-forest, #032E1C);
	--tec-color-text-event-date: var(--lu-color-caddy, #6B7570);
	--tec-color-link-primary: var(--lu-color-deep-forest, #032E1C);
	--tec-color-link-accent: var(--lu-color-deep-forest, #032E1C);
	--tec-color-link-accent-hover: var(--lu-color-electric-turf, #1FCB60);
	--tec-color-accent-primary: var(--lu-color-deep-forest, #032E1C);
	--tec-color-accent-primary-hover: #0A4A2F;
	--tec-color-accent-primary-active: #0A4A2F;
	--tec-color-accent-primary-background: var(--lu-color-green-tint, #E8EDE5);
	--tec-color-button-primary: var(--lu-color-deep-forest, #032E1C);
	--tec-color-button-primary-hover: #0A4A2F;
	--tec-color-button-primary-active: #0A4A2F;
	--tec-color-button-primary-background: var(--lu-color-green-tint, #E8EDE5);
	--tec-color-border-default: var(--lu-color-rough, #D4D8D0);
	--tec-color-border-secondary: var(--lu-color-rough, #D4D8D0);
	--tec-color-background-events: transparent;
	--tec-color-icon-active: var(--lu-color-deep-forest, #032E1C);
	--tec-color-event-icon: var(--lu-color-deep-forest, #032E1C);
}

/* BuddyBoss gives #page `overflow-x: hidden`, which still lets script scroll it.
   TEC scrolls the view into place on every AJAX reload, and the band's -100vw
   overhang gave it ~500px to slide the whole page sideways. `clip` can't be
   scrolled at all. */
body.lu-events-page #page {
	overflow-x: clip;
}

body.lu-events-page #primary.content-area,
body.lu-events-page .site-content-grid {
	padding-top: 0;
	padding-bottom: 56px;
}

/* TEC's default events template drops the view straight into .bb-grid, where
   it would shrink to content width with a 10px gutter. */
body.lu-events-page .site-content-grid > .tribe-events,
body.lu-events-page .site-content-grid > #tribe-events-pg-template {
	width: 100%;
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

body.lu-events-page .site-content-grid > .tribe-events {
	padding-top: 0;
}

body.lu-events-page .tribe-common-l-container {
	max-width: 1180px;
	padding-top: 0;
}


/* ═══ Title band ═══════════════════════════════════════════════════════════ */

body.lu-events-page .tribe-events .lugbn-events-hero {
	position: relative;
	padding: 44px 0 40px;
	margin-bottom: 28px;
	color: var(--lu-color-white, #FFFFFF);
}

body.lu-events-page .tribe-events .lugbn-events-hero::before {
	content: '';
	position: absolute;
	inset: 0 -100vw;
	background: var(--lu-color-deep-forest, #032E1C);
}

body.lu-events-page .tribe-events .lugbn-events-hero > * {
	position: relative;
}

body.lu-events-page .tribe-events .lugbn-events-hero__title {
	margin: 0 0 8px;
	font-family: var(--lu-font-heading, 'Radio Canada Big', sans-serif);
	font-size: clamp(30px, 4vw, 40px);
	font-weight: 600;
	line-height: 1.15;
	color: var(--lu-color-white, #FFFFFF);
}

body.lu-events-page .tribe-events .lugbn-events-hero__lede {
	margin: 0;
	max-width: 640px;
	font-size: 17px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.78);
}

/* TEC's own title would repeat the band. Kept for screen readers — it's the
   page's real <h1>. */
body.lu-events-page .tribe-events-header__content-title,
body.lu-events-page .tribe-events-header__title {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}


/* ═══ Filters ══════════════════════════════════════════════════════════════ */

body.lu-events-page .tribe-events .lugbn-events-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	width: 100%;
	margin: 16px 0 8px;
}

body.lu-events-page .tribe-events .lugbn-events-filters__group {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

body.lu-events-page .tribe-events .lugbn-events-filters__group--when {
	padding: 4px;
	background: var(--lu-color-white, #FFFFFF);
	border: 1px solid var(--lu-color-rough, #D4D8D0);
	border-radius: var(--lu-radius-full, 9999px);
}

body.lu-events-page .tribe-events .lugbn-events-filters__tab,
body.lu-events-page .tribe-events .lugbn-events-filters__pill {
	display: inline-block;
	padding: 8px 16px;
	border-radius: var(--lu-radius-full, 9999px);
	font-family: var(--lu-font-body, 'Instrument Sans', sans-serif);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--lu-color-deep-forest, #032E1C);
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}

body.lu-events-page .tribe-events .lugbn-events-filters__pill {
	background: var(--lu-color-white, #FFFFFF);
	border: 1px solid var(--lu-color-rough, #D4D8D0);
}

body.lu-events-page .tribe-events .lugbn-events-filters__tab:hover,
body.lu-events-page .tribe-events .lugbn-events-filters__pill:hover,
body.lu-events-page .tribe-events .lugbn-events-filters__tab:focus-visible,
body.lu-events-page .tribe-events .lugbn-events-filters__pill:focus-visible {
	background: var(--lu-color-green-tint, #E8EDE5);
	color: var(--lu-color-deep-forest, #032E1C);
	text-decoration: none;
}

body.lu-events-page .tribe-events .lugbn-events-filters__tab.is-active,
body.lu-events-page .tribe-events .lugbn-events-filters__pill.is-active {
	background: var(--lu-color-deep-forest, #032E1C);
	border-color: var(--lu-color-deep-forest, #032E1C);
	color: var(--lu-color-white, #FFFFFF);
}


/* ═══ Events bar (search + view switcher) ══════════════════════════════════ */

body.lu-events-page .tribe-events-header {
	padding: 0;
}

body.lu-events-page .tribe-events-c-events-bar {
	background: var(--lu-color-white, #FFFFFF);
	border: 1px solid var(--lu-color-rough, #D4D8D0);
	border-radius: var(--lu-radius-lg, 12px);
}

body.lu-events-page .tribe-events-c-search__button,
body.lu-events-page .tribe-common-c-btn {
	background: var(--lu-color-deep-forest, #032E1C);
	border-radius: var(--lu-radius-full, 9999px);
	color: var(--lu-color-white, #FFFFFF);
	font-weight: 600;
}

body.lu-events-page .tribe-events-c-search__button:hover,
body.lu-events-page .tribe-common-c-btn:hover,
body.lu-events-page .tribe-common-c-btn:focus {
	background: var(--lu-color-electric-turf, #1FCB60);
	color: var(--lu-color-deep-forest, #032E1C);
}


/* ═══ List view: each event as a white card ════════════════════════════════ */

body.lu-events-page .tribe-events-calendar-list__month-separator {
	margin-top: 32px;
}

body.lu-events-page .tribe-events-calendar-list__month-separator-text {
	font-family: var(--lu-font-heading, 'Radio Canada Big', sans-serif);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--lu-color-caddy, #6B7570);
	background: var(--lu-color-green-white, #F2F5F0);
}

/* Beats BuddyBoss's `.tribe-events .tribe-events-calendar-list >
   .tribe-common-g-row`, which paints a white box behind every row, and TEC's
   breakpoint margins — both 0,3,0. The card is the article inside. */
body.lu-events-page .tribe-events .tribe-events-calendar-list > .tribe-events-calendar-list__event-row {
	margin: 16px 0 0;
	padding: 0;
	background: transparent;
}

body.lu-events-page .tribe-events-calendar-list__event {
	padding: 20px;
	background: var(--lu-color-white, #FFFFFF);
	border: 1px solid var(--lu-color-rough, #D4D8D0);
	border-radius: var(--lu-radius-lg, 12px);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

body.lu-events-page .tribe-events-calendar-list__event:hover {
	border-color: var(--lu-color-deep-forest, #032E1C);
	box-shadow: 0 4px 16px rgba(3, 46, 28, 0.08);
}

body.lu-events-page .tribe-events-calendar-list__event-featured-image-wrapper {
	margin-bottom: 0;
}

body.lu-events-page .tribe-events-calendar-list__event-featured-image {
	border-radius: var(--lu-radius-md, 8px);
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

body.lu-events-page .tribe-events-calendar-list__event-title {
	font-family: var(--lu-font-heading, 'Radio Canada Big', sans-serif);
	font-weight: 600;
}

body.lu-events-page .tribe-events-calendar-list__event-title-link {
	color: var(--lu-color-deep-forest, #032E1C);
	border-bottom: 0;
}

body.lu-events-page .tribe-events-calendar-list__event-title-link:hover,
body.lu-events-page .tribe-events-calendar-list__event-title-link:focus {
	color: var(--lu-color-deep-forest, #032E1C);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* The date tag: a tile in the left gutter, level with the card's top edge
   rather than centred against it. */
body.lu-events-page .tribe-events .tribe-events-calendar-list__event-date-tag {
	align-self: flex-start;
	margin-top: 0;
}

body.lu-events-page .tribe-events .tribe-events-calendar-list__event-date-tag-datetime {
	padding: 10px 0;
	background: var(--lu-color-white, #FFFFFF);
	border: 1px solid var(--lu-color-rough, #D4D8D0);
	border-radius: var(--lu-radius-md, 8px);
}

body.lu-events-page .tribe-events-calendar-list__event-date-tag-weekday {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--lu-color-caddy, #6B7570);
}

body.lu-events-page .tribe-events-calendar-list__event-date-tag-daynum {
	font-family: var(--lu-font-heading, 'Radio Canada Big', sans-serif);
	color: var(--lu-color-deep-forest, #032E1C);
}

body.lu-events-page .tribe-events-calendar-list__event-cost {
	display: inline-block;
	margin-top: 12px;
	padding: 4px 12px;
	background: var(--lu-color-green-tint, #E8EDE5);
	border-radius: var(--lu-radius-full, 9999px);
	font-weight: 600;
	color: var(--lu-color-deep-forest, #032E1C);
}

/* Prev / next / "Today" nav under the list. */
body.lu-events-page .tribe-events-c-nav__list {
	border-top: 0;
	margin-top: 24px;
}

body.lu-events-page .tribe-events-c-nav__prev,
body.lu-events-page .tribe-events-c-nav__next {
	color: var(--lu-color-deep-forest, #032E1C);
	font-weight: 600;
}

/* "Subscribe to calendar" on the LISTING only — not something this audience
   asked for. The single event's "Add to calendar" uses the same component and
   is worth keeping for someone who has just booked. */
body.lu-events-page .tribe-events-view .tribe-events-c-subscribe-dropdown__container,
body.lu-events-page .tribe-events-view .tribe-events-c-ical {
	display: none;
}


/* ═══ Single event ═════════════════════════════════════════════════════════
   tribe/events/single-event-blocks.php + inc/events/single.php: breadcrumb
   band, then image / tag / title / content on the left and a column of cards
   (details + tickets, add to calendar, venue) on the right. */

body.lu-events-page.single-tribe_events #tribe-events-pg-template {
	max-width: none;
	margin: 0;
	padding: 0;
}

body.lu-events-page #tribe-events-content.lugbn-event {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0 0 56px;
	background: transparent;
	border: 0;
	border-radius: 0;
}

/* Band: breadcrumb only. */
body.lu-events-page .lugbn-event__band {
	position: relative;
	max-width: 1180px;
	margin: 0 auto 30px;
	padding: 18px 0 20px;
}

body.lu-events-page .lugbn-event__band::before {
	content: '';
	position: absolute;
	inset: 0 -100vw;
	background: var(--lu-color-deep-forest, #032E1C);
}

body.lu-events-page .lugbn-event__crumbs {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	font-size: 13px;
	line-height: 1.4;
	color: rgba(255, 255, 255, 0.78);
}

body.lu-events-page .lugbn-event__crumbs a {
	color: rgba(255, 255, 255, 0.78);
	text-decoration: none;
}

body.lu-events-page .lugbn-event__crumbs a:hover,
body.lu-events-page .lugbn-event__crumbs a:focus {
	color: var(--lu-color-white, #FFFFFF);
	text-decoration: underline;
}

/* Layout. The 1fr second row absorbs the sidebar's height — with two `auto`
   rows the spanning sidebar would inflate the head row instead. */
body.lu-events-page .lugbn-event__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 314px;
	grid-template-rows: auto 1fr;
	grid-template-areas:
		"head side"
		"body side";
	column-gap: 25px;
	align-items: start;
	max-width: 1180px;
	margin: 0 auto;
}

body.lu-events-page .lugbn-event__head { grid-area: head; }
body.lu-events-page .lugbn-event__body { grid-area: body; min-width: 0; }
body.lu-events-page .lugbn-event__side {
	grid-area: side;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

/* Head. */
body.lu-events-page .lugbn-event__hero {
	margin-bottom: 24px;
	overflow: hidden;
	border-radius: var(--lu-radius-md, 8px);
}

body.lu-events-page .lugbn-event__hero img {
	display: block;
	width: 100%;
	height: 200px;
	object-fit: cover;
}

body.lu-events-page .lugbn-event__tag {
	display: inline-block;
	padding: 3px 8px;
	background: var(--lu-color-deep-forest, #032E1C);
	border-radius: 3px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--lu-color-white, #FFFFFF);
}

body.lu-events-page .lugbn-event__tag:hover,
body.lu-events-page .lugbn-event__tag:focus {
	color: var(--lu-color-birdie-lime, #B5EB79);
	text-decoration: none;
}

body.lu-events-page #tribe-events-content .lugbn-event__title {
	margin: 20px 0 16px;
	font-family: var(--lu-font-heading, 'Radio Canada Big', sans-serif);
	font-size: 24px;
	font-weight: 500;
	line-height: 1.25;
	color: var(--lu-color-deep-forest, #032E1C);
}

/* Body: the event's own blocks. */
body.lu-events-page .lugbn-event__body {
	font-size: 15px;
	line-height: 1.35;
	color: var(--lu-color-caddy, #6B7570);
}

body.lu-events-page .lugbn-event__body p {
	margin: 0 0 20px;
}

body.lu-events-page .lugbn-event__body h2,
body.lu-events-page .lugbn-event__body h3,
body.lu-events-page .lugbn-event__body h4,
body.lu-events-page .lugbn-event__body strong {
	color: var(--lu-color-deep-forest, #032E1C);
}

body.lu-events-page .lugbn-event__body h2,
body.lu-events-page .lugbn-event__body h3,
body.lu-events-page .lugbn-event__body h4 {
	margin: 0 0 2px;
	font-family: var(--lu-font-body, 'Instrument Sans', sans-serif);
	font-size: 15px;
	font-weight: 600;
}

body.lu-events-page .lugbn-event__body .wp-block-columns {
	gap: 24px;
	margin-bottom: 20px;
}

body.lu-events-page .lugbn-event__body img {
	border-radius: var(--lu-radius-md, 8px);
}

/* Sidebar cards. */
body.lu-events-page .lugbn-event__card {
	padding: 12px;
	background: var(--lu-color-white, #FFFFFF);
	border-radius: var(--lu-radius-md, 8px);
}

body.lu-events-page .lugbn-event__when {
	padding-bottom: 14px;
	border-bottom: 1px solid var(--lu-color-rough, #D4D8D0);
}

body.lu-events-page .lugbn-event__date {
	margin: 0 0 6px;
	font-family: var(--lu-font-heading, 'Radio Canada Big', sans-serif);
	font-size: 24px;
	font-weight: 500;
	line-height: 1.2;
	color: var(--lu-color-deep-forest, #032E1C);
}

body.lu-events-page .lugbn-event__time {
	margin: 0;
	font-size: 14px;
	color: var(--lu-color-deep-forest, #032E1C);
}

body.lu-events-page .lugbn-event__facts {
	display: grid;
	gap: 6px;
	margin: 0;
	padding: 14px 0;
	font-size: 14px;
}

body.lu-events-page .lugbn-event__fact {
	display: flex;
	gap: 16px;
}

body.lu-events-page .lugbn-event__fact dt {
	flex: 0 0 auto;
	min-width: 48px;
	margin: 0;
	font-weight: 600;
	color: var(--lu-color-deep-forest, #032E1C);
}

body.lu-events-page .lugbn-event__fact dd {
	margin: 0;
	color: var(--lu-color-caddy, #6B7570);
}

body.lu-events-page .lugbn-event__tickets {
	padding-top: 14px;
	border-top: 1px solid var(--lu-color-rough, #D4D8D0);
}

/* Event Tickets' block, flattened into the card: no box of its own, one row
   per ticket, no running total (one place per member makes it the price). */
body.lu-events-page .lugbn-event__tickets .tribe-tickets__tickets-wrapper,
body.lu-events-page .lugbn-event__tickets .tribe-tickets__tickets-form,
body.lu-events-page .lugbn-event__tickets .tribe-common.event-tickets {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
}

body.lu-events-page .lugbn-event__tickets .tribe-tickets__tickets-title {
	margin: 0 0 12px;
	font-family: var(--lu-font-heading, 'Radio Canada Big', sans-serif);
	font-size: 18px;
	font-weight: 500;
	color: var(--lu-color-deep-forest, #032E1C);
}

body.lu-events-page .lugbn-event__tickets .tribe-tickets__tickets-item {
	padding: 6px 0;
	border: 0;
}

body.lu-events-page .lugbn-event__tickets .tribe-tickets__tickets-item-content-title {
	font-family: var(--lu-font-body, 'Instrument Sans', sans-serif);
	font-size: 15px;
	font-weight: 600;
	color: var(--lu-color-deep-forest, #032E1C);
}

body.lu-events-page .lugbn-event__tickets .tribe-tickets__tickets-sale-price {
	font-size: 14px;
	color: var(--lu-color-caddy, #6B7570);
}

body.lu-events-page .lugbn-event__tickets .tribe-tickets__tickets-item-extra-available,
body.lu-events-page .lugbn-event__tickets .tribe-tickets__tickets-footer-quantity,
body.lu-events-page .lugbn-event__tickets .tribe-tickets__tickets-footer-total {
	display: none;
}

body.lu-events-page .lugbn-event__tickets .tribe-tickets__tickets-footer {
	display: block;
	margin-top: 12px;
	padding: 0;
	border: 0;
}

body.lu-events-page .lugbn-event__tickets .tribe-tickets__tickets-buy {
	display: block;
	width: 100%;
	margin: 0 !important; /* Event Tickets' 28px left margin pushed it out of the card */
	padding: 9px 20px;
	background: var(--lu-color-deep-forest, #032E1C) !important;
	border-radius: var(--lu-radius-full, 9999px) !important;
	color: var(--lu-color-birdie-lime, #B5EB79) !important;
	font-size: 15px;
	font-weight: 600;
}

body.lu-events-page .lugbn-event__tickets .tribe-tickets__tickets-buy:hover,
body.lu-events-page .lugbn-event__tickets .tribe-tickets__tickets-buy:focus {
	background: var(--lu-color-electric-turf, #1FCB60) !important;
	color: var(--lu-color-deep-forest, #032E1C) !important;
}

body.lu-events-page .lugbn-event__tickets .lugbn-event-prompt,
body.lu-events-page .lugbn-event__tickets .lugbn-upgrade-cta {
	margin: 12px 0 0;
}

/* Add to calendar. */
body.lu-events-page .lugbn-event__card--calendar {
	display: flex;
	justify-content: center;
	padding: 16px 12px;
}

/* The block's own 20px padding and the dropdown's 32px margins tripled the
   card's height around a single button. */
body.lu-events-page .lugbn-event__card--calendar .tribe-block__events-link,
body.lu-events-page .lugbn-event__card--calendar .tribe-events-c-subscribe-dropdown {
	margin: 0 !important;
	padding: 0 !important;
}

/* Venue. */
body.lu-events-page .lugbn-event__card--venue .tribe-block__venue {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
}

body.lu-events-page .lugbn-event__card--venue .tribe-block__venue__meta,
body.lu-events-page .lugbn-event__card--venue .tribe-block__venue__map {
	width: 100%;
	max-width: none;
	padding: 0;
	float: none;
}

body.lu-events-page .lugbn-event__card--venue .tribe-block__venue__name h3 {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--lu-color-deep-forest, #032E1C);
}

body.lu-events-page .lugbn-event__card--venue .tribe-block__venue__address {
	font-size: 15px;
	line-height: 1.35;
	color: var(--lu-color-graphite, #2A2D2F);
}

body.lu-events-page .lugbn-event__card--venue .tribe-block__venue__map {
	margin-top: 16px;
	overflow: hidden;
	border-radius: var(--lu-radius-sm, 4px);
}

body.lu-events-page .lugbn-event__card--venue iframe {
	display: block;
	width: 100%;
	height: 260px;
}


/* ═══ Mobile ═══════════════════════════════════════════════════════════════ */

@media (max-width: 767px) {
	body.lu-events-page .tribe-events .lugbn-events-hero {
		padding: 32px 0 28px;
	}

	body.lu-events-page .tribe-events .lugbn-events-filters {
		flex-direction: column;
		align-items: flex-start;
	}

	body.lu-events-page .tribe-events-calendar-list__event {
		padding: 16px;
	}

	/* One column: image, tag, title → details + tickets → the description →
	   add to calendar → venue and map. The sidebar wrapper dissolves
	   (display: contents) so its cards can sit either side of the content;
	   in one block, the map pushed the description ~900px down the page. */
	body.lu-events-page .lugbn-event__layout {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto;
		grid-template-areas:
			"head"
			"details"
			"body"
			"calendar"
			"venue";
		row-gap: 24px;
	}

	body.lu-events-page .lugbn-event__side {
		display: contents;
	}

	body.lu-events-page .lugbn-event__card--details  { grid-area: details; }
	body.lu-events-page .lugbn-event__card--calendar { grid-area: calendar; }
	body.lu-events-page .lugbn-event__card--venue    { grid-area: venue; }

	body.lu-events-page .lugbn-event__hero img {
		height: 180px;
	}

	body.lu-events-page #tribe-events-content .lugbn-event__title {
		margin-bottom: 0;
	}
}
