/* ==========================================================================
   British Music Embassy – main stylesheet
   Desktop design: 1440px wide. Mobile design: 402px wide. Breakpoint: 768px.
   ========================================================================== */

/* ---------- Fonts ---------- */
@font-face {
	font-family: "Euclid Flex B";
	src: url("../fonts/EuclidFlexB-Regular.woff") format("woff"), url("../fonts/EuclidFlexB-Regular.otf") format("opentype");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Euclid Flex B";
	src: url("../fonts/EuclidFlexB-Medium.woff") format("woff"), url("../fonts/EuclidFlexB-Medium.otf") format("opentype");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Euclid Flex B";
	src: url("../fonts/EuclidFlexB-Bold.woff") format("woff"), url("../fonts/EuclidFlexB-Bold.otf") format("opentype");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
	--bme-navy: #04043f;
	--bme-blue: #0043db;
	--bme-red: #eb0000;
	--bme-white: #ffffff;
	--bme-black: #000000;
	--bme-font: "Euclid Flex B", "Helvetica Neue", Arial, sans-serif;

	--bme-container: 1140px;
	--bme-gutter: 44px; /* total, i.e. 22px each side */
	--bme-col-gap: 37px;

	--space-band: 120px;   /* space above a heading band */
	--space-after-band: 105px; /* band to the content under it */
	--header-h: 87px;
}

@media (max-width: 767px) {
	:root {
		--space-band: 56px;
		--space-after-band: 56px;
		--header-h: 68px;
	}
}

/* ---------- Reset / base ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 24px; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

body {
	margin: 0;
	background: var(--bme-navy);
	color: var(--bme-white);
	font-family: var(--bme-font);
	font-weight: 400;
	font-size: 16px;
	line-height: 1.6;
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
}

body.bme-lock { overflow: hidden; }

img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }

h1, h2, h3, h4, p, ul, ol, figure, blockquote { margin: 0; padding: 0; }
ul, ol { list-style: none; }

a { color: inherit; }
button { font: inherit; color: inherit; }

[hidden] { display: none !important; }

:focus-visible { outline: 2px solid var(--bme-white); outline-offset: 3px; }

.bme-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 1000;
	background: var(--bme-white);
	color: var(--bme-navy);
	padding: 12px 16px;
}
.bme-skip:focus { left: 8px; top: 8px; }

.bme-wrap { width: min(100% - var(--bme-gutter), var(--bme-container)); margin-inline: auto; }

/* ==========================================================================
   Text styles (names match the Figma style names)
   ========================================================================== */
.BME-txt-main-headline {
	font-weight: 700;
	font-size: clamp(28px, 6.667vw, 96px);
	line-height: 1.1;
	letter-spacing: 0;
	color: #fff;
	text-align: left;
	text-transform: uppercase;
}
.BME-txt-heading {
	font-weight: 700;
	font-size: clamp(22px, 3.333vw, 48px);
	line-height: 1.1;
	letter-spacing: 0;
	color: #fff;
	text-align: left;
	text-transform: uppercase;
}
.BME-txt-sub-heading {
	font-weight: 700;
	font-size: clamp(20px, 2.222vw, 32px);
	line-height: 1.1;
	letter-spacing: 0;
	color: var(--bme-red);
	text-align: left;
}
.BME-txt-body-copy {
	font-weight: 400;
	font-size: 16px;
	line-height: 1.6;
	letter-spacing: 0;
	color: #fff;
	text-align: left;
}
.BME-txt-read-more {
	font-weight: 700;
	font-size: 16px;
	line-height: 1.1;
	letter-spacing: 0;
	color: #fff;
	text-align: left;
	text-transform: uppercase;
	text-decoration: none;
}
.BME-txt-navigation {
	font-weight: 500;
	font-size: 14px;
	line-height: 1;
	letter-spacing: 0;
	color: #fff;
	text-align: left;
}
.BME-txt-body-copy-big {
	font-weight: 400;
	font-size: 20px;
	line-height: 1.6;
	letter-spacing: 0;
	color: #fff;
	text-align: left;
}
.BME-txt-quotation {
	font-weight: 500;
	font-size: 20px;
	line-height: 1.6;
	letter-spacing: 0;
	color: #fff;
	text-align: left;
}
.BME-txt-lineup {
	font-weight: 700;
	font-size: clamp(18px, 2.222vw, 32px);
	line-height: 1.8;
	letter-spacing: 0;
	color: #fff;
	text-align: center;
}
.BME-txt-schedule-date {
	font-weight: 700;
	font-size: 28px;
	line-height: 1.2;
	letter-spacing: 0;
	color: #fff;
	text-align: left;
	text-transform: uppercase;
}
.BME-txt-schedule-showcase {
	font-weight: 700;
	font-size: 28px;
	line-height: 1.2;
	letter-spacing: 0;
	color: var(--bme-red);
	text-align: left;
	text-transform: uppercase;
}
.BME-txt-schedule-party {
	font-weight: 700;
	font-size: 28px;
	line-height: 1.2;
	letter-spacing: 0;
	color: var(--bme-blue);
	text-align: left;
	text-transform: uppercase;
}
.BME-txt-schedule-rsvp {
	font-weight: 400;
	font-size: 22px;
	line-height: 1.2;
	letter-spacing: 0;
	color: #fff;
	text-align: left;
	text-transform: uppercase;
}
.BME-txt-schedule-time {
	font-weight: 400;
	font-size: 24px;
	line-height: 1.6;
	letter-spacing: 0;
	color: #fff;
	text-align: left;
}
.BME-txt-schedule-artist {
	font-weight: 700;
	font-size: 28px;
	line-height: 1.6;
	letter-spacing: 0;
	color: #fff;
	text-align: left;
}
.BME-txt-schedule-partner {
	font-weight: 400;
	font-size: 24px;
	line-height: 2;
	letter-spacing: 0;
	color: #fff;
	text-align: left;
	text-transform: uppercase;
}
.BME-txt-address {
	font-weight: 500;
	font-size: clamp(32px, 3.056vw, 44px);
	line-height: 1.4;
	letter-spacing: 0;
	color: #fff;
	text-align: left;
}

/* Mobile versions of the styles above ("-mobile" styles in Figma) */
@media (max-width: 767px) {
	.BME-txt-quotation { font-size: 18px; }
	.BME-txt-schedule-date,
	.BME-txt-schedule-showcase,
	.BME-txt-schedule-party,
	.BME-txt-schedule-artist { font-size: 25px; }
	.BME-txt-schedule-rsvp { font-size: 20px; }
	.BME-txt-schedule-time,
	.BME-txt-schedule-partner { font-size: 22px; }
}

/* Rich text areas (content typed in the WordPress editor) */
.bme-richtext > * + * { margin-top: 1.6em; }
.bme-richtext a {
	color: #fff;
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: var(--bme-red);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}
.bme-richtext a:hover,
.bme-richtext a:focus-visible { color: var(--bme-red); }
.bme-richtext strong { font-weight: 700; }

/* Links that look like buttons */
.bme-popup-link,
.bme-nav__events-toggle,
.bme-seemore__btn {
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
}
.bme-popup-link {
	font: inherit;
	color: inherit;
	text-align: inherit;
	text-transform: inherit;
}
.bme-popup-link:hover,
.bme-popup-link:focus-visible {
	color: var(--bme-red);
}

/* ==========================================================================
   Header
   ========================================================================== */
.bme-header { position: relative; z-index: 60; background: var(--bme-navy); }

.bme-header__bar { height: var(--header-h); background: var(--bme-navy); }
.bme-header__inner {
	height: 100%;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
}

.bme-logo { display: block; line-height: 0; justify-self: start; }
.bme-logo img { width: 95px; height: auto; }

.bme-nav__list { display: flex; align-items: center; gap: 8px; }
.bme-nav__link {
	display: block;
	padding: 10px;
	text-decoration: none;
	background: none;
	border: 0;
	cursor: pointer;
}
.bme-nav__link:hover,
.bme-nav__item.is-current .bme-nav__link,
.bme-nav__events-toggle[aria-expanded="true"] {
	text-decoration: underline;
	text-decoration-color: var(--bme-red);
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}
.bme-nav__events-toggle::after {
	content: " >>";
	display: inline-block;
	transition: transform 0.15s ease;
}
.bme-nav__events-toggle[aria-expanded="true"]::after { transform: rotate(90deg); }

/* Social icons */
.bme-socials { display: flex; align-items: center; gap: 24px; }
.bme-socials a { display: block; line-height: 0; }
.bme-socials img { height: 24px; width: auto; }
.bme-socials a:hover img,
.bme-socials a:focus-visible img { opacity: 0.7; }
.bme-socials--header { justify-self: end; }

.bme-burger { display: none; background: none; border: 0; padding: 0; cursor: pointer; line-height: 0; }
.bme-burger img { width: 46px; height: auto; }

/* Events dropdown (desktop) */
.bme-events-panel {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: var(--bme-blue);
	padding: 61px 0 60px;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.35);
}
.bme-events-panel__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px 14px;
}
.bme-events-panel__link {
	display: block;
	color: #fff;
	text-decoration: none;
	font-size: 20px;
	line-height: 1.6;
}
.bme-events-panel__link span,
.bme-events-panel__link strong { display: block; }
.bme-events-panel__link strong { font-weight: 700; }
.bme-events-panel__link:hover .bme-events-panel__title,
.bme-events-panel__link:focus-visible .bme-events-panel__title { text-decoration: underline; }

/* Mobile menu overlay */
.bme-mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 200;
	background: var(--bme-navy);
	display: flex;
	flex-direction: column;
	overflow-y: auto;
}
.bme-mobile-menu__top {
	height: var(--header-h);
	flex: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-inline: 18px;
}
.bme-mobile-menu__close { background: none; border: 0; padding: 0; cursor: pointer; line-height: 0; }
.bme-mobile-menu__close img { width: 47px; height: auto; }
.bme-mobile-menu nav { margin-top: 68px; }
.bme-mobile-menu__link {
	display: block;
	width: 100%;
	padding: 20px 46px;
	line-height: 32px;
	font-size: 16px;
	text-align: left;
	text-decoration: none;
	background: none;
	border: 0;
	cursor: pointer;
	color: #fff;
}
.bme-mobile-menu__chev { display: inline-block; margin-left: 12px; transition: transform 0.15s ease; }
.bme-mobile-menu__events-toggle[aria-expanded="true"] .bme-mobile-menu__chev { transform: rotate(90deg); }
.bme-mobile-menu__sub { background: var(--bme-blue); padding-block: 13px; }
.bme-socials--mobile { margin: auto 0 0; padding: 40px 47px 52px; }

@media (max-width: 767px) {
	.bme-header__inner { display: flex; justify-content: space-between; padding-inline: 0; width: calc(100% - 36px); }
	.bme-nav, .bme-socials--header, .bme-events-panel { display: none !important; }
	.bme-burger { display: block; }
}
@media (min-width: 768px) {
	.bme-mobile-menu { display: none !important; }
}

/* ==========================================================================
   Heroes
   ========================================================================== */
.bme-hero { position: relative; overflow: hidden; background: var(--bme-navy); }
.bme-hero__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 0;
}

/* Home: 16:9 video */
.bme-hero--home { aspect-ratio: 16 / 9; }
.bme-hero__iframe { pointer-events: none; }

/* Sound button */
.bme-sound {
	position: absolute;
	right: 49px;
	bottom: 49px;
	z-index: 2;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	line-height: 0;
}
.bme-sound img { width: 142px; height: auto; }

/* About / Videos: wide picture with the headline on it */
.bme-hero--page { aspect-ratio: 1440 / 445; }
.bme-hero__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding-bottom: 7.3vw;
	z-index: 1;
}
.bme-hero__overlay > .bme-wrap { width: min(100% - var(--bme-gutter), var(--bme-container)); }
.bme-hero__overlay--top {
	flex-direction: column;
	justify-content: space-between;
	align-items: stretch;
	padding-top: 5.9vw;
	padding-bottom: 0;
}
.bme-hero__overlay--top > .bme-wrap { display: flex; flex-direction: column; justify-content: space-between; height: 100%; }
.bme-hero__sponsor img { max-width: 293px; max-height: 69px; width: auto; }

/* Event: wide picture, no text */
.bme-hero--event { aspect-ratio: 1440 / 350; }

/* Plain pages (Privacy, Terms, 404) */
.bme-hero--plain { padding: 90px 0 0; }

@media (max-width: 767px) {
	.bme-hero--page { aspect-ratio: 402 / 228; }
	.bme-hero__overlay { padding-bottom: 4vw; }
	.bme-hero__overlay--top { padding-top: 21vw; padding-bottom: 4vw; }
	.bme-hero__sponsor { display: none; }
	.bme-hero--event { aspect-ratio: 402 / 245; }
	.bme-sound { right: 10px; bottom: 10px; }
	.bme-sound img { width: 88px; }
	.bme-hero--plain { padding-top: 48px; }
}

/* ==========================================================================
   Heading bands (halftone strip behind headings)
   ========================================================================== */
.bme-band {
	position: relative;
	margin-top: var(--space-band);
	height: 78px;
	display: flex;
	align-items: flex-start;
}
.bme-band::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: calc((100% - min(100% - var(--bme-gutter), var(--bme-container))) / 2);
	background: url("../images/Heading_Halftone_2x.png") right center / cover no-repeat;
	pointer-events: none;
}
.bme-band .bme-wrap { position: relative; z-index: 1; }
.bme-band h1,
.bme-band h2 { position: relative; top: 0.724em; }
.bme-chev { margin-right: 0.2em; }

.bme-band--main {
	height: auto;
	min-height: 214px;
	padding-top: 20px;
	margin-top: 106px;
}
.bme-band--main::before { background-image: url("../images/MainHeadline_Halftone_2x.png"); }
.bme-band--main h1 { top: 0.188em; }

/* Spacing between a band and the content below it */
.bme-band + .bme-section { margin-top: calc(var(--space-after-band) + 0.5em); }
.bme-band--main + .bme-section { margin-top: 114px; }

@media (max-width: 767px) {
	.bme-band { height: 38px; }
	.bme-band::before { background-image: url("../images/Mob_Heading_Halftone_2x.png"); }
	.bme-band h2 { top: 0.836em; }
	.bme-band--main { min-height: 72px; padding-top: 15px; margin-top: 34px; }
	.bme-band--main h1 { top: 0.036em; }
	.bme-band--main::before { background-image: url("../images/Mob_MainHeadline_Halftone_2x.png"); }
	.bme-band--main + .bme-section { margin-top: 32px; }
}

/* ==========================================================================
   Sections and two-column layout
   ========================================================================== */
.bme-section { margin-top: 80px; }

.bme-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--bme-col-gap);
	align-items: start;
}
.bme-split__pic img,
.bme-artists__pic img { width: 100%; height: auto; }

.bme-readmore { margin-top: 2.2em; }
.bme-readmore a:hover,
.bme-readmore a:focus-visible,
.bme-seemore__btn:hover,
.bme-seemore__btn:focus-visible,
.bme-event-intro__guide a:hover,
.bme-event-intro__guide a:focus-visible { color: var(--bme-red); }

@media (max-width: 767px) {
	.bme-section { margin-top: 40px; }
	.bme-split { grid-template-columns: 1fr; row-gap: 32px; }
	.bme-split__pic { order: -1; }
}

/* ---------- Home: event cards ---------- */
.bme-cards__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 42px;
	row-gap: 54px;
}
.bme-card a { display: block; text-decoration: none; }
.bme-card__pic { display: block; aspect-ratio: 351 / 214; overflow: hidden; background: rgba(255, 255, 255, 0.08); }
.bme-card__pic img { width: 100%; height: 100%; object-fit: cover; }
.bme-card__title { display: block; margin-top: 27px; }
.bme-card__title strong { font-weight: 700; }
.bme-card__date { display: block; }
.bme-card a:hover .bme-card__title,
.bme-card a:focus-visible .bme-card__title { text-decoration: underline; text-decoration-color: var(--bme-red); text-underline-offset: 4px; }

@media (max-width: 767px) {
	.bme-cards__list { grid-template-columns: 1fr; }
}

/* ---------- About ---------- */
.bme-artists {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-areas:
		"text alumni"
		"pic quote";
	column-gap: var(--bme-col-gap);
	row-gap: 56px;
	align-items: start;
}
.bme-artists__text { grid-area: text; }
.bme-alumni { grid-area: alumni; }
.bme-artists__pic { grid-area: pic; }
.bme-quote { grid-area: quote; }

.bme-artists__text .BME-txt-sub-heading { margin-bottom: 0.6em; }

.bme-alumni__label { margin-bottom: 0; }
.bme-alumni__list { columns: 2; column-gap: 42px; }
.bme-alumni__list li { break-inside: avoid; }
.bme-alumni__list .bme-popup-link { font-weight: 400; }

.bme-quote { position: relative; }
.bme-quote__open { float: left; width: 51px; height: auto; margin: 4px 17px 20px 0; }
.bme-quote blockquote { padding-left: 0; }
.bme-quote__end { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; margin-top: 12px; clear: both; }
.bme-quote__close { width: 51px; height: auto; }
.bme-quote__by { font-weight: 500; font-size: 20px; line-height: 1.4; }

.bme-logos { margin-block: 32px; }
.bme-logos img { width: 100%; max-width: 549px; height: auto; }

@media (max-width: 767px) {
	.bme-artists {
		grid-template-columns: 1fr;
		grid-template-areas:
			"text"
			"pic"
			"quote"
			"alumni";
		row-gap: 32px;
	}
	.bme-quote__open { width: 43px; }
	.bme-quote__close { width: 43px; }
}

/* ---------- Videos ---------- */
.bme-videos {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--bme-col-gap);
	row-gap: 80px;
}
.bme-video__thumb {
	position: relative;
	display: block;
	aspect-ratio: 549 / 372;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.08);
}
.bme-video__thumb img { width: 100%; height: 100%; object-fit: cover; }
.bme-video__play {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 186px;
	height: 151px;
	transform: translate(-50%, -50%);
	background: url("../images/BME_PlayButton.svg") center / contain no-repeat;
	transition: transform 0.15s ease;
}
a.bme-video__thumb:hover .bme-video__play,
a.bme-video__thumb:focus-visible .bme-video__play { transform: translate(-50%, -50%) scale(1.08); }
.bme-video__text { margin-top: 39px; }
.bme-video__text p + p { margin-top: 0; }
.bme-video__text strong { font-weight: 700; }

.bme-seemore { margin-top: 80px; text-align: center; }

@media (max-width: 767px) {
	.bme-videos { grid-template-columns: 1fr; row-gap: 40px; }
	.bme-video__play { width: 120px; height: 98px; background-image: url("../images/Mob_BME_PlayButton.svg"); }
	.bme-video__text { margin-top: 22px; }
	.bme-seemore { text-align: left; margin-top: 40px; }
}

/* ---------- Plain page text ---------- */
.bme-prose { max-width: 760px; }
.bme-prose h2 { font-weight: 700; font-size: 28px; line-height: 1.2; margin-top: 1.6em; }
.bme-prose h3 { font-weight: 700; font-size: 22px; line-height: 1.3; margin-top: 1.4em; }
.bme-prose ul { list-style: disc; padding-left: 1.4em; }
.bme-prose ol { list-style: decimal; padding-left: 1.4em; }
.bme-prose > * + * { margin-top: 1em; }

/* ==========================================================================
   Event page
   ========================================================================== */
.bme-eventnav { background: var(--bme-blue); }
.bme-eventnav__inner {
	display: flex;
	align-items: center;
	min-height: 92px;
	padding-block: 14px;
}
.bme-eventnav__title {
	flex: 0 0 295px;
	padding-right: 20px;
	font-weight: 700;
	font-size: 20px;
	line-height: 1.6;
}
.bme-eventnav__list { display: flex; flex-wrap: wrap; gap: 0 38px; }
.bme-eventnav__list a { display: block; padding: 10px 0; text-decoration: none; }
.bme-eventnav__list a:hover,
.bme-eventnav__list a:focus-visible { text-decoration: underline; text-underline-offset: 6px; }

.bme-anchor { height: 0; }

.bme-event-intro { margin-top: 90px; }
.bme-event-intro__date { margin-bottom: 0.2em; }
.bme-event-intro__guide { margin-top: 1.4em; }
.bme-event-intro__guide a { font-size: 16px; }

@media (max-width: 767px) {
	.bme-eventnav__inner { display: block; padding-block: 22px 16px; }
	.bme-eventnav__title { flex: none; padding: 0; margin-bottom: 14px; }
	.bme-eventnav__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 0; }
	.bme-eventnav__list a { padding: 14px 0; }
	.bme-event-intro { margin-top: 40px; }
}

/* Line-up */
.bme-lineup .bme-popup-link { font-weight: 700; }

/* Schedule */
.bme-day { padding-bottom: 56px; }
.bme-day__date {
	padding-bottom: 26px;
	border-bottom: 1px solid #fff;
}
.bme-day__cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--bme-col-gap);
	padding-top: 32px;
}
.bme-day__cols { row-gap: 48px; align-items: start; }
.bme-show > p + p { margin-top: 0; }
.bme-show__rsvp { margin-top: 6px; }
.bme-slots { margin-top: 28px; }
.bme-slot { display: grid; grid-template-columns: 150px 1fr; align-items: baseline; }
.bme-slot__artist .bme-popup-link { text-align: left; }

@media (max-width: 767px) {
	.bme-day { padding-bottom: 40px; }
	.bme-day__cols { grid-template-columns: 1fr; padding-top: 24px; row-gap: 40px; }
	.bme-slot { grid-template-columns: 110px 1fr; }
}

/* Location */
.bme-location__line + .bme-location__line::before { content: " | "; }
.bme-location__map { margin-top: 32px; }
.bme-location__map a { display: block; }
.bme-location__map img {
	width: 100%;
	aspect-ratio: 1128 / 943;
	object-fit: cover;
}
@media (max-width: 767px) {
	.bme-location__line { display: block; }
	.bme-location__line + .bme-location__line::before { content: none; }
	.bme-location__map { margin-top: 24px; }
}

/* Partners */
.bme-partners__cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--bme-col-gap);
	row-gap: 48px;
	align-items: start;
}
.bme-partners__title { padding-bottom: 28px; border-bottom: 1px solid #fff; }
.bme-partners__list { margin-top: 18px; }
.bme-logofarm { margin-top: 80px; }
.bme-logofarm img { width: 100%; height: auto; }

@media (max-width: 767px) {
	.bme-partners__cols { grid-template-columns: 1fr; }
	.bme-logofarm { margin-top: 56px; }
}

/* ==========================================================================
   Footer
   ========================================================================== */
.bme-footer {
	margin-top: 127px;
	background: var(--bme-blue);
	padding: 60px 0 45px;
}
.bme-footer__logo { margin-bottom: 66px; }
.bme-footer__cols {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 14px;
}
.bme-footer__title { font-weight: 700; font-size: 16px; line-height: 1.4; margin-bottom: 22px; }
.bme-footer__text,
.bme-footer__links { font-size: 16px; line-height: 1.4; }
.bme-footer a { text-decoration: none; }
.bme-footer a:hover,
.bme-footer a:focus-visible { text-decoration: underline; }
.bme-socials--footer { margin-top: 8px; gap: 20px; }
.bme-footer__credit { margin-top: 70px; font-size: 12px; line-height: 1.4; }
.bme-footer__credit a { font-weight: 700; }

@media (max-width: 767px) {
	.bme-footer { margin-top: 80px; padding: 37px 0 40px; }
	.bme-footer__logo { margin-bottom: 53px; }
	.bme-footer__cols { grid-template-columns: 1fr 1fr; row-gap: 48px; column-gap: 16px; }
	.bme-footer__col--social { grid-column: 1 / -1; }
	.bme-footer__credit { margin-top: 56px; }
}

/* ==========================================================================
   Pop-ups (artist and partner)
   ========================================================================== */
.bme-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.bme-modal__backdrop { position: absolute; inset: 0; background: rgba(4, 4, 63, 0.9); }
.bme-modal__dialog {
	position: relative;
	width: min(100%, 1140px);
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	background: #fff;
	color: #000;
	outline: 0;
}
.bme-modal__close {
	position: absolute;
	top: 24px;
	right: 21px;
	z-index: 5;
	width: 47px;
	height: 27px;
	padding: 0;
	border: 0;
	cursor: pointer;
	background: url("../images/BME_CloseX_Red.svg") center / contain no-repeat;
}
.bme-modal[data-close-style="white"] .bme-modal__close { background-image: url("../images/BME_CloseX_Wht.svg"); }
.bme-modal__close:focus-visible { outline-color: var(--bme-blue); }

.bme-popup { font-size: 20px; line-height: 1.6; color: #000; }
.bme-popup p + p { margin-top: 1.6em; }
.bme-popup a { color: var(--bme-blue); }
.bme-popup__text { font-weight: 400; }

/* Artist */
.bme-popup--artist {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 545px;
	min-height: 676px;
}
.bme-popup--artist.no-pic { grid-template-columns: 1fr; }
.bme-popup--artist .bme-popup__main { padding: 22px 45px 56px 0; }
.bme-popup__band {
	position: absolute;
	top: 22px;
	left: 0;
	right: 0;
	height: 78px;
	background: url("../images/ArtistPopUp_Halftone_2x.png") right center / cover no-repeat;
	z-index: 2;
	pointer-events: none;
}
.bme-popup__name {
	position: absolute;
	left: 57px;
	bottom: -4px;
	font-weight: 700;
	font-size: clamp(30px, 3.333vw, 48px);
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--bme-blue);
}
.bme-popup--artist .bme-popup__text { padding: 123px 0 0 57px; }
.bme-popup__meta { color: var(--bme-blue); }
.bme-popup__meta a { font-weight: 500; text-decoration: none; }
.bme-popup__meta a:hover { text-decoration: underline; }
.bme-popup__pic { position: relative; margin: 0; background: #c4c4c4; }
.bme-popup__pic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* Partner */
.bme-popup--partner {
	display: grid;
	grid-template-columns: 497px minmax(0, 1fr);
	grid-template-areas:
		"logo desc"
		"contacts desc";
	column-gap: 40px;
	padding: 51px 56px 56px 54px;
	min-height: 634px;
}
.bme-popup--partner .bme-popup__logo { grid-area: logo; }
.bme-popup--partner .bme-popup__logo img { max-height: 157px; width: auto; max-width: 100%; }
.bme-popup--partner .bme-popup__contacts { grid-area: contacts; margin-top: 50px; color: var(--bme-blue); }
.bme-popup--partner .bme-popup__contacts p + p { margin-top: 1.6em; }
.bme-popup--partner .bme-popup__contacts a { text-decoration: none; }
.bme-popup--partner .bme-popup__contacts a:hover { text-decoration: underline; }
.bme-popup--partner .bme-popup__text { grid-area: desc; margin-top: 115px; }
.bme-popup__name--plain { position: static; color: #000; font-size: 40px; }

@media (max-width: 767px) {
	.bme-modal { padding: 0; }
	.bme-modal__dialog { width: 100%; max-height: 100vh; height: 100%; }
	.bme-modal__close { top: 14px; right: 24px; }
	.bme-popup { font-size: 18px; }

	.bme-popup--artist { display: block; min-height: 0; }
	.bme-popup--artist .bme-popup__pic { order: -1; height: 426px; }
	.bme-popup--artist { display: flex; flex-direction: column; }
	.bme-popup--artist .bme-popup__main { padding: 30px 0 48px; position: relative; }
	.bme-popup__band { top: 30px; height: 38px; background-image: url("../images/Mob_Heading_Halftone_2x.png"); }
	.bme-popup__name { left: 22px; font-size: 22px; bottom: -10px; }
	.bme-popup--artist .bme-popup__text { padding: 80px 31px 0; }

	.bme-popup--partner {
		display: flex;
		flex-direction: column;
		padding: 22px 31px 48px;
		min-height: 0;
	}
	.bme-popup--partner .bme-popup__logo { order: 1; }
	.bme-popup--partner .bme-popup__text { order: 2; margin-top: 48px; }
	.bme-popup--partner .bme-popup__contacts { order: 3; margin-top: 40px; }
}

/* Artist pop-up: extra contact emails sit on their own lines at single (100%) line spacing */
.bme-popup__meta a { overflow-wrap: anywhere; }
.bme-popup__more { display: block; line-height: 1; }

/* ==========================================================================
   Home: navigation appears on scroll. Event pages: sticky secondary nav.
   ========================================================================== */
body.home .bme-header,
body.front-page .bme-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	transform: translateY(-100%);
	visibility: hidden;
	transition: transform 0.3s ease, visibility 0s linear 0.3s;
}
body.admin-bar.home .bme-header { top: 32px; }
body.home.bme-scrolled .bme-header,
body.home.bme-lock .bme-header {
	transform: none;
	visibility: visible;
	transition: transform 0.3s ease, visibility 0s;
}
@media (max-width: 782px) {
	body.admin-bar.home .bme-header { top: 46px; }
}
@media (prefers-reduced-motion: reduce) {
	body.home .bme-header { transition: none; }
}

.bme-eventnav {
	position: sticky;
	top: 0;
	z-index: 50;
}
body.admin-bar .bme-eventnav { top: 32px; }
@media (max-width: 782px) {
	body.admin-bar .bme-eventnav { top: 46px; }
}
@media (max-width: 767px) {
	.bme-eventnav__inner { padding-block: 12px 4px; }
	.bme-eventnav__title { margin-bottom: 4px; font-size: 16px; line-height: 1.3; }
	.bme-eventnav__list a { padding: 8px 0; }
}

.bme-eventnav__title a { color: inherit; text-decoration: none; }
.bme-eventnav__title a:hover,
.bme-eventnav__title a:focus-visible { text-decoration: underline; text-underline-offset: 6px; }
