/*
Theme Name: Nicex (Child Theme)
Theme URI: http://madsparrow.us/
Author: Mad Sparrow
Author URI: https://themeforest.net/user/madsparrow
Description: Nicex – brings your site to life with immersive featured images and subtle animations. With a focus on portfolio sites, it features multiple sections on the front page as well as widgets, navigation and social menus, a logo, and more. Personalize its asymmetrical grid with a custom color scheme and showcase your multimedia content with post formats. Our theme works great in many languages, for any abilities, and on any device.
Tags: one-column, two-columns, right-sidebar, custom-menu, post-formats, sticky-post, translation-ready, page transition
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nicex
Tags: one-column, two-columns, right-sidebar, flexible-header, accessibility-ready, custom-colors, custom-header, custom-menu, custom-logo, editor-style, featured-images, footer-widgets, post-formats, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready
Template: nicex
*/

/* Add your own modification from here
-------------------------------------------------------------- */

/* =========================================================
   Nocturnis – Booking / EPK page
   ========================================================= */
.nocturnis-epk {
	--nx-accent: #a01b1b;
	--nx-accent-soft: rgba(160, 30, 27, 0.16);
	--nx-line: rgba(255, 255, 255, 0.14);
	--nx-line-soft: rgba(255, 255, 255, 0.08);
	--nx-panel: rgba(255, 255, 255, 0.025);
	--nx-panel-hover: rgba(255, 255, 255, 0.05);
	--nx-muted: rgba(255, 255, 255, 0.60);
	max-width: 1080px;
	margin: 0 auto;
	padding: 0 22px 40px;
}

.nocturnis-epk * {
	box-sizing: border-box;
}

/* --- Kicker label ("— TEXT") --- */
.nocturnis-epk .nx-kicker {
	display: flex;
	align-items: center;
	gap: 14px;
	text-transform: uppercase;
	letter-spacing: 0.28em;
	font-family: var(--font-primary, "Merriweather", serif);
	font-size: 12px;
	font-weight: 400;
	color: var(--nx-muted);
	margin: 0 0 18px;
}
.nocturnis-epk .nx-kicker::before {
	content: "";
	width: 34px;
	height: 1px;
	background: var(--nx-accent);
	flex: 0 0 auto;
}

/* --- Section rhythm --- */
.nocturnis-epk .nx-section {
	padding: 56px 0;
	border-top: 1px solid var(--nx-line-soft);
	scroll-margin-top: 96px; /* offset for the fixed header on anchor jumps */
}
.nocturnis-epk .nx-section:first-of-type {
	border-top: 0;
}
.nocturnis-epk .nx-section > h2 {
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.08;
	margin: 0 0 32px;
	font-weight: 700;
}

/* --- Hero --- */
.nocturnis-epk .nx-hero {
	position: relative;
	text-align: center;
	padding: 96px 20px 76px;
	margin-bottom: 4px;
	border: 1px solid var(--nx-line-soft);
	background:
		radial-gradient(ellipse at 50% 0%, rgba(160, 30, 27, 0.10), transparent 60%),
		var(--nx-panel);
	overflow: hidden;
}
.nocturnis-epk .nx-hero--photo {
	background-size: cover;
	background-position: center 30%;
	background-repeat: no-repeat;
	/* Full-bleed: break out of the content container to full viewport width */
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	margin-top: -1px;
	margin-bottom: 8px;
	border: 0;
	min-height: 82vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

/* Booking (1888) & Presse (1918): hide the theme's page-title header so the
   photo hero alone fills the top of the page (no double heading). */
body.page-id-1888 .ms-sp--header,
body.page-id-1918 .ms-sp--header,
body.page-id-1943 .ms-sp--header,
body.home .ms-sp--header {
	display: none;
}
/* Guard against horizontal scrollbar caused by the 100vw hero */
body.page-id-1888,
body.page-id-1918,
body.page-id-1943,
body.home {
	overflow-x: hidden;
}
/* Dark overlay so logo + text stay legible on the photo */
/* Hintergrundbild des Presse-Heros.
   Bewusst hier und nicht als style-Attribut im Seiteninhalt: WordPress' HTML-
   Filter entfernt `background-image:url(...)` beim Speichern aus style-
   Attributen — genau daran ist der Hero schon einmal zerbrochen. Im Stylesheet
   kann kein Speichervorgang ihn erwischen. */
.nocturnis-epk .nx-hero--presse {
	background-image: url("/wp-content/uploads/2026/07/All_2.jpg");
}

/* Bewegliche Foto-Ebene für die Parallaxe (wird per JS eingefügt).
   Sie ragt oben und unten über den Hero hinaus, damit beim Verschieben keine
   Kante sichtbar wird — der Hero schneidet mit overflow:hidden ab.
   Der Kindselektor ist nötig: weiter unten steht `.nx-hero--photo > *` mit
   `position: relative`, das bei gleicher Spezifität sonst gewinnen würde. */
.nocturnis-epk .nx-hero--photo > .nx-hero__bg {
	position: absolute;
	/* Genau so viel Überstand wie die Bewegung braucht (TEMPO 0.22 → 22 %),
	   plus etwas Rand. Höher wäre unnötig: `cover` würde das Foto sonst
	   stärker vergrößern und den Bildausschnitt verändern. */
	top: -25%;
	left: 0;
	right: 0;
	height: 125%;
	background-size: cover;
	background-position: center 30%;
	background-repeat: no-repeat;
	z-index: 0;
	will-change: transform;
	pointer-events: none;
}
.nocturnis-epk .nx-hero--photo::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at 50% 12%, rgba(160, 30, 27, 0.22), transparent 55%),
		linear-gradient(180deg, rgba(8, 8, 8, 0.86) 0%, rgba(8, 8, 8, 0.42) 42%, rgba(8, 8, 8, 0.82) 100%);
	/* Über der Foto-Ebene (z-index 0), unter dem Inhalt. */
	z-index: 1;
}
.nocturnis-epk .nx-hero--photo > * {
	position: relative;
	z-index: 1;
}
.nocturnis-epk .nx-hero__sigil {
	width: clamp(260px, 40vw, 460px);
	height: auto;
	margin: 0 auto 22px;
	display: block;
	opacity: 0.97;
	filter: drop-shadow(0 0 30px rgba(160, 30, 27, 0.28));
}
.nocturnis-epk .nx-hero h1 {
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: clamp(38px, 6vw, 66px);
	line-height: 1.02;
	letter-spacing: 0.01em;
	margin: 0 0 14px;
	font-weight: 700;
	color: #fff; /* hero sits on a dark photo in both light & dark mode */
}
.nocturnis-epk .nx-hero__sub {
	font-style: italic;
	color: rgba(255, 255, 255, 0.72);
	font-size: clamp(15px, 2vw, 19px);
	margin: 0 0 34px;
	letter-spacing: 0.02em;
}
.nocturnis-epk .nx-hero__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
}

/* --- Buttons --- */
.nocturnis-epk .nx-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 26px;
	font-family: var(--font-primary, "Merriweather", serif);
	font-size: 13px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	border: 1px solid var(--nx-line);
	color: #fff;
	transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
	cursor: pointer;
}
.nocturnis-epk .nx-btn svg {
	width: 17px;
	height: 17px;
	flex: 0 0 auto;
}
.nocturnis-epk .nx-btn:hover {
	transform: translateY(-2px);
	border-color: #fff;
	background: #fff;
	color: #0a0a0a;
}
.nocturnis-epk .nx-btn--primary {
	background: #fff;
	color: #0a0a0a;
	border-color: #fff;
}
.nocturnis-epk .nx-btn--primary:hover {
	background: var(--nx-accent);
	border-color: var(--nx-accent);
	color: #fff;
}

/* --- Fact cards --- */
.nocturnis-epk .nx-facts {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
.nocturnis-epk .nx-card {
	border: 1px solid var(--nx-line-soft);
	background: var(--nx-panel);
	padding: 26px 26px 28px;
	transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.nocturnis-epk .nx-card:hover {
	background: var(--nx-panel-hover);
	border-color: var(--nx-line);
	transform: translateY(-2px);
}
.nocturnis-epk .nx-card__icon {
	color: var(--nx-accent);
	margin-bottom: 14px;
}
.nocturnis-epk .nx-card__icon svg {
	width: 26px;
	height: 26px;
}
.nocturnis-epk .nx-card__label {
	text-transform: uppercase;
	letter-spacing: 0.2em;
	font-size: 11px;
	color: var(--nx-muted);
	margin: 0 0 6px;
	font-family: var(--font-primary, "Merriweather", serif);
}
.nocturnis-epk .nx-card__value {
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: 24px;
	line-height: 1.25;
	margin: 0;
	font-weight: 600;
}

/* Lineup list inside the "Besetzung" fact card */
.nocturnis-epk .nx-lineup {
	list-style: none;
	margin: 2px 0 0;
	padding: 0;
}
.nocturnis-epk .nx-lineup li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	padding: 8px 0;
	border-bottom: 1px solid var(--nx-line-soft);
}
.nocturnis-epk .nx-lineup li:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}
.nocturnis-epk .nx-lineup__name {
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.2;
}
.nocturnis-epk .nx-lineup__inst {
	font-family: var(--font-primary, "Merriweather", serif);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--nx-muted);
	white-space: nowrap;
}

/* --- Featured album panel --- */
.nocturnis-epk .nx-album {
	margin-top: 16px;
	border: 1px solid var(--nx-accent);
	background:
		linear-gradient(120deg, var(--nx-accent-soft), transparent 55%),
		var(--nx-panel);
	padding: 30px 32px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 26px;
}
/* Albumcover als Platte links; Badge, Titel und Text stapeln sich als zweite
   Spalte rechts daneben. Die Textelemente teilen sich über align-content einen
   gemeinsamen Block — sonst würde das kurze „Release"-Badge allein oben stehen
   und darunter eine Lücke aufreißen. */
.nocturnis-epk .nx-album__cover {
	width: 160px;
	height: 160px;
	flex: 0 0 auto;
	object-fit: cover;
	border: 1px solid var(--nx-line-soft);
	display: block;
}
.nocturnis-epk .nx-album__body {
	flex: 1 1 calc(100% - 160px - 26px);
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.nocturnis-epk .nx-album__body .nx-album__meta { margin: 4px 0 0; }
@media (max-width: 560px) {
	.nocturnis-epk .nx-album { justify-content: center; text-align: center; }
	.nocturnis-epk .nx-album__cover { width: 200px; height: 200px; }
	.nocturnis-epk .nx-album__body {
		flex-basis: 100%;
		align-items: center;
	}
}

/* --- Über uns / About us: Bio-Text links, Besetzung rechts --- */
.nocturnis-epk .nx-about {
	margin-top: 16px;
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	gap: clamp(28px, 5vw, 64px);
	align-items: start;
}
.nocturnis-epk .nx-about__text p { margin: 0 0 16px; }
.nocturnis-epk .nx-about__text p:last-child { margin-bottom: 0; }
.nocturnis-epk .nx-about__lineup-label {
	margin: 0 0 8px;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--nx-muted);
}
@media (max-width: 760px) {
	.nocturnis-epk .nx-about { grid-template-columns: 1fr; gap: 30px; }
}
.nocturnis-epk .nx-album__tag {
	text-transform: uppercase;
	letter-spacing: 0.2em;
	font-size: 11px;
	color: #fff;
	background: var(--nx-accent);
	padding: 6px 12px;
	font-family: var(--font-primary, "Merriweather", serif);
}
.nocturnis-epk .nx-album__title {
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: 30px;
	font-weight: 700;
	margin: 0;
}
.nocturnis-epk .nx-album__meta {
	color: var(--nx-muted);
	margin: 6px 0 0;
	flex-basis: 100%;
	font-size: 15px;
}

/* --- Live list --- */
.nocturnis-epk .nx-live {
	display: grid;
	gap: 2px;
}
.nocturnis-epk .nx-live__row {
	display: flex;
	gap: 18px;
	align-items: flex-start;
	padding: 18px 4px;
	border-bottom: 1px solid var(--nx-line-soft);
}
.nocturnis-epk .nx-live__row:first-child {
	border-top: 1px solid var(--nx-line-soft);
}
.nocturnis-epk .nx-live__ico {
	color: var(--nx-accent);
	flex: 0 0 auto;
	margin-top: 2px;
}
.nocturnis-epk .nx-live__ico svg { width: 20px; height: 20px; }
.nocturnis-epk .nx-live strong {
	font-weight: 700;
}

/* --- Press quotes --- */
.nocturnis-epk .nx-quotes {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.nocturnis-epk .nx-quote {
	border: 1px solid var(--nx-line-soft);
	background: var(--nx-panel);
	padding: 28px 24px;
	display: flex;
	flex-direction: column;
	position: relative;
}
.nocturnis-epk .nx-quote__rating {
	align-self: flex-start;
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: 18px;
	font-weight: 700;
	color: #fff;
	background: var(--nx-accent);
	padding: 3px 12px;
	margin-bottom: 18px;
	letter-spacing: 0.02em;
}
.nocturnis-epk .nx-quote__text {
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: 20px;
	line-height: 1.4;
	margin: 0 0 18px;
}
.nocturnis-epk .nx-quote__source {
	margin-top: auto;
	color: var(--nx-muted);
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* --- Specs (Praktisches) --- */
.nocturnis-epk .nx-specs {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}
.nocturnis-epk .nx-spec {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding: 18px 20px;
	border: 1px solid var(--nx-line-soft);
	background: var(--nx-panel);
}
.nocturnis-epk .nx-spec__ico { color: var(--nx-accent); flex: 0 0 auto; margin-top: 1px; }
.nocturnis-epk .nx-spec__ico svg { width: 20px; height: 20px; }
.nocturnis-epk .nx-spec b { display: block; margin-bottom: 3px; }
.nocturnis-epk .nx-spec span { color: var(--nx-muted); }

/* --- Booking / contact band --- */
.nocturnis-epk .nx-booking {
	text-align: center;
	border: 1px solid var(--nx-line-soft);
	background: var(--nx-panel);
	padding: 46px 24px;
}
.nocturnis-epk .nx-booking h2 { margin-bottom: 10px; border: 0; }
.nocturnis-epk .nx-booking p { color: var(--nx-muted); margin: 0 0 26px; }

/* --- Social --- */
.nocturnis-epk .nx-social {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}
.nocturnis-epk .nx-social a {
	width: 48px;
	height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--nx-line);
	border-radius: 50%;
	color: #fff;
	transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease, border-color 0.25s ease;
}
.nocturnis-epk .nx-social a:hover {
	background: var(--nx-accent);
	border-color: var(--nx-accent);
	transform: translateY(-3px);
}
.nocturnis-epk .nx-social svg { width: 20px; height: 20px; }

/* --- Downloads --- */
.nocturnis-epk .nx-downloads {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}
.nocturnis-epk .nx-dl {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 20px 22px;
	border: 1px solid var(--nx-line-soft);
	background: var(--nx-panel);
	text-decoration: none;
	color: #fff;
	transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.nocturnis-epk .nx-dl:hover {
	background: var(--nx-panel-hover);
	border-color: var(--nx-accent);
	transform: translateY(-2px);
}
.nocturnis-epk .nx-dl__ico {
	color: var(--nx-accent);
	flex: 0 0 auto;
}
.nocturnis-epk .nx-dl__ico svg { width: 24px; height: 24px; }
.nocturnis-epk .nx-dl__t { font-weight: 700; display: block; }
.nocturnis-epk .nx-dl__s { color: var(--nx-muted); font-size: 13px; }

/* --- Members --- */
.nocturnis-epk .nx-members {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
	gap: 14px;
}
.nocturnis-epk .nx-member {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--nx-line-soft);
	background: var(--nx-panel);
}
.nocturnis-epk .nx-member img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	object-position: center 25%;
	display: block;
	filter: grayscale(0.2) contrast(1.03);
	transition: transform 0.55s ease, filter 0.45s ease;
}
.nocturnis-epk .nx-member:hover img {
	transform: scale(1.05);
	filter: grayscale(0);
}
.nocturnis-epk .nx-member__name {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 34px 16px 14px;
	background: linear-gradient(transparent, rgba(0, 0, 0, 0.88));
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #fff; /* always on a dark photo */
}
.nocturnis-epk .nx-member__role {
	display: block;
	font-family: var(--font-primary, "Merriweather", serif);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.72); /* always on a dark photo */
	margin-top: 2px;
}
/* Zusatzzeile (z. B. Vince als Live-Bassist) — dieselben Tokens wie __role,
   aber als lesbarer Satz: normale Schreibung, kein Sperrsatz. */
.nocturnis-epk .nx-member__note {
	display: block;
	font-family: var(--font-primary, "Merriweather", serif);
	font-size: 11px;
	font-weight: 300;
	line-height: 1.4;
	color: rgba(255, 255, 255, 0.64); /* always on a dark photo */
	margin-top: 6px;
}

/* --- Responsive --- */
@media (max-width: 782px) {
	.nocturnis-epk .nx-facts,
	.nocturnis-epk .nx-quotes,
	.nocturnis-epk .nx-specs,
	.nocturnis-epk .nx-downloads {
		grid-template-columns: 1fr;
	}
	.nocturnis-epk .nx-members {
		grid-template-columns: repeat(2, 1fr);
	}
	.nocturnis-epk .nx-hero--photo { min-height: 460px; }
	.nocturnis-epk .nx-section { padding: 44px 0; }
}

/* Keep the footer social icons clear of the floating day/night
   toggle (position:fixed, bottom-right) so the last icon stays clickable. */
.ms-footer .ms-s-w {
	padding-right: 78px;
}

/* =========================================================
   Light mode ("Tag"-Ansicht)
   Flip the panel / line / muted tokens and dark-on-light text
   so the (otherwise white) fonts stay readable on a light bg.
   The hero and the member cards keep white text — they always
   sit on a dark photo regardless of the selected mode.
   ========================================================= */
body[data-theme="light"] .nocturnis-epk {
	--nx-line: rgba(0, 0, 0, 0.18);
	--nx-line-soft: rgba(0, 0, 0, 0.09);
	--nx-panel: rgba(0, 0, 0, 0.035);
	--nx-panel-hover: rgba(0, 0, 0, 0.06);
	--nx-muted: rgba(0, 0, 0, 0.62);
}

/* Ghost buttons, social icons & download tiles: dark text on light bg */
body[data-theme="light"] .nocturnis-epk .nx-btn,
body[data-theme="light"] .nocturnis-epk .nx-social a,
body[data-theme="light"] .nocturnis-epk .nx-dl,
body[data-theme="light"] .nocturnis-epk .nx-dl__t {
	color: #111;
}
body[data-theme="light"] .nocturnis-epk .nx-btn {
	border-color: rgba(0, 0, 0, 0.24);
}
body[data-theme="light"] .nocturnis-epk .nx-btn:hover,
body[data-theme="light"] .nocturnis-epk .nx-social a:hover {
	background: #111;
	color: #fff;
	border-color: #111;
}
/* Primary filled button: dark fill / light text in light mode */
body[data-theme="light"] .nocturnis-epk .nx-btn--primary {
	background: #111;
	color: #fff;
	border-color: #111;
}
body[data-theme="light"] .nocturnis-epk .nx-btn--primary:hover {
	background: var(--nx-accent);
	border-color: var(--nx-accent);
	color: #fff;
}

/* The hero always sits on the dark photo — keep its buttons light. */
body[data-theme="light"] .nocturnis-epk .nx-hero--photo .nx-btn {
	color: #fff;
	border-color: rgba(255, 255, 255, 0.6);
}
body[data-theme="light"] .nocturnis-epk .nx-hero--photo .nx-btn:hover {
	background: #fff;
	color: #0a0a0a;
	border-color: #fff;
}
body[data-theme="light"] .nocturnis-epk .nx-hero--photo .nx-btn--primary {
	background: #fff;
	color: #0a0a0a;
	border-color: #fff;
}
body[data-theme="light"] .nocturnis-epk .nx-hero--photo .nx-btn--primary:hover {
	background: var(--nx-accent);
	color: #fff;
	border-color: var(--nx-accent);
}

/* =========================================================
   Press page components (.nocturnis-epk scope, reused tokens)
   ========================================================= */

/* --- Bio (short + long) with copy buttons --- */
.nocturnis-epk .nx-bio {
	display: grid;
	grid-template-columns: 1fr 1.5fr;
	gap: 16px;
}
.nocturnis-epk .nx-bio__card {
	border: 1px solid var(--nx-line-soft);
	background: var(--nx-panel);
	padding: 28px 28px 24px;
	display: flex;
	flex-direction: column;
}
.nocturnis-epk .nx-bio__text {
	font-size: 15px;
	line-height: 1.7;
}
.nocturnis-epk .nx-bio__text p {
	margin: 0 0 12px;
}
.nocturnis-epk .nx-bio__text p:last-child {
	margin-bottom: 0;
}

/* --- Copy button --- */
.nocturnis-epk .nx-copy {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 18px;
	padding: 9px 16px;
	font-family: var(--font-primary, "Merriweather", serif);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border: 1px solid var(--nx-line);
	background: transparent;
	color: inherit;
	cursor: pointer;
	transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.nocturnis-epk .nx-copy svg { width: 15px; height: 15px; }
.nocturnis-epk .nx-copy:hover,
.nocturnis-epk .nx-copy.is-copied {
	background: var(--nx-accent);
	border-color: var(--nx-accent);
	color: #fff;
}

/* --- Press photos download grid --- */
.nocturnis-epk .nx-photos {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}
.nocturnis-epk .nx-photo {
	position: relative;
	display: block;
	overflow: hidden;
	border: 1px solid var(--nx-line-soft);
	aspect-ratio: 3 / 2;
	text-decoration: none;
}
.nocturnis-epk .nx-photo--wide { grid-column: span 2; }
.nocturnis-epk .nx-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 28%;
	display: block;
	transition: transform 0.5s ease;
}
.nocturnis-epk .nx-photo:hover img { transform: scale(1.05); }
.nocturnis-epk .nx-photo__label {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	gap: 8px;
	padding: 14px 16px;
	background: linear-gradient(transparent 45%, rgba(0, 0, 0, 0.82));
	color: #fff;
	font-family: var(--font-primary, "Merriweather", serif);
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	opacity: 0.92;
	transition: opacity 0.25s ease;
}
.nocturnis-epk .nx-photo:hover .nx-photo__label { opacity: 1; }
.nocturnis-epk .nx-photo__label svg { width: 16px; height: 16px; flex: 0 0 auto; }

/* --- Media embed (SoundCloud) --- */
.nocturnis-epk .nx-embed {
	border: 1px solid var(--nx-line-soft);
	background: var(--nx-panel);
	overflow: hidden;
}
.nocturnis-epk .nx-embed iframe {
	display: block;
	width: 100%;
	border: 0;
}
.nocturnis-epk .nx-embed__placeholder {
	min-height: 300px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	text-align: center;
	padding: 40px 24px;
	color: var(--nx-muted);
}
.nocturnis-epk .nx-embed__placeholder svg { width: 40px; height: 40px; color: var(--nx-accent); }

/* --- Footer: Abstände ---
   Das Elementor-Template bringt weder unten noch seitlich Polsterung mit, dadurch
   klebte die Copyright-Zeile am unteren Bildschirmrand und begann ganz links an
   der Kante. */
.ms-footer {
	padding: 0 24px 46px;
}
@media (max-width: 600px) {
	.ms-footer { padding: 0 18px 36px; }
}
/* Die beiden Fußzeilen-Spalten teilten sich starr 50/50 — die fünf Social-Icons
   ließen dabei die Hälfte leer stehen, während „Datenschutz" in die zweite Zeile
   umbrach. Jetzt nimmt der Text den Platz, den er braucht. */
@media (min-width: 768px) {
	.ms-footer .elementor-inner-section > .elementor-container {
		display: flex;
		align-items: center;
	}
	.ms-footer .elementor-inner-column:first-child {
		width: auto;
		flex: 1 1 auto;
	}
	.ms-footer .elementor-inner-column:last-child {
		width: auto;
		flex: 0 0 auto;
	}
}

/* --- Footer: Siegel über der Copyright-Zeile --- */
.nx-footer-mark {
	text-align: center;
	padding: 0 0 26px;
}
.nx-footer-mark__img {
	display: inline-block;
	width: clamp(58px, 7vw, 76px);
	height: auto;
	opacity: 0.75;
}
/* Zwei Fassungen, weil das weiße Siegel im Light-Mode auf hellem Grund
   verschwinden würde. Dark ist der Standard des Themes. */
.nx-footer-mark__img--on-light { display: none; }
body[data-theme="light"] .nx-footer-mark__img--on-dark { display: none; }
body[data-theme="light"] .nx-footer-mark__img--on-light { display: inline-block; }

/* --- Rechtstexte (Impressum, Datenschutz) --- */
/* Überall sonst folgt ein h2 auf einen Kicker, darum steht margin-top auf 0.
   In den Rechtstexten folgt es auf Fließtext und klebt dort. Nur diesen Fall
   auffangen, statt die Abstände global zu verschieben. */
.nocturnis-epk p:not(.nx-kicker) + h2 {
	margin-top: 46px;
}
.nocturnis-epk p:not(.nx-kicker) + h3 {
	margin-top: 30px;
}
/* Das Theme färbt Links lila (rgb(110,83,249)) — das beißt sich mit dem
   Crimson-Akzent. Farbe erben lassen und den Akzent nur in die Unterstreichung
   legen: bleibt in Dark und Light lesbar, Rot allein hätte auf dunklem Grund
   zu wenig Kontrast für Fließtext.
   !important ist hier nötig, nicht bequem: main.css setzt
   `.entry-content a:not(...):not(...):not(...):not(...)` — vier :not() treiben
   die Spezifität auf (0,5,1), da kommt kein vernünftiger Selektor mehr ran, und
   deren `text-decoration`-Kurzschreibweise setzt die Unterstrichfarbe zurück. */
.nocturnis-epk p a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: var(--nx-accent) !important;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color 0.16s ease;
}
.nocturnis-epk p a:hover,
.nocturnis-epk p a:focus-visible {
	color: #c1332f;
	text-decoration-color: #c1332f !important;
}

/* --- Press photos responsive --- */
@media (max-width: 782px) {
	.nocturnis-epk .nx-bio { grid-template-columns: 1fr; }
	.nocturnis-epk .nx-photos { grid-template-columns: 1fr; }
	.nocturnis-epk .nx-photo--wide { grid-column: auto; }
}

/* --- SoundCloud 2-click consent loader --- */
.nocturnis-epk .nx-scembed__consent {
	min-height: 300px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	text-align: center;
	padding: 44px 24px;
}
.nocturnis-epk .nx-scembed__consent > svg {
	width: 42px;
	height: 42px;
	color: var(--nx-accent);
}
.nocturnis-epk .nx-scembed__title {
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: 24px;
	font-weight: 600;
	margin: 0;
}
.nocturnis-epk .nx-scembed__note {
	color: var(--nx-muted);
	font-size: 13px;
	line-height: 1.6;
	max-width: 460px;
	margin: 0;
}
.nocturnis-epk .nx-scembed__load {
	margin-top: 6px;
}
.nocturnis-epk .nx-scembed iframe {
	display: block;
	width: 100%;
	height: 450px;
	border: 0;
}

/* --- Videos (YouTube, 2-Klick-Consent wie oben) --- */
.nocturnis-epk .nx-videos {
	display: flex;
	flex-direction: column;
	gap: 34px;
}
/* Gleicher Abstand zwischen dem Audio-Player (Spotify) darüber und den Videos
   wie zwischen den Videos untereinander. */
.nocturnis-epk .nx-embed + .nx-videos {
	margin-top: 34px;
}
.nocturnis-epk .nx-video {
	margin: 0;
}
.nocturnis-epk .nx-video__frame {
	border: 1px solid var(--nx-line-soft);
	background: var(--nx-panel);
	/* KEIN overflow:hidden — hier gibt es nichts zu beschneiden, und es hat schon
	   einmal den Ladebutton auf dem Handy abgeschnitten. */
}
/* Die Höhe bestimmt der Inhalt. Hinweis und Button müssen vollständig da sein —
   lieber ein kleiner Sprung beim Laden als ein halber Button. */
.nocturnis-epk .nx-video__frame .nx-scembed__consent {
	min-height: 240px;
	padding: 24px;
}
/* Erst ab dieser Breite passt der Text bequem ins 16:9. Dann darf die Fläche
   exakt die spätere Videogröße annehmen und es springt beim Laden nichts. */
@media (min-width: 700px) {
	.nocturnis-epk .nx-video__frame .nx-scembed__consent {
		aspect-ratio: 16 / 9;
		min-height: 0;
	}
}

/* --- Standbild-Variante: sieht aus wie der YouTube-Player, ist aber nur ein
   Bild von unserem eigenen Server. Google wird erst beim Klick kontaktiert. --- */
.nocturnis-epk .nx-video__frame--poster {
	border: 0;
	background: #000;
}
.nocturnis-epk .nx-video__poster {
	position: relative;
	aspect-ratio: 16 / 9;
	cursor: pointer;
	overflow: hidden;
}
.nocturnis-epk .nx-video__poster img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* Scrims oben und unten: Titel und Hinweis müssen auf jedem Standbild lesbar
   bleiben, egal wie hell es an der Stelle ist. */
.nocturnis-epk .nx-video__poster::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to bottom, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0) 26%),
		linear-gradient(to top, rgba(0,0,0,0.78) 0%, rgba(0,0,0,0) 34%);
	pointer-events: none;
}
.nocturnis-epk .nx-video__t,
.nocturnis-epk .nx-video__note {
	position: absolute;
	left: 0;
	right: 0;
	z-index: 2;
	margin: 0;
	pointer-events: none;
	color: #fff;
}
.nocturnis-epk .nx-video__t {
	top: 0;
	padding: 16px 20px;
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: 0.01em;
	text-shadow: 0 1px 12px rgba(0,0,0,0.6);
}
.nocturnis-epk .nx-video__note {
	bottom: 0;
	padding: 12px 20px 14px;
	font-size: 12px;
	line-height: 1.5;
	color: rgba(255,255,255,0.82);
	text-shadow: 0 1px 10px rgba(0,0,0,0.7);
}
.nocturnis-epk .nx-video__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 3;
	width: 68px;
	height: 48px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
	transition: transform 0.18s ease;
}
.nocturnis-epk .nx-video__play svg {
	width: 100%;
	height: 100%;
	display: block;
}
.nocturnis-epk .nx-video__play-bg {
	fill: #212121;
	fill-opacity: 0.8;
	transition: fill 0.18s ease, fill-opacity 0.18s ease;
}
.nocturnis-epk .nx-video__poster:hover .nx-video__play {
	transform: translate(-50%, -50%) scale(1.06);
}
.nocturnis-epk .nx-video__poster:hover .nx-video__play-bg,
.nocturnis-epk .nx-video__play:focus-visible .nx-video__play-bg {
	fill: #c1332f;
	fill-opacity: 1;
}
.nocturnis-epk .nx-video__play:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 6px;
}
@media (max-width: 600px) {
	.nocturnis-epk .nx-video__t { font-size: 18px; padding: 12px 14px; }
	.nocturnis-epk .nx-video__note { font-size: 11px; padding: 10px 14px 12px; }
	.nocturnis-epk .nx-video__play { width: 54px; height: 38px; }
}
/* Erst das geladene Video ist exakt 16:9. */
.nocturnis-epk .nx-video__frame iframe {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	border: 0;
}
@media (max-width: 600px) {
	.nocturnis-epk .nx-videos { gap: 24px; }
	.nocturnis-epk .nx-embed + .nx-videos { margin-top: 24px; }
	.nocturnis-epk .nx-video__frame .nx-scembed__consent { padding: 20px 16px; gap: 10px; }
	.nocturnis-epk .nx-video__frame .nx-scembed__consent > svg { width: 30px; height: 30px; }
	.nocturnis-epk .nx-video__frame .nx-scembed__title { font-size: 19px; }
}

/* --- Tracklist (press album section) --- */
.nocturnis-epk .nx-tracklist {
	list-style: none;
	margin: 22px 0 0;
	padding: 0;
	border-top: 1px solid var(--nx-line-soft);
}
.nocturnis-epk .nx-tracklist li {
	display: flex;
	align-items: baseline;
	gap: 16px;
	padding: 13px 4px;
	border-bottom: 1px solid var(--nx-line-soft);
}

/* --- Tracks mit aufklappbarem Songtext ---
   Die Zeile selbst bleibt optisch wie bisher; nur Tracks mit hinterlegtem Text
   bekommen einen Pfeil und lassen sich öffnen. */
.nocturnis-epk .nx-tracklist li.nx-track {
	display: block;
	padding: 0;
}
.nocturnis-epk .nx-track__head {
	display: flex;
	align-items: baseline;
	gap: 16px;
	padding: 13px 4px;
	list-style: none;
}
.nocturnis-epk .nx-track__head::-webkit-details-marker { display: none; }
.nocturnis-epk .nx-track--has-lyrics .nx-track__head {
	cursor: pointer;
	transition: color 0.18s ease;
}
.nocturnis-epk .nx-track--has-lyrics .nx-track__head:hover .nx-tracklist__title {
	color: var(--nx-accent);
}
.nocturnis-epk .nx-track__pfeil {
	margin-left: auto;
	display: inline-flex;
	color: var(--nx-muted);
	transition: transform 0.22s ease, color 0.18s ease;
}
.nocturnis-epk .nx-track__pfeil svg { width: 17px; height: 17px; }
.nocturnis-epk .nx-track__box[open] .nx-track__pfeil {
	transform: rotate(180deg);
	color: var(--nx-accent);
}
.nocturnis-epk .nx-track__head:focus-visible {
	outline: 2px solid var(--nx-accent);
	outline-offset: -2px;
}
/* Der Songtext selbst: eingerückt auf Höhe des Titels, damit die Nummern-
   spalte als Orientierung stehen bleibt. */
.nocturnis-epk .nx-track__lyrics {
	padding: 4px 4px 22px 46px;
	color: var(--nx-muted);
	font-size: 15px;
	line-height: 1.85;
	white-space: normal;
	max-width: 62ch;
	/* Optik wie im Booklet (Versalien), aber der gespeicherte Text bleibt in
	   normaler Schreibung — lesbar beim Kopieren und für Screenreader. */
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
/* Autorenangabe: dezent über dem Text, wie im Booklet. */
.nocturnis-epk .nx-track__autor {
	margin: 0 0 14px;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--nx-accent);
}
/* Kennzeichnung der Übersetzung — muss vor dem Text stehen und als Hinweis
   erkennbar sein, nicht als Teil des Songtexts. */
.nocturnis-epk .nx-track__hinweis {
	margin: 0 0 16px;
	padding-left: 11px;
	border-left: 2px solid var(--nx-line-soft);
	font-size: 12px;
	font-style: italic;
	line-height: 1.5;
	color: var(--nx-muted);
	opacity: 0.85;
}
@media (max-width: 600px) {
	.nocturnis-epk .nx-track__lyrics { padding-left: 4px; font-size: 14px; }
	.nocturnis-epk .nx-track__head { gap: 12px; }
}
.nocturnis-epk .nx-tracklist__no {
	flex: 0 0 auto;
	width: 26px;
	color: var(--nx-accent);
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: 17px;
	font-weight: 700;
}
.nocturnis-epk .nx-tracklist__title {
	flex: 1;
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: 19px;
	font-weight: 600;
}
.nocturnis-epk .nx-tracklist__dur {
	flex: 0 0 auto;
	color: var(--nx-muted);
	font-size: 13px;
	font-variant-numeric: tabular-nums;
}
.nocturnis-epk .nx-tracklist__total {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	padding: 12px 4px 0;
	color: var(--nx-muted);
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* --- Credits grid --- */
.nocturnis-epk .nx-credits {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}
.nocturnis-epk .nx-credit {
	border: 1px solid var(--nx-line-soft);
	background: var(--nx-panel);
	padding: 18px 20px;
}
.nocturnis-epk .nx-credit b {
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	font-size: 11px;
	color: var(--nx-muted);
	font-family: var(--font-primary, "Merriweather", serif);
	font-weight: 400;
	margin-bottom: 5px;
}
/* Nur der direkte Wert-Span (`> span`), NICHT die Übersetzungs-Spans innerhalb
   des <b>-Labels — sonst würden zweisprachige Labels („Vocals", „Guitars" …)
   auf Wertgröße aufgeblasen, einsprachige („Bass") blieben klein. */
.nocturnis-epk .nx-credit > span {
	/* Textschrift statt Display-Serife: Cormorant Garamond hat eine niedrige
	   x-Höhe, wodurch reine Kleinschreibung (@-Handles, Jahreszahlen) neben
	   Namen mit Großbuchstaben optisch kleiner wirkt — obwohl die Schriftgröße
	   identisch ist. Merriweather gibt allen Werten ein gleichmäßiges Bild. */
	font-family: var(--font-primary, "Merriweather", serif);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
}

@media (max-width: 782px) {
	.nocturnis-epk .nx-credits { grid-template-columns: 1fr; }
}

/* =========================================================
   Bilingual press page (DE/EN language switch)
   ========================================================= */
/* Seitenweit: data-lang sitzt am <html>, damit Inhalt, Menü und Footer
   gemeinsam umschalten. Die alte Variante am Inhaltsblock bleibt als Rückfall
   stehen, falls irgendwo noch ein Seiten-eigener Umschalter hängt. */
html[data-lang="de"] [data-l="en"],
html[data-lang="en"] [data-l="de"],
.nocturnis-epk[data-lang="de"] [data-l="en"],
.nocturnis-epk[data-lang="en"] [data-l="de"] {
	display: none !important;
}

/* --- Sprachumschalter im Hamburger-Menü ---
   Ohne Rahmen und Fläche: nur zwei Kürzel, durch einen feinen Strich getrennt.
   align-self verhindert, dass die Leiste im Flex-Panel auf volle Breite geht. */
.nx-langswitch--menu {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 10px;
	margin: 2px 0 26px;
}
.nx-langswitch--menu .nx-langswitch__btn {
	padding: 2px 0;
	font-family: var(--font-primary, "Merriweather", serif);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	background: none;
	border: 0;
	color: rgba(255, 255, 255, 0.45);
	cursor: pointer;
	transition: color 0.2s ease;
}
/* Trennstrich zwischen den beiden Kürzeln. */
.nx-langswitch--menu .nx-langswitch__btn + .nx-langswitch__btn {
	position: relative;
	padding-left: 11px;
}
.nx-langswitch--menu .nx-langswitch__btn + .nx-langswitch__btn::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 11px;
	background: rgba(255, 255, 255, 0.28);
}
.nx-langswitch--menu .nx-langswitch__btn:hover {
	color: rgba(255, 255, 255, 0.85);
}
.nx-langswitch--menu .nx-langswitch__btn.is-active {
	color: #fff;
}

.nocturnis-epk .nx-langswitch {
	display: inline-flex;
	margin: 26px auto 0;
	border: 1px solid rgba(255, 255, 255, 0.4);
}
.nocturnis-epk .nx-langbtn {
	padding: 8px 18px;
	font-family: var(--font-primary, "Merriweather", serif);
	font-size: 12px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	background: transparent;
	color: #fff;
	border: 0;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}
.nocturnis-epk .nx-langbtn + .nx-langbtn {
	border-left: 1px solid rgba(255, 255, 255, 0.4);
}
.nocturnis-epk .nx-langbtn.is-active {
	background: #fff;
	color: #0a0a0a;
}

/* --- Band statements --- */
.nocturnis-epk .nx-statements {
	display: grid;
	gap: 16px;
}
.nocturnis-epk .nx-statement {
	border-left: 2px solid var(--nx-accent);
	background: var(--nx-panel);
	padding: 26px 28px;
}
.nocturnis-epk .nx-statement__q {
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: 21px;
	line-height: 1.5;
	font-style: italic;
	margin: 0 0 14px;
}
.nocturnis-epk .nx-statement__by {
	color: var(--nx-accent);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-size: 12px;
	font-family: var(--font-primary, "Merriweather", serif);
}

/* --- Image carousel (Musiker / Pressefotos) --- */
.nocturnis-epk .nx-carousel {
	position: relative;
}
.nocturnis-epk .nx-carousel__track {
	display: flex;
	gap: 14px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-ms-overflow-style: none;
	padding: 2px 2px 4px;
}
.nocturnis-epk .nx-carousel__track::-webkit-scrollbar { display: none; }
.nocturnis-epk .nx-carousel__track > * {
	flex: 0 0 calc((100% - 28px) / 3);
	scroll-snap-align: start;
}
.nocturnis-epk .nx-carousel__btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 1px solid var(--nx-line);
	background: rgba(10, 10, 10, 0.72);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 4;
	transition: background 0.25s ease, border-color 0.25s ease;
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}
.nocturnis-epk .nx-carousel__btn:hover {
	background: var(--nx-accent);
	border-color: var(--nx-accent);
}
/* Pfeile als CSS-Chevron statt Inline-SVG: WordPress' Speicherfilter kann SVG
   aus dem Seiteninhalt entfernen (viewBox überlebt den Filter nicht), dann wären
   die Buttons wieder leer. Ein CSS-Chevron kann nicht gestrippt werden. */
.nocturnis-epk .nx-carousel__btn svg { display: none; } /* Alt-Icons ausblenden, falls noch vorhanden */
.nocturnis-epk .nx-carousel__btn::before {
	content: "";
	display: block;
	width: 9px;
	height: 9px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
}
.nocturnis-epk .nx-carousel__btn--prev::before {
	transform: rotate(135deg);
	margin-left: 4px;
}
.nocturnis-epk .nx-carousel__btn--next::before {
	transform: rotate(-45deg);
	margin-right: 4px;
}
.nocturnis-epk .nx-carousel__btn--prev { left: -10px; }
.nocturnis-epk .nx-carousel__btn--next { right: -10px; }
@media (max-width: 900px) {
	.nocturnis-epk .nx-carousel__track > * { flex-basis: calc((100% - 14px) / 2); }
}
@media (max-width: 560px) {
	.nocturnis-epk .nx-carousel__track > * { flex-basis: 84%; }
	.nocturnis-epk .nx-carousel__btn--prev { left: 2px; }
	.nocturnis-epk .nx-carousel__btn--next { right: 2px; }
}

/* --- Sticky-header siegel: rotation on hover --- */
@keyframes nx-siegel-spin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}
.main-header__logo a img {
	transition: filter 0.45s ease;
	transform-origin: center;
	will-change: transform;
}
.main-header__logo a:hover img {
	animation: nx-siegel-spin 0.9s cubic-bezier(0.45, 0, 0.25, 1);
	filter: drop-shadow(0 0 12px rgba(160, 30, 27, 0.85));
}

/* --- Homepage: upcoming shows list --- */
.nocturnis-epk .nx-shows { display: grid; gap: 0; }
.nocturnis-epk .nx-show {
	display: flex;
	align-items: center;
	gap: 22px;
	flex-wrap: wrap;
	padding: 20px 6px;
	border-bottom: 1px solid var(--nx-line-soft);
	transition: background 0.25s ease;
}
.nocturnis-epk .nx-show:first-child { border-top: 1px solid var(--nx-line-soft); }
.nocturnis-epk .nx-show:hover { background: var(--nx-panel); }
.nocturnis-epk .nx-show__date {
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: 20px;
	font-weight: 700;
	min-width: 132px;
	color: var(--nx-accent);
}
.nocturnis-epk .nx-show__info { flex: 1 1 220px; }
.nocturnis-epk .nx-show__city {
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: 22px;
	font-weight: 600;
	display: block;
}
.nocturnis-epk .nx-show__venue { color: var(--nx-muted); font-size: 14px; }
.nocturnis-epk .nx-show__cta { margin-left: auto; }
.nocturnis-epk .nx-show--tba { color: var(--nx-muted); font-style: italic; padding: 22px 6px; }

/* Homepage quicklink cards (reuse download-tile look) */
.nocturnis-epk .nx-links {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
@media (max-width: 782px) {
	.nocturnis-epk .nx-links { grid-template-columns: 1fr; }
	.nocturnis-epk .nx-show__cta { margin-left: 0; }
}
.nocturnis-epk .nx-linkcard {
	border: 1px solid var(--nx-line-soft);
	background: var(--nx-panel);
	padding: 30px 26px;
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.nocturnis-epk .nx-linkcard:hover { background: var(--nx-panel-hover); border-color: var(--nx-accent); transform: translateY(-3px); }
.nocturnis-epk .nx-linkcard__ico { color: var(--nx-accent); }
.nocturnis-epk .nx-linkcard__ico svg { width: 28px; height: 28px; }
.nocturnis-epk .nx-linkcard__t { font-family: var(--font-heading, "Cormorant Garamond", serif); font-size: 24px; font-weight: 600; }
.nocturnis-epk .nx-linkcard__s { color: var(--nx-muted); font-size: 14px; }

/* =========================================================
   Site-wide hamburger menu (off-canvas, real pages)
   Lives OUTSIDE .nocturnis-epk → literal colours.
   ========================================================= */
.nx-burger {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	margin-left: 28px;
	padding: 8px 4px;
	background: none;
	border: 0;
	color: inherit;
	cursor: pointer;
	font-family: "Merriweather", serif;
}
.nx-burger__lines {
	position: relative;
	width: 24px;
	height: 15px;
	display: inline-block;
	flex: 0 0 auto;
}
.nx-burger__lines span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 1.6px;
	background: currentColor;
	transition: transform 0.3s ease, opacity 0.3s ease;
}
.nx-burger__lines span:nth-child(1) { top: 0; }
.nx-burger__lines span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.nx-burger__lines span:nth-child(3) { bottom: 0; }
.nx-burger__label {
	font-size: 13px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/* Off-canvas overlay */
.nx-offcanvas {
	position: fixed;
	inset: 0;
	z-index: 99990;
	visibility: hidden;
	opacity: 0;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}
.nx-offcanvas.is-open { visibility: visible; opacity: 1; }
.nx-offcanvas__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.62);
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
}
.nx-offcanvas__panel {
	position: absolute;
	top: 0;
	right: 0;
	height: 100%;
	width: min(390px, 86vw);
	background: #0b0b0b;
	border-left: 1px solid rgba(160, 30, 27, 0.35);
	box-shadow: -30px 0 60px rgba(0, 0, 0, 0.5);
	transform: translateX(100%);
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
	display: flex;
	flex-direction: column;
	padding: 78px 42px 38px;
	overflow-y: auto;
}
.nx-offcanvas.is-open .nx-offcanvas__panel { transform: translateX(0); }
.nx-offcanvas__close {
	position: absolute;
	top: 24px;
	right: 28px;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 50%;
	background: none;
	color: #fff;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.25s ease, border-color 0.25s ease, transform 0.4s ease;
}
.nx-offcanvas__close:hover { background: #a01b1b; border-color: #a01b1b; transform: rotate(90deg); }
.nx-offcanvas__close svg { width: 18px; height: 18px; }
.nx-offcanvas__sigil { width: 66px; height: auto; opacity: 0.42; margin-bottom: 26px; }

.nx-sitemenu { list-style: none; margin: 0; padding: 0; }
.nx-sitemenu li { margin: 0; }
.nx-sitemenu a,
.nx-sitemenu a:visited {
	display: block;
	font-family: "Cormorant Garamond", serif;
	font-size: 30px;
	font-weight: 600;
	line-height: 1.35;
	color: #fff;
	text-decoration: none;
	padding: 6px 0;
	transition: color 0.2s ease, padding-left 0.25s ease;
}
.nx-sitemenu a:hover,
.nx-offcanvas .nx-sitemenu .current-menu-item > a,
.nx-offcanvas .nx-sitemenu .current-menu-item > a:visited { color: #c1332f !important; padding-left: 10px; }

.nx-offcanvas__heading {
	text-transform: uppercase;
	letter-spacing: 0.2em;
	font-size: 11px;
	color: rgba(255, 255, 255, 0.45);
	margin: 30px 0 8px;
	font-family: "Merriweather", serif;
}
.nx-sitemenu--sub a { font-size: 18px; font-weight: 400; color: rgba(255, 255, 255, 0.8); }

.nx-offcanvas__social {
	display: flex;
	gap: 12px;
	margin-top: auto;
	padding-top: 34px;
}
.nx-offcanvas__social a {
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.nx-offcanvas__social a:hover { background: #a01b1b; border-color: #a01b1b; transform: translateY(-3px); }
.nx-offcanvas__social svg { width: 18px; height: 18px; }

/* Header-Anker-Nav: ruhige, gesperrte Versalien im Stil der Section-Kicker und
   der CTA-Buttons statt der schwereren Fließtext-Serife. Kleiner + einzeilig,
   damit die neun (teils langen) Punkte nicht mehr zweizeilig umbrechen. */
.main-header__nav a {
	/* !important nur für die Größe: das Parent-Theme setzt sie mit hoher
	   Spezifität (.main-header__layout .main-header__default .navbar-nav
	   .menu-item a { font-size:17px }). Die übrigen Eigenschaften greifen so. */
	font-size: 13px !important;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.11em;
	white-space: nowrap;
}

/* Die horizontale Anker-Leiste trägt neun teils lange deutsche Labels; unter
   ~1240px passt sie nicht mehr neben Logo und MENÜ-Button, ohne überzulaufen.
   Darunter übernimmt der ohnehin sichtbare Hamburger die Navigation (er führt
   dieselben Anker im Panel). Ab 1240px zeigt die Leiste, das Panel lässt die
   dann doppelten Anker weg. */
@media (min-width: 1240px) {
	.nx-offcanvas__anchors { display: none; }
}
@media (max-width: 1239px) {
	.main-header__nav,
	.main-header__nav-trigger,
	.js-main-header__nav-trigger { display: none !important; }
	.nx-burger { margin-left: auto; }
}
/* Echtes Tablet/Mobil: nur noch das Hamburger-Icon ohne „MENÜ“-Text. */
@media (max-width: 1024px) {
	.nx-burger__label { display: none; }
}

/* --- Legal pages (Impressum / Datenschutz) prose --- */
.nocturnis-epk .nx-legal { max-width: 820px; }
.nocturnis-epk .nx-legal h2 {
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: clamp(24px, 3.4vw, 34px);
	font-weight: 700;
	line-height: 1.15;
	margin: 46px 0 16px;
}
.nocturnis-epk .nx-legal > h2:first-child { margin-top: 0; }
.nocturnis-epk .nx-legal h3 {
	font-family: var(--font-heading, "Cormorant Garamond", serif);
	font-size: 23px;
	font-weight: 600;
	margin: 30px 0 10px;
}
.nocturnis-epk .nx-legal h4 {
	font-family: var(--font-primary, "Merriweather", serif);
	font-size: 13px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--nx-muted);
	margin: 20px 0 6px;
}
.nocturnis-epk .nx-legal p,
.nocturnis-epk .nx-legal li {
	font-size: 15px;
	line-height: 1.75;
	margin: 0 0 14px;
}
.nocturnis-epk .nx-legal ul { margin: 0 0 16px; padding-left: 20px; }
.nocturnis-epk .nx-legal li { margin-bottom: 8px; }
.nocturnis-epk .nx-legal a { color: #c1332f; text-decoration: underline; word-break: break-word; }
.nocturnis-epk .nx-legal a:hover { color: #d84a44; }
.nocturnis-epk .nx-legal address { font-style: normal; line-height: 1.7; margin: 0 0 14px; }
.nocturnis-epk .nx-legal__source { color: var(--nx-muted); font-size: 13px; margin-top: 34px; }
