/* =====================================================================
   WIENINGER · Herkunfts-Pyramide  —  wgn-pyramid.css
   Klickbare, gestapelte Ebenen (Trapeze via clip-path), Spitze Gold →
   Basis dunkles Oliv. Mobile (≤560px): volle Balken mit Gold-Akzentkante,
   weil die schmale Spitze sonst unlesbar wird.
   Tokens aus wgn-ui.css. rem/em/%/clamp · Safari-gehärtet.
   ===================================================================== */

.wgn-pyramid {
	background: var(--wgn-paper);
	padding: clamp(3.5rem, 8vw, 7rem) var(--wgn-pad-x);
	font-family: var(--wgn-sans);
	-webkit-text-size-adjust: 100%; text-size-adjust: 100%;
}
.wgn-pyramid * { box-sizing: border-box; }

/* ---------- Kopf (zentriert, wie übrige Sektions-Köpfe) ---------- */
.wgn-pyramid__head { max-width: var(--wgn-shell); margin: 0 auto clamp(2rem, 4vw, 3.5rem); text-align: center; }
.wgn-pyramid__kicker {
	display: inline-flex; align-items: center; gap: .75rem; margin: 0 0 1rem;
	color: var(--wgn-red); font-size: .78rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
}
.wgn-pyramid__title { font-family: var(--wgn-serif); font-weight: 500; letter-spacing: -.02em; line-height: 1.1; font-size: clamp(1.9rem, 4vw, 3rem); margin: 0; color: var(--wgn-ink); }
.wgn-pyramid__intro { margin: 1rem auto 0; color: var(--wgn-ink-soft); font-size: 1.05rem; line-height: 1.6; max-width: 60ch; }

/* ---------- Pyramide ---------- */
.wgn-pyramid__stack {
	max-width: min(46rem, 100%); margin-inline: auto;
	display: flex; flex-direction: column;
}
/* Doppelte Klasse in den Selektoren: die Ebenen sind <a>-Links – Elementor-Kit-
   Linkfarben (`.elementor-kit-N a`) würden sonst Label/Hover blau färben. */
.wgn-pyramid .wgn-pyramid__level,
.wgn-pyramid .wgn-pyramid__level:hover,
.wgn-pyramid .wgn-pyramid__level:focus,
.wgn-pyramid .wgn-pyramid__level:visited {
	color: #fff; text-decoration: none;
}
.wgn-pyramid__level {
	position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
	text-align: center; text-decoration: none;
	background: var(--wgn-pyr-bg, var(--wgn-ink));
	color: #fff;
	min-height: clamp(4.25rem, 9vw, 5.5rem);
	padding: .9rem clamp(2rem, 18%, 12rem);
	margin-top: .3rem;
	-webkit-clip-path: polygon(var(--wgn-pyr-top, 0%) 0, calc(100% - var(--wgn-pyr-top, 0%)) 0, calc(100% - var(--wgn-pyr-bottom, 0%)) 100%, var(--wgn-pyr-bottom, 0%) 100%);
	clip-path: polygon(var(--wgn-pyr-top, 0%) 0, calc(100% - var(--wgn-pyr-top, 0%)) 0, calc(100% - var(--wgn-pyr-bottom, 0%)) 100%, var(--wgn-pyr-bottom, 0%) 100%);
	transition: filter .25s var(--wgn-ease), transform .25s var(--wgn-ease);
	-webkit-tap-highlight-color: transparent;
}
.wgn-pyramid__level:first-child { margin-top: 0; }
.wgn-pyramid__level:hover { filter: brightness(1.16); }
/* clip-path schluckt outline → Fokus über Innen-Schein statt Umriss */
.wgn-pyramid__level:focus-visible { outline: none; filter: brightness(1.25); box-shadow: inset 0 0 0 3px var(--wgn-gold-light); }

.wgn-pyramid__label {
	font-family: var(--wgn-serif); font-weight: 600; letter-spacing: .02em;
	font-size: clamp(1.05rem, 2.2vw, 1.45rem); line-height: 1.15;
}
.wgn-pyramid__sub {
	margin-top: .3rem; font-size: clamp(.68rem, 1.4vw, .8rem);
	letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.75);
}
.wgn-pyramid__hint { max-width: var(--wgn-shell); margin: 1.25rem auto 0; text-align: center; font-size: .85rem; color: var(--wgn-ink-soft); }

/* ---------- Kleine Screens: Pyramide bleibt Pyramide, nur flacher ----------
   Die Trapez-Einrueckung kommt pro Ebene inline (--wgn-pyr-top/-bottom).
   Statt eines Balken-Fallbacks ("komische Streifen") skalieren wir die
   Schraege per calc-Faktor herunter - Form bleibt erkennbar, Labels passen. */
@media (max-width: 900px) {
	.wgn-pyramid__level {
		-webkit-clip-path: polygon(calc(var(--wgn-pyr-top, 0%) * .7) 0, calc(100% - var(--wgn-pyr-top, 0%) * .7) 0, calc(100% - var(--wgn-pyr-bottom, 0%) * .7) 100%, calc(var(--wgn-pyr-bottom, 0%) * .7) 100%);
		clip-path: polygon(calc(var(--wgn-pyr-top, 0%) * .7) 0, calc(100% - var(--wgn-pyr-top, 0%) * .7) 0, calc(100% - var(--wgn-pyr-bottom, 0%) * .7) 100%, calc(var(--wgn-pyr-bottom, 0%) * .7) 100%);
		padding: .8rem clamp(1.25rem, 10%, 4rem);
	}
}
@media (max-width: 560px) {
	.wgn-pyramid__level {
		-webkit-clip-path: polygon(calc(var(--wgn-pyr-top, 0%) * .45) 0, calc(100% - var(--wgn-pyr-top, 0%) * .45) 0, calc(100% - var(--wgn-pyr-bottom, 0%) * .45) 100%, calc(var(--wgn-pyr-bottom, 0%) * .45) 100%);
		clip-path: polygon(calc(var(--wgn-pyr-top, 0%) * .45) 0, calc(100% - var(--wgn-pyr-top, 0%) * .45) 0, calc(100% - var(--wgn-pyr-bottom, 0%) * .45) 100%, calc(var(--wgn-pyr-bottom, 0%) * .45) 100%);
		min-height: 4.1rem; padding: .75rem 1rem; margin-top: .25rem;
	}
	.wgn-pyramid__label { font-size: 1.02rem; }
	.wgn-pyramid__sub { font-size: .62rem; letter-spacing: .06em; }
}

@media (prefers-reduced-motion: reduce) {
	.wgn-pyramid__level { transition: none !important; }
}
