/* =========================================================================
   ELP MAIN — sektionsweise befüllt (T5 ff.)
   Reihenfolge der Blöcke folgt der Home-Sektionsreihenfolge.
   ========================================================================= */

/* === RESET / BASIS === */
.elp-container {
	width: 100%;
	max-width: var(--elp-container);
	margin-inline: auto;
	padding-inline: var(--elp-gutter);
}

@media (min-width: 1024px) {
	.elp-container { padding-inline: var(--elp-gutter-lg); }
}

/* === BUTTONS (global) === */
.elp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--elp-space-2);
	font-family: var(--elp-font-mono);
	font-size: var(--elp-label-size);
	font-weight: 500;
	letter-spacing: var(--elp-label-tracking);
	text-transform: uppercase;
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: var(--elp-radius-full);
	padding: 0.7rem 1.4rem;
	cursor: pointer;
	transition: background-color var(--elp-dur-fast) var(--elp-ease),
	            color var(--elp-dur-fast) var(--elp-ease),
	            border-color var(--elp-dur-fast) var(--elp-ease),
	            transform var(--elp-dur-fast) var(--elp-ease);
}
.elp-btn:hover { transform: translateY(-1px); }
.elp-btn:focus-visible { outline: 2px solid var(--elp-ring); outline-offset: 2px; }

.elp-btn--primary { background: var(--elp-primary-hero); color: #fff; }
.elp-btn--primary:hover { background: var(--elp-accent-dark); color: #fff; }

.elp-btn--ghost { background: transparent; color: var(--elp-primary); border-color: var(--elp-border); }
.elp-btn--ghost:hover { background: var(--elp-primary-soft); }

/* === HEADER === */
.elp-header {
	position: sticky;
	top: 0;
	z-index: 900;
	background: var(--elp-background);
	border-bottom: 1px solid var(--elp-border);
	transition: box-shadow var(--elp-dur) var(--elp-ease);
}
.elp-header.is-sticky { box-shadow: 0 1px 16px oklch(0.19 0.014 75 / 0.06); }

.elp-header__inner {
	width: 100%;
	max-width: var(--elp-container);
	margin-inline: auto;
	padding: 0.9rem var(--elp-gutter);
	display: flex;
	align-items: center;
	gap: var(--elp-space-6);
}
@media (min-width: 1024px) {
	.elp-header__inner { padding-inline: var(--elp-gutter-lg); }
}

.elp-header__logo { flex: 0 1 auto; min-width: 0; display: flex; align-items: center; text-decoration: none; }
/* Die Wortmarke ist mit rund 4,8:1 deutlich breiter als die frühere Bildmarke.
   Deshalb über die BREITE steuern (Höhe folgt dem Seitenverhältnis) und das
   Logo schrumpfbar halten — sonst schiebt es die Aktionsknöpfe aus dem Viewport.
   Mobil stehen neben dem Logo fünf 38-px-Knöpfe, das begrenzt die Breite hart. */
.elp-header__logo img { display: block; width: 132px; height: auto; max-width: 100%; }
@media (min-width: 640px)  { .elp-header__logo img { width: 168px; } }
/* 170 px ist alles, was im 1280er-Container neben Nav (644) und Aktionen (337)
   übrig bleibt — ein größerer Wert würde ohnehin zurückgeschrumpft. */
@media (min-width: 1280px) { .elp-header__logo img { width: 170px; } }

/* Mobil enger als das Seitenraster, damit die Wortmarke lesbar groß bleibt. */
@media (max-width: 639px) {
	.elp-header__inner { padding-inline: 16px; gap: 12px; }
}
.elp-header__logo-text {
	font-family: var(--elp-font-headline);
	font-weight: 600;
	font-size: 0.9rem;
	line-height: 1;
	letter-spacing: 0.02em;
	color: var(--elp-primary-hero);
}

/* --- Hauptnavigation --- */
.elp-header__nav { flex: 1 1 auto; display: none; }
/* Ab hier ist neben der breiten Wortmarke Platz fürs Mega-Menü (Logo 191 +
   Nav 644 + Aktionen 278 + Abstände = 835 px). Darunter greift der Burger. */
@media (min-width: 1280px) { .elp-header__nav { display: block; } }

.elp-nav { display: flex; align-items: center; gap: var(--elp-space-1); list-style: none; margin: 0; padding: 0; }
.elp-nav__item { position: static; }

.elp-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	white-space: nowrap;
	padding: 0.6rem 0.85rem;
	font-family: var(--elp-font-mono);
	font-size: var(--elp-label-size);
	font-weight: 500;
	letter-spacing: var(--elp-label-tracking);
	text-transform: uppercase;
	text-decoration: none;
	color: var(--elp-foreground);
	border-radius: var(--elp-radius-sm);
	transition: color var(--elp-dur-fast) var(--elp-ease), background-color var(--elp-dur-fast) var(--elp-ease);
}
.elp-nav__link:hover,
.elp-nav__item.is-offen > .elp-nav__link { color: var(--elp-primary); background: var(--elp-primary-soft); }

.elp-nav__chevron { width: 12px; height: 12px; transition: transform var(--elp-dur) var(--elp-ease); }
.elp-nav__item.is-offen .elp-nav__chevron { transform: rotate(180deg); }

/* --- Mega-Menü --- */
.elp-mega {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: var(--elp-background);
	border-top: 1px solid var(--elp-border);
	border-bottom: 1px solid var(--elp-border);
	box-shadow: 0 18px 40px oklch(0.19 0.014 75 / 0.08);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity var(--elp-dur) var(--elp-ease),
	            transform var(--elp-dur) var(--elp-ease),
	            visibility var(--elp-dur);
}
.elp-nav__item.is-offen .elp-mega { opacity: 1; visibility: visible; transform: translateY(0); }

.elp-mega__inner {
	max-width: var(--elp-container);
	margin-inline: auto;
	padding: var(--elp-space-8) var(--elp-gutter-lg);
}
.elp-mega__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	padding-bottom: var(--elp-space-4);
	margin-bottom: var(--elp-space-5);
	border-bottom: 1px solid var(--elp-border);
}
.elp-mega__count { font-family: var(--elp-font-mono); font-size: var(--elp-label-size); color: var(--elp-muted-foreground); }

.elp-mega__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--elp-space-2);
	list-style: none;
	margin: 0;
	padding: 0;
}
.elp-mega__link {
	display: flex;
	gap: var(--elp-space-3);
	padding: var(--elp-space-3);
	border-radius: var(--elp-radius);
	text-decoration: none;
	transition: background-color var(--elp-dur-fast) var(--elp-ease);
}
.elp-mega__link:hover { background: var(--elp-surface-muted-alt); }
.elp-mega__nr {
	font-family: var(--elp-font-mono);
	font-size: var(--elp-label-size);
	color: var(--elp-muted-foreground);
	padding-top: 0.15rem;
}
.elp-mega__body { display: flex; flex-direction: column; gap: 0.15rem; }
.elp-mega__titel { font-size: var(--elp-text-base); font-weight: 500; color: var(--elp-foreground); }
.elp-mega__sub { font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }

.elp-mega__fuss {
	display: inline-block;
	margin-top: var(--elp-space-5);
	padding-top: var(--elp-space-4);
	border-top: 1px solid var(--elp-border);
	width: 100%;
	text-decoration: none;
	color: var(--elp-primary);
}
.elp-mega__fuss:hover { color: var(--elp-accent-dark); }

/* --- Aktionen rechts --- */
.elp-header__actions { flex: 0 0 auto; margin-left: auto; display: flex; align-items: center; gap: var(--elp-space-1); }

.elp-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 38px;
	height: 38px;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: var(--elp-radius-full);
	color: var(--elp-foreground);
	cursor: pointer;
	text-decoration: none;
	transition: background-color var(--elp-dur-fast) var(--elp-ease);
}
.elp-icon-btn:hover { background: var(--elp-surface-muted-alt); }
.elp-icon-btn:focus-visible { outline: 2px solid var(--elp-ring); outline-offset: 2px; }
.elp-icon-btn svg { width: 20px; height: 20px; }


.elp-cart-count {
	position: absolute;
	top: 2px;
	right: 2px;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	display: grid;
	place-items: center;
	background: var(--elp-primary-hero);
	color: #fff;
	font-family: var(--elp-font-mono);
	font-size: 0.625rem;
	line-height: 1;
	border-radius: var(--elp-radius-full);
}
.elp-cart-count.is-leer { display: none; }

.elp-header__cta { display: none; margin-left: var(--elp-space-2); }
@media (min-width: 900px) { .elp-header__cta { display: inline-flex; } }

/* --- Burger --- */
.elp-burger {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	width: 38px;
	height: 38px;
	padding: 0 8px;
	background: transparent;
	border: 0;
	cursor: pointer;
}
@media (min-width: 1280px) { .elp-burger { display: none; } }
.elp-burger span {
	display: block;
	height: 1.5px;
	background: var(--elp-foreground);
	border-radius: 2px;
	transition: transform var(--elp-dur) var(--elp-ease), opacity var(--elp-dur) var(--elp-ease);
}
.elp-burger.is-offen span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.elp-burger.is-offen span:nth-child(2) { opacity: 0; }
.elp-burger.is-offen span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }

/* --- Such-Overlay --- */
.elp-suche { border-top: 1px solid var(--elp-border); background: var(--elp-background); }
.elp-suche__inner {
	max-width: var(--elp-container);
	margin-inline: auto;
	padding: var(--elp-space-4) var(--elp-gutter);
	display: flex;
	align-items: center;
	gap: var(--elp-space-3);
}
.elp-suche__feld {
	flex: 1;
	padding: 0.75rem 1rem;
	font-family: var(--elp-font-body);
	font-size: var(--elp-text-base);
	color: var(--elp-foreground);
	background: var(--elp-surface-muted-alt);
	border: 1px solid var(--elp-input);
	border-radius: var(--elp-radius);
}
.elp-suche__feld:focus { outline: 2px solid var(--elp-ring); outline-offset: 1px; }
.elp-suche__close {
	width: 38px; height: 38px;
	background: transparent; border: 0;
	font-size: 1.5rem; line-height: 1;
	color: var(--elp-muted-foreground);
	cursor: pointer;
}

.elp-suche__ergebnisse { max-width: var(--elp-container); margin-inline: auto; padding-inline: var(--elp-gutter); }
.elp-suche__ergebnisse.is-gefuellt { padding-bottom: var(--elp-space-5); }
.elp-suche__status { padding: var(--elp-space-3) 0; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }

.elp-suche__treffer {
	display: flex;
	align-items: center;
	gap: var(--elp-space-3);
	padding: var(--elp-space-3);
	border-radius: var(--elp-radius);
	text-decoration: none;
	color: var(--elp-foreground);
	transition: background-color var(--elp-dur-fast) var(--elp-ease);
}
.elp-suche__treffer:hover { background: var(--elp-surface-muted-alt); }
.elp-suche__treffer img,
.elp-suche__platzhalter {
	width: 48px; height: 48px;
	object-fit: contain;
	background: var(--elp-surface-muted-alt);
	border-radius: var(--elp-radius-sm);
	flex: 0 0 auto;
}
.elp-suche__text { display: flex; flex-direction: column; gap: 0.15rem; }
.elp-suche__titel { font-weight: 500; }
.elp-suche__preis { font-family: var(--elp-font-mono); font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }

/* --- Region-Dropdown --- */

/* --- Mobiles Menü --- */
.elp-mobile {
	border-top: 1px solid var(--elp-border);
	background: var(--elp-background);
	max-height: calc(100dvh - 70px);
	overflow-y: auto;
	padding: var(--elp-space-5) var(--elp-gutter) var(--elp-space-8);
}
@media (min-width: 1280px) { .elp-mobile { display: none; } }
body.elp-menu-offen { overflow: hidden; }

.elp-mobile__liste { list-style: none; margin: 0; padding: 0; }
.elp-mobile__item + .elp-mobile__item { border-top: 1px solid var(--elp-border); }
.elp-mobile__link {
	display: block;
	padding: var(--elp-space-4) 0 var(--elp-space-2);
	font-family: var(--elp-font-mono);
	font-size: var(--elp-text-sm);
	letter-spacing: var(--elp-label-tracking);
	text-transform: uppercase;
	text-decoration: none;
	color: var(--elp-foreground);
}
.elp-mobile__sub { list-style: none; margin: 0 0 var(--elp-space-3); padding: 0; }
.elp-mobile__sub a {
	display: flex;
	gap: var(--elp-space-3);
	padding: var(--elp-space-2) 0;
	font-size: var(--elp-text-sm);
	text-decoration: none;
	color: var(--elp-muted-foreground);
}
.elp-mobile__nr { font-family: var(--elp-font-mono); font-size: var(--elp-label-size); }
.elp-mobile__cta { width: 100%; margin-top: var(--elp-space-5); }

/* === TICKER === */
.elp-ticker { overflow: hidden; max-width: 100%; }
.elp-ticker--dunkel { background: var(--elp-primary-hero); color: oklch(0.99 0.006 86 / 0.85); }
.elp-ticker--hell { background: var(--elp-surface-muted-alt); color: var(--elp-muted-foreground); border-block: 1px solid var(--elp-border); }

.elp-ticker__track {
	display: flex;
	width: max-content;
	animation: elp-ticker-scroll var(--elp-ticker-dur, 40s) linear infinite;
}
.elp-ticker:hover .elp-ticker__track { animation-play-state: paused; }

.elp-ticker__group { display: flex; align-items: center; }
.elp-ticker__item,
.elp-ticker__sep {
	font-family: var(--elp-font-mono);
	font-size: var(--elp-label-size);
	letter-spacing: var(--elp-label-tracking);
	text-transform: uppercase;
	white-space: nowrap;
	padding-block: 0.55rem;
}
.elp-ticker__item { padding-inline: var(--elp-space-4); }
.elp-ticker__sep { opacity: 0.45; }

@keyframes elp-ticker-scroll {
	from { transform: translate3d(0, 0, 0); }
	to   { transform: translate3d(-50%, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
	.elp-ticker__track { animation: none; }
}

/* === CHIPS & BADGES (global) === */
.elp-chip {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.55rem;
	font-size: var(--elp-text-xs);
	line-height: 1.4;
	color: var(--elp-info-foreground);
	background: var(--elp-info);
	border: 1px solid var(--elp-info-border);
	border-radius: var(--elp-radius-sm);
}
.elp-chip--mono { font-family: var(--elp-font-mono); letter-spacing: 0.05em; }
.elp-chip--grau { color: var(--elp-muted-foreground); background: var(--elp-surface-muted-alt); border-color: var(--elp-border); }

.elp-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.55rem;
	font-size: var(--elp-text-xs);
	line-height: 1.4;
	border-radius: var(--elp-radius-sm);
	border: 1px solid;
}
.elp-badge--gruen {
	color: var(--elp-success);
	background: oklch(0.55 0.11 155 / 0.07);
	border-color: oklch(0.55 0.11 155 / 0.25);
}

/* === STATUSLEISTE === */
.elp-statusbar { border-bottom: 1px solid var(--elp-border); background: var(--elp-background); }
.elp-statusbar__inner {
	display: flex;
	align-items: center;
	gap: var(--elp-space-6);
	min-height: 96px;
	padding-block: var(--elp-space-4);
}
.elp-statusbar__meta { display: flex; align-items: center; gap: var(--elp-space-4); flex-wrap: wrap; }
.elp-statusbar__trenner { color: var(--elp-border); }
.elp-statusbar__synthese { margin-left: auto; white-space: nowrap; }

.elp-statusbar__kette {
	flex: 1;
	display: none;
	align-items: center;
	justify-content: center;
	gap: 2px;
	min-width: 0;
	color: var(--elp-accent);
}
@media (min-width: 900px) { .elp-statusbar__kette { display: flex; } }

.elp-statusbar__terminus {
	font-family: var(--elp-font-mono);
	font-size: 0.625rem;
	color: var(--elp-muted-foreground);
	white-space: nowrap;
}
.elp-statusbar__linie { flex: 0 0 24px; height: 1px; background: currentColor; opacity: 0.5; }

.elp-statusbar__rest { position: relative; display: flex; flex-direction: column; align-items: center; width: 56px; }
.elp-statusbar__rest::before {
	content: '';
	position: absolute;
	top: 50%;
	left: -2px;
	right: -2px;
	height: 1px;
	background: currentColor;
	opacity: 0.5;
}
.elp-statusbar__rest-label {
	position: relative;
	font-family: var(--elp-font-mono);
	font-size: 0.5625rem;
	letter-spacing: 0.06em;
	color: var(--elp-muted-foreground);
}
.elp-statusbar__rest-punkt {
	position: relative;
	width: 5px;
	height: 5px;
	border: 1px solid currentColor;
	border-radius: var(--elp-radius-full);
	background: var(--elp-background);
}
.elp-statusbar__rest--oben { flex-direction: column; }
.elp-statusbar__rest--unten { flex-direction: column-reverse; }

/* === PEPTIDKETTEN-DIVIDER ===
   Die Kette läuft zwischen allen Sektionen und ist damit das Element, das die
   Marke durch die Seite trägt — deshalb Markengold. Rein dekorative SVG-Linien,
   also unkritisch; die Aminosäure-Kürzel daneben behalten --elp-muted-foreground. */
.elp-divider {
	position: relative;
	height: 64px;
	margin-block: var(--elp-space-6);
	color: var(--elp-gold);
	opacity: 0.95;
	border-block: 1px solid var(--elp-border);
}
.elp-divider__svg { width: 100%; height: 100%; display: block; }
/* Die Labels sitzen bei 0 % und 100 % und ragen sonst über den Viewport hinaus. */
.elp-divider__labels { position: absolute; inset: 0; }
.elp-divider__aa {
	position: absolute;
	transform: translateX(-50%);
	font-family: var(--elp-font-mono);
	font-size: 0.5rem;
	letter-spacing: 0.05em;
	color: var(--elp-muted-foreground);
}
.elp-divider__aa--oben { top: 2px; }
.elp-divider__aa--unten { bottom: 2px; }

.elp-divider__label {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	padding-inline: var(--elp-space-4);
	background: var(--elp-background);
	white-space: nowrap;
}

/* === HERO === */
.elp-hero { padding-block: var(--elp-space-10); }
.elp-hero__inner { display: grid; gap: var(--elp-space-5); }
@media (min-width: 1000px) {
	.elp-hero__inner { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
}

.elp-hero__karte {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 480px;
	padding: var(--elp-space-10) var(--elp-space-8);
	border-radius: var(--elp-radius-xl);
	overflow: hidden;
	background: var(--elp-primary-hero);
	color: #fff;
	isolation: isolate;
}
.elp-hero__bild {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.55;
	z-index: -1;
}
.elp-hero__karte::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, oklch(0.20 0.024 75 / 0.25) 0%, oklch(0.16 0.028 75 / 0.9) 75%);
}

.elp-hero__badge {
	position: absolute;
	top: var(--elp-space-5);
	right: var(--elp-space-5);
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.35rem 0.8rem;
	font-family: var(--elp-font-mono);
	font-size: var(--elp-label-size);
	letter-spacing: var(--elp-label-tracking);
	background: oklch(0.16 0.028 75 / 0.7);
	border-radius: var(--elp-radius-full);
	backdrop-filter: blur(6px);
}
.elp-hero__badge-punkt { width: 6px; height: 6px; border-radius: var(--elp-radius-full); background: var(--elp-success); }

.elp-hero__kicker {
	display: inline-flex;
	align-items: center;
	gap: var(--elp-space-3);
	margin-bottom: var(--elp-space-4);
	color: oklch(0.99 0.006 86 / 0.7) !important;
}
.elp-hero__kicker::before { content: ''; width: 36px; height: 1px; background: currentColor; }

.elp-hero__titel {
	margin: 0 0 var(--elp-space-3);
	font-family: var(--elp-font-headline);
	font-size: var(--elp-h1-size);
	font-weight: var(--elp-h1-weight);
	line-height: 1.08;
	letter-spacing: var(--elp-h1-tracking);
	color: #fff;
}
.elp-hero__spec { margin: 0 0 var(--elp-space-4); color: oklch(0.99 0.006 86 / 0.85) !important; }
.elp-hero__fliess {
	margin: 0 0 var(--elp-space-6);
	max-width: 46ch;
	font-size: var(--elp-text-base);
	line-height: 1.6;
	color: oklch(0.99 0.006 86 / 0.8);
}

.elp-hero__cta {
	display: inline-flex;
	align-items: center;
	gap: var(--elp-space-3);
	align-self: flex-start;
	padding: 0.8rem 1.5rem;
	font-family: var(--elp-font-mono);
	font-size: var(--elp-label-size);
	letter-spacing: var(--elp-label-tracking);
	text-transform: uppercase;
	text-decoration: none;
	/* Der wichtigste Marketing-Button trägt das Markengold. Schrift dunkel, nicht
	   weiß: Weiß auf Gold hat nur 2,0:1, das dunkle Ink dagegen 8,3:1.
	   Hover hellt auf (11,9:1) statt abzudunkeln — abgedunkeltes Gold käme
	   bei dieser kleinen Versalschrift unter die 4,5:1-Grenze. */
	color: var(--elp-primary-hero);
	background: var(--elp-gold);
	border-radius: var(--elp-radius-full);
	transition: background-color var(--elp-dur-fast) var(--elp-ease), transform var(--elp-dur-fast) var(--elp-ease);
}
.elp-hero__cta:hover { background: var(--elp-gold-hell); transform: translateY(-1px); }
.elp-hero__cta svg { width: 24px; height: 12px; }
.elp-hero__cta-zusatz { opacity: 0.86; }   /* auf Gold sonst nur 4,3:1 */

/* Blueprint-Spec-Karten */
/* Mobil/Tablet: normales Raster, alles sichtbar — ohne Zeigegerät gäbe es
   kein Aufklappen, und wichtige Aussagen dürfen nicht unerreichbar sein. */
.elp-hero__karten { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--elp-space-3); }
@media (min-width: 700px) and (max-width: 999px) { .elp-hero__karten { grid-template-columns: repeat(4, 1fr); } }

.elp-hero__spec-karte {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 240px;
	padding: var(--elp-space-5);
	background-color: var(--elp-background);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	color: var(--elp-accent);
}
@media (min-width: 1000px) { .elp-hero__spec-karte { min-height: 480px; } }

.elp-hero__spec-nr {
	font-family: var(--elp-font-mono);
	font-size: 0.625rem;
	letter-spacing: 0.08em;
	color: var(--elp-muted-foreground);
}
.elp-hero__spec-icon { position: absolute; top: var(--elp-space-4); right: var(--elp-space-4); }
.elp-hero__spec-icon svg { width: 34px; height: 34px; opacity: 0.8; }

.elp-hero__spec-body { margin-top: auto; }
.elp-hero__spec-wert {
	margin: 0.2rem 0 0;
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-xl);
	font-weight: 500;
	letter-spacing: -0.01em;
	color: var(--elp-foreground);
}
@media (min-width: 1000px) { .elp-hero__spec-wert { font-size: var(--elp-text-2xl); } }

/* === STATISTIK-LEISTE === */
.elp-stats { padding-block: var(--elp-space-6); }
.elp-stats__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	overflow: hidden;
}
@media (min-width: 800px) { .elp-stats__grid { grid-template-columns: repeat(5, 1fr); } }

.elp-stats__zelle {
	padding: var(--elp-space-5);
	border-right: 1px solid var(--elp-border);
	border-bottom: 1px solid var(--elp-border);
}
@media (min-width: 800px) { .elp-stats__zelle { border-bottom: 0; } }
.elp-stats__zelle:last-child { border-right: 0; }

.elp-stats__label { display: block; margin-bottom: var(--elp-space-2); }
.elp-stats__wert { margin: 0; display: flex; align-items: baseline; gap: 0.4rem; }
.elp-stats__zahl {
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-2xl);
	font-weight: 500;
	letter-spacing: -0.02em;
	color: var(--elp-foreground);
}
.elp-stats__zusatz {
	font-family: var(--elp-font-mono);
	font-size: var(--elp-text-xs);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--elp-muted-foreground);
}

/* === GRID === */
.elp-grid-sektion { padding-block: var(--elp-section-y); }

.elp-grid-sektion__kopf {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--elp-space-4);
	margin-bottom: var(--elp-space-8);
}
.elp-trust { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--elp-space-3); }
.elp-trust__titel { color: var(--elp-foreground); }
.elp-trust__text { font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }

.elp-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--elp-space-4);
}
@media (min-width: 640px)  { .elp-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .elp-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1240px) { .elp-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.elp-grid__leer { padding: var(--elp-space-10); text-align: center; color: var(--elp-muted-foreground); }

/* --- Karte --- */
.elp-karte {
	display: flex;
	flex-direction: column;
	background: var(--elp-card);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	overflow: hidden;
	transition: border-color var(--elp-dur) var(--elp-ease),
	            box-shadow var(--elp-dur) var(--elp-ease),
	            transform var(--elp-dur) var(--elp-ease);
}
.elp-karte:hover {
	border-color: var(--elp-accent);
	box-shadow: var(--elp-shadow-card-hover);
	transform: translateY(-2px);
}

.elp-karte__medien {
	position: relative;
	aspect-ratio: 1 / 1;
	background: var(--elp-surface-muted-alt);
}
.elp-karte__bildlink { display: block; height: 100%; }
.elp-karte__bild { width: 100%; height: 100%; object-fit: contain; padding: var(--elp-space-4); }
.elp-karte__bild--leer { display: block; }

.elp-karte__evidenz {
	position: absolute;
	top: var(--elp-space-3);
	left: var(--elp-space-3);
	z-index: 1;
	padding: 0.2rem 0.5rem;
	font-size: var(--elp-text-xs);
	border-radius: var(--elp-radius-sm);
	background: var(--elp-info);
	color: var(--elp-info-foreground);
	border: 1px solid var(--elp-info-border);
}
.elp-karte__evidenz--etabliert { background: var(--elp-surface-primary-emphasis); }

.elp-karte__merken {
	position: absolute;
	top: var(--elp-space-3);
	right: var(--elp-space-3);
	z-index: 1;
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	background: var(--elp-background);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-full);
	color: var(--elp-muted-foreground);
	cursor: pointer;
}
.elp-karte__merken svg { width: 15px; height: 15px; }
.elp-karte__merken:hover { color: var(--elp-accent); border-color: var(--elp-accent); }

.elp-karte__score {
	position: absolute;
	right: var(--elp-space-3);
	bottom: var(--elp-space-3);
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.15rem 0.5rem;
	font-family: var(--elp-font-mono);
	font-size: var(--elp-text-xs);
	background: var(--elp-background);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-sm);
}
.elp-karte__score-punkt { width: 5px; height: 5px; border-radius: var(--elp-radius-full); background: var(--elp-accent); }

.elp-karte__ausverkauft-badge {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	padding: 0.4rem 1rem;
	font-family: var(--elp-font-mono);
	font-size: var(--elp-label-size);
	letter-spacing: var(--elp-label-tracking);
	text-transform: uppercase;
	color: #fff;
	background: oklch(0.19 0.014 75 / 0.72);
	border-radius: var(--elp-radius-full);
}

.elp-karte__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: var(--elp-space-2);
	padding: var(--elp-space-4);
	border-top: 1px solid var(--elp-border);
}

.elp-karte__kategorie,
.elp-karte__subtitle { display: block; }

.elp-karte__titel { margin: 0; font-size: var(--elp-text-base); font-weight: 600; line-height: 1.3; }
.elp-karte__titel a { color: var(--elp-foreground); text-decoration: none; }
.elp-karte__titel a:hover { color: var(--elp-accent); }

.elp-karte__text {
	margin: 0;
	font-size: var(--elp-text-sm);
	line-height: 1.5;
	color: var(--elp-muted-foreground);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.elp-karte__text--spec { -webkit-line-clamp: 3; }

.elp-karte__chips,
.elp-karte__badges { display: flex; flex-wrap: wrap; gap: 0.3rem; }

.elp-karte__fuss { margin-top: auto; padding-top: var(--elp-space-3); }

.elp-karte__knappheit {
	display: inline-block;
	margin-bottom: var(--elp-space-2);
	padding: 0.15rem 0.5rem;
	font-family: var(--elp-font-mono);
	font-size: var(--elp-text-xs);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--elp-status-soon);
	background: oklch(0.54 0.125 62 / 0.1);
	border-radius: var(--elp-radius-sm);
}

.elp-karte__preis {
	margin: 0 0 var(--elp-space-3);
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-lg);
	font-weight: 600;
	color: var(--elp-foreground);
}
.elp-karte__preis--leer { color: var(--elp-muted-foreground); }
.elp-karte__preis .woocommerce-Price-amount { font-size: inherit; }

.elp-karte__eta { display: block; margin-bottom: var(--elp-space-3); color: var(--elp-status-soon); }

.elp-karte__btn { width: 100%; }
.elp-karte__btn.loading { opacity: 0.6; pointer-events: none; }
.elp-karte__btn.added::after { content: ' ✓'; }

/* WooCommerce hängt einen „Warenkorb anzeigen"-Link nach dem Button an */
.elp-karte .added_to_cart {
	display: block;
	margin-top: var(--elp-space-2);
	font-family: var(--elp-font-mono);
	font-size: var(--elp-text-xs);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-align: center;
	color: var(--elp-accent);
}

.elp-karte--kompakt .elp-karte__body { gap: var(--elp-space-1); }

/* === QUIZ === */
.elp-quiz-sektion { padding-block: var(--elp-space-6) var(--elp-section-y); }

.elp-quiz {
	background: var(--elp-primary-hero);
	color: #fff;
	border-radius: var(--elp-radius-xl);
	padding: var(--elp-space-6) var(--elp-space-8) var(--elp-space-8);
	background-image:
		linear-gradient(to right, oklch(0.99 0.006 86 / 0.05) 1px, transparent 1px),
		linear-gradient(to bottom, oklch(0.99 0.006 86 / 0.05) 1px, transparent 1px);
	background-size: 32px 32px;
}

.elp-quiz__kopf {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--elp-space-4);
	margin-bottom: var(--elp-space-6);
}
.elp-quiz__fortschritt { color: oklch(0.99 0.006 86 / 0.8) !important; }
.elp-quiz__stern { color: var(--elp-status-soon); }
.elp-quiz__zurueck {
	background: transparent;
	border: 0;
	color: oklch(0.99 0.006 86 / 0.6);
	cursor: pointer;
	transition: color var(--elp-dur-fast) var(--elp-ease);
}
.elp-quiz__zurueck:hover { color: #fff; }

.elp-quiz__frage {
	margin: 0 0 var(--elp-space-5);
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-2xl);
	font-weight: 500;
	color: #fff;
}

.elp-quiz__optionen { display: grid; gap: var(--elp-space-3); }
@media (min-width: 720px) { .elp-quiz__optionen { grid-template-columns: 1fr 1fr; } }

.elp-quiz__option {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--elp-space-2);
	padding: 0.85rem 1.2rem;
	font-family: var(--elp-font-mono);
	font-size: var(--elp-label-size);
	font-weight: 500;
	letter-spacing: var(--elp-label-tracking);
	text-transform: uppercase;
	color: var(--elp-primary-hero);
	background: #fff;
	border: 1px solid transparent;
	border-radius: var(--elp-radius-full);
	cursor: pointer;
	transition: transform var(--elp-dur-fast) var(--elp-ease), box-shadow var(--elp-dur-fast) var(--elp-ease);
}
.elp-quiz__option:hover { transform: translateY(-1px); box-shadow: 0 6px 18px oklch(0 0 0 / 0.25); }
.elp-quiz__option:focus-visible { outline: 2px solid var(--elp-status-soon); outline-offset: 2px; }

.elp-quiz__laedt { color: oklch(0.99 0.006 86 / 0.7) !important; }

/* Ergebnis */
.elp-quiz__ergebnis { display: grid; gap: var(--elp-space-4); }
.elp-quiz__match { color: var(--elp-status-soon) !important; }
.elp-quiz__leer { margin: 0; color: oklch(0.99 0.006 86 / 0.8); }

.elp-quiz__treffer {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: var(--elp-space-4);
	align-items: center;
	padding: var(--elp-space-4);
	background: oklch(0.99 0.006 86 / 0.06);
	border: 1px solid oklch(0.99 0.006 86 / 0.15);
	border-radius: var(--elp-radius-lg);
}
.elp-quiz__treffer img { width: 72px; height: 72px; object-fit: contain; background: #fff; border-radius: var(--elp-radius); }
.elp-quiz__treffer-body { display: grid; gap: 0.15rem; }
.elp-quiz__treffer-body .elp-label { color: var(--elp-status-soon) !important; }
.elp-quiz__treffer-body h4 { margin: 0; font-size: var(--elp-text-lg); font-weight: 600; color: #fff; }
.elp-quiz__treffer-sub {
	margin: 0;
	font-size: var(--elp-text-xs);
	color: oklch(0.99 0.006 86 / 0.65);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.elp-quiz__treffer-aktion { display: grid; gap: var(--elp-space-2); justify-items: end; }
.elp-quiz__treffer-preis { font-family: var(--elp-font-headline); font-weight: 600; color: #fff; }
.elp-quiz__treffer-preis .woocommerce-Price-amount { color: #fff; }
.elp-quiz__neustart { justify-self: start; color: #fff; border-color: oklch(0.99 0.006 86 / 0.3); }
.elp-quiz__neustart:hover { background: oklch(0.99 0.006 86 / 0.1); }

@media (max-width: 640px) {
	.elp-quiz { padding: var(--elp-space-5); }
	.elp-quiz__treffer { grid-template-columns: 1fr; }
	.elp-quiz__treffer-aktion { justify-items: start; }
}

/* === KATALOG-CTA + WORKFLOW === */
.elp-ctawf { padding-block: var(--elp-section-y) 0; }

.elp-ctawf__cta {
	display: grid;
	gap: var(--elp-space-8);
	padding: var(--elp-space-10);
	background-color: var(--elp-surface-muted-alt);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-xl);
}
@media (min-width: 900px) {
	.elp-ctawf__cta { grid-template-columns: 1fr auto; align-items: center; }
}

.elp-ctawf__titel {
	margin: var(--elp-space-3) 0 var(--elp-space-2);
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-4xl);
	font-weight: 500;
	letter-spacing: var(--elp-h1-tracking);
}
.elp-ctawf__lead { margin: 0 0 var(--elp-space-2); font-size: var(--elp-text-xl); font-weight: 500; }
.elp-ctawf__fliess { margin: 0; max-width: 52ch; color: var(--elp-muted-foreground); line-height: 1.6; }
.elp-ctawf__cta-aktion { display: grid; gap: var(--elp-space-3); justify-items: start; }

.elp-ctawf__divider-slot { height: var(--elp-space-10); }

.elp-workflow {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	overflow: hidden;
}
.elp-workflow__karte {
	display: flex;
	flex-direction: column;
	gap: var(--elp-space-2);
	padding: var(--elp-space-6) var(--elp-space-5);
	border-right: 1px solid var(--elp-border);
	border-bottom: 1px solid var(--elp-border);
}
.elp-workflow__karte:last-child { border-right: 0; }
.elp-workflow__nr { font-family: var(--elp-font-mono); font-size: var(--elp-text-xs); color: var(--elp-accent); }
.elp-workflow__titel { margin: 0; font-size: var(--elp-text-lg); font-weight: 600; }
.elp-workflow__text { margin: 0; flex: 1; font-size: var(--elp-text-sm); line-height: 1.55; color: var(--elp-muted-foreground); }
.elp-workflow__meta { padding-top: var(--elp-space-3); border-top: 1px solid var(--elp-border); color: var(--elp-accent) !important; }

/* === QUALITÄT (Positionierung/Vergleich/Trust) === */
.elp-quality { padding-block: var(--elp-section-y); }
.elp-quality__duo { display: grid; gap: var(--elp-space-6); margin-bottom: var(--elp-space-12); }
@media (min-width: 960px) { .elp-quality__duo { grid-template-columns: 5fr 7fr; align-items: start; } }

.elp-quality__titel {
	margin: var(--elp-space-3) 0;
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-3xl);
	font-weight: 500;
	letter-spacing: var(--elp-h1-tracking);
}
.elp-quality__fliess { margin: 0 0 var(--elp-space-6); max-width: 48ch; line-height: 1.6; color: var(--elp-muted-foreground); }

.elp-quality__lager {
	padding: var(--elp-space-6);
	background-color: var(--elp-background);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
}
.elp-quality__lager-kopf { display: flex; justify-content: space-between; margin-bottom: var(--elp-space-4); }
.elp-quality__lager-titel { margin: 0 0 var(--elp-space-2); font-size: var(--elp-text-2xl); font-weight: 500; }
.elp-quality__lager-text { margin: 0 0 var(--elp-space-6); font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }
.elp-quality__freigaben-titel { display: block; margin-bottom: var(--elp-space-3); }

.elp-quality__freigaben { list-style: none; margin: 0; padding: 0; }
.elp-quality__freigaben li {
	display: grid;
	grid-template-columns: auto 1fr auto auto;
	gap: var(--elp-space-3);
	align-items: baseline;
	padding-block: var(--elp-space-3);
	border-top: 1px solid var(--elp-border);
	font-size: var(--elp-text-sm);
}
.elp-quality__f-code { font-family: var(--elp-font-mono); font-size: var(--elp-text-xs); color: var(--elp-accent); }
.elp-quality__f-name { font-weight: 500; }
.elp-quality__f-datum { color: var(--elp-muted-foreground); font-size: var(--elp-text-xs); }
.elp-quality__f-wert { font-family: var(--elp-font-mono); color: var(--elp-success); }

/* Vergleichstabelle */
.elp-vergleich { margin-bottom: var(--elp-space-12); }
.elp-vergleich__kopf { margin-bottom: var(--elp-space-4); }
.elp-vergleich__tabelle {
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	overflow: hidden;
}
.elp-vergleich__zeile {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1.2fr;
	gap: var(--elp-space-4);
	align-items: center;
	padding: var(--elp-space-4) var(--elp-space-5);
	border-top: 1px solid var(--elp-border);
}
.elp-vergleich__zeile:first-child { border-top: 0; }
.elp-vergleich__zeile--head { background: var(--elp-surface-muted-alt); }
.elp-vergleich__zeile--resultat { background: var(--elp-primary-soft); }
.elp-vergleich__krit { display: grid; gap: 0.15rem; }
.elp-vergleich__krit strong { font-size: var(--elp-text-sm); font-weight: 600; }
.elp-vergleich__wert { font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }
.elp-vergleich__wert--euro { color: var(--elp-primary); font-weight: 600; }
.elp-vergleich__euro { color: var(--elp-primary) !important; }
.elp-vergleich__fuss { margin: var(--elp-space-5) 0 var(--elp-space-3); font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }
.elp-vergleich__chips { display: flex; flex-wrap: wrap; gap: var(--elp-space-2); }

@media (max-width: 720px) {
	.elp-vergleich__zeile { grid-template-columns: 1fr; gap: var(--elp-space-1); }
	.elp-vergleich__zeile--head span:first-child { display: none; }
}

/* Trust-Stats */
.elp-trustblock { text-align: left; }
.elp-trustblock__stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--elp-space-4);
	margin-top: var(--elp-space-6);
}
@media (min-width: 800px) { .elp-trustblock__stats { grid-template-columns: repeat(4, 1fr); } }
.elp-trustblock__stat {
	padding: var(--elp-space-5);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	display: grid;
	gap: var(--elp-space-1);
	/* Rasterelemente haben min-width: auto — ohne diese Zeile drückt die lange
	   Kennzahl die Spalte breiter als 1fr und die Seite scrollt quer. */
	min-width: 0;
}
/* Unter 360 px reicht die halbe Breite für „23 IM KATALOG" nicht mehr. */
@media (max-width: 359px) { .elp-trustblock__stats { grid-template-columns: 1fr; } }
.elp-trustblock__wert {
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-3xl);
	font-weight: 500;
	letter-spacing: -0.02em;
}

/* === DOSSIER === */
.elp-dossier {
	padding-block: var(--elp-section-y);
	background: var(--elp-surface-muted-alt);
	/* Die Karte ist leicht gedreht; ihre Hülle ragt dadurch über die Spalte
	   hinaus. `clip` schneidet das ab, ohne — anders als `hidden` — einen
	   Scroll-Container zu erzeugen, der sticky-Elemente lahmlegen würde. */
	overflow-x: clip;
}
.elp-dossier__inner { display: grid; gap: var(--elp-space-8); }
@media (min-width: 960px) { .elp-dossier__inner { grid-template-columns: 5fr 7fr; align-items: center; } }

.elp-dossier__karte {
	padding: var(--elp-space-8);
	background: var(--elp-background);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-sm);
	box-shadow: var(--elp-shadow-card);
	transform: rotate(-1deg);
}
.elp-dossier__karte-kopf { display: flex; justify-content: space-between; margin-bottom: var(--elp-space-6); }
.elp-dossier__ruo { color: var(--elp-status-soon) !important; margin: 0 0 var(--elp-space-3); }
.elp-dossier__karte-titel {
	margin: 0 0 var(--elp-space-6);
	font-family: var(--elp-font-serif);
	font-size: var(--elp-text-3xl);
	font-weight: 500;
	line-height: 1.2;
}
.elp-dossier__eckdaten {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--elp-space-3);
	margin-bottom: var(--elp-space-6);
}
/* Vier Spalten passen erst ab gut 480 px; darunter würden die Eckdaten die
   Karte auseinanderdrücken (Rasterelemente haben min-width: auto). */
@media (max-width: 479px) { .elp-dossier__eckdaten { grid-template-columns: repeat(2, 1fr); } }
.elp-dossier__eckdaten > div { display: grid; gap: 0.1rem; min-width: 0; }
.elp-dossier__eck-wert { font-family: var(--elp-font-headline); font-size: var(--elp-text-xl); font-weight: 500; }
.elp-dossier__index { list-style: none; margin: 0 0 var(--elp-space-6); padding: 0; display: grid; gap: var(--elp-space-2); }
.elp-dossier__index li { padding-left: var(--elp-space-4); position: relative; }
.elp-dossier__index li::before { content: '§'; position: absolute; left: 0; color: var(--elp-accent); }
.elp-dossier__seite { display: block; padding-top: var(--elp-space-4); border-top: 1px solid var(--elp-border); }

.elp-dossier__titel {
	margin: var(--elp-space-3) 0;
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-4xl);
	font-weight: 500;
	letter-spacing: var(--elp-h1-tracking);
}
.elp-dossier__fliess { margin: 0 0 var(--elp-space-6); max-width: 52ch; line-height: 1.6; color: var(--elp-muted-foreground); }
.elp-dossier__stats { display: flex; gap: var(--elp-space-8); margin-bottom: var(--elp-space-6); }
.elp-dossier__stats > div { display: grid; gap: 0.1rem; }
.elp-dossier__stat-wert { font-family: var(--elp-font-headline); font-size: var(--elp-text-3xl); font-weight: 500; }
.elp-dossier__aktionen { display: flex; flex-wrap: wrap; gap: var(--elp-space-3); margin-bottom: var(--elp-space-5); }
.elp-dossier__fuss { display: block; }

/* === REVIEWS / TESTIMONIALS === */
.elp-stimmen { padding-block: var(--elp-section-y); overflow: hidden; }

.elp-stimmen__kopf {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--elp-space-4);
	margin-bottom: var(--elp-space-8);
}
.elp-stimmen__titel {
	margin: var(--elp-space-3) 0 var(--elp-space-1);
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-4xl);
	font-weight: 500;
	letter-spacing: var(--elp-h1-tracking);
}
.elp-stimmen__sub { margin: 0; font-family: var(--elp-font-mono); font-size: var(--elp-text-xs); letter-spacing: 0.08em; color: var(--elp-muted-foreground); }
.elp-stimmen__fliess { margin: var(--elp-space-2) 0 0; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }

/* Marquee */
.elp-stimmen__marquee { overflow: hidden; max-width: 100%; padding-block: var(--elp-space-2); }
.elp-stimmen__spur {
	display: flex;
	gap: var(--elp-space-5);
	width: max-content;
	animation: elp-stimmen-lauf 60s linear infinite;
}
.elp-stimmen__marquee:hover .elp-stimmen__spur { animation-play-state: paused; }
@keyframes elp-stimmen-lauf {
	from { transform: translate3d(0, 0, 0); }
	to   { transform: translate3d(-50%, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
	.elp-stimmen__spur { animation: none; flex-wrap: wrap; width: auto; }
}

.elp-stimmen__karte {
	width: min(420px, 86vw);
	margin: 0;
	padding: var(--elp-space-6);
	background: var(--elp-card);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	display: flex;
	flex-direction: column;
	gap: var(--elp-space-4);
}
.elp-stimmen__verifiziert { display: inline-flex; align-items: center; gap: 0.4rem; color: var(--elp-success) !important; }
.elp-stimmen__punkt { width: 6px; height: 6px; border-radius: var(--elp-radius-full); background: var(--elp-success); }
.elp-stimmen__karte blockquote { margin: 0; font-size: var(--elp-text-sm); line-height: 1.6; }
.elp-stimmen__karte figcaption { display: grid; gap: 0.15rem; padding-top: var(--elp-space-3); border-top: 1px solid var(--elp-border); }
.elp-stimmen__quelle { font-family: var(--elp-font-mono); font-size: var(--elp-text-xs); letter-spacing: 0.05em; color: var(--elp-muted-foreground); }

/* Stats-Panel + Featured Charge */
.elp-stimmen__duo { display: grid; gap: var(--elp-space-5); margin-top: var(--elp-space-8); }
@media (min-width: 960px) { .elp-stimmen__duo { grid-template-columns: 7fr 5fr; } }

.elp-stimmen__panel,
.elp-stimmen__feed,
.elp-stimmen__nachstats {
	padding: var(--elp-space-6);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	background: var(--elp-card);
}
.elp-stimmen__panel-kopf { display: flex; justify-content: space-between; margin-bottom: var(--elp-space-5); }

.elp-stimmen__zahlen { display: flex; gap: var(--elp-space-10); margin-bottom: var(--elp-space-6); }
.elp-stimmen__zahlen > div { display: grid; gap: 0.2rem; max-width: 220px; }
.elp-stimmen__zahl {
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-4xl);
	font-weight: 500;
	letter-spacing: -0.02em;
}

.elp-stimmen__balken { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--elp-space-2); }
.elp-stimmen__balken li { display: grid; grid-template-columns: 14px 1fr 44px; align-items: center; gap: var(--elp-space-3); }
.elp-stimmen__spur-bg { height: 6px; background: var(--elp-muted); border-radius: var(--elp-radius-full); overflow: hidden; }
.elp-stimmen__fuellung {
	display: block;
	height: 100%;
	width: var(--elp-balken, 0%);
	background: var(--elp-accent);
	border-radius: inherit;
}
.elp-stimmen__prozent { text-align: right; }

.elp-stimmen__charge { padding: var(--elp-space-6); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); background-color: var(--elp-background); }
.elp-stimmen__charge-code { margin: var(--elp-space-2) 0 var(--elp-space-5); font-family: var(--elp-font-mono); font-size: var(--elp-text-3xl); color: var(--elp-primary); }
.elp-stimmen__charge-daten { margin: 0 0 var(--elp-space-5); display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--elp-space-4); }
.elp-stimmen__charge-daten div { display: grid; gap: 0.15rem; }
.elp-stimmen__charge-daten dd { margin: 0; font-weight: 600; }
.elp-stimmen__charge-fuss { display: block; padding-top: var(--elp-space-4); border-top: 1px solid var(--elp-border); line-height: 1.7; }

.elp-stimmen__nachstats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--elp-space-5); }
@media (min-width: 700px) { .elp-stimmen__nachstats-grid { grid-template-columns: repeat(4, 1fr); } }
.elp-stimmen__nachstats-grid > div { display: grid; gap: 0.2rem; }
.elp-stimmen__vertrauen { display: block; margin-top: var(--elp-space-5); padding-top: var(--elp-space-4); border-top: 1px solid var(--elp-border); line-height: 1.7; }

.elp-stimmen__feed-liste { list-style: none; margin: 0 0 var(--elp-space-5); padding: 0; }
.elp-stimmen__feed-liste li {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: var(--elp-space-3);
	align-items: center;
	padding-block: var(--elp-space-3);
	border-top: 1px solid var(--elp-border);
}
.elp-stimmen__feed-liste li:first-child { border-top: 0; }
.elp-stimmen__feed-code { color: var(--elp-accent) !important; }
.elp-stimmen__feed-body { display: grid; gap: 0.1rem; }
.elp-stimmen__feed-body strong { font-size: var(--elp-text-sm); font-weight: 500; }
.elp-stimmen__bewerten { width: 100%; }

/* === FAQ === */
.elp-faq { padding-block: var(--elp-section-y); }
.elp-faq__inner { display: grid; gap: var(--elp-space-8); }
@media (min-width: 960px) { .elp-faq__inner { grid-template-columns: 4fr 8fr; align-items: start; } }

.elp-faq__schnell { margin: var(--elp-space-6) 0 0; }
.elp-faq__titel {
	margin: var(--elp-space-2) 0;
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-4xl);
	font-weight: 500;
	letter-spacing: var(--elp-h1-tracking);
	text-transform: uppercase;
}
.elp-faq__sub { margin: 0 0 var(--elp-space-6); color: var(--elp-muted-foreground); }

.elp-faq__chips { margin: 0 0 var(--elp-space-6); display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--elp-space-4); }
.elp-faq__chips div {
	display: grid;
	gap: 0.2rem;
	padding: var(--elp-space-3);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius);
}
.elp-faq__chips dd { margin: 0; font-weight: 600; font-size: var(--elp-text-sm); }

.elp-faq__box {
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	overflow: hidden;
	background: var(--elp-card);
}
.elp-faq__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--elp-space-4);
	justify-content: space-between;
	padding: var(--elp-space-4) var(--elp-space-6);
	background: var(--elp-surface-muted-alt);
	border-bottom: 1px solid var(--elp-border);
}

.elp-faq__liste { list-style: none; margin: 0; padding: 0; }
.elp-faq__liste > li + li { border-top: 1px solid var(--elp-border); }

.elp-faq__punkt summary {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: var(--elp-space-4);
	padding: var(--elp-space-5) var(--elp-space-6);
	cursor: pointer;
	list-style: none;
	transition: background-color var(--elp-dur-fast) var(--elp-ease);
}
.elp-faq__punkt summary::-webkit-details-marker { display: none; }
.elp-faq__punkt summary:hover { background: oklch(0.44 0.075 72 / 0.025); }
.elp-faq__frage { font-size: var(--elp-text-base); font-weight: 500; }

.elp-faq__plus { position: relative; width: 14px; height: 14px; }
.elp-faq__plus::before,
.elp-faq__plus::after {
	content: '';
	position: absolute;
	inset: 0;
	margin: auto;
	background: var(--elp-muted-foreground);
	transition: transform var(--elp-dur) var(--elp-ease);
}
.elp-faq__plus::before { width: 14px; height: 1.5px; }
.elp-faq__plus::after { width: 1.5px; height: 14px; }
.elp-faq__punkt[open] .elp-faq__plus::after { transform: rotate(90deg); }

.elp-faq__antwort {
	display: flex;
	gap: var(--elp-space-4);
	padding: 0 var(--elp-space-6) var(--elp-space-5) calc(var(--elp-space-6));
}
.elp-faq__a { flex: 0 0 auto; color: var(--elp-accent) !important; }
.elp-faq__antwort p { margin: 0; font-size: var(--elp-text-sm); line-height: 1.6; color: var(--elp-muted-foreground); max-width: 62ch; }

.elp-faq__fuss {
	display: flex;
	flex-wrap: wrap;
	gap: var(--elp-space-4);
	justify-content: space-between;
	padding: var(--elp-space-4) var(--elp-space-6);
	border-top: 1px solid var(--elp-border);
	background: var(--elp-surface-muted-alt);
}

/* === WISSEN + DATENSCHUTZ === */
.elp-wissen { padding-block: var(--elp-section-y); }
.elp-wissen__inner { display: grid; gap: var(--elp-space-5); }
@media (min-width: 960px) { .elp-wissen__inner { grid-template-columns: 1fr 1fr; } }

.elp-wissen__block {
	padding: var(--elp-space-8);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-xl);
	background: var(--elp-card);
	display: flex;
	flex-direction: column;
}
.elp-wissen__block--datenschutz { background: var(--elp-surface-muted-alt); }

.elp-wissen__titel {
	margin: var(--elp-space-3) 0 var(--elp-space-2);
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-3xl);
	font-weight: 500;
	letter-spacing: var(--elp-h1-tracking);
}
.elp-wissen__sub { margin: 0 0 var(--elp-space-6); color: var(--elp-muted-foreground); line-height: 1.6; }

.elp-wissen__liste { list-style: none; margin: 0 0 var(--elp-space-6); padding: 0; flex: 1; }
.elp-wissen__liste li + li { border-top: 1px solid var(--elp-border); }
.elp-wissen__liste a {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: var(--elp-space-4);
	padding-block: var(--elp-space-4);
	text-decoration: none;
	color: var(--elp-foreground);
}
.elp-wissen__link-titel { font-size: var(--elp-text-lg); font-weight: 500; transition: color var(--elp-dur-fast) var(--elp-ease); }
.elp-wissen__liste a:hover .elp-wissen__link-titel { color: var(--elp-accent); }
.elp-wissen__pfeil { color: var(--elp-muted-foreground); transition: transform var(--elp-dur-fast) var(--elp-ease); }
.elp-wissen__liste a:hover .elp-wissen__pfeil { transform: translateX(3px); color: var(--elp-accent); }

.elp-wissen__punkte { list-style: none; margin: 0 0 var(--elp-space-6); padding: 0; flex: 1; display: grid; gap: var(--elp-space-4); }
.elp-wissen__punkte li { display: grid; grid-template-columns: auto 1fr; gap: var(--elp-space-4); align-items: start; }
.elp-wissen__punkt-body { display: grid; gap: 0.15rem; }
.elp-wissen__punkt-body strong { font-weight: 600; }
.elp-wissen__fuss { padding-top: var(--elp-space-4); border-top: 1px solid var(--elp-border); }

/* === FORMULARE === */
.elp-form__honig { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }

.elp-form__reihe { display: grid; gap: var(--elp-space-4); }
@media (min-width: 640px) { .elp-form__reihe { grid-template-columns: 1fr 1fr; } }

.elp-form__feld { display: grid; gap: 0.4rem; margin-bottom: var(--elp-space-4); }
.elp-form__feld input,
.elp-form__feld select,
.elp-form__feld textarea {
	width: 100%;
	padding: 0.7rem 0.9rem;
	font-family: var(--elp-font-body);
	font-size: var(--elp-text-sm);
	color: var(--elp-foreground);
	background: var(--elp-background);
	border: 1px solid var(--elp-input);
	border-radius: var(--elp-radius);
	transition: border-color var(--elp-dur-fast) var(--elp-ease);
}
.elp-form__feld input:focus,
.elp-form__feld select:focus,
.elp-form__feld textarea:focus { outline: 2px solid var(--elp-ring); outline-offset: 1px; }
.elp-form__feld textarea { resize: vertical; }

.elp-form__check {
	display: flex;
	gap: var(--elp-space-3);
	margin-bottom: var(--elp-space-5);
	font-size: var(--elp-text-xs);
	line-height: 1.55;
	color: var(--elp-muted-foreground);
	cursor: pointer;
}
.elp-form__check input { width: 16px; height: 16px; margin-top: 0.1rem; accent-color: var(--elp-primary); flex: 0 0 auto; }
.elp-form__check a { color: var(--elp-accent); }

.elp-form__status { display: none; margin: var(--elp-space-3) 0 0; font-size: var(--elp-text-sm); color: var(--elp-success); }
.elp-form__status.is-sichtbar { display: block; }
.elp-form__status.is-fehler { color: var(--elp-destructive); }

.elp-btn.is-laedt { opacity: 0.6; pointer-events: none; }

/* === AFFILIATE === */
.elp-affiliate { padding-block: var(--elp-section-y); background: var(--elp-surface-muted-alt); }
.elp-affiliate__kicker { margin: var(--elp-space-4) 0 0; color: var(--elp-accent) !important; }
.elp-affiliate__titel {
	margin: var(--elp-space-2) 0 var(--elp-space-3);
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-4xl);
	font-weight: 500;
	letter-spacing: var(--elp-h1-tracking);
}
.elp-affiliate__fliess { margin: 0 0 var(--elp-space-8); max-width: 60ch; line-height: 1.6; color: var(--elp-muted-foreground); }

.elp-affiliate__spur {
	display: flex;
	gap: var(--elp-space-4);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: var(--elp-space-3);
	scrollbar-width: none;
}
.elp-affiliate__spur::-webkit-scrollbar { display: none; }

.elp-affiliate__tier {
	position: relative;
	flex: 0 0 min(320px, 82vw);
	scroll-snap-align: start;
	padding: var(--elp-space-6);
	background: var(--elp-card);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	display: flex;
	flex-direction: column;
	gap: var(--elp-space-2);
}
.elp-affiliate__tier--empfohlen { border-color: var(--elp-accent); box-shadow: var(--elp-shadow-card-hover); }
.elp-affiliate__empfohlen {
	position: absolute;
	top: calc(-1 * var(--elp-space-3));
	right: var(--elp-space-4);
	padding: 0.25rem 0.7rem;
	background: var(--elp-primary-hero);
	color: #fff !important;
	border-radius: var(--elp-radius-full);
}
.elp-affiliate__tier-name { margin: 0; font-size: var(--elp-text-xl); font-weight: 600; }
.elp-affiliate__prozent {
	margin: 0;
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-5xl);
	font-weight: 500;
	letter-spacing: -0.03em;
	color: var(--elp-primary);
}
.elp-affiliate__daten { margin: var(--elp-space-3) 0; display: grid; gap: var(--elp-space-2); }
.elp-affiliate__daten div {
	display: flex;
	justify-content: space-between;
	padding-block: var(--elp-space-2);
	border-top: 1px solid var(--elp-border);
	font-size: var(--elp-text-sm);
}
.elp-affiliate__daten dt { color: var(--elp-muted-foreground); }
.elp-affiliate__daten dd { margin: 0; font-weight: 600; }
.elp-affiliate__tier-meta { padding-top: var(--elp-space-2); }

.elp-affiliate__pfeile { display: flex; align-items: center; gap: var(--elp-space-4); justify-content: center; margin-top: var(--elp-space-2); }

.elp-affiliate__gruppen {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--elp-space-4);
	margin-block: var(--elp-space-8);
}
@media (min-width: 900px) { .elp-affiliate__gruppen { grid-template-columns: repeat(4, 1fr); } }
/* Unter 360 px passen die Gruppennamen nicht mehr nebeneinander. */
@media (max-width: 359px) { .elp-affiliate__gruppen { grid-template-columns: 1fr; } }
.elp-affiliate__gruppe {
	min-width: 0;
	padding: var(--elp-space-5);
	background: var(--elp-card);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	display: grid;
	gap: var(--elp-space-2);
}
.elp-affiliate__gruppe h3 { margin: 0; font-size: var(--elp-text-lg); font-weight: 600; }

.elp-affiliate__aktion { display: grid; gap: var(--elp-space-3); justify-items: center; text-align: center; }

/* Modal */
body.elp-modal-offen { overflow: hidden; }
.elp-affiliate-modal[hidden] { display: none; } /* display:grid würde [hidden] sonst aushebeln */
.elp-affiliate-modal {
	position: fixed;
	inset: 0;
	z-index: 9500;
	display: grid;
	place-items: center;
	padding: var(--elp-space-5);
	background: oklch(0.19 0.014 75 / 0.4);
	overflow-y: auto;
}
.elp-affiliate-modal__karte {
	position: relative;
	width: 100%;
	max-width: 480px;
	padding: var(--elp-space-8);
	background: var(--elp-background);
	border-radius: var(--elp-radius-lg);
	box-shadow: var(--elp-shadow-modal);
}
.elp-affiliate-modal__close {
	position: absolute;
	top: var(--elp-space-3);
	right: var(--elp-space-3);
	width: 34px;
	height: 34px;
	background: transparent;
	border: 0;
	font-size: 1.4rem;
	color: var(--elp-muted-foreground);
	cursor: pointer;
}
.elp-affiliate-modal__titel { margin: var(--elp-space-2) 0 var(--elp-space-5); font-size: var(--elp-text-2xl); font-weight: 500; }

/* === FOOTER-KONTAKT === */
.elp-fkontakt { padding-block: var(--elp-section-y); }
.elp-fkontakt__inner { display: grid; gap: var(--elp-space-8); }
@media (min-width: 960px) { .elp-fkontakt__inner { grid-template-columns: 5fr 7fr; align-items: start; } }

.elp-fkontakt__titel {
	margin: var(--elp-space-3) 0;
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-4xl);
	font-weight: 500;
	letter-spacing: var(--elp-h1-tracking);
}
.elp-fkontakt__fliess { margin: 0 0 var(--elp-space-6); max-width: 46ch; line-height: 1.6; color: var(--elp-muted-foreground); }

.elp-fkontakt__support {
	padding: var(--elp-space-6);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	background: var(--elp-card);
}
.elp-fkontakt__support-kopf { display: flex; justify-content: space-between; margin-bottom: var(--elp-space-4); }
.elp-fkontakt__punkt { display: inline-block; width: 6px; height: 6px; margin-right: 0.4rem; border-radius: var(--elp-radius-full); background: var(--elp-success); }
.elp-fkontakt__personname { margin: 0 0 var(--elp-space-2); font-size: var(--elp-text-xl); font-weight: 600; }
.elp-fkontakt__persondaten { display: flex; gap: var(--elp-space-4); margin-bottom: var(--elp-space-4); }
.elp-fkontakt__mail { font-family: var(--elp-font-mono); font-size: var(--elp-text-sm); color: var(--elp-accent); text-decoration: none; }
.elp-fkontakt__mail:hover { text-decoration: underline; }

.elp-fkontakt__form {
	padding: var(--elp-space-8);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-xl);
	background: var(--elp-card);
}
.elp-fkontakt__form-kopf { display: flex; justify-content: space-between; margin-bottom: var(--elp-space-3); }
.elp-fkontakt__form-titel { margin: 0 0 var(--elp-space-6); font-size: var(--elp-text-2xl); font-weight: 500; }
.elp-fkontakt__senden { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--elp-space-4); }

/* === FOOTER === */
.elp-footer {
	background: var(--elp-primary-hero);
	color: oklch(0.99 0.006 86 / 0.75);
	padding-block: var(--elp-space-16) var(--elp-space-8);
	margin-top: var(--elp-space-16);
}
.elp-footer .elp-label { color: oklch(0.99 0.006 86 / 0.58); }

.elp-footer__haupt {
	display: grid;
	gap: var(--elp-space-10);
	padding-bottom: var(--elp-space-10);
	border-bottom: 1px solid oklch(0.99 0.006 86 / 0.12);
}
@media (min-width: 900px) {
	.elp-footer__haupt { grid-template-columns: minmax(260px, 1fr) 2fr; gap: var(--elp-space-16); }
}

.elp-footer__claim {
	margin: 0 0 var(--elp-space-3);
	font-family: var(--elp-font-serif);
	font-size: var(--elp-text-2xl);
	line-height: 1.25;
	color: #fff;
}
.elp-footer__text { margin: 0 0 var(--elp-space-4); font-size: var(--elp-text-sm); line-height: 1.6; }

.elp-footer__spalten { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--elp-space-8); }
@media (min-width: 700px) { .elp-footer__spalten { grid-template-columns: repeat(3, 1fr); } }

.elp-footer__spalte-titel { display: block; margin-bottom: var(--elp-space-4); }
.elp-footer__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--elp-space-2); }
.elp-footer__liste a {
	font-size: var(--elp-text-sm);
	text-decoration: none;
	color: oklch(0.99 0.006 86 / 0.75);
	transition: color var(--elp-dur-fast) var(--elp-ease);
}
.elp-footer__liste a:hover { color: #fff; }


.elp-footer__zahlung {
	display: flex;
	flex-wrap: wrap;
	gap: var(--elp-space-8);
	padding-block: var(--elp-space-8);
	border-bottom: 1px solid oklch(0.99 0.006 86 / 0.12);
}
.elp-footer__zahlung-block { display: grid; gap: var(--elp-space-3); }
.elp-footer__icons { display: flex; flex-wrap: wrap; align-items: center; gap: var(--elp-space-2); }
.elp-footer__icons img {
	height: 28px;
	width: auto;
	background: #fff;
	border-radius: 4px;
	padding: 2px 4px;
}
.elp-footer__icon-text { font-family: var(--elp-font-mono); font-size: var(--elp-text-xs); color: oklch(0.99 0.006 86 / 0.6); }

.elp-footer__recht {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--elp-space-3) var(--elp-space-6);
	padding-top: var(--elp-space-6);
}
.elp-footer__copyright,
.elp-footer__dsgvo {
	margin: 0;
	font-family: var(--elp-font-mono);
	font-size: var(--elp-text-xs);
	letter-spacing: 0.06em;
	color: oklch(0.99 0.006 86 / 0.5);
}
.elp-footer__dsgvo { margin-left: auto; }
.elp-footer__rechtlinks { display: flex; flex-wrap: wrap; align-items: center; gap: var(--elp-space-2); }
.elp-footer__rechtlinks a {
	font-family: var(--elp-font-mono);
	font-size: var(--elp-text-xs);
	letter-spacing: 0.06em;
	text-decoration: none;
	color: oklch(0.99 0.006 86 / 0.7);
}
.elp-footer__rechtlinks a:hover { color: #fff; }
.elp-footer__rechtlinks span { color: oklch(0.99 0.006 86 / 0.3); }

/* === WOOCOMMERCE (Warenkorb/Kasse/Konto) === */

/* === SHOP === */
.elp-shop__hero { padding-block: var(--elp-space-12); background-color: var(--elp-surface-muted-alt); border-bottom: 1px solid var(--elp-border); }
.elp-shop__hero-inner { display: grid; gap: var(--elp-space-8); }
@media (min-width: 1000px) { .elp-shop__hero-inner { grid-template-columns: 7fr 5fr; align-items: center; } }

.elp-shop__hero-meta { display: flex; flex-wrap: wrap; gap: var(--elp-space-3); margin-bottom: var(--elp-space-4); }
.elp-shop__titel {
	margin: 0 0 var(--elp-space-4);
	font-family: var(--elp-font-headline);
	font-size: var(--elp-h1-size);
	font-weight: var(--elp-h1-weight);
	line-height: 1.08;
	letter-spacing: var(--elp-h1-tracking);
}
.elp-shop__fliess { margin: 0 0 var(--elp-space-6); max-width: 56ch; line-height: 1.6; color: var(--elp-muted-foreground); }
.elp-shop__hero-aktionen { display: flex; flex-wrap: wrap; gap: var(--elp-space-3); margin-bottom: var(--elp-space-5); }
.elp-shop__ruo { color: var(--elp-status-soon) !important; }

.elp-shop__charge {
	padding: var(--elp-space-6);
	background: var(--elp-background);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	box-shadow: var(--elp-shadow-card);
	display: grid;
	gap: var(--elp-space-2);
}
.elp-shop__charge-kopf { display: flex; justify-content: space-between; margin-bottom: var(--elp-space-2); }
.elp-shop__charge-wert p { margin: 0.1rem 0; font-family: var(--elp-font-headline); font-size: var(--elp-text-4xl); font-weight: 500; color: var(--elp-primary); }
.elp-shop__charge-name { margin: var(--elp-space-3) 0 0; font-size: var(--elp-text-xl); font-weight: 600; }
.elp-shop__charge-daten { margin: var(--elp-space-3) 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--elp-space-3); }
.elp-shop__charge-daten div { display: grid; gap: 0.15rem; }
.elp-shop__charge-daten dd { margin: 0; font-weight: 600; font-size: var(--elp-text-sm); }
.elp-shop__charge-link { color: var(--elp-accent) !important; text-decoration: none; padding-top: var(--elp-space-3); border-top: 1px solid var(--elp-border); }

.elp-shop__filterleiste { padding-block: var(--elp-space-6); border-bottom: 1px solid var(--elp-border); }
.elp-shop__chips { display: flex; flex-wrap: wrap; gap: var(--elp-space-2); margin-top: var(--elp-space-3); }
.elp-shop__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.45rem 0.9rem;
	font-family: var(--elp-font-mono);
	font-size: var(--elp-label-size);
	letter-spacing: 0.08em;
	text-decoration: none;
	color: var(--elp-foreground);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-full);
	transition: border-color var(--elp-dur-fast) var(--elp-ease), background-color var(--elp-dur-fast) var(--elp-ease);
}
.elp-shop__chip span { color: var(--elp-muted-foreground); font-size: 0.625rem; }
.elp-shop__chip:hover { border-color: var(--elp-accent); }
.elp-shop__chip.is-aktiv { background: var(--elp-primary-hero); color: #fff; border-color: var(--elp-primary-hero); }
.elp-shop__chip.is-aktiv span { color: oklch(0.99 0.006 86 / 0.7); }

.elp-shop__katalog { padding-block: var(--elp-space-8) var(--elp-section-y); }
.elp-shop__katalog-inner { display: grid; gap: var(--elp-space-8); }
@media (min-width: 1100px) { .elp-shop__katalog-inner { grid-template-columns: 220px minmax(0, 1fr); align-items: start; } }

.elp-shop__sidebar { display: grid; gap: var(--elp-space-5); align-content: start; }
.elp-shop__filtergruppe { border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); padding: var(--elp-space-4); }
.elp-shop__filtergruppe > .elp-label { display: block; margin-bottom: var(--elp-space-3); }
.elp-shop__filtergruppe ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--elp-space-1); }
.elp-shop__filtergruppe a {
	display: block;
	padding: 0.35rem 0.5rem;
	font-size: var(--elp-text-sm);
	text-decoration: none;
	color: var(--elp-muted-foreground);
	border-radius: var(--elp-radius-sm);
}
.elp-shop__filtergruppe a:hover { background: var(--elp-surface-muted-alt); color: var(--elp-foreground); }
.elp-shop__filtergruppe a.is-aktiv { background: var(--elp-primary-soft); color: var(--elp-primary); font-weight: 600; }
.elp-shop__tags li { display: flex; justify-content: space-between; padding: 0.25rem 0.5rem; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }
.elp-shop__tag-zahl { font-family: var(--elp-font-mono); font-size: var(--elp-text-xs); }

.elp-shop__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--elp-space-4);
	margin-bottom: var(--elp-space-5);
}
.elp-shop__anzahl { font-size: var(--elp-text-sm); font-weight: 600; }
.elp-shop__sortieren { display: flex; align-items: center; gap: var(--elp-space-3); }
.elp-shop__sortieren select {
	padding: 0.4rem 0.7rem;
	font-family: var(--elp-font-body);
	font-size: var(--elp-text-sm);
	border: 1px solid var(--elp-input);
	border-radius: var(--elp-radius-sm);
	background: var(--elp-background);
}

.elp-grid--shop { grid-template-columns: repeat(2, minmax(0,1fr)); }
@media (min-width: 800px)  { .elp-grid--shop { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (min-width: 1240px) { .elp-grid--shop { grid-template-columns: repeat(4, minmax(0,1fr)); } }

.elp-shop__garantie { padding-block: var(--elp-space-10); border-top: 1px solid var(--elp-border); background: var(--elp-surface-muted-alt); }
.elp-shop__garantie-titel { margin: 0 0 var(--elp-space-3); font-size: var(--elp-text-2xl); font-weight: 500; }
.elp-shop__garantie-text { margin: 0; max-width: 70ch; line-height: 1.6; color: var(--elp-muted-foreground); }

/* === BACK-IN-STOCK MODAL === */
.elp-bis-modal[hidden] { display: none; }
.elp-bis-modal {
	position: fixed; inset: 0; z-index: 9500;
	display: grid; place-items: center;
	padding: var(--elp-space-5);
	background: oklch(0.19 0.014 75 / 0.4);
	overflow-y: auto;
}
.elp-bis-modal__karte {
	position: relative; width: 100%; max-width: 420px;
	padding: var(--elp-space-8);
	background: var(--elp-background);
	border-radius: var(--elp-radius-lg);
	box-shadow: var(--elp-shadow-modal);
}
.elp-bis-modal__close {
	position: absolute; top: var(--elp-space-3); right: var(--elp-space-3);
	width: 34px; height: 34px; background: transparent; border: 0;
	font-size: 1.4rem; color: var(--elp-muted-foreground); cursor: pointer;
}
.elp-bis-modal__titel { margin: var(--elp-space-2) 0 var(--elp-space-2); font-size: var(--elp-text-2xl); font-weight: 500; }
.elp-bis-modal__produkt { margin: 0 0 var(--elp-space-5); font-weight: 600; color: var(--elp-accent); }

/* === WOOCOMMERCE (Warenkorb/Kasse/Konto) === */
/* Nur den Shortcode-Wrapper begrenzen — WooCommerce setzt .woocommerce AUCH auf den <body>
   von Shop-/Produktseiten; eine unqualifizierte Regel würde die ganze Seite einschnüren. */
#brx-content > .woocommerce { max-width: var(--elp-container); width: 100%; margin-inline: auto; padding: var(--elp-space-8) var(--elp-gutter) var(--elp-section-y); }
@media (min-width: 1024px) { #brx-content > .woocommerce { padding-inline: var(--elp-gutter-lg); } }

/* Überschriften/Grundtypo */
.woocommerce h2, .woocommerce h3 { font-family: var(--elp-font-headline); font-weight: 500; letter-spacing: var(--elp-h1-tracking); }

/* Hinweise */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border: 1px solid var(--elp-info-border) !important;
	border-radius: var(--elp-radius) !important;
	background: var(--elp-info) !important;
	color: var(--elp-info-foreground) !important;
	padding: var(--elp-space-4) var(--elp-space-5) !important;
	margin-bottom: var(--elp-space-5) !important;
	list-style: none;
}
.woocommerce-error { border-color: oklch(0.55 0.2 25 / 0.35) !important; background: oklch(0.55 0.2 25 / 0.06) !important; color: var(--elp-destructive) !important; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none !important; }
.woocommerce-message a.button { float: right; }

/* Tabellen (Warenkorb, Bestellübersicht) */
.woocommerce table.shop_table {
	border: 1px solid var(--elp-border) !important;
	border-radius: var(--elp-radius-lg);
	border-collapse: separate !important;
	border-spacing: 0;
	overflow: hidden;
}
.woocommerce table.shop_table th {
	font-family: var(--elp-font-mono);
	font-size: var(--elp-text-xs);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--elp-muted-foreground);
	background: var(--elp-surface-muted-alt);
	padding: var(--elp-space-3) var(--elp-space-4) !important;
	border: 0 !important;
}
.woocommerce table.shop_table td { padding: var(--elp-space-4) !important; border-top: 1px solid var(--elp-border) !important; border-left: 0 !important; border-right: 0 !important; }
.woocommerce table.shop_table img { width: 64px; border-radius: var(--elp-radius-sm); background: var(--elp-surface-muted-alt); }
.woocommerce table.shop_table .product-name a { color: var(--elp-foreground); text-decoration: none; font-weight: 500; }
.woocommerce table.shop_table .product-remove a { color: var(--elp-destructive) !important; background: transparent; font-size: 1.2rem; }

.woocommerce .quantity .qty { width: 70px; padding: 0.5rem; border: 1px solid var(--elp-input); border-radius: var(--elp-radius); text-align: center; }

/* Buttons global (Woo) */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button,
.woocommerce #place_order, .woocommerce button[name="update_cart"], .woocommerce .woocommerce-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
	padding: 0.75rem 1.4rem !important;
	font-family: var(--elp-font-mono) !important;
	font-size: var(--elp-label-size) !important;
	font-weight: 500 !important;
	letter-spacing: var(--elp-label-tracking) !important;
	text-transform: uppercase !important;
	color: #fff !important;
	background: var(--elp-primary-hero) !important;
	border: 0 !important;
	border-radius: var(--elp-radius-full) !important;
	cursor: pointer;
	transition: background-color var(--elp-dur-fast) var(--elp-ease);
}
.woocommerce .button:hover, .woocommerce #place_order:hover { background: var(--elp-accent-dark) !important; }
.woocommerce .button:disabled { opacity: 0.5 !important; color: #fff !important; background: var(--elp-status-pipeline) !important; }

/* Cart-Summen */
.woocommerce .cart_totals { border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); padding: var(--elp-space-5); }
.woocommerce .cart_totals h2 { margin-top: 0; font-size: var(--elp-text-xl); }
.woocommerce .cart_totals table.shop_table { border: 0 !important; }
.woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }

/* Checkout-Formular */
/* Nur echte Feld-Labels als Mono-Versalien — NICHT Checkbox-/Rechtstexte
   (AGB, Datenschutz), die sonst als Versalien-Blocktext erscheinen. */
.woocommerce form .form-row > label:not(.woocommerce-form__label-for-checkbox) {
	font-family: var(--elp-font-mono);
	font-size: var(--elp-text-xs);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--elp-muted-foreground);
}
.woocommerce form .woocommerce-form__label-for-checkbox,
.woocommerce-terms-and-conditions-wrapper label,
.woocommerce-privacy-policy-text {
	font-family: var(--elp-font-body) !important;
	font-size: var(--elp-text-sm) !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	line-height: 1.55;
	color: var(--elp-foreground) !important;
}
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
	padding: 0.65rem 0.9rem;
	border: 1px solid var(--elp-input) !important;
	border-radius: var(--elp-radius) !important;
	background: var(--elp-background) !important;
	font-family: var(--elp-font-body);
	min-height: 44px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 42px !important; padding-left: 0.9rem; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 42px !important; }
.woocommerce form .form-row.woocommerce-invalid .select2-container, .woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--elp-destructive) !important; }

#customer_details, .woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { margin-top: var(--elp-space-5); }
.woocommerce-checkout #payment { background: var(--elp-surface-muted-alt) !important; border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg) !important; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--elp-border) !important; padding: var(--elp-space-5) !important; }
.woocommerce-checkout #payment div.payment_box { background: var(--elp-info) !important; color: var(--elp-info-foreground) !important; border-radius: var(--elp-radius) !important; }
.woocommerce-checkout #payment div.payment_box::before { display: none !important; }
.woocommerce-checkout #payment div.form-row.place-order { padding: var(--elp-space-5) !important; }
#place_order { width: 100%; }

/* Danke-Seite */
.woocommerce-order .woocommerce-thankyou-order-received {
	font-family: var(--elp-font-headline);
	font-size: var(--elp-text-2xl);
	font-weight: 500;
	margin-bottom: var(--elp-space-5);
}
.woocommerce ul.order_details {
	display: flex; flex-wrap: wrap; gap: var(--elp-space-5);
	list-style: none; margin: 0 0 var(--elp-space-8); padding: var(--elp-space-5);
	border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg);
}
.woocommerce ul.order_details li { border: 0 !important; font-family: var(--elp-font-mono); font-size: var(--elp-text-xs) !important; text-transform: uppercase; letter-spacing: 0.06em; color: var(--elp-muted-foreground); }
.woocommerce ul.order_details li strong { display: block; margin-top: 0.3rem; font-family: var(--elp-font-body); font-size: var(--elp-text-base); text-transform: none; letter-spacing: 0; color: var(--elp-foreground); }

/* Mein Konto */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block; padding: 0.6rem 0.9rem;
	font-size: var(--elp-text-sm); text-decoration: none; color: var(--elp-foreground);
	border-radius: var(--elp-radius-sm);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover { background: var(--elp-primary-soft); color: var(--elp-primary); }
.woocommerce-account .woocommerce-MyAccount-content { border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); padding: var(--elp-space-6); }
.woocommerce form.login, .woocommerce form.register { border: 1px solid var(--elp-border) !important; border-radius: var(--elp-radius-lg) !important; padding: var(--elp-space-6) !important; }

/* Coupon-Zeile */
.woocommerce .coupon { display: flex; gap: var(--elp-space-2); }
.woocommerce .coupon .input-text { padding: 0.6rem 0.9rem !important; border: 1px solid var(--elp-input) !important; border-radius: var(--elp-radius) !important; min-width: 140px; }

/* === RECHTSSEITEN + 404 === */
.elp-rechtsseite { max-width: 52rem; margin-inline: auto; padding: var(--elp-space-10) var(--elp-gutter) var(--elp-section-y); }
.elp-rechtsseite h1 { margin: var(--elp-space-2) 0 var(--elp-space-4); font-family: var(--elp-font-headline); font-size: var(--elp-text-4xl); font-weight: 500; letter-spacing: var(--elp-h1-tracking); }
.elp-rechtsseite__lead { margin: 0 0 var(--elp-space-8); font-size: var(--elp-text-lg); line-height: 1.6; color: var(--elp-muted-foreground); }
.elp-rechtsseite__abschnitt { padding: var(--elp-space-5) 0; border-top: 1px solid var(--elp-border); }
.elp-rechtsseite__abschnitt h2 { margin: var(--elp-space-1) 0 var(--elp-space-3); font-size: var(--elp-text-xl); font-weight: 600; }
.elp-rechtsseite__abschnitt p { margin: 0 0 var(--elp-space-3); line-height: 1.7; }

.elp-platzhalter-hinweis {
	margin-bottom: var(--elp-space-6);
	padding: var(--elp-space-4) var(--elp-space-5);
	border: 1px dashed var(--elp-status-soon);
	border-radius: var(--elp-radius);
	background: oklch(0.68 0.13 65 / 0.08);
}
.elp-platzhalter-hinweis strong { font-family: var(--elp-font-mono); letter-spacing: 0.08em; color: var(--elp-status-soon); }
.elp-platzhalter-hinweis p { margin: 0.3rem 0 0; font-size: var(--elp-text-sm); }

.elp-404 { padding-block: calc(var(--elp-section-y) * 1.5); text-align: center; }
.elp-404__titel { margin: var(--elp-space-3) 0; font-family: var(--elp-font-headline); font-size: var(--elp-h1-size); font-weight: 500; letter-spacing: var(--elp-h1-tracking); }
.elp-404__text { margin: 0 0 var(--elp-space-6); color: var(--elp-muted-foreground); }
.elp-404__aktionen { display: flex; gap: var(--elp-space-3); justify-content: center; flex-wrap: wrap; }

/* === OFFCANVAS-WARENKORB === */
.elp-offcanvas { position: fixed; inset: 0; z-index: 9500; }
.elp-offcanvas__scrim {
	position: absolute; inset: 0;
	background: oklch(0.19 0.014 75 / 0.35);
	opacity: 0;
	transition: opacity 0.3s var(--elp-ease);
}
.elp-offcanvas.is-offen .elp-offcanvas__scrim { opacity: 1; }

.elp-offcanvas__panel {
	position: absolute; top: 0; right: 0; bottom: 0;
	width: min(430px, 100vw);
	display: flex; flex-direction: column;
	background: var(--elp-background);
	box-shadow: var(--elp-shadow-modal);
	transform: translateX(100%);
	transition: transform 0.32s var(--elp-ease);
}
.elp-offcanvas.is-offen .elp-offcanvas__panel { transform: translateX(0); }
body.elp-cart-offen { overflow: hidden; }
.elp-offcanvas.is-laedt .elp-offcanvas__inhalt { opacity: 0.5; pointer-events: none; }

.elp-offcanvas__kopf {
	display: flex; align-items: center; justify-content: space-between;
	padding: var(--elp-space-4) var(--elp-space-5);
	background: var(--elp-primary-hero);
}
.elp-offcanvas__kopf .elp-label { color: oklch(0.99 0.006 86 / 0.85); }
.elp-offcanvas__close {
	width: 34px; height: 34px;
	background: transparent; border: 0; cursor: pointer;
	font-size: 1.5rem; line-height: 1; color: #fff;
}

.elp-offcanvas__inhalt { flex: 1; display: flex; flex-direction: column; overflow-y: auto; transition: opacity var(--elp-dur-fast) var(--elp-ease); }

.elp-offcanvas__leer {
	margin: auto; text-align: center; display: grid; gap: var(--elp-space-4); justify-items: center;
	padding: var(--elp-space-8); color: var(--elp-muted-foreground);
}
.elp-offcanvas__leer svg { width: 44px; height: 44px; opacity: 0.4; }

.elp-offcanvas__liste { list-style: none; margin: 0; padding: 0 var(--elp-space-5); }
.elp-offcanvas__item {
	display: flex; gap: var(--elp-space-3);
	padding: var(--elp-space-4) 0;
	border-bottom: 1px solid var(--elp-border);
}
.elp-offcanvas__bild img { width: 64px; height: 64px; object-fit: contain; background: var(--elp-surface-muted-alt); border-radius: var(--elp-radius-sm); display: block; }
.elp-offcanvas__item-body { display: grid; gap: 0.35rem; align-content: start; min-width: 0; }
.elp-offcanvas__name { font-size: var(--elp-text-sm); font-weight: 600; color: var(--elp-foreground); text-decoration: none; }
.elp-offcanvas__name:hover { color: var(--elp-accent); }
.elp-offcanvas__einzelpreis { font-size: var(--elp-text-xs); color: var(--elp-muted-foreground); }
.elp-offcanvas__item-rechts { margin-left: auto; display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; }
.elp-offcanvas__entfernen {
	width: 26px; height: 26px;
	background: transparent; border: 0; cursor: pointer;
	font-size: 1.1rem; line-height: 1; color: var(--elp-muted-foreground);
	border-radius: var(--elp-radius-full);
}
.elp-offcanvas__entfernen:hover { color: var(--elp-destructive); background: oklch(0.55 0.2 25 / 0.08); }
.elp-offcanvas__zeilenpreis { font-weight: 600; font-size: var(--elp-text-sm); }

.elp-offcanvas__fuss {
	margin-top: auto;
	padding: var(--elp-space-5);
	border-top: 1px solid var(--elp-border);
	display: grid; gap: var(--elp-space-3);
	background: var(--elp-surface-muted-alt);
}
.elp-offcanvas__summe { display: flex; align-items: baseline; justify-content: space-between; }
.elp-offcanvas__summe strong { font-family: var(--elp-font-headline); font-size: var(--elp-text-xl); }
.elp-offcanvas__hinweis { margin: 0; font-size: var(--elp-text-xs); color: var(--elp-muted-foreground); }
.elp-offcanvas__kasse { width: 100%; }
.elp-offcanvas__cartlink {
	text-align: center;
	font-family: var(--elp-font-mono); font-size: var(--elp-text-xs);
	letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--elp-muted-foreground);
}
.elp-offcanvas__cartlink:hover { color: var(--elp-accent); }

@media (prefers-reduced-motion: reduce) {
	.elp-offcanvas__panel, .elp-offcanvas__scrim { transition: none; }
}

/* =========================================================================
   PHASE-2-SEITEN (science, applications, dossier, journal, partners)
   ========================================================================= */
.elp-p2 { padding-bottom: var(--elp-section-y); }
.elp-p2__hero { padding-block: var(--elp-space-12) var(--elp-space-10); border-bottom: 1px solid var(--elp-border); background-color: var(--elp-background); }
.elp-p2__titel { margin: var(--elp-space-3) 0 var(--elp-space-4); font-family: var(--elp-font-headline); font-size: var(--elp-h1-size); font-weight: 500; line-height: 1.1; letter-spacing: var(--elp-h1-tracking); }
.elp-p2__lead { margin: 0 0 var(--elp-space-6); max-width: 62ch; font-size: var(--elp-text-lg); line-height: 1.6; color: var(--elp-muted-foreground); }
.elp-p2__h2 { margin: 0 0 var(--elp-space-4); font-family: var(--elp-font-headline); font-size: var(--elp-text-3xl); font-weight: 500; letter-spacing: var(--elp-h1-tracking); }
.elp-p2__text { margin: 0 0 var(--elp-space-4); max-width: 70ch; line-height: 1.7; color: var(--elp-muted-foreground); }
.elp-p2__aktionen { display: flex; flex-wrap: wrap; gap: var(--elp-space-3); }

.elp-p2__kennzahlen { margin-bottom: var(--elp-space-6); }
.elp-p2__kennzahlen-titel { display: block; margin-bottom: var(--elp-space-3); }
.elp-p2__kennzahlen-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--elp-border); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); overflow: hidden; }
@media (min-width: 800px) { .elp-p2__kennzahlen-grid { grid-template-columns: repeat(4, 1fr); } }
.elp-p2__kennzahlen-grid > div { display: grid; gap: 0.25rem; padding: var(--elp-space-4); background: var(--elp-background); }
.elp-p2__kennzahlen-grid strong { font-family: var(--elp-font-headline); font-size: var(--elp-text-2xl); font-weight: 500; }

.elp-p2__abschluss { padding-top: var(--elp-space-10); margin-top: var(--elp-space-10); border-top: 1px solid var(--elp-border); }
.elp-p2__abschluss-text { margin: 0 0 var(--elp-space-5); font-size: var(--elp-text-lg); }

/* --- Formularfelder (P2) --- */
.elp-feld { display: grid; gap: var(--elp-space-2); margin-bottom: var(--elp-space-4); }
.elp-feld input, .elp-feld textarea, .elp-feld select {
	padding: 0.7rem 0.9rem;
	font-family: var(--elp-font-body); font-size: var(--elp-text-base);
	border: 1px solid var(--elp-input); border-radius: var(--elp-radius);
	background: var(--elp-background); color: var(--elp-foreground);
}
.elp-feld input:focus, .elp-feld textarea:focus { outline: 2px solid var(--elp-ring); outline-offset: 1px; }
.elp-feld small { font-size: var(--elp-text-xs); color: var(--elp-muted-foreground); }
.elp-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* --- science --- */
.elp-science__kapitel { padding-block: var(--elp-section-y); border-bottom: 1px solid var(--elp-border); }
.elp-science__kopf { display: flex; flex-wrap: wrap; gap: var(--elp-space-4); align-items: baseline; margin-bottom: var(--elp-space-3); }
.elp-science__nr { color: var(--elp-accent); }
.elp-science__gruppen { display: grid; gap: var(--elp-space-4); margin-top: var(--elp-space-6); }
@media (min-width: 800px) { .elp-science__gruppen { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .elp-science__gruppen { grid-template-columns: repeat(3, 1fr); } }
.elp-science__gruppe { padding: var(--elp-space-5); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); }
.elp-science__kuerzel { display: flex; flex-wrap: wrap; gap: 0.3rem; margin: var(--elp-space-3) 0; }
.elp-science__aa {
	display: inline-grid; place-items: center; min-width: 44px; padding: 0.3rem 0.5rem;
	font-family: var(--elp-font-mono); font-size: var(--elp-text-xs); letter-spacing: 0.06em;
	background: var(--elp-surface-primary-soft); color: var(--elp-info-foreground);
	border-radius: var(--elp-radius-sm);
}
.elp-science__gruppe p { margin: 0; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); line-height: 1.55; }

.elp-science__schritte { display: grid; gap: var(--elp-space-4); margin: var(--elp-space-6) 0; padding: 0; list-style: none; }
@media (min-width: 800px) { .elp-science__schritte { grid-template-columns: repeat(4, 1fr); } }
.elp-science__schritte li { padding: var(--elp-space-5); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); display: grid; gap: 0.35rem; align-content: start; }
.elp-science__schritte p { margin: 0; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }

.elp-science__karten { display: grid; gap: var(--elp-space-3); margin-top: var(--elp-space-5); }
@media (min-width: 700px) { .elp-science__karten { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .elp-science__karten { grid-template-columns: repeat(3, 1fr); } }
.elp-science__karte { padding: var(--elp-space-4); border: 1px solid var(--elp-border); border-radius: var(--elp-radius); }
.elp-science__karte p { margin: 0.25rem 0 0; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }

.elp-science__fuss, .elp-science__methoden { display: grid; gap: var(--elp-space-4); margin-top: var(--elp-space-6); }
@media (min-width: 700px) { .elp-science__fuss { grid-template-columns: repeat(2, 1fr); } .elp-science__methoden { grid-template-columns: repeat(4, 1fr); } }
.elp-science__fuss > div, .elp-science__methode { padding: var(--elp-space-5); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); display: grid; gap: 0.3rem; align-content: start; }
.elp-science__fuss strong, .elp-science__methode strong { font-family: var(--elp-font-headline); font-size: var(--elp-text-xl); font-weight: 500; }
.elp-science__fuss p, .elp-science__methode p { margin: 0; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }

/* --- applications --- */
.elp-apps__feld { padding-block: var(--elp-section-y); border-bottom: 1px solid var(--elp-border); }
.elp-apps__inner { display: grid; gap: var(--elp-space-8); }
@media (min-width: 1000px) { .elp-apps__inner { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); } }
.elp-apps__nr { color: var(--elp-accent); }
.elp-apps__titel { margin: var(--elp-space-2) 0 var(--elp-space-2); font-family: var(--elp-font-headline); font-size: var(--elp-text-2xl); font-weight: 500; }
.elp-apps__claim { margin: 0 0 var(--elp-space-3); font-size: var(--elp-text-lg); font-weight: 500; }
.elp-apps__punkte { margin: 0 0 var(--elp-space-4); padding: 0; list-style: none; display: grid; gap: var(--elp-space-2); }
.elp-apps__punkte li { position: relative; padding-left: 1.2rem; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }
.elp-apps__punkte li::before { content: ''; position: absolute; left: 0; top: 0.55em; width: 6px; height: 6px; border-radius: var(--elp-radius-full); background: var(--elp-accent); }
.elp-apps__abnehmer { margin: 0; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }
.elp-apps__seite { display: grid; gap: var(--elp-space-4); align-content: start; }
.elp-apps__kennzahlen { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--elp-border); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); overflow: hidden; }
.elp-apps__kennzahlen > div { display: grid; gap: 0.2rem; padding: var(--elp-space-4); background: var(--elp-background); }
.elp-apps__kennzahlen strong { font-size: var(--elp-text-lg); font-weight: 600; }
.elp-apps__peptide { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.elp-apps__peptid { text-decoration: none; }
a.elp-apps__peptid:hover { background: var(--elp-surface-primary-emphasis); }

.elp-apps__pipeline { padding-block: var(--elp-section-y); }
.elp-apps__pipeline-liste { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: var(--elp-space-5); }
.elp-apps__pipeline-cta { display: inline-flex; }

/* --- dossier --- */
.elp-dossier2__topbar { display: flex; justify-content: space-between; margin-bottom: var(--elp-space-5); }
.elp-dossier2__topbar a, .elp-dossier2__print { color: var(--elp-accent); text-decoration: none; background: transparent; border: 0; cursor: pointer; }
.elp-dossier2__index, .elp-dossier2__eintraege { padding-block: var(--elp-section-y); }
.elp-dossier2__index-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: var(--elp-space-2); }
.elp-dossier2__index-item {
	display: grid; gap: 0.2rem; padding: var(--elp-space-3);
	border: 1px solid var(--elp-border); border-radius: var(--elp-radius);
	text-decoration: none; color: var(--elp-foreground);
	transition: border-color var(--elp-dur-fast) var(--elp-ease), background-color var(--elp-dur-fast) var(--elp-ease);
}
.elp-dossier2__index-item:hover { border-color: var(--elp-accent); background: var(--elp-surface-muted-alt); }
.elp-dossier2__status { justify-self: start; padding: 0.1rem 0.45rem; font-family: var(--elp-font-mono); font-size: 0.625rem; letter-spacing: 0.06em; text-transform: uppercase; border-radius: var(--elp-radius-sm); }
.elp-dossier2__status--available { color: var(--elp-success); background: oklch(0.55 0.11 155 / 0.1); }
.elp-dossier2__status--restricted { color: var(--elp-status-soon); background: oklch(0.68 0.13 65 / 0.12); }
.elp-dossier2__status--pipeline { color: var(--elp-muted-foreground); background: var(--elp-surface-muted-alt); }

.elp-dossier2__eintrag { padding: var(--elp-space-5) 0; border-top: 1px solid var(--elp-border); scroll-margin-top: 120px; }
.elp-dossier2__eintrag-kopf { display: flex; flex-wrap: wrap; gap: var(--elp-space-3); align-items: baseline; margin-bottom: var(--elp-space-3); }
.elp-dossier2__klasse { font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }
.elp-dossier2__studien { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--elp-space-4); }
.elp-dossier2__studien li { display: grid; gap: 0.25rem; }
.elp-dossier2__quelle { font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }
.elp-dossier2__doi { color: var(--elp-accent); text-decoration: none; justify-self: start; }
.elp-dossier2__doi:hover { text-decoration: underline; }

/* --- journal --- */
.elp-journal__katalog { padding-block: var(--elp-section-y); }
.elp-journal__inner { display: grid; gap: var(--elp-space-8); }
@media (min-width: 1000px) { .elp-journal__inner { grid-template-columns: 260px minmax(0, 1fr); align-items: start; } }
.elp-journal__sidebar { display: grid; gap: var(--elp-space-5); align-content: start; }
.elp-journal__suche { display: grid; gap: var(--elp-space-2); }
.elp-journal__suche input { padding: 0.6rem 0.8rem; border: 1px solid var(--elp-input); border-radius: var(--elp-radius); font-family: var(--elp-font-body); }
.elp-journal__gruppe ul { margin: var(--elp-space-3) 0 0; padding: 0; list-style: none; display: grid; gap: 1px; }
.elp-journal__gruppe button {
	width: 100%; display: flex; justify-content: space-between; gap: var(--elp-space-2);
	padding: 0.45rem 0.6rem; font-size: var(--elp-text-sm); text-align: left;
	background: transparent; border: 0; border-radius: var(--elp-radius-sm); cursor: pointer;
	color: var(--elp-foreground);
}
.elp-journal__gruppe button:hover { background: var(--elp-surface-muted-alt); }
.elp-journal__gruppe button.is-aktiv { background: var(--elp-primary-soft); color: var(--elp-primary); font-weight: 500; }
.elp-journal__zahl { font-family: var(--elp-font-mono); font-size: var(--elp-text-xs); color: var(--elp-muted-foreground); }

.elp-journal__toolbar { display: flex; align-items: baseline; gap: var(--elp-space-3); margin-bottom: var(--elp-space-5); }
.elp-journal__treffer { font-weight: 600; }
.elp-journal__liste { display: grid; gap: var(--elp-space-4); }
.elp-journal__karte { padding: var(--elp-space-5); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); }
.elp-journal__karte[hidden] { display: none; }
.elp-journal__tags { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: var(--elp-space-3); }
.elp-journal__titel { margin: 0 0 var(--elp-space-2); font-size: var(--elp-text-lg); font-weight: 600; line-height: 1.35; }
.elp-journal__quelle { margin: 0 0 var(--elp-space-3); font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }
.elp-journal__ergebnis { margin: 0 0 var(--elp-space-4); line-height: 1.6; }
.elp-journal__meta { display: flex; flex-wrap: wrap; gap: var(--elp-space-5); align-items: center; padding-top: var(--elp-space-4); border-top: 1px solid var(--elp-border); }
.elp-journal__meta > span { display: grid; gap: 0.15rem; }
.elp-journal__doi { margin-left: auto; color: var(--elp-accent); text-decoration: none; }
.elp-journal__doi:hover { text-decoration: underline; }
.elp-journal__leer { padding: var(--elp-space-8); text-align: center; color: var(--elp-muted-foreground); }
.elp-journal__hinweis { margin-top: var(--elp-space-6); font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }

/* --- partners --- */
.elp-partners__programme, .elp-partners__spez { padding-block: var(--elp-section-y); }
.elp-partners__grid { display: grid; gap: var(--elp-space-5); margin-top: var(--elp-space-4); }
@media (min-width: 900px) { .elp-partners__grid { grid-template-columns: repeat(2, 1fr); } }
.elp-partners__karte { padding: var(--elp-space-6); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); display: grid; gap: var(--elp-space-2); align-content: start; }
.elp-partners__nr { color: var(--elp-accent); }
.elp-partners__karte-titel { margin: var(--elp-space-2) 0; font-family: var(--elp-font-headline); font-size: var(--elp-text-2xl); font-weight: 500; }
.elp-partners__punkte { margin: 0 0 var(--elp-space-4); padding: 0; list-style: none; display: grid; gap: var(--elp-space-2); }
.elp-partners__punkte li { padding-left: 1.1rem; position: relative; }
.elp-partners__punkte li::before { content: '✓'; position: absolute; left: 0; color: var(--elp-success); }
.elp-partners__karte .elp-btn { justify-self: start; }
.elp-partners__spez { border-top: 1px solid var(--elp-border); }
.elp-partners__spez-kopf { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--elp-space-3); margin-bottom: var(--elp-space-4); }
.elp-partners__spez-liste { margin: var(--elp-space-5) 0; padding: 0; list-style: none; display: grid; gap: var(--elp-space-4); }
.elp-partners__spez-liste li { display: flex; gap: var(--elp-space-3); }
.elp-partners__spez-liste p { margin: 0; line-height: 1.7; color: var(--elp-muted-foreground); }
.elp-partners__ruo { display: block; margin-top: var(--elp-space-6); }

/* --- influencer --- */
.elp-influencer__ober { display: block; margin-top: var(--elp-space-2); color: var(--elp-accent); }
.elp-influencer__stufen, .elp-influencer__dashboard, .elp-influencer__wer, .elp-influencer__ablauf { padding-block: var(--elp-section-y); border-bottom: 1px solid var(--elp-border); }
.elp-influencer__grid { display: grid; gap: var(--elp-space-4); margin-top: var(--elp-space-4); }
@media (min-width: 900px) { .elp-influencer__grid { grid-template-columns: repeat(3, 1fr); } }
.elp-influencer__tier { position: relative; padding: var(--elp-space-6); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); display: grid; gap: var(--elp-space-2); align-content: start; }
.elp-influencer__tier.is-empfohlen { border-color: var(--elp-accent); box-shadow: var(--elp-shadow-card); }
.elp-influencer__badge { position: absolute; top: -10px; left: var(--elp-space-6); padding: 0.2rem 0.6rem; font-family: var(--elp-font-mono); font-size: 0.625rem; letter-spacing: 0.08em; color: #fff; background: var(--elp-accent); border-radius: var(--elp-radius-full); }
.elp-influencer__name { margin: 0; font-family: var(--elp-font-headline); font-size: var(--elp-text-xl); font-weight: 500; }
.elp-influencer__prozent { margin: 0; font-family: var(--elp-font-headline); font-size: var(--elp-text-5xl); font-weight: 500; line-height: 1; letter-spacing: -0.03em; }
.elp-influencer__daten { margin: var(--elp-space-3) 0 0; display: grid; gap: var(--elp-space-2); }
.elp-influencer__daten div { display: flex; justify-content: space-between; padding-top: var(--elp-space-2); border-top: 1px solid var(--elp-border); font-size: var(--elp-text-sm); }
.elp-influencer__daten dt { color: var(--elp-muted-foreground); }
.elp-influencer__daten dd { margin: 0; font-weight: 600; }
.elp-influencer__bedingung { margin-top: var(--elp-space-2); }

.elp-influencer__browser { margin-top: var(--elp-space-4); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); overflow: hidden; }
.elp-influencer__browser-leiste { display: flex; align-items: center; gap: 0.4rem; padding: var(--elp-space-3) var(--elp-space-4); background: var(--elp-surface-muted-alt); border-bottom: 1px solid var(--elp-border); }
.elp-influencer__browser-leiste span { width: 10px; height: 10px; border-radius: var(--elp-radius-full); background: var(--elp-border); }
.elp-influencer__browser-leiste code { margin-left: var(--elp-space-3); font-family: var(--elp-font-mono); font-size: var(--elp-text-xs); color: var(--elp-muted-foreground); }
.elp-influencer__browser-tabs { display: flex; gap: var(--elp-space-2); padding: var(--elp-space-3) var(--elp-space-4) 0; border-bottom: 1px solid var(--elp-border); }
.elp-influencer__browser-tab { padding: 0.4rem 0.8rem; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); border-bottom: 2px solid transparent; }
.elp-influencer__browser-tab.is-aktiv { color: var(--elp-primary); border-bottom-color: var(--elp-primary); }
.elp-influencer__browser-body { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--elp-space-4); padding: var(--elp-space-5); }
@media (min-width: 700px) { .elp-influencer__browser-body { grid-template-columns: repeat(4, 1fr); } }
.elp-influencer__browser-body > div { display: grid; gap: 0.2rem; }
.elp-influencer__browser-body strong { font-family: var(--elp-font-headline); font-size: var(--elp-text-2xl); font-weight: 500; }
.elp-influencer__hinweis { display: block; margin-top: var(--elp-space-3); }

.elp-influencer__wer-grid { display: grid; gap: var(--elp-space-4); margin-top: var(--elp-space-4); }
@media (min-width: 700px) { .elp-influencer__wer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .elp-influencer__wer-grid { grid-template-columns: repeat(4, 1fr); } }
.elp-influencer__wer-karte { padding: var(--elp-space-5); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); display: grid; gap: var(--elp-space-2); align-content: start; }
.elp-influencer__wer-karte .elp-chip { justify-self: start; }
.elp-influencer__wer-karte h3 { margin: 0; font-size: var(--elp-text-lg); font-weight: 600; }
.elp-influencer__wer-karte p { margin: 0; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); line-height: 1.6; }

.elp-influencer__ablauf { border-bottom: 0; }
.elp-influencer__ablauf-liste { margin: var(--elp-space-4) 0 var(--elp-space-6); padding: 0; list-style: none; display: grid; gap: var(--elp-space-4); }
@media (min-width: 900px) { .elp-influencer__ablauf-liste { grid-template-columns: repeat(3, 1fr); } }
.elp-influencer__ablauf-liste li { padding: var(--elp-space-5); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); display: grid; gap: 0.35rem; align-content: start; }
.elp-influencer__ablauf-liste p { margin: 0; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); line-height: 1.6; }

/* --- b2b --- */
.elp-b2b__vorteile, .elp-b2b__zielgruppe { padding-block: var(--elp-section-y); }
.elp-b2b__grid { display: grid; gap: var(--elp-space-4); }
@media (min-width: 900px) { .elp-b2b__grid { grid-template-columns: repeat(3, 1fr); } }
.elp-b2b__karte { padding: var(--elp-space-6); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); }
.elp-b2b__karte h3 { margin: 0 0 var(--elp-space-2); font-size: var(--elp-text-lg); font-weight: 600; }
.elp-b2b__karte p { margin: 0; color: var(--elp-muted-foreground); line-height: 1.6; }
.elp-b2b__liste { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--elp-space-2); max-width: 52ch; }
.elp-b2b__liste li { padding-left: 1.2rem; position: relative; }
.elp-b2b__liste li::before { content: '→'; position: absolute; left: 0; color: var(--elp-accent); }

/* --- apply --- */
.elp-apply__form-sektion { padding-block: var(--elp-section-y); }
.elp-apply__box { max-width: 46rem; padding: var(--elp-space-8); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); }
.elp-apply__gruppe { margin: 0 0 var(--elp-space-5); padding: 0; border: 0; }
.elp-apply__gruppe legend { padding: 0; margin-bottom: var(--elp-space-3); }
/* Bricks' eigenes Stylesheet setzt label { color: var(--bricks-text-light) }
   — ein helles Grau (#9E9E9E), das jede Formularbeschriftung auf 2,7:1
   auswäscht. Innerhalb unseres Inhalts sollen Labels der Textfarbe ihres
   Kontexts folgen, damit sie auf hellen wie auf dunklen Flächen sitzen. */
#brx-content label { color: inherit; }

.elp-apply__radios, .elp-apply__kanaele { display: flex; flex-wrap: wrap; gap: var(--elp-space-2); margin-bottom: var(--elp-space-3); }
.elp-apply__radio, .elp-apply__kanal {
	display: inline-flex; align-items: center; gap: 0.45rem;
	padding: 0.5rem 0.9rem; font-size: var(--elp-text-sm);
	border: 1px solid var(--elp-border); border-radius: var(--elp-radius-full); cursor: pointer;
	transition: border-color var(--elp-dur-fast) var(--elp-ease), background-color var(--elp-dur-fast) var(--elp-ease);
}
.elp-apply__radio:has(:checked), .elp-apply__kanal:has(:checked) { border-color: var(--elp-accent); background: var(--elp-primary-soft); }
.elp-apply__hinweis { display: block; margin-bottom: var(--elp-space-3); font-size: var(--elp-text-xs); color: var(--elp-muted-foreground); }
.elp-apply__zeile { display: grid; gap: var(--elp-space-4); }
@media (min-width: 700px) { .elp-apply__zeile { grid-template-columns: repeat(2, 1fr); } }
.elp-apply__checkbox { display: flex; gap: var(--elp-space-3); margin-bottom: var(--elp-space-4); font-size: var(--elp-text-sm); line-height: 1.55; cursor: pointer; }
.elp-apply__checkbox input { width: 18px; height: 18px; margin-top: 0.15rem; flex: 0 0 auto; accent-color: var(--elp-primary); }
.elp-apply__submit { width: 100%; }

/* --- affiliate login --- */
.elp-alogin__sektion { padding-block: var(--elp-space-12) var(--elp-section-y); }
.elp-alogin__inner { display: grid; gap: var(--elp-space-10); align-items: center; }
@media (min-width: 1000px) { .elp-alogin__inner { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); } }
.elp-alogin__features { margin: var(--elp-space-6) 0; padding: 0; list-style: none; display: grid; gap: var(--elp-space-4); }
.elp-alogin__features li { display: grid; gap: 0.2rem; padding-left: 1.3rem; position: relative; }
.elp-alogin__features li::before { content: ''; position: absolute; left: 0; top: 0.5em; width: 7px; height: 7px; border-radius: var(--elp-radius-full); background: var(--elp-accent); }
.elp-alogin__features span { font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }
.elp-alogin__box { padding: var(--elp-space-8); border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg); box-shadow: var(--elp-shadow-card); }
.elp-alogin__box-titel { margin: 0 0 var(--elp-space-2); font-family: var(--elp-font-headline); font-size: var(--elp-text-2xl); font-weight: 500; }
.elp-alogin__box-text { margin: 0 0 var(--elp-space-5); font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }
.elp-alogin__hinweis { padding: var(--elp-space-4); margin-bottom: var(--elp-space-5); border: 1px dashed var(--elp-status-soon); border-radius: var(--elp-radius); background: oklch(0.68 0.13 65 / 0.07); }
.elp-alogin__hinweis strong { font-family: var(--elp-font-mono); font-size: var(--elp-label-size); letter-spacing: var(--elp-label-tracking); text-transform: uppercase; color: var(--elp-status-soon); }
.elp-alogin__hinweis p { margin: 0.3rem 0 0; font-size: var(--elp-text-sm); }
.elp-alogin__form .elp-btn { width: 100%; }
.elp-alogin__links-liste { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--elp-space-3); margin-top: var(--elp-space-4); font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }
.elp-alogin__links-liste a { color: var(--elp-accent); }


/* Checkbox-Zeilen: langer Text + Link dürfen die Zeile nicht aufspannen */
.elp-apply__checkbox, .elp-form__dsgvo, .elp-fkontakt__dsgvo { min-width: 0; }
.elp-apply__checkbox > *, .elp-form__dsgvo > *, .elp-fkontakt__dsgvo > * { min-width: 0; }
.elp-apply__checkbox a, .elp-form__dsgvo a, .elp-fkontakt__dsgvo a { overflow-wrap: anywhere; }
.elp-apply__form, .elp-apply__box { min-width: 0; }

/* =========================================================================
   KAUFSTRECKE V2 — Warenkorb, Kasse, Konto in eigenem Wrapper
   ========================================================================= */

/* Bricks begrenzt Seiten ohne Bricks-Inhalt über article#brx-content.wordpress
   auf die Standard-Containerbreite. Unsere Kaufstrecken-Seiten sind jetzt
   Bricks-Seiten, aber die Regel bleibt als Sicherung für künftige Woo-Endpoints
   (z. B. Bestellbestätigung unter /kasse/order-received/). */
article#brx-content.wordpress { max-width: none !important; width: 100%; }

.elp-flow { padding-bottom: var(--elp-section-y); }

/* --- Seitenkopf mit Fortschritt --- */
.elp-flow__kopf { border-bottom: 1px solid var(--elp-border); background: var(--elp-surface-muted-alt); }
.elp-flow__kopf-inner {
	display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
	gap: var(--elp-space-5); padding-block: var(--elp-space-8) var(--elp-space-6);
}
.elp-flow__titel {
	margin: var(--elp-space-2) 0 0;
	font-family: var(--elp-font-headline); font-size: var(--elp-text-4xl);
	font-weight: 500; letter-spacing: var(--elp-h1-tracking);
}

.elp-schritte { display: flex; flex-wrap: wrap; gap: var(--elp-space-5); margin: 0; padding: 0; list-style: none; }
.elp-schritte__punkt { display: flex; align-items: center; gap: var(--elp-space-2); }
.elp-schritte__punkt a { display: flex; align-items: center; gap: var(--elp-space-2); text-decoration: none; }
.elp-schritte__nr {
	display: grid; place-items: center; width: 26px; height: 26px;
	font-family: var(--elp-font-mono); font-size: 0.625rem;
	border: 1px solid var(--elp-rand, var(--elp-border)); border-radius: var(--elp-radius-full);
	color: var(--elp-muted-foreground); background: var(--elp-background);
}
.elp-schritte__label {
	font-family: var(--elp-font-mono); font-size: var(--elp-label-size);
	letter-spacing: var(--elp-label-tracking); text-transform: uppercase;
	color: var(--elp-muted-foreground);
}
.elp-schritte__punkt.is-aktiv .elp-schritte__nr { background: var(--elp-primary-hero); border-color: var(--elp-primary-hero); color: #fff; }
.elp-schritte__punkt.is-aktiv .elp-schritte__label { color: var(--elp-foreground); font-weight: 500; }
.elp-schritte__punkt.is-erledigt .elp-schritte__nr { border-color: var(--elp-success); color: var(--elp-success); }
.elp-schritte__punkt.is-erledigt a:hover .elp-schritte__label { color: var(--elp-accent); }

.elp-flow__body { padding-top: var(--elp-space-8); }
/* Der Shortcode-Wrapper braucht innerhalb unseres Containers keine eigene Breite mehr. */
.elp-flow__body > .woocommerce { max-width: none; width: 100%; padding: 0; margin: 0; }

.elp-flow__ruo { display: block; margin-top: var(--elp-space-6); text-align: center; }

/* --- Vertrauenszeile unter dem Warenkorb --- */
.elp-flow__trust {
	display: grid; gap: var(--elp-space-4);
	margin-top: var(--elp-space-10); padding-top: var(--elp-space-6);
	border-top: 1px solid var(--elp-border);
}
@media (min-width: 800px) { .elp-flow__trust { grid-template-columns: repeat(3, 1fr); } }
.elp-flow__trust > div { display: grid; gap: 0.2rem; }
.elp-flow__trust strong { font-size: var(--elp-text-sm); }
.elp-flow__trust span { font-size: var(--elp-text-xs); color: var(--elp-muted-foreground); }

/* =========================================================================
   WARENKORB — zweispaltig, Summen als sticky Karte
   ========================================================================= */
@media (min-width: 1000px) {
	.elp-flow--cart .woocommerce {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 22rem;
		gap: var(--elp-space-8);
		align-items: start;
	}
	/* Meldungen und die Formularzeile spannen über beide Spalten. */
	.elp-flow--cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
	.elp-flow--cart .woocommerce-cart-form { grid-column: 1; }
	.elp-flow--cart .cart-collaterals { grid-column: 2; position: sticky; top: 92px; }
}
.elp-flow--cart .cart-collaterals { width: 100%; }
.elp-flow--cart .cart-collaterals .cart_totals { width: 100% !important; float: none !important; }
.elp-flow--cart .cross-sells { grid-column: 1 / -1; }

/* Tabellenzellen: WooCommerce setzt eigene Hintergründe — hier zurücknehmen. */
.woocommerce table.shop_table td,
.woocommerce table.shop_table tbody th,
.woocommerce table.shop_table tfoot td,
.woocommerce table.shop_table tfoot th {
	background: transparent !important;
}
.woocommerce table.cart td.product-name { font-weight: 500; }
.woocommerce table.cart td.product-name a { color: var(--elp-foreground); text-decoration: none; }
.woocommerce table.cart td.product-name a:hover { color: var(--elp-accent); }
.woocommerce table.cart .product-thumbnail img { width: 60px; height: 60px; object-fit: contain; }
.woocommerce table.cart td.product-subtotal { font-weight: 600; }

/* Coupon-Zeile: als eigene Leiste unter der Tabelle */
.woocommerce .actions {
	display: flex; flex-wrap: wrap; gap: var(--elp-space-3);
	align-items: center; justify-content: space-between;
	padding-top: var(--elp-space-4) !important;
}
.woocommerce .actions .coupon { display: flex; gap: var(--elp-space-2); flex: 1 1 auto; }
.woocommerce .actions > button[name="update_cart"] { flex: 0 0 auto; }

/* Summen-Karte */
.woocommerce .cart_totals {
	background: var(--elp-surface-muted-alt);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	padding: var(--elp-space-6);
}
.woocommerce .cart_totals h2 {
	margin: 0 0 var(--elp-space-4);
	font-size: var(--elp-text-xl); font-weight: 600;
	padding-bottom: var(--elp-space-3); border-bottom: 1px solid var(--elp-border);
}
.woocommerce .cart_totals table.shop_table { border: 0 !important; background: transparent; }
.woocommerce .cart_totals table.shop_table th {
	background: transparent !important; border: 0 !important;
	padding: var(--elp-space-3) 0 !important; width: 45%;
}
.woocommerce .cart_totals table.shop_table td {
	border: 0 !important; border-top: 1px solid var(--elp-border) !important;
	padding: var(--elp-space-3) 0 !important; text-align: right;
	font-variant-numeric: tabular-nums;
}
.woocommerce .cart_totals tr.order-total td,
.woocommerce .cart_totals tr.order-total th { padding-top: var(--elp-space-4) !important; }
.woocommerce .cart_totals tr.order-total .amount { font-family: var(--elp-font-headline); font-size: var(--elp-text-xl); font-weight: 600; }
.woocommerce .cart_totals .woocommerce-shipping-destination { font-size: var(--elp-text-xs); color: var(--elp-muted-foreground); }
.woocommerce .wc-proceed-to-checkout { padding: var(--elp-space-5) 0 0 !important; }
.woocommerce .wc-proceed-to-checkout .checkout-button { width: 100%; }

/* =========================================================================
   KASSE — zweispaltig, Bestellübersicht sticky
   ========================================================================= */
.elp-flow--checkout form.checkout { display: grid; gap: var(--elp-space-8); }
@media (min-width: 1000px) {
	.elp-flow--checkout form.checkout { grid-template-columns: minmax(0, 1fr) 24rem; align-items: start; }
	.elp-flow--checkout #customer_details { grid-column: 1; }
	.elp-flow--checkout .elp-checkout__seite { grid-column: 2; position: sticky; top: 92px; display: grid; gap: var(--elp-space-4); }
}
.elp-flow--checkout #customer_details .col-1,
.elp-flow--checkout #customer_details .col-2 { width: 100%; float: none; }

/* Feldraster: Vorname/Nachname und PLZ/Ort paarweise */
@media (min-width: 640px) {
	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last { width: calc(50% - 0.5rem); float: none; display: inline-block; vertical-align: top; }
	.woocommerce form .form-row-first { margin-right: 1rem; }
}
.woocommerce form .form-row { margin-bottom: var(--elp-space-4); padding: 0; }
.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading {
	font-family: var(--elp-font-headline); font-size: var(--elp-text-2xl);
	font-weight: 500; letter-spacing: var(--elp-h1-tracking);
	margin: 0 0 var(--elp-space-5);
}

/* Bestellübersicht als Karte */
.elp-flow--checkout #order_review {
	background: var(--elp-surface-muted-alt);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	padding: var(--elp-space-5);
}
.elp-flow--checkout #order_review table.shop_table { border: 0 !important; background: transparent; }
.elp-flow--checkout #order_review table.shop_table th,
.elp-flow--checkout #order_review table.shop_table td {
	border: 0 !important; border-bottom: 1px solid var(--elp-border) !important;
	padding: var(--elp-space-3) 0 !important;
}
.elp-flow--checkout #order_review table.shop_table thead th { background: transparent !important; }
.elp-flow--checkout #order_review td:last-child,
.elp-flow--checkout #order_review th:last-child { text-align: right; font-variant-numeric: tabular-nums; }
.elp-flow--checkout #order_review tr.order-total .amount { font-family: var(--elp-font-headline); font-size: var(--elp-text-xl); font-weight: 600; }
.elp-flow--checkout #payment { background: transparent !important; border: 0 !important; padding: 0 !important; }
.elp-flow--checkout #payment ul.payment_methods { border: 0 !important; padding: var(--elp-space-4) 0 !important; }
.elp-flow--checkout #payment div.form-row.place-order { padding: 0 !important; margin: 0 !important; }

/* Rechtstexte lesbar halten */
.woocommerce-privacy-policy-text p { font-size: var(--elp-text-sm); line-height: 1.6; color: var(--elp-muted-foreground); }
.woocommerce-terms-and-conditions-wrapper { margin-bottom: var(--elp-space-4); }
.woocommerce-terms-and-conditions-checkbox-text { font-size: var(--elp-text-sm); }
.validate-required .required { color: var(--elp-destructive); text-decoration: none; }

/* =========================================================================
   MEIN KONTO
   ========================================================================= */
@media (min-width: 900px) {
	.elp-flow--konto .woocommerce { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: var(--elp-space-8); align-items: start; }
	.elp-flow--konto .woocommerce > .woocommerce-notices-wrapper,
	.elp-flow--konto .woocommerce > form.login,
	.elp-flow--konto .woocommerce > .u-columns { grid-column: 1 / -1; }
}
.elp-flow--konto .woocommerce-MyAccount-navigation { width: 100% !important; float: none !important; }
.elp-flow--konto .woocommerce-MyAccount-content { width: 100% !important; float: none !important; }

.elp-checkout__hinweis {
	display: flex; align-items: center; justify-content: center; gap: 0.45rem;
	margin: var(--elp-space-4) 0 0;
	font-family: var(--elp-font-mono); font-size: var(--elp-text-xs);
	letter-spacing: 0.06em; text-transform: uppercase;
	color: var(--elp-muted-foreground);
	text-align: center;
}
.elp-checkout__hinweis svg { width: 14px; height: 14px; flex: 0 0 auto; }
.woocommerce form .form-row .description { font-size: var(--elp-text-xs); color: var(--elp-muted-foreground); margin-top: 0.25rem; }

/* Bricks gibt dem Standard-Checkout-Formular eine feste Breite von 1100 px
   (.bricks-default-checkout) — unser Container bestimmt die Breite. */
.elp-flow--checkout form.bricks-default-checkout,
.elp-flow--cart form.woocommerce-cart-form,
.elp-flow .woocommerce > form,
.elp-flow .woocommerce > div {
	width: 100% !important;
	max-width: none !important;
}

/* Warenkorbtabelle: ohne feste Spaltenbreiten frisst die leere Entfernen-Spalte
   mehrere hundert Pixel und die Tabelle quillt aus ihrer Gridzelle. */
.woocommerce table.cart { table-layout: fixed; width: 100%; }
.woocommerce table.cart .product-remove { width: 44px; text-align: center; }
.woocommerce table.cart .product-thumbnail { width: 80px; }
.woocommerce table.cart .product-price { width: 100px; }
.woocommerce table.cart .product-quantity { width: 136px; }
.woocommerce table.cart .product-subtotal { width: 110px; text-align: right; }
.woocommerce table.cart .product-name { width: auto; overflow-wrap: anywhere; }
.woocommerce table.cart td.product-remove a.remove {
	display: inline-grid; place-items: center;
	width: 24px; height: 24px; font-size: 1.1rem; line-height: 1;
	color: var(--elp-muted-foreground) !important; background: transparent !important;
	border-radius: var(--elp-radius-full);
}
.woocommerce table.cart td.product-remove a.remove:hover { color: var(--elp-destructive) !important; background: oklch(0.55 0.2 25 / 0.08) !important; }
.woocommerce table.cart td.product-quantity .quantity { display: inline-flex; }
.cart-collaterals { float: none !important; }

/* Mobil: Tabelle als gestapelte Karten statt Spalten */
@media (max-width: 767px) {
	.woocommerce table.cart { table-layout: auto; }
	.woocommerce table.cart thead { display: none; }
	.woocommerce table.cart tr.cart_item {
		display: grid;
		grid-template-columns: 64px minmax(0, 1fr) auto;
		grid-template-areas: "bild name entfernen" "bild preis preis" "bild menge summe";
		gap: 0.3rem 0.75rem;
		padding: var(--elp-space-4) 0;
		border-bottom: 1px solid var(--elp-border);
	}
	.woocommerce table.cart tr.cart_item td,
	.woocommerce table.cart tr.cart_item th { border: 0 !important; padding: 0 !important; width: auto !important; }
	.woocommerce table.cart td.product-thumbnail { grid-area: bild; }
	.woocommerce table.cart td.product-name { grid-area: name; font-weight: 600; }
	.woocommerce table.cart td.product-remove { grid-area: entfernen; text-align: right; }
	.woocommerce table.cart td.product-price { grid-area: preis; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }
	.woocommerce table.cart td.product-quantity { grid-area: menge; }
	.woocommerce table.cart td.product-subtotal { grid-area: summe; text-align: right; align-self: center; }
	.woocommerce table.cart td.product-thumbnail img { width: 64px; height: 64px; }
	/* Woo blendet Zellen mobil per ::before-Label ein — bei uns unnötig. */
	.woocommerce table.cart td::before { display: none !important; }
	.woocommerce .actions { flex-direction: column; align-items: stretch; }
	.woocommerce .actions .coupon { flex-wrap: wrap; }
	.woocommerce .actions .coupon .input-text { flex: 1 1 100%; }
}

/* Feinschliff Warenkorbtabelle */
.woocommerce table.cart .product-quantity { width: 152px; }
.woocommerce table.cart .product-subtotal { width: 128px; }
.woocommerce table.shop_table th { white-space: normal; hyphens: auto; line-height: 1.3; }
.woocommerce table.cart td.product-subtotal { font-variant-numeric: tabular-nums; }
.woocommerce table.cart td.product-price { font-variant-numeric: tabular-nums; }
/* Gutschein und Aktualisieren in einer Zeile halten */
.woocommerce .actions .coupon { flex: 0 1 auto; }

/* Summenbox: Beschriftung links, Werte rechts — Versandtext aber linksbündig,
   sonst bricht der Satz rechtsbündig in schmale Fetzen. */
.woocommerce .cart_totals table.shop_table th { width: 40%; }
.woocommerce .cart_totals tr.woocommerce-shipping-totals td { text-align: left; }
.woocommerce .cart_totals tr.woocommerce-shipping-totals td .woocommerce-Price-amount { font-weight: 600; }
.woocommerce .cart_totals .woocommerce-shipping-methods li { margin-bottom: 0.35rem; }
.woocommerce .cart_totals .woocommerce-shipping-destination,
.woocommerce .cart_totals .shipping-calculator-button { font-size: var(--elp-text-xs); }
.woocommerce .cart_totals p { margin: 0.35rem 0 0; font-size: var(--elp-text-xs); line-height: 1.5; color: var(--elp-muted-foreground); }

/* ---- Warenkorbtabelle: Rahmen sauber statt Streifen ---- */
.woocommerce table.cart {
	border-collapse: collapse !important;
	border: 0 !important;
	background: transparent;
}
.woocommerce table.cart thead th {
	background: var(--elp-surface-muted-alt) !important;
	border: 0 !important;
	border-bottom: 1px solid var(--elp-rand, var(--elp-border)) !important;
}
.woocommerce table.cart thead th:first-child { border-radius: var(--elp-radius) 0 0 0; }
.woocommerce table.cart thead th:last-child { border-radius: 0 var(--elp-radius) 0 0; }
.woocommerce table.cart tbody td {
	border: 0 !important;
	border-bottom: 1px solid var(--elp-border) !important;
	background: transparent !important;
}
.woocommerce table.cart tr.cart_item:last-of-type td { border-bottom: 1px solid var(--elp-border) !important; }
.woocommerce table.cart td.actions { border-bottom: 0 !important; }

/* Mengensteuerung im Warenkorb wie der Stepper auf der Produktseite:
   eine Pille statt drei einzelner Kästen. */
.woocommerce table.cart .quantity {
	display: inline-flex; align-items: center;
	border: 1px solid var(--elp-input);
	border-radius: var(--elp-radius-full);
	overflow: hidden;
}
.woocommerce table.cart .quantity .qty {
	width: 46px; height: 40px;
	border: 0 !important; border-radius: 0 !important;
	text-align: center; background: transparent;
	-moz-appearance: textfield; appearance: textfield;
	font-variant-numeric: tabular-nums;
}
.woocommerce table.cart .quantity .qty::-webkit-outer-spin-button,
.woocommerce table.cart .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce table.cart .quantity button,
.woocommerce table.cart .quantity .plus,
.woocommerce table.cart .quantity .minus {
	width: 36px; height: 40px; padding: 0 !important;
	background: transparent !important; border: 0 !important; border-radius: 0 !important;
	color: var(--elp-foreground) !important;
	font-family: var(--elp-font-body) !important; font-size: 1rem !important;
	letter-spacing: 0 !important; text-transform: none !important;
	cursor: pointer;
}
.woocommerce table.cart .quantity button:hover,
.woocommerce table.cart .quantity .plus:hover,
.woocommerce table.cart .quantity .minus:hover { background: var(--elp-surface-muted-alt) !important; }

/* Summenbox: Trennlinien über die volle Kartenbreite */
.woocommerce .cart_totals table.shop_table tr > th,
.woocommerce .cart_totals table.shop_table tr > td { border-top: 1px solid var(--elp-border) !important; }
.woocommerce .cart_totals table.shop_table tr:first-child > th,
.woocommerce .cart_totals table.shop_table tr:first-child > td { border-top: 0 !important; }

/* Deaktivierter „Warenkorb aktualisieren“-Button: dezent statt grauer Klotz */
.woocommerce .actions button[name="update_cart"]:disabled,
.woocommerce .actions button[name="update_cart"][disabled] {
	background: transparent !important;
	color: var(--elp-muted-foreground) !important;
	border: 1px solid var(--elp-border) !important;
	opacity: 1 !important;
}

/* Bestellübersicht: Beschriftungen nicht umbrechen (Karte ist breit genug) */
.elp-flow--checkout #order_review table.shop_table th {
	white-space: nowrap;
	font-size: 0.625rem;
}
.elp-flow--checkout #order_review .product-name { white-space: normal; }
/* AGB-Zeile: normale Schriftstärke, Link hervorgehoben */
.woocommerce-terms-and-conditions-checkbox-text { font-weight: 400 !important; }
.woocommerce-terms-and-conditions-checkbox-text a { font-weight: 500; color: var(--elp-accent); }
.woocommerce-terms-and-conditions-wrapper .form-row { display: flex; gap: var(--elp-space-3); align-items: flex-start; }
.woocommerce-terms-and-conditions-wrapper input[type="checkbox"] { width: 18px; height: 18px; margin-top: 0.15rem; flex: 0 0 auto; accent-color: var(--elp-primary); }
/* Gutschein-Hinweis dezenter */
.woocommerce-form-coupon-toggle .woocommerce-info { font-size: var(--elp-text-sm); }

/* Feldpaare an der Kasse über die Feld-IDs — WooCommerce setzt die
   class-Angaben je Land selbst, deshalb nicht über PHP steuerbar. */
@media (min-width: 640px) {
	#billing_postcode_field, #shipping_postcode_field,
	#billing_phone_field {
		width: calc(50% - 0.5rem);
		display: inline-block;
		vertical-align: top;
		margin-right: 1rem;
	}
	#billing_city_field, #shipping_city_field,
	#billing_email_field {
		width: calc(50% - 0.5rem);
		display: inline-block;
		vertical-align: top;
	}
}

/* WooCommerce blendet in der mobilen Tabellenansicht Spaltenlabels über
   td::before ein ("Produkt:", "Preis:" …). In unserem Kartenlayout sind sie
   redundant — Woo nutzt .shop_table_responsive, daher dieser Selektor. */
@media (max-width: 767px) {
	.woocommerce table.shop_table_responsive tr td::before,
	.woocommerce-page table.shop_table_responsive tr td::before,
	.woocommerce table.cart tr td::before { content: none !important; display: none !important; }
	.woocommerce table.shop_table_responsive tr td { text-align: left !important; }
	.woocommerce table.cart td.product-subtotal,
	.woocommerce table.cart td.product-remove { text-align: right !important; }
}

/* WooCommerce erzeugt die mobilen Spaltenlabels über
   .woocommerce table.shop_table_responsive tr td::before { content: attr(data-title) }.
   Der Attribut-Selektor hier hat höhere Spezifität und gewinnt unabhängig
   von der Ladereihenfolge der Stylesheets. */
@media (max-width: 768px) {
	/* Die Produktnamen-Zelle rendert WooCommerce als <th scope="row">, alle
	   anderen als <td> — daher ohne Tag-Einschränkung. */
	body .woocommerce table.cart [data-title]::before,
	body .woocommerce-page table.cart [data-title]::before,
	body .woocommerce table.shop_table_responsive [data-title]::before {
		content: none !important;
		display: none !important;
		float: none !important;
	}
}

/* =========================================================================
   PRODUKTSEITE — GRUNDAUSRICHTUNG
   Ursache des Versatzes: WooCommerce hängt die Klasse .product an
   main#brx-content, und darauf greift eine display:flex-Regel. Das Element
   wurde damit zum linksbündigen Flex-Item (1280 px bei 1440 px Viewport),
   und jede Sektion erbte den Versatz. Sektionen mit eigener Maximalbreite
   wirkten dadurch „mittig", der Rest linksbündig.
   ========================================================================= */
main#brx-content.product,
main#brx-content.type-product { display: block !important; }
.brxe-elp-product-single { width: 100%; }


/* =========================================================================
   PRODUKTDETAILSEITE  (Neuaufbau)

   Grundproblem der Vorversion: WooCommerce hängt die Klasse .product an
   main#brx-content; eine display:flex-Regel darauf machte das Element zum
   linksbündigen Flex-Item (1280 px im 1440er Viewport). Jede Sektion erbte
   den Versatz, Sektionen mit eigener max-width wirkten dadurch „mittig".
   ========================================================================= */
main#brx-content.product,
main#brx-content.type-product { display: block !important; }
.brxe-elp-product-single { width: 100%; }

.elp-produkt { --elp-panel-top: 96px; padding-bottom: var(--elp-section-y); }

/* Gemeinsame Bausteine ---------------------------------------------------- */
.elp-produkt .elp-icon { width: 1em; height: 1em; flex: 0 0 auto; }
.elp-produkt__h2 {
	margin: 0;
	font-family: var(--elp-font-headline);
	font-size: clamp(1.5rem, 1.2rem + 0.9vw, 1.875rem);
	font-weight: 500; letter-spacing: var(--elp-h1-tracking); line-height: 1.2;
	text-wrap: balance;
}
.elp-produkt__text { line-height: 1.75; color: var(--elp-muted-foreground); }
.elp-produkt__text > p { margin: 0 0 var(--elp-space-4); max-width: 72ch; }
.elp-produkt__text > p:last-child { margin-bottom: 0; }

/* Einheitlicher Sektionsrhythmus statt gemischter Abstände */
/* Trennlinie über ein Pseudo-Element, damit sie exakt am Textraster endet.
   Als border-top am .elp-container ragte sie 40 px über den Inhalt hinaus. */
.elp-produkt__abschnitt {
	position: relative;
	display: flex; flex-direction: column; gap: var(--elp-space-5);
	padding-block: var(--elp-section-y);
}
.elp-produkt__abschnitt::before {
	content: '';
	position: absolute; top: 0;
	left: var(--elp-gutter); right: var(--elp-gutter);
	height: 1px; background: var(--elp-border);
}
@media (min-width: 1024px) {
	.elp-produkt__abschnitt::before { left: var(--elp-gutter-lg); right: var(--elp-gutter-lg); }
}
/* Der erste Abschnitt folgt direkt auf die Tab-Leiste — dort keine zweite Linie. */
.elp-produkt__tabs + .elp-produkt__abschnitt::before { display: none; }
.elp-produkt__abschnitt-aktionen { display: flex; flex-wrap: wrap; gap: var(--elp-space-3); }

/* Brotkrumen ------------------------------------------------------------- */
.elp-produkt__brotkrumen {
	display: flex; flex-wrap: wrap; align-items: center; gap: var(--elp-space-2);
	padding-block: var(--elp-space-6) var(--elp-space-5);
}
.elp-produkt__brotkrumen a { color: var(--elp-muted-foreground); text-decoration: none; }
.elp-produkt__brotkrumen a:hover { color: var(--elp-accent); }
.elp-produkt__brotkrumen span[aria-hidden] { color: var(--elp-rand, var(--elp-border)); }
.elp-produkt__brotkrumen [aria-current] { color: var(--elp-foreground); }

/* ---------------------------------------------------------------- KAUFBEREICH */
.elp-produkt__kauf { display: grid; gap: var(--elp-space-8); padding-bottom: var(--elp-section-y); }
.elp-produkt__kauf > * { min-width: 0; }
@media (min-width: 1000px) {
	/* Bildspalte breiter als das Kaufpanel — Verhältnis wie in der Vorlage. */
	.elp-produkt__kauf { grid-template-columns: minmax(0, 7fr) minmax(0, 6fr); gap: var(--elp-space-10); align-items: start; }
	.elp-produkt__panel { position: sticky; top: var(--elp-panel-top); }
}
@media (prefers-reduced-motion: reduce) {
	.elp-produkt__panel { position: static; }
}

.elp-produkt__medien { display: flex; flex-direction: column; gap: var(--elp-space-5); }

/* Produktbild: Blueprint-Raster liegt hinter dem Bild, nicht darüber ------ */
.elp-produkt__bild {
	position: relative;
	margin: 0;
	display: grid; place-items: center;
	/* Quadratisch wie in der Vorlage und auf den Karten — die hohen Vials
	   brauchen die Höhe, sonst wurde das Bild unten beschnitten. */
	aspect-ratio: 1 / 1;
	padding: var(--elp-space-8);
	background: var(--elp-surface-muted-alt);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-xl);
	overflow: hidden;
}
.elp-produkt__img {
	position: relative;
	/* width/height 100% + contain statt max-*: WooCommerce setzt width- und
	   height-Attribute aufs img, wodurch max-height allein nicht griff und das
	   Bild aus der Fläche lief. */
	width: 100%; height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;   /* weißer Bildhintergrund verschmilzt mit der Fläche */
}

.elp-produkt__evidenz,
.elp-produkt__score {
	position: absolute; z-index: 1;
	display: inline-flex; align-items: center; gap: 0.35rem;
	padding: 0.25rem 0.6rem;
	font-family: var(--elp-font-mono); font-size: var(--elp-text-xs);
	background: var(--elp-background);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-sm);
}
.elp-produkt__evidenz { top: var(--elp-space-4); left: var(--elp-space-4); color: var(--elp-info-foreground); background: var(--elp-info); border-color: var(--elp-info-border); }
.elp-produkt__score { bottom: var(--elp-space-4); right: var(--elp-space-4); font-variant-numeric: tabular-nums; }

/* Trust-Box: ruhige Fläche, kein Raster hinter dem Text ------------------- */
.elp-produkt__trust {
	padding: var(--elp-space-5);
	background: var(--elp-surface-muted-alt);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
}
.elp-produkt__trust-titel { display: block; margin-bottom: var(--elp-space-4); }
.elp-produkt__trust-grid {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--elp-space-4) var(--elp-space-5);
	margin: 0; padding: 0; list-style: none;
}
.elp-produkt__trust-zelle { display: grid; gap: 0.15rem; }
.elp-produkt__trust-nr { color: var(--elp-accent); }
.elp-produkt__trust-zelle strong { font-size: var(--elp-text-sm); font-weight: 600; line-height: 1.35; }
.elp-produkt__trust-sub { font-size: var(--elp-text-xs); line-height: 1.5; color: var(--elp-muted-foreground); }

/* Referenzdaten ---------------------------------------------------------- */
.elp-produkt__referenz {
	padding: var(--elp-space-5);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
}
.elp-produkt__referenz-titel { display: block; padding-bottom: var(--elp-space-3); border-bottom: 1px solid var(--elp-border); }
.elp-produkt__referenz-sub { margin: var(--elp-space-3) 0 0; font-size: var(--elp-text-sm); font-weight: 600; }
.elp-produkt__referenz-daten { margin: 0; display: grid; }
.elp-produkt__referenz-daten > div {
	display: grid; gap: 0.15rem;
	padding-block: var(--elp-space-3);
	border-bottom: 1px solid var(--elp-border);
}
.elp-produkt__referenz-daten > div:last-child { border-bottom: 0; padding-bottom: 0; }
@media (min-width: 480px) {
	.elp-produkt__referenz-daten > div { grid-template-columns: 11rem minmax(0, 1fr); gap: var(--elp-space-4); align-items: baseline; }
}
.elp-produkt__referenz-daten dd { margin: 0; font-size: var(--elp-text-sm); font-weight: 500; }

/* ------------------------------------------------------------------- PANEL */
.elp-produkt__panel-inner {
	display: flex; flex-direction: column; gap: var(--elp-space-4);
	padding: var(--elp-space-6);
	background: var(--elp-background);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-xl);
	box-shadow: var(--elp-shadow-card);
}
.elp-produkt__kopfzeile { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--elp-space-3); }
.elp-produkt__status { display: inline-flex; align-items: center; }
.elp-produkt__status--ok { color: var(--elp-success) !important; }
.elp-produkt__status--aus { color: var(--elp-destructive) !important; }

.elp-produkt__titel {
	margin: 0;
	font-family: var(--elp-font-headline);
	font-size: clamp(1.875rem, 1.4rem + 1.6vw, 2.5rem);
	font-weight: 500; line-height: 1.08; letter-spacing: var(--elp-h1-tracking);
}
.elp-produkt__kurz { margin: 0; font-size: var(--elp-text-base); line-height: 1.65; color: var(--elp-muted-foreground); }

.elp-produkt__ruo-box {
	display: flex; gap: var(--elp-space-3);
	padding: var(--elp-space-4);
	background: oklch(0.97 0.03 85);
	border: 1px solid oklch(0.68 0.13 65 / 0.3);
	border-left-width: 3px;
	border-left-color: var(--elp-status-soon);
	border-radius: var(--elp-radius);
}
.elp-produkt__ruo-box .elp-icon { width: 15px; height: 15px; margin-top: 0.2rem; color: var(--elp-status-soon); }
.elp-produkt__ruo-box strong {
	display: block;
	font-family: var(--elp-font-mono); font-size: var(--elp-label-size);
	letter-spacing: var(--elp-label-tracking); text-transform: uppercase;
	color: var(--elp-status-soon);
}
.elp-produkt__ruo-box p { margin: 0.3rem 0 0; font-size: var(--elp-text-sm); line-height: 1.55; }

.elp-produkt__knapp {
	display: flex; align-items: center; gap: 0.4rem;
	margin: 0; font-size: var(--elp-text-sm); font-weight: 500; color: var(--elp-status-soon);
}

/* Dosierung als Datenzeile — vorher als dunkler Button gestaltet, der wie
   ein Bedienelement aussah, ohne eines zu sein. */
.elp-produkt__dosierung {
	display: flex; align-items: baseline; justify-content: space-between; gap: var(--elp-space-3);
	padding-block: var(--elp-space-3);
	border-block: 1px solid var(--elp-border);
}
.elp-produkt__dosierung-wert { font-size: var(--elp-text-base); font-weight: 600; font-variant-numeric: tabular-nums; }

/* Preis-Panel ------------------------------------------------------------ */
.elp-produkt__preispanel {
	display: flex; flex-direction: column; gap: var(--elp-space-4);
	padding: var(--elp-space-5);
	background: var(--elp-surface-muted-alt);
	border-radius: var(--elp-radius-lg);
}
.elp-produkt__preiszeile { display: flex; align-items: baseline; justify-content: space-between; gap: var(--elp-space-3); }
.elp-produkt__preis {
	margin: 0;
	font-family: var(--elp-font-headline);
	font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.25rem);
	font-weight: 600; letter-spacing: -0.02em; line-height: 1;
	font-variant-numeric: tabular-nums;
}
.elp-produkt__preis .woocommerce-Price-amount { font-size: inherit; }
.elp-produkt__cartform { display: flex; flex-wrap: wrap; gap: var(--elp-space-3); align-items: stretch; }

.elp-produkt__versandhinweis {
	display: flex; align-items: center; gap: 0.45rem;
	margin: 0; font-size: var(--elp-text-xs); line-height: 1.5; color: var(--elp-muted-foreground);
}
.elp-produkt__versandhinweis .elp-icon { width: 15px; height: 15px; }

/* ----------------------------------------------------------- STEPPER (neu)
   Vorher waren − und + Textzeichen in 42-px-Kästen: optisch schief, zu klein
   als Klickfläche und ohne Fokuszustand. Jetzt SVG-Striche, 44 px, klare Pille. */
.elp-stepper {
	display: inline-flex; align-items: center; flex: 0 0 auto;
	background: var(--elp-background);
	border: 1px solid var(--elp-input);
	border-radius: var(--elp-radius-full);
	overflow: hidden;
	transition: border-color var(--elp-dur-fast) var(--elp-ease), box-shadow var(--elp-dur-fast) var(--elp-ease);
}
.elp-stepper:focus-within { border-color: var(--elp-ring); box-shadow: 0 0 0 3px oklch(0.44 0.075 72 / 0.15); }

.elp-stepper__btn {
	display: grid; place-items: center;
	width: 44px; height: 44px; padding: 0;
	background: transparent; border: 0; cursor: pointer;
	color: var(--elp-foreground);
	transition: background-color var(--elp-dur-fast) var(--elp-ease), color var(--elp-dur-fast) var(--elp-ease);
}
.elp-stepper__btn svg { width: 15px; height: 15px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; fill: none; }
.elp-stepper__btn:hover { background: var(--elp-surface-primary-soft); color: var(--elp-primary); }
.elp-stepper__btn:active { background: var(--elp-surface-primary-emphasis); }
.elp-stepper__btn:focus-visible { outline: 2px solid var(--elp-ring); outline-offset: -2px; }
.elp-stepper__btn:disabled { opacity: 0.35; cursor: not-allowed; background: transparent; color: var(--elp-muted-foreground); }

.elp-stepper__feld {
	width: 3rem; height: 44px;
	padding: 0; border: 0; background: transparent;
	text-align: center;
	font-family: var(--elp-font-body); font-size: var(--elp-text-base); font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var(--elp-foreground);
	-moz-appearance: textfield; appearance: textfield;
}
.elp-stepper__feld:focus { outline: none; }
.elp-stepper__feld::-webkit-outer-spin-button,
.elp-stepper__feld::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.elp-stepper--klein .elp-stepper__btn { width: 34px; height: 34px; }
.elp-stepper--klein .elp-stepper__btn svg { width: 12px; height: 12px; }
.elp-stepper--klein .elp-stepper__feld { width: 2.25rem; height: 34px; font-size: var(--elp-text-sm); }

/* Kaufbutton ------------------------------------------------------------- */
.elp-produkt__kaufbtn {
	flex: 1 1 14rem; min-width: 0;
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	min-height: 44px; padding: 0.75rem 1.5rem;
	font-family: var(--elp-font-mono); font-size: var(--elp-label-size); font-weight: 500;
	letter-spacing: var(--elp-label-tracking); text-transform: uppercase;
	color: #fff; background: var(--elp-primary-hero);
	border: 1px solid transparent; border-radius: var(--elp-radius-full);
	cursor: pointer;
	transition: background-color var(--elp-dur-fast) var(--elp-ease), transform var(--elp-dur-fast) var(--elp-ease);
}
.elp-produkt__kaufbtn:hover { background: var(--elp-accent-dark); transform: translateY(-1px); }
.elp-produkt__kaufbtn:focus-visible { outline: 2px solid var(--elp-ring); outline-offset: 2px; }
.elp-produkt__kaufbtn .elp-icon { width: 17px; height: 17px; }
.elp-produkt__kaufbtn.is-laedt { opacity: 0.65; cursor: progress; transform: none; }

/* Zahlungsarten: einheitliche Kacheln ------------------------------------ */
.elp-produkt__zahlarten { display: flex; flex-direction: column; gap: var(--elp-space-2); }
.elp-produkt__zahlarten-liste { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0; padding: 0; list-style: none; }
.elp-produkt__zahlart {
	display: grid; place-items: center;
	width: 3.25rem; height: 2rem; padding: 0.25rem;
	background: #fff;
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-sm);
}
.elp-produkt__zahlart img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }

/* Cross-Sell ------------------------------------------------------------- */
.elp-produkt__crosssell { display: flex; flex-direction: column; gap: var(--elp-space-2); margin-top: var(--elp-space-2); padding-top: var(--elp-space-4); border-top: 1px solid var(--elp-border); }
.elp-produkt__crosssell-zeile {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: var(--elp-space-3);
	align-items: center;
	padding: var(--elp-space-3);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
}
.elp-produkt__crosssell-bild img { display: block; width: 44px; height: 44px; object-fit: contain; background: var(--elp-surface-muted-alt); border-radius: var(--elp-radius-sm); }
.elp-produkt__crosssell-body { display: grid; gap: 0.1rem; min-width: 0; }
.elp-produkt__crosssell-body strong { font-size: var(--elp-text-sm); }
.elp-produkt__crosssell-sub { font-size: var(--elp-text-xs); color: var(--elp-muted-foreground); }
.elp-produkt__crosssell-preis { font-size: var(--elp-text-sm); font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.elp-produkt__crosssell-btn { grid-column: 1 / -1; justify-self: stretch; min-height: 40px; }
.elp-produkt__crosssell .added_to_cart { display: none; }

/* ------------------------------------------------------ QUALITÄTSSICHERUNG
   Volle Seitenbreite. In der Vorlage steckt dieser Block in der linken
   Spalte, wodurch rechts neben dem kürzeren Kaufpanel ein großes Loch bleibt. */
.elp-produkt__qs {
	padding-block: var(--elp-section-y);
	background: var(--elp-surface-muted-alt);
	border-block: 1px solid var(--elp-border);
	scroll-margin-top: 8rem;
}
.elp-produkt__qs-kopf { display: flex; flex-direction: column; gap: var(--elp-space-3); margin-bottom: var(--elp-space-8); }
.elp-produkt__qs-lead { margin: 0; max-width: 68ch; line-height: 1.7; color: var(--elp-muted-foreground); }

.elp-produkt__qs-grid {
	display: grid; gap: var(--elp-space-5);
	margin: 0 0 var(--elp-space-8); padding: 0; list-style: none;
}
@media (min-width: 760px) { .elp-produkt__qs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.elp-produkt__qs-karte {
	display: flex; flex-direction: column; gap: var(--elp-space-4);
	background: var(--elp-background);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	overflow: hidden;
}
/* aspect-ratio allein reicht nicht: die Quellbilder haben unterschiedliche
   Seitenverhältnisse (1024×421 vs. 1024×1024) und der Bildinhalt drückt die
   Fläche auf. Deshalb Bild absolut positionieren — so sind alle drei gleich hoch. */
.elp-produkt__qs-foto {
	position: relative; margin: 0;
	aspect-ratio: 16 / 10;
	background: var(--elp-surface-muted-alt);
	overflow: hidden;
}
.elp-produkt__qs-foto img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover; display: block;
}
.elp-produkt__qs-tag {
	position: absolute; top: var(--elp-space-3); left: var(--elp-space-3);
	padding: 0.15rem 0.5rem;
	font-family: var(--elp-font-mono); font-size: 0.625rem; letter-spacing: 0.08em;
	color: #fff; background: oklch(0.19 0.014 75 / 0.7);
	border-radius: var(--elp-radius-sm);
	backdrop-filter: blur(4px);
}
.elp-produkt__qs-body { display: flex; flex-direction: column; gap: 0.3rem; padding: 0 var(--elp-space-5) var(--elp-space-5); }
.elp-produkt__qs-titel { font-size: var(--elp-text-base); font-weight: 600; }
.elp-produkt__qs-sub { color: var(--elp-accent); }
.elp-produkt__qs-body p { margin: 0.2rem 0 0; font-size: var(--elp-text-sm); line-height: 1.6; color: var(--elp-muted-foreground); }

.elp-produkt__qs-stats {
	display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px;
	background: var(--elp-border);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-lg);
	overflow: hidden;
}
@media (min-width: 760px) { .elp-produkt__qs-stats { grid-template-columns: repeat(4, 1fr); } }
.elp-produkt__qs-stats > div { display: grid; gap: 0.2rem; padding: var(--elp-space-5); background: var(--elp-background); }
.elp-produkt__qs-wert {
	font-family: var(--elp-font-headline); font-size: var(--elp-text-2xl);
	font-weight: 500; letter-spacing: -0.02em; font-variant-numeric: tabular-nums;
}

/* -------------------------------------------------------------- TAB-ANKER */
.elp-produkt__tabs {
	position: sticky; top: 62px; z-index: 20;
	background: oklch(1 0 0 / 0.92);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--elp-border);
}
.elp-produkt__tabs-inner { display: flex; gap: var(--elp-space-1); overflow-x: auto; scrollbar-width: none; }
.elp-produkt__tabs-inner::-webkit-scrollbar { display: none; }
.elp-produkt__tab {
	padding: 0.9rem 0.9rem 0.75rem;
	font-family: var(--elp-font-mono); font-size: var(--elp-label-size);
	letter-spacing: var(--elp-label-tracking); text-transform: uppercase;
	color: var(--elp-muted-foreground); text-decoration: none; white-space: nowrap;
	border-bottom: 2px solid transparent;
	transition: color var(--elp-dur-fast) var(--elp-ease), border-color var(--elp-dur-fast) var(--elp-ease);
}
.elp-produkt__tab:hover { color: var(--elp-foreground); }
.elp-produkt__tab.is-aktiv { color: var(--elp-primary); border-bottom-color: var(--elp-primary); }
#ueberblick, #lieferumfang, #produkt-faq, #reviews { scroll-margin-top: 8rem; }

/* -------------------------------------------------------------- ABSCHNITTE */
.elp-produkt__spec { display: grid; gap: 0; margin: 0; }
@media (min-width: 760px) { .elp-produkt__spec { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--elp-space-10); } }
.elp-produkt__spec > div {
	display: grid; gap: 0.15rem;
	padding-block: var(--elp-space-3);
	border-bottom: 1px solid var(--elp-border);
}
@media (min-width: 480px) {
	.elp-produkt__spec > div { grid-template-columns: 11rem minmax(0, 1fr); gap: var(--elp-space-4); align-items: baseline; }
}
.elp-produkt__spec dd { margin: 0; font-size: var(--elp-text-sm); font-weight: 500; }

/* Produkt-FAQ ------------------------------------------------------------ */
/* Volle Containerbreite: eine 60rem-Begrenzung ließ die Zeilen 240 px vor der
   Trennlinie enden — genau die wechselnden Kanten, die unruhig wirken. */
.elp-produkt__faq-liste { max-width: none; }
.elp-produkt__faq-liste .elp-faq__punkt summary { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto; align-items: center; gap: var(--elp-space-3); }
.elp-produkt__faq-liste .elp-faq__nr { color: var(--elp-accent); }

/* Bewertungen ------------------------------------------------------------ */
.elp-produkt__reviews-kopf { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--elp-space-3); }
.elp-produkt__reviews-leer { margin: 0; max-width: 72ch; color: var(--elp-muted-foreground); }
/* WooCommerce gibt eine zweite Überschrift und eine eigene Leermeldung aus —
   beides doppelte unsere. */
.elp-produkt__reviews #reviews > h2,
.elp-produkt__reviews #comments > h2,
.elp-produkt__reviews .woocommerce-noreviews { display: none; }
.elp-produkt__reviews #review_form_wrapper { margin-top: var(--elp-space-6); }
.elp-produkt__reviews #review_form_wrapper .comment-reply-title {
	display: block; margin-bottom: var(--elp-space-3);
	font-family: var(--elp-font-headline); font-size: var(--elp-text-xl); font-weight: 500;
}
.elp-produkt__reviews .woocommerce-verification-required {
	margin: 0; padding: var(--elp-space-4) var(--elp-space-5);
	background: var(--elp-info); color: var(--elp-info-foreground);
	border: 1px solid var(--elp-info-border); border-radius: var(--elp-radius);
	font-size: var(--elp-text-sm);
}
.elp-produkt__reviews ol.commentlist { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--elp-space-4); }

/* Ähnliche Produkte ------------------------------------------------------ */
.elp-produkt__aehnlich {
	padding-block: var(--elp-section-y);
	border-top: 1px solid var(--elp-border);
	background: var(--elp-surface-muted-alt);
}
.elp-produkt__aehnlich-kopf { display: flex; flex-direction: column; gap: var(--elp-space-2); margin-bottom: var(--elp-space-6); }
.elp-grid--aehnlich { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 760px) { .elp-grid--aehnlich { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.elp-produkt__aehnlich-cta { margin-top: var(--elp-space-6); }

/* ------------------------------------------------------------------ MOBIL */
@media (max-width: 999px) {
	.elp-produkt__panel-inner { padding: var(--elp-space-5); }
	.elp-produkt__bild { padding: var(--elp-space-5); }
	.elp-produkt__tabs { top: 56px; }

	/* Reihenfolge mobil: Bild → Kaufpanel → Trust → Referenzdaten.
	   Gestapelt lagen sonst Trust-Box und Referenzdaten zwischen Bild und
	   Kaufbutton — Preis und Warenkorb waren erst nach langem Scrollen sichtbar.
	   display:contents löst die Medienspalte auf, damit ihre Kinder direkte
	   Grid-Items werden und einzeln sortierbar sind. */
	.elp-produkt__medien { display: contents; }
	.elp-produkt__bild { order: 1; }
	.elp-produkt__panel { order: 2; }
	.elp-produkt__trust { order: 3; }
	.elp-produkt__referenz { order: 4; }
}
@media (max-width: 640px) {
	.elp-produkt__trust-grid { grid-template-columns: 1fr; }
	.elp-produkt__cartform { flex-direction: column; }
	.elp-produkt__cartform .elp-stepper { align-self: flex-start; }
	.elp-produkt__kaufbtn { width: 100%; flex: 1 1 auto; }
	.elp-produkt__crosssell-zeile { grid-template-columns: auto minmax(0, 1fr); }
	.elp-produkt__crosssell-preis { grid-column: 2; justify-self: end; }

	/* Auf 390 px schluckten Container, Panel und Preisfläche zusammen 120 px
	   Innenabstand — das Kaufelement wurde dadurch unnötig schmal. */
	.elp-produkt__panel-inner { padding: var(--elp-space-4); }
	.elp-produkt__preispanel { padding: var(--elp-space-4); }
	.elp-produkt__trust,
	.elp-produkt__referenz { padding: var(--elp-space-4); }
	.elp-produkt__bild { padding: var(--elp-space-4); }
}

/* =========================================================================
   SHOP-/KATEGORIESEITE — Feinschliff
   ========================================================================= */

/* Brotkrumen wie auf der Produktseite */
.elp-shop__brotkrumen {
	display: flex; flex-wrap: wrap; align-items: center; gap: var(--elp-space-2);
	padding-block: var(--elp-space-6) 0;
}
.elp-shop__brotkrumen a { color: var(--elp-muted-foreground); text-decoration: none; }
.elp-shop__brotkrumen a:hover { color: var(--elp-accent); }
.elp-shop__brotkrumen span[aria-hidden] { color: var(--elp-border); }
.elp-shop__brotkrumen [aria-current] { color: var(--elp-foreground); }

/* Toolbar: „DE · CH · EU" brach vorher auf drei Zeilen um */
.elp-shop__toolbar {
	display: flex; flex-wrap: wrap; align-items: center; gap: var(--elp-space-4);
	padding-bottom: var(--elp-space-5);
	margin-bottom: var(--elp-space-6);
	border-bottom: 1px solid var(--elp-border);
}
.elp-shop__anzahl { font-weight: 600; font-variant-numeric: tabular-nums; }
.elp-shop__sortieren { display: flex; align-items: center; gap: var(--elp-space-3); margin-left: auto; }
.elp-shop__sortieren select {
	min-height: 40px; padding: 0.4rem 2rem 0.4rem 0.9rem;
	font-family: var(--elp-font-body); font-size: var(--elp-text-sm);
	color: var(--elp-foreground);
	background-color: var(--elp-background);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M6 8l4 4 4-4' stroke='%235D6E80' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 0.6rem center; background-size: 16px;
	border: 1px solid var(--elp-input); border-radius: var(--elp-radius-full);
	appearance: none; cursor: pointer;
}
.elp-shop__sortieren select:focus-visible { outline: 2px solid var(--elp-ring); outline-offset: 2px; }
.elp-shop__region { white-space: nowrap; }

/* Filter-Sidebar: leichtere Gliederung statt drei schwerer Kästen */
.elp-shop__sidebar { display: flex; flex-direction: column; gap: var(--elp-space-6); align-content: start; }
.elp-shop__filtergruppe {
	padding: 0 0 var(--elp-space-5);
	border: 0; border-bottom: 1px solid var(--elp-border);
	border-radius: 0; background: transparent;
}
.elp-shop__filtergruppe:last-of-type { border-bottom: 0; padding-bottom: 0; }
.elp-shop__filtergruppe > .elp-label { display: block; margin-bottom: var(--elp-space-3); }
.elp-shop__filtergruppe ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 1px; }
.elp-shop__filtergruppe a {
	display: flex; align-items: center; justify-content: space-between; gap: var(--elp-space-2);
	padding: 0.45rem 0.6rem;
	font-size: var(--elp-text-sm); text-decoration: none; color: var(--elp-foreground);
	border-radius: var(--elp-radius-sm);
	transition: background-color var(--elp-dur-fast) var(--elp-ease), color var(--elp-dur-fast) var(--elp-ease);
}
.elp-shop__filtergruppe a:hover { background: var(--elp-surface-muted-alt); }
.elp-shop__filtergruppe a.is-aktiv { background: var(--elp-primary-soft); color: var(--elp-primary); font-weight: 600; }
.elp-shop__tag-zahl { font-family: var(--elp-font-mono); font-size: var(--elp-text-xs); color: var(--elp-muted-foreground); font-variant-numeric: tabular-nums; }
.elp-shop__filtergruppe a.is-aktiv .elp-shop__tag-zahl { color: inherit; }
.elp-shop__reset { align-self: start; }

/* Grid neben der Sidebar: drei Spalten geben den Karten Luft.
   Bei vier Spalten brachen die Produktnamen auf drei Zeilen um. */
.elp-grid--shop { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px)  { .elp-grid--shop { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1180px) { .elp-grid--shop { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1500px) { .elp-grid--shop { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.elp-shop__leer {
	display: flex; flex-direction: column; align-items: flex-start; gap: var(--elp-space-4);
	padding: var(--elp-space-10);
	background: var(--elp-surface-muted-alt);
	border-radius: var(--elp-radius-lg);
}
.elp-shop__leer p { margin: 0; color: var(--elp-muted-foreground); }

@media (max-width: 999px) {
	.elp-shop__sortieren { margin-left: 0; }
	.elp-shop__region { display: none; }
}


/* Startseite: zwei Sektionen hatten unsymmetrische Innenabstände (Quiz 24/80,
   CTA-Workflow 80/0) und brachen damit den Rhythmus der übrigen Blöcke. */
.elp-quiz-sektion { padding-block: var(--elp-section-y); }
.elp-ctawf { padding-block: var(--elp-section-y); }

/* =========================================================================
   SEITENKOPF (Rechts-, Support- und Inhaltsseiten)
   ========================================================================= */
.elp-seitenkopf {
	padding-block: var(--elp-space-12) var(--elp-space-10);
	background-color: var(--elp-surface-muted-alt);
	border-bottom: 1px solid var(--elp-border);
}
.elp-seitenkopf__inner { display: flex; flex-direction: column; gap: var(--elp-space-3); }
.elp-seitenkopf__meta { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--elp-space-3); }
.elp-seitenkopf__titel {
	margin: 0; max-width: 24ch;
	font-family: var(--elp-font-headline);
	font-size: var(--elp-h1-size); font-weight: var(--elp-h1-weight);
	line-height: 1.08; letter-spacing: var(--elp-h1-tracking);
	text-wrap: balance;
}
.elp-seitenkopf__lead { margin: 0; max-width: 68ch; font-size: var(--elp-text-lg); line-height: 1.6; color: var(--elp-muted-foreground); }

/* Inhalt unterhalb des Seitenkopfs — trägt selbst das Containerraster,
   damit die Textkante mit allen anderen Seiten übereinstimmt (120 px). */
.elp-seiteninhalt {
	width: 100%;
	max-width: var(--elp-container);
	margin-inline: auto;
	padding: var(--elp-section-y) var(--elp-gutter);
}
@media (min-width: 1024px) { .elp-seiteninhalt { padding-inline: var(--elp-gutter-lg); } }
.elp-seiteninhalt > .elp-rechtsseite { padding: 0; margin: 0; max-width: none; }

/* Rechtsseiten ohne Seitenkopf (Direktaufruf) behalten ein eigenes Raster. */
.elp-rechtsseite {
	max-width: none;
	margin-inline: auto;
	padding-inline: var(--elp-gutter);
	padding-block: var(--elp-section-y);
}
@media (min-width: 1024px) { .elp-rechtsseite { padding-inline: var(--elp-gutter-lg); } }
.elp-rechtsseite__lead,
.elp-rechtsseite__abschnitt p { max-width: 72ch; }
.elp-rechtsseite__abschnitt { max-width: 80ch; }

/* =========================================================================
   KLICKFLÄCHEN — mindestens 36 px hoch
   ========================================================================= */
.elp-journal__gruppe button { min-height: 38px; }
.elp-dossier2__print,
.elp-dossier2__topbar a { min-height: 38px; display: inline-flex; align-items: center; }

/* Lange Absätze begrenzen (Lesbarkeit) */
.elp-partners__spez-liste p,
.elp-p2__text,
.elp-p2__lead { max-width: 72ch; }

/* Kasse: RUO-Zeile — nur das Präfix in Versalien, der Satz normal lesbar */
.elp-flow__ruo {
	display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem;
	margin: 0; font-size: var(--elp-text-sm); line-height: 1.55;
	color: var(--elp-muted-foreground);
}
.elp-flow__ruo .elp-label { color: var(--elp-status-soon); }

/* Konto: WooCommerce-Passwortauge hatte 15 px Klickfläche */
.woocommerce button.show-password-input {
	width: 38px; height: 38px;
	display: grid; place-items: center;
	background-position: center;
}

/* =========================================================================
   FEINSCHLIFF — Überschriften-Umbruch und Klickflächen
   ========================================================================= */

/* Lange Komposita („Geschäftsbedingungen") sprengten mobil die Überschrift.
   Deutsch trennt sauber, sobald hyphens erlaubt ist (html lang="de-DE"). */
.elp-seitenkopf__titel,
.elp-shop__titel,
.elp-produkt__titel,
.elp-p2__titel,
.elp-produkt__h2,
.elp-p2__h2 { overflow-wrap: break-word; hyphens: auto; }

@media (max-width: 480px) {
	.elp-seitenkopf__titel { font-size: clamp(1.75rem, 1.2rem + 3vw, 2.25rem); }
}

/* Merken-Button auf Produktkarten: 26 px waren als Klickfläche zu klein.
   Fläche auf 36 px, Symbol bleibt optisch zurückhaltend. */
.elp-karte__merken { width: 36px; height: 36px; }
.elp-karte__merken svg { width: 16px; height: 16px; }

/* =========================================================================
   MERKLISTE
   ========================================================================= */
.elp-favoriten { padding-block: var(--elp-section-y); display: flex; flex-direction: column; gap: var(--elp-space-6); }
.elp-favoriten__leer {
	display: flex; flex-direction: column; align-items: flex-start; gap: var(--elp-space-4);
	padding: var(--elp-space-10);
	background: var(--elp-surface-muted-alt);
	border-radius: var(--elp-radius-lg);
}
.elp-favoriten__leer p { margin: 0; max-width: 52ch; color: var(--elp-muted-foreground); }
.elp-favoriten__hinweis { margin: 0; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }

/* Merken-Button: aktiver Zustand war vorher nicht erkennbar */
.elp-karte__merken.is-aktiv {
	color: #fff;
	background: var(--elp-primary-hero);
	border-color: var(--elp-primary-hero);
}
.elp-karte__merken.is-aktiv:hover { background: var(--elp-accent-dark); }

/* --- Zahlungshinweis statt Icon-Reihe --------------------------------------
   Der Shop bietet ausschließlich Vorkasse. Eine Reihe Kartenlogos würde
   Zahlarten versprechen, die es nicht gibt. */
.elp-produkt__zahlung { margin-top: var(--elp-space-5); padding-top: var(--elp-space-5); border-top: 1px solid var(--elp-border); }
.elp-produkt__zahlung-titel { margin: var(--elp-space-2) 0 0.35rem; font-weight: 600; }
.elp-produkt__zahlung-text { margin: 0; font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); line-height: 1.55; }

/* ═══════════════════════════════════════════════════════════════════════════
   STARTSEITE — warm-editorial
   Bewusst ohne Blueprint-Raster und ohne Datenkacheln: ruhige Flächen,
   Serif-Überschriften (Fraunces), Gold nur als feine Linie und Akzent.
   ═══════════════════════════════════════════════════════════════════════════ */

/* --- Hero --- */
.elp-hh { padding-block: clamp(2rem, 1rem + 4vw, 4.5rem) 0; }
.elp-hh__inner {
	max-width: var(--elp-container);
	margin-inline: auto;
	padding-inline: var(--elp-gutter);
	display: grid;
	gap: clamp(2rem, 1rem + 4vw, 4rem);
	align-items: center;
}
@media (min-width: 1000px) {
	.elp-hh__inner { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); padding-inline: var(--elp-gutter-lg); }
}

.elp-hh__kicker { display: block; color: var(--elp-accent); margin-bottom: var(--elp-space-5); }
.elp-hh__titel {
	font-family: var(--elp-font-serif);
	font-weight: 400;
	font-size: clamp(2.4rem, 1.4rem + 4.2vw, 4.2rem);
	line-height: 1.04;
	letter-spacing: -0.015em;
	margin: 0;
	/* Keine Silbentrennung: bei einer Display-Serif in dieser Größe zerreißt
	   sie die Wortbilder („Kompro-misse"). Umbruch nur an Wortgrenzen; nur
	   überlange Einzelwörter dürfen notfalls brechen. */
	hyphens: none;
	overflow-wrap: break-word;
	text-wrap: balance;
}
/* Die Goldlinie ersetzt jede Umrandung — ein einziger Markenakzent. */
.elp-hh__regel { display: block; width: 76px; height: 2px; background: var(--elp-gold); margin: var(--elp-space-6) 0; }
.elp-hh__lead { margin: 0; max-width: 46ch; font-size: var(--elp-text-lg); line-height: 1.6; color: var(--elp-muted-foreground); }

.elp-hh__aktionen { display: flex; flex-wrap: wrap; gap: var(--elp-space-4); margin-top: var(--elp-space-8); }
.elp-hh__cta, .elp-hh__cta2 {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 48px; padding: 0 1.6rem;
	font-family: var(--elp-font-mono); font-size: var(--elp-label-size);
	letter-spacing: var(--elp-label-tracking); text-transform: uppercase;
	text-decoration: none; border-radius: var(--elp-radius-full);
	transition: background-color var(--elp-dur-fast) var(--elp-ease), color var(--elp-dur-fast) var(--elp-ease);
}
/* Dunkle Schrift auf Gold: Weiß auf Gold hätte nur 2,0:1. */
.elp-hh__cta { background: var(--elp-gold); color: var(--elp-primary-hero); }
.elp-hh__cta:hover { background: var(--elp-gold-hell); }
.elp-hh__cta2 { border: 1px solid var(--elp-border); color: var(--elp-foreground); }
.elp-hh__cta2:hover { border-color: var(--elp-gold-tief); background: var(--elp-paper-warm); }
.elp-hh__spec { display: block; margin: var(--elp-space-6) 0 0; }

.elp-hh__figur { position: relative; margin: 0; }
.elp-hh__bild {
	display: block; width: 100%; height: auto;
	aspect-ratio: 4 / 3; object-fit: cover;
	border-radius: var(--elp-radius-xl);
}
.elp-hh__marke {
	position: absolute; left: var(--elp-space-6); bottom: var(--elp-space-6);
	display: flex; align-items: baseline; gap: var(--elp-space-3);
	padding: var(--elp-space-4) var(--elp-space-6);
	background: oklch(0.235 0.022 75 / 0.86);
	backdrop-filter: blur(6px);
	border-radius: var(--elp-radius);
	color: oklch(0.99 0.006 86 / 0.92);
}
.elp-hh__marke .elp-label { color: oklch(0.99 0.006 86 / 0.7); }
.elp-hh__marke-zahl { font-family: var(--elp-font-serif); font-size: 2rem; line-height: 1; color: var(--elp-gold); }
@media (max-width: 560px) {
	.elp-hh__marke { left: var(--elp-space-4); bottom: var(--elp-space-4); padding: var(--elp-space-3) var(--elp-space-4); }
	.elp-hh__marke-zahl { font-size: 1.5rem; }
}

/* --- Versprechen --- */
.elp-vsp { padding-block: clamp(3rem, 2rem + 4vw, 5.5rem); }
.elp-vsp__inner { display: grid; gap: var(--elp-space-8); }
@media (min-width: 860px) {
	.elp-vsp__inner { grid-template-columns: repeat(3, 1fr); gap: var(--elp-space-12); }
	/* Feine Goldlinie als Trenner statt Kartenrahmen */
	.elp-vsp__punkt + .elp-vsp__punkt { padding-left: var(--elp-space-12); border-left: 1px solid var(--elp-border); }
}
.elp-vsp__punkt { position: relative; }
.elp-vsp__titel {
	font-family: var(--elp-font-serif); font-weight: 400;
	font-size: var(--elp-text-2xl); line-height: 1.2; margin: 0 0 var(--elp-space-4);
}
.elp-vsp__titel::before {
	content: ''; display: block; width: 34px; height: 2px;
	background: var(--elp-gold); margin-bottom: var(--elp-space-5);
}
.elp-vsp__text { margin: 0; color: var(--elp-muted-foreground); line-height: 1.65; }

/* --- Stimmen (Startseite) --- */
.elp-hst { padding-block: clamp(3rem, 2rem + 4vw, 5.5rem); background: var(--elp-paper-warm); }
.elp-hst__kopf { max-width: 40rem; margin-bottom: var(--elp-space-12); }
.elp-hst__kicker { display: block; color: var(--elp-accent); margin-bottom: var(--elp-space-4); }
.elp-hst__titel {
	font-family: var(--elp-font-serif); font-weight: 400;
	font-size: clamp(1.8rem, 1.2rem + 2vw, 2.8rem); line-height: 1.15; margin: 0;
}
.elp-hst__grid { display: grid; gap: var(--elp-space-6); }
@media (min-width: 820px) { .elp-hst__grid { grid-template-columns: repeat(3, 1fr); gap: var(--elp-space-8); } }
.elp-hst__karte {
	margin: 0; padding: var(--elp-space-8);
	background: var(--elp-background);
	border-radius: var(--elp-radius-lg);
	display: flex; flex-direction: column; gap: var(--elp-space-6);
}
.elp-hst__zitat {
	margin: 0; font-size: var(--elp-text-lg); line-height: 1.6;
	/* Anführungszeichen als Goldakzent statt Icon */
	position: relative; padding-top: var(--elp-space-6);
}
.elp-hst__zitat::before {
	content: '»'; position: absolute; top: -0.15em; left: 0;
	font-family: var(--elp-font-serif); font-size: 2.4rem; line-height: 1; color: var(--elp-gold);
}
.elp-hst__quelle { margin-top: auto; display: grid; gap: 0.2rem; }
.elp-hst__herkunft { font-size: var(--elp-text-sm); color: var(--elp-muted-foreground); }


/* --- Hero-Kärtchen: Aufklappen beim Überfahren ----------------------------
   Ab 1000 px werden die vier Kacheln zu einer Ziehharmonika. Die berührte
   Kachel wächst auf ein Vielfaches, zeigt Bild und Text; die übrigen weichen.
   Umgesetzt über flex-grow — das animiert flüssig, ohne Layout-Sprünge.
   :focus-within ist bewusst mit dabei, sonst wäre das Aufklappen per Tastatur
   nicht erreichbar. */
@media (min-width: 1000px) {
	.elp-hero__karten {
		display: flex;
		gap: var(--elp-space-3);
		align-items: stretch;
	}
	.elp-hero__spec-karte {
		flex: 1 1 0;
		min-width: 0;
		overflow: hidden;
		cursor: pointer;
		transition:
			flex-grow var(--elp-dur-slow) var(--elp-ease),
			background-color var(--elp-dur) var(--elp-ease),
			border-color var(--elp-dur) var(--elp-ease);
	}
	/* Nachbarn schrumpfen leicht, damit der Effekt spürbar wird. */
	.elp-hero__karten:hover .elp-hero__spec-karte,
	.elp-hero__karten:focus-within .elp-hero__spec-karte { flex-grow: 0.72; }
	.elp-hero__karten .elp-hero__spec-karte:hover,
	.elp-hero__karten .elp-hero__spec-karte:focus-within { flex-grow: 3.2; }

	.elp-hero__spec-karte:focus-visible { outline: 2px solid var(--elp-gold); outline-offset: 3px; }

	/* Bild liegt hinter dem Inhalt und wird erst beim Aufklappen sichtbar. */
	.elp-hero__spec-bild {
		position: absolute; inset: 0; z-index: 0;
		opacity: 0; transition: opacity var(--elp-dur-slow) var(--elp-ease);
		pointer-events: none;
	}
	.elp-hero__spec-bild img { width: 100%; height: 100%; object-fit: cover; display: block; }
	/* Dunkler Verlauf, damit die Schrift auf jedem Bild lesbar bleibt. */
	.elp-hero__spec-bild::after {
		content: ''; position: absolute; inset: 0;
		background: linear-gradient(180deg, oklch(0.235 0.022 75 / 0.25) 0%, oklch(0.235 0.022 75 / 0.88) 62%, oklch(0.235 0.022 75 / 0.96) 100%);
	}
	.elp-hero__spec-karte:hover .elp-hero__spec-bild,
	.elp-hero__spec-karte:focus-within .elp-hero__spec-bild { opacity: 1; }

	.elp-hero__spec-nr, .elp-hero__spec-icon, .elp-hero__spec-body { position: relative; z-index: 1; }

	/* Der Text erscheint erst im aufgeklappten Zustand — sonst quetscht er die
	   schmale Kachel. max-height statt display, damit es animierbar bleibt. */
	.elp-hero__spec-text {
		margin: var(--elp-space-4) 0 0;
		max-width: 42ch;
		font-size: var(--elp-text-sm);
		line-height: 1.6;
		color: var(--elp-muted-foreground);
		opacity: 0;
		max-height: 0;
		overflow: hidden;
		transform: translateY(6px);
		transition:
			opacity var(--elp-dur-slow) var(--elp-ease),
			max-height var(--elp-dur-slow) var(--elp-ease),
			transform var(--elp-dur-slow) var(--elp-ease);
	}
	.elp-hero__spec-karte:hover .elp-hero__spec-text,
	.elp-hero__spec-karte:focus-within .elp-hero__spec-text {
		opacity: 1; max-height: 16rem; transform: none;
	}

	/* Auf dem Bild kehrt sich die Schriftfarbe um. */
	.elp-hero__spec-karte:hover:has(.elp-hero__spec-bild) .elp-hero__spec-wert,
	.elp-hero__spec-karte:focus-within:has(.elp-hero__spec-bild) .elp-hero__spec-wert { color: oklch(0.99 0.006 86); }
	.elp-hero__spec-karte:hover:has(.elp-hero__spec-bild) .elp-label,
	.elp-hero__spec-karte:focus-within:has(.elp-hero__spec-bild) .elp-label,
	.elp-hero__spec-karte:hover:has(.elp-hero__spec-bild) .elp-hero__spec-text,
	.elp-hero__spec-karte:focus-within:has(.elp-hero__spec-bild) .elp-hero__spec-text { color: oklch(0.99 0.006 86 / 0.82); }
	.elp-hero__spec-karte:hover:has(.elp-hero__spec-bild) .elp-hero__spec-nr,
	.elp-hero__spec-karte:hover:has(.elp-hero__spec-bild) .elp-hero__spec-icon { color: var(--elp-gold); }
}

/* Ohne Bild klappt die Kachel trotzdem auf — dann nur getönt. */
@media (min-width: 1000px) {
	.elp-hero__spec-karte:hover, .elp-hero__spec-karte:focus-within { border-color: var(--elp-gold-tief); }
}

@media (prefers-reduced-motion: reduce) {
	.elp-hero__spec-karte, .elp-hero__spec-bild, .elp-hero__spec-text { transition: none; }
}

/* Geschrumpfte Nachbarn: die große Angabe darf nicht umbrechen („DE · / CH").
   Sie wird schmaler gesetzt und einzeilig geklemmt, die aufgeklappte Kachel
   bekommt ihre volle Größe zurück. */
@media (min-width: 1000px) {
	.elp-hero__spec-karte { min-width: 92px; }
	.elp-hero__karten:hover .elp-hero__spec-wert,
	.elp-hero__karten:focus-within .elp-hero__spec-wert {
		white-space: nowrap;
		font-size: var(--elp-text-base);
		transition: font-size var(--elp-dur) var(--elp-ease);
	}
	.elp-hero__karten .elp-hero__spec-karte:hover .elp-hero__spec-wert,
	.elp-hero__karten .elp-hero__spec-karte:focus-within .elp-hero__spec-wert {
		white-space: normal;
		font-size: var(--elp-text-2xl);
	}
	/* Auch das Mono-Label soll nicht dreizeilig werden. */
	.elp-hero__karten:hover .elp-hero__spec-body > .elp-label,
	.elp-hero__karten:focus-within .elp-hero__spec-body > .elp-label {
		white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block;
	}
}

/* --- Hero-Kärtchen auf Mobil und Tablet -----------------------------------
   Unter 1000 px gibt es kein Überfahren. Bild und Fließtext einfach stehen zu
   lassen sprengte die Kachel: unterschiedlich hohe Bilder, meterlanger Text in
   Bronze, Kacheln über die halbe Bildschirmhöhe. Hier sind die Kacheln kompakt
   und klappen auf Tippen auf — die Aussage bleibt erreichbar, ohne die
   Startseite zu überladen. Das Umschalten macht hero.js. */
@media (max-width: 999px) {
	.elp-hero__karten {
		grid-template-columns: repeat(2, 1fr);
		align-items: start;      /* aufgeklappte Kachel zieht die Nachbarin nicht mit */
	}

	.elp-hero__spec-karte {
		min-height: 128px;
		padding: var(--elp-space-4);
		cursor: pointer;
		transition: border-color var(--elp-dur) var(--elp-ease);
	}
	/* Aufgeklappt über beide Spalten: in einer 140-px-Spalte bräche der Text
	   nach jedem zweiten Wort um und die Kachel würde absurd hoch. */
	.elp-hero__spec-karte.is-offen {
		grid-column: 1 / -1;
		border-color: var(--elp-gold-tief);
	}
	.elp-hero__spec-karte:focus-visible { outline: 2px solid var(--elp-gold); outline-offset: 3px; }

	.elp-hero__spec-icon { top: var(--elp-space-3); right: var(--elp-space-3); }
	.elp-hero__spec-icon svg { width: 26px; height: 26px; }

	.elp-hero__spec-wert { font-size: var(--elp-text-lg); }
	.elp-hero__spec-body { padding-right: 1.1rem; }   /* Platz für den Winkel */

	/* Aufklapp-Hinweis: ohne ihn wäre nicht erkennbar, dass hier mehr steckt. */
	.elp-hero__spec-karte::after {
		content: '';
		position: absolute;
		right: var(--elp-space-4); bottom: calc(var(--elp-space-4) + 3px);
		width: 7px; height: 7px;
		border-right: 1.5px solid var(--elp-muted-foreground);
		border-bottom: 1.5px solid var(--elp-muted-foreground);
		transform: rotate(45deg);
		transition: transform var(--elp-dur) var(--elp-ease);
	}
	.elp-hero__spec-karte.is-offen::after { transform: rotate(-135deg); }
	/* Kachel ohne Text ist nichts zum Aufklappen. */
	.elp-hero__spec-karte:not(:has(.elp-hero__spec-text)) { cursor: default; }
	.elp-hero__spec-karte:not(:has(.elp-hero__spec-text))::after { display: none; }

	.elp-hero__spec-bild,
	.elp-hero__spec-text { display: none; }

	/* Das Icon säße sonst über dem Bild — aufgeklappt trägt das Bild die Optik. */
	.elp-hero__spec-icon { transition: opacity var(--elp-dur) var(--elp-ease); }
	.elp-hero__spec-karte.is-offen .elp-hero__spec-icon { opacity: 0; }

	.elp-hero__spec-karte.is-offen .elp-hero__spec-bild {
		display: block;
		margin-bottom: var(--elp-space-4);
		border-radius: var(--elp-radius-sm);
		overflow: hidden;
	}
	.elp-hero__spec-karte.is-offen .elp-hero__spec-bild img {
		display: block; width: 100%;
		aspect-ratio: 16 / 7; object-fit: cover;
	}
	.elp-hero__spec-karte.is-offen .elp-hero__spec-text {
		display: block;
		margin: var(--elp-space-3) 0 0;
		font-size: var(--elp-text-sm);
		line-height: 1.55;
		color: var(--elp-muted-foreground);
	}
}

/* === KATEGORIE-EINSTIEG ===================================================
   Im Stil der übrigen Sektionen: Blueprint-Raster, Mono-Labels, Gold beim
   Überfahren. Der kürzeste Weg von der Startseite in den Katalog. */
.elp-kat { padding-block: var(--elp-space-20); }
.elp-kat__kopf { max-width: 44rem; margin-bottom: var(--elp-space-12); }
.elp-kat__kicker { display: block; color: var(--elp-accent); margin-bottom: var(--elp-space-4); }
.elp-kat__titel {
	font-family: var(--elp-font-headline); font-weight: 500;
	font-size: clamp(1.75rem, 1.2rem + 2vw, 2.6rem); line-height: 1.15;
	letter-spacing: -0.015em; margin: 0 0 var(--elp-space-4);
}
.elp-kat__lead { margin: 0; color: var(--elp-muted-foreground); line-height: 1.6; }

.elp-kat__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--elp-space-4); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 760px)  { .elp-kat__grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .elp-kat__grid { grid-template-columns: repeat(4, 1fr); } }

/* min-width: 0 ist Pflicht — Grid-Elemente haben sonst min-width: auto und
   ein langer Kategoriename („Weight Management") sprengt die Spalte. */
.elp-kat__zelle { min-width: 0; }
.elp-kat__karte {
	position: relative; display: flex; flex-direction: column; min-width: 0;
	min-height: 200px; height: 100%; padding: var(--elp-space-5);
	border: 1px solid var(--elp-border); border-radius: var(--elp-radius-lg);
	background-color: var(--elp-background); text-decoration: none; color: inherit;
	transition: border-color var(--elp-dur) var(--elp-ease), transform var(--elp-dur) var(--elp-ease), box-shadow var(--elp-dur) var(--elp-ease);
}
.elp-kat__karte:hover, .elp-kat__karte:focus-visible {
	border-color: var(--elp-gold-tief); transform: translateY(-2px); box-shadow: var(--elp-shadow-card-hover);
}
.elp-kat__nr { color: var(--elp-muted-foreground); }
.elp-kat__name {
	margin-top: var(--elp-space-6);
	font-family: var(--elp-font-headline); font-weight: 500;
	font-size: var(--elp-text-lg); line-height: 1.25;
	/* Lange Kategorienamen („Weight Management") sollen nicht überlaufen */
	overflow-wrap: break-word; hyphens: auto;
}
.elp-kat__sub {
	margin-top: var(--elp-space-2); font-size: var(--elp-text-sm);
	color: var(--elp-muted-foreground); line-height: 1.5;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.elp-kat__fuss { margin-top: auto; padding-top: var(--elp-space-5); display: flex; align-items: center; justify-content: space-between; gap: var(--elp-space-3); min-width: 0; }
.elp-kat__fuss .elp-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.elp-kat__pfeil { width: 22px; height: 11px; color: var(--elp-accent); transition: transform var(--elp-dur) var(--elp-ease); flex: 0 0 auto; }
.elp-kat__karte:hover .elp-kat__pfeil { transform: translateX(4px); }

/* --- Kategoriekacheln: Raster zurücknehmen, Verlauf ergänzen --------------
   Das Blueprint-Raster lief bisher in voller Stärke hinter der Schrift durch.
   Jetzt liegt es auf einer eigenen Ebene, ist deutlich schwächer und läuft
   nach unten aus — dort, wo Text und Fußzeile stehen, ist der Grund ruhig.
   Dazu ein sehr flacher Goldverlauf aus der oberen Ecke für etwas Tiefe. */
.elp-kat__karte.elp-blueprint {
	background-image: none;              /* Raster wandert auf ::before */
	isolation: isolate;
	overflow: hidden;
}
.elp-kat__karte::before,
.elp-kat__karte::after {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	z-index: 0;
}
.elp-kat__karte::before {
	background-image:
		linear-gradient(to right, oklch(0.9 0.016 82 / 0.34) 1px, transparent 1px),
		linear-gradient(to bottom, oklch(0.9 0.016 82 / 0.34) 1px, transparent 1px);
	background-size: var(--elp-grid-size) var(--elp-grid-size);
	/* Weiches Auslaufen: oben sichtbar, auf Höhe des Textes fast weg. */
	-webkit-mask-image: linear-gradient(180deg, #000 0%, oklch(0 0 0 / 0.4) 46%, transparent 82%);
	mask-image: linear-gradient(180deg, #000 0%, oklch(0 0 0 / 0.4) 46%, transparent 82%);
	transition: opacity var(--elp-dur) var(--elp-ease);
}
.elp-kat__karte {
	/* Stärke des Goldverlaufs — beim Überfahren minimal angehoben. */
	--elp-kat-glanz: 0.06;
}
.elp-kat__karte::after {
	background: linear-gradient(152deg, oklch(0.782 0.144 86 / var(--elp-kat-glanz)) 0%, transparent 54%);
	transition: background var(--elp-dur) var(--elp-ease);
}
/* Inhalt über die beiden Ebenen heben. */
.elp-kat__karte > * { position: relative; z-index: 1; }

/* Beim Überfahren tritt der Goldverlauf minimal hervor, das Raster bleibt ruhig. */
.elp-kat__karte:hover, .elp-kat__karte:focus-visible { --elp-kat-glanz: 0.13; }

/* ═══════════════════════════════════════════════════════════════════════════
   WARENKORB & KASSE — Korrekturen an Bricks-Vorgaben
   Bricks setzt in seinem Frontend-CSS zwei Werte, die hier stören:
     .woocommerce-checkout .place-order .button  { line-height: 60px }
     .input, input:not([type=submit]), select…   { line-height: 40px }
   Bei 11–15 px Schrift ergibt das 84 px hohe Buttons und 63 px hohe Felder.
   ═══════════════════════════════════════════════════════════════════════════ */

/* --- Mengenfeld: Plus/Minus entfernen ---
   Die Schaltflächen stammen aus Bricks. Im Warenkorb ist ein direkt
   beschreibbares Zahlenfeld schneller — man tippt die Menge, statt zu klicken. */
.woocommerce .quantity .action.plus,
.woocommerce .quantity .action.minus,
.woocommerce .quantity .qty-button { display: none !important; }

.woocommerce .quantity {
	width: auto !important;
	max-width: 96px;
	display: inline-flex;
}
.woocommerce .quantity input.qty {
	width: 100%;
	min-height: 44px;
	padding: 0 0.5rem;
	line-height: normal;
	text-align: center;
	font-family: var(--elp-font-body);
	font-size: var(--elp-text-base);
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-sm);
	background: var(--elp-background);
	color: var(--elp-foreground);
	/* Die Spinner von Chrome/Safari wären neben dem schmalen Feld unruhig. */
	-moz-appearance: textfield;
}
.woocommerce .quantity input.qty::-webkit-outer-spin-button,
.woocommerce .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce .quantity input.qty:focus-visible { outline: 2px solid var(--elp-ring); outline-offset: 1px; border-color: var(--elp-ring); }

/* --- Buttons auf normales Maß ---
   Höhe kommt jetzt aus Innenabstand und Schrift, nicht aus einer festen
   Zeilenhöhe. 48 px bleibt komfortabel für Touch, ohne zu dominieren. */
.woocommerce-checkout .place-order .button,
.woocommerce #place_order,
.woocommerce .checkout-button,
.woocommerce .wc-proceed-to-checkout a.checkout-button {
	line-height: 1.2 !important;
	min-height: 48px;
	padding-block: 0.9rem !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
/* „Weiter zur Kasse" spannt über die ganze Spalte — das ist gewollt, aber
   nicht in dieser Höhe. */
.woocommerce .wc-proceed-to-checkout a.checkout-button { width: 100%; }

/* --- Eingabefelder: Höhe aus Innenabstand statt Zeilenhöhe --- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text {
	line-height: 1.4 !important;
	min-height: 46px;
	padding-block: 0.7rem;
}
.woocommerce form .form-row textarea { min-height: 110px; }

/* --- Auswahlfelder (Select2): Text saß am unteren Rand ---
   Bricks gibt der Auswahlfläche 44 px, der WooCommerce-Wrapper aber die Höhe
   der Textfelder. Die Differenz drückte die Beschriftung nach unten. */
.woocommerce .select2-container .select2-selection--single {
	height: 46px !important;
	border: 1px solid var(--elp-border);
	border-radius: var(--elp-radius-sm);
	background: var(--elp-background);
}
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered {
	line-height: 44px !important;
	padding-left: 0.9rem;
	padding-right: 2.2rem;
	color: var(--elp-foreground);
}
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow {
	height: 44px;
	right: 0.6rem;
}
.woocommerce .select2-container--focus .select2-selection--single,
.woocommerce .select2-container--open  .select2-selection--single { border-color: var(--elp-ring); }
