.fsv-stadion-page {
	--fsv-blue-950: #00152f;
	--fsv-blue-900: #00204a;
	--fsv-blue-850: #002b63;
	--fsv-blue-800: #00377e;
	--fsv-blue-700: #0053b8;
	--fsv-blue-600: #0866d8;
	--fsv-gold: #ffd200;
	--fsv-white: #ffffff;
	--fsv-muted: rgba(255,255,255,.76);
	--fsv-border: rgba(255,255,255,.14);
	--fsv-card: rgba(0,42,92,.74);
}

/* Page Background wie Regionalliga / Schiedsrichter */

body.page-template-template-stadion-php #primary .fsv-stadion-page,
body.page-template-template-stadion #primary .fsv-stadion-page,
body.page-template-template-stadion-php .fsv-stadion-page,
body.page-template-template-stadion .fsv-stadion-page,
.fsv-stadion-page {
	position: relative;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
	padding: 0 0 82px;
	color: var(--fsv-white);

	background:
		radial-gradient(
			circle at top center,
			rgba(70, 140, 255, 0.24) 0%,
			rgba(47, 103, 178, 0.20) 24%,
			rgba(24, 61, 116, 0.18) 48%,
			rgba(15, 31, 56, 0.94) 78%,
			rgba(10, 18, 34, 1) 100%
		),
		linear-gradient(
			180deg,
			rgba(24, 61, 116, 0.34) 0%,
			rgba(47, 103, 178, 0.22) 35%,
			rgba(240, 194, 50, 0.05) 100%
		) !important;
}

body.page-template-template-stadion-php #primary .fsv-stadion-page::before,
body.page-template-template-stadion #primary .fsv-stadion-page::before,
body.page-template-template-stadion-php .fsv-stadion-page::before,
body.page-template-template-stadion .fsv-stadion-page::before,
.fsv-stadion-page::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0.08;
	background: repeating-linear-gradient(
		-45deg,
		rgba(255, 255, 255, 0.14) 0,
		rgba(255, 255, 255, 0.14) 10px,
		transparent 10px,
		transparent 26px
	);
}

body.page-template-template-stadion-php #primary .fsv-stadion-page > *,
body.page-template-template-stadion #primary .fsv-stadion-page > *,
body.page-template-template-stadion-php .fsv-stadion-page > *,
body.page-template-template-stadion .fsv-stadion-page > *,
.fsv-stadion-page > * {
	position: relative;
	z-index: 1;
}

.fsv-stadion-page *,
.fsv-stadion-page *::before,
.fsv-stadion-page *::after {
	box-sizing: border-box;
}

.stadion-container {
	width: min(1180px, calc(100% - 40px));
	margin: 0 auto;
}

.stadion-eyebrow {
	margin: 0 0 10px;
	color: var(--fsv-gold);
	font-size: 15px;
	font-weight: 900;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: .02em;
}

.fsv-stadion-page h1,
.fsv-stadion-page h2,
.fsv-stadion-page h3,
.fsv-stadion-page p {
	margin-top: 0;
}

.fsv-stadion-page h2 {
	margin-bottom: 18px;
	font-size: clamp(30px, 4vw, 46px);
	font-weight: 950;
	line-height: .98;
	text-transform: uppercase;
}

.fsv-stadion-page h3 {
	font-size: 18px;
	font-weight: 900;
	text-transform: uppercase;
}

.fsv-stadion-page p {
	color: var(--fsv-muted);
	font-size: 16px;
	line-height: 1.7;
}

.fsv-stadion-page img {
	display: block;
	max-width: 100%;
	height: auto;
}

.fsv-stadion-page svg {
	width: 1em;
	height: 1em;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.stadion-button,
.stadion-link-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border: 0;
	text-decoration: none;
	text-transform: uppercase;
	font-size: 14px;
	font-weight: 900;
	line-height: 1;
	transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}

.stadion-button {
	min-height: 48px;
	padding: 0 24px;
	background: linear-gradient(135deg, var(--fsv-blue-600), var(--fsv-blue-700));
	color: var(--fsv-white);
	box-shadow: 0 16px 36px rgba(0,0,0,.22);
}

.stadion-button:hover,
.stadion-link-button:hover {
	transform: translateY(-2px);
	color: var(--fsv-white);
	text-decoration: none;
}

.stadion-button span,
.stadion-link-button span {
	display: inline-flex;
	font-size: 18px;
}

.stadion-link-button {
	min-height: 42px;
	padding: 0 18px;
	background: rgba(8,102,216,.9);
	color: var(--fsv-white);
}

.stadion-link-button:hover {
	background: var(--fsv-blue-600);
}

/* Hero */

.fsv-stadion-hero {
	position: relative;
	min-height: 610px;
	display: flex;
	align-items: center;
	padding: 96px 0 118px;
	background:
		linear-gradient(90deg, rgba(0,21,47,.96) 0%, rgba(0,21,47,.82) 34%, rgba(0,21,47,.45) 60%, rgba(0,21,47,.18) 100%),
		linear-gradient(180deg, rgba(0,21,47,.1) 0%, rgba(0,21,47,.7) 100%),
		var(--stadion-hero-image) center center / cover no-repeat;
}

.fsv-stadion-hero::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 170px;
	background: linear-gradient(180deg, transparent, var(--fsv-blue-950));
	pointer-events: none;
}

.stadion-hero__content {
	position: relative;
	z-index: 1;
	width: min(660px, 100%);
}

.stadion-hero__content h1 {
	margin: 0 0 24px;
	color: var(--fsv-white);
	font-size: clamp(54px, 8vw, 104px);
	font-weight: 1000;
	line-height: .88;
	letter-spacing: -.045em;
	text-transform: uppercase;
}

.stadion-hero__content h1 span {
	color: var(--fsv-gold);
}

.stadion-hero__content p:not(.stadion-eyebrow) {
	width: min(520px, 100%);
	margin-bottom: 28px;
	color: rgba(255,255,255,.9);
	font-size: 17px;
	line-height: 1.65;
}

/* Facts */

.stadion-facts {
	position: relative;
	z-index: 3;
	margin-top: -1px;
	border-top: 4px solid var(--fsv-gold);
	background: rgba(0,32,74,.94);
	box-shadow: 0 -22px 50px rgba(0,0,0,.18);
}

.stadion-facts__grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	border-left: 1px solid var(--fsv-border);
	border-right: 1px solid var(--fsv-border);
}

.stadion-fact {
	display: grid;
	grid-template-columns: 48px 1fr;
	gap: 16px;
	align-items: center;
	min-height: 96px;
	padding: 18px 22px;
	border-right: 1px solid var(--fsv-border);
}

.stadion-fact:last-child {
	border-right: 0;
}

.stadion-fact__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--fsv-gold);
	font-size: 40px;
}

.stadion-fact strong {
	display: block;
	margin-bottom: 4px;
	color: var(--fsv-white);
	font-size: 14px;
	font-weight: 900;
	text-transform: uppercase;
}

.stadion-fact span {
	display: block;
	color: rgba(255,255,255,.74);
	font-size: 13px;
	line-height: 1.35;
}

/* Sections */

.stadion-section {
	padding: 56px 0;
}

.stadion-intro {
	padding-top: 66px;
}

.stadion-intro__grid {
	display: grid;
	grid-template-columns: .85fr 1.55fr;
	gap: 54px;
	align-items: center;
}

.stadion-copy {
	max-width: 420px;
}

.stadion-copy p:not(.stadion-eyebrow) {
	margin-bottom: 18px;
}

.stadion-media-collage {
	position: relative;
	min-height: 336px;
}

.stadion-media-collage__main {
	width: 100%;
	height: 318px;
	object-fit: cover;
	border: 2px solid rgba(255,255,255,.42);
	border-radius: 8px;
	box-shadow: 0 24px 70px rgba(0,0,0,.32);
}

.stadion-media-collage__small {
	position: absolute;
	right: -22px;
	bottom: -18px;
	width: min(270px, 42%);
	height: 166px;
	object-fit: cover;
	border: 2px solid rgba(255,255,255,.62);
	border-radius: 8px;
	box-shadow: 0 18px 40px rgba(0,0,0,.4);
}

/* History */

.stadion-history {
	padding: 0 0 22px;
}

.stadion-history__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border: 1px solid var(--fsv-border);
	background: linear-gradient(180deg, rgba(0,48,106,.72), rgba(0,31,70,.78));
}

.stadion-history-card {
	display: grid;
	grid-template-columns: 58px 1fr;
	column-gap: 22px;
	align-items: center;
	min-height: 112px;
	padding: 24px 28px;
	border-right: 1px solid var(--fsv-border);
}

.stadion-history-card:last-child {
	border-right: 0;
}

.stadion-history-card__icon {
	grid-row: span 2;
	color: var(--fsv-gold);
	font-size: 48px;
}

.stadion-history-card strong {
	display: block;
	color: var(--fsv-white);
	font-size: 34px;
	font-weight: 950;
	line-height: 1;
}

.stadion-history-card span {
	display: block;
	color: rgba(255,255,255,.74);
	font-size: 13px;
	line-height: 1.35;
}

/* Facility */

.stadion-facility {
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	gap: 34px;
	align-items: stretch;
}

.stadion-facility__image,
.stadion-facility__content,
.stadion-plan-card,
.stadion-area-card,
.stadion-ticket-card,
.stadion-info-card,
.stadion-venue-card {
	border: 1px solid var(--fsv-border);
	background: linear-gradient(180deg, rgba(0,48,106,.64), rgba(0,30,67,.78));
	box-shadow: 0 14px 40px rgba(0,0,0,.18);
}

.stadion-facility__image {
	overflow: hidden;
	border-radius: 8px;
}

.stadion-facility__image img {
	width: 100%;
	height: 100%;
	min-height: 330px;
	object-fit: cover;
}

.stadion-facility__content {
	padding: 34px 36px;
	border-radius: 8px;
}

.stadion-facility__content h2 {
	font-size: clamp(26px, 3vw, 34px);
}

.stadion-checklist {
	display: grid;
	gap: 10px;
	margin: 24px 0 28px;
	padding: 0;
	list-style: none;
}

.stadion-checklist li {
	position: relative;
	padding-left: 28px;
	color: rgba(255,255,255,.86);
	font-size: 15px;
	line-height: 1.45;
}

.stadion-checklist li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0;
	color: var(--fsv-gold);
	font-weight: 900;
}

/* Plan */

.stadion-plan-section {
	padding-top: 22px;
}

.stadion-plan-grid {
	display: grid;
	grid-template-columns: 1.45fr .55fr .55fr;
	gap: 16px;
	align-items: stretch;
}

.stadion-plan-card,
.stadion-area-card,
.stadion-ticket-card {
	border-radius: 8px;
	padding: 24px;
}

.stadion-plan-card h2 {
	margin-bottom: 20px;
	font-size: 32px;
}

.stadion-plan-layout {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 22px;
	align-items: end;
}

.stadion-plan-legend {
	display: grid;
	gap: 14px;
	align-content: end;
	color: rgba(255,255,255,.82);
	font-size: 13px;
	text-transform: uppercase;
}

.legend-box {
	display: inline-block;
	width: 34px;
	height: 16px;
	margin-right: 10px;
	border: 1px solid rgba(255,255,255,.38);
	vertical-align: middle;
}

.legend-home-standing {
	background: rgba(8,102,216,.45);
}

.legend-home-seating {
	background: rgba(8,102,216,.78);
}

.legend-away {
	background: rgba(35,105,195,.35);
}

.stadion-field-plan {
	position: relative;
	min-height: 214px;
	padding: 34px 58px 34px 58px;
}

.pitch {
	position: relative;
	height: 142px;
	border: 2px solid rgba(143,196,255,.9);
	background: linear-gradient(180deg, rgba(0,34,75,.85), rgba(0,26,58,.9));
}

.pitch::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 2px;
	background: rgba(143,196,255,.76);
	transform: translateX(-50%);
}

.pitch-circle {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 46px;
	height: 46px;
	border: 2px solid rgba(143,196,255,.76);
	border-radius: 50%;
	transform: translate(-50%, -50%);
}

.pitch-box {
	position: absolute;
	top: 31px;
	width: 43px;
	height: 80px;
	border: 2px solid rgba(143,196,255,.76);
}

.pitch-box-left {
	left: 0;
	border-left: 0;
}

.pitch-box-right {
	right: 0;
	border-right: 0;
}

.stand {
	position: absolute;
	display: flex;
	gap: 4px;
}

.stand span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	min-height: 32px;
	padding: 6px 8px;
	background: rgba(8,102,216,.85);
	border: 1px solid rgba(255,255,255,.22);
	color: var(--fsv-white);
	font-size: 13px;
	font-weight: 900;
	line-height: 1;
}

.stand-top {
	top: 0;
	left: 58px;
	right: 58px;
	justify-content: center;
}

.stand-bottom {
	left: 58px;
	right: 58px;
	bottom: 0;
	justify-content: center;
}

.stand-bottom span {
	width: 100%;
}

.stand-left,
.stand-right {
	top: 48px;
	bottom: 48px;
	flex-direction: column;
	justify-content: center;
}

.stand-left {
	left: 0;
}

.stand-right {
	right: 0;
}

.stadion-area-card h3,
.stadion-ticket-card h3 {
	margin-bottom: 16px;
	color: var(--fsv-white);
}

.stadion-area-card ul {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
	color: rgba(255,255,255,.78);
	font-size: 14px;
	line-height: 1.45;
}

.stadion-area-card strong {
	color: rgba(255,255,255,.95);
}

.stadion-ticket-card {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.stadion-ticket-card__icon {
	margin-bottom: 18px;
	color: var(--fsv-gold);
	font-size: 48px;
}

.stadion-ticket-card p {
	margin-bottom: 22px;
	font-size: 15px;
}

/* Info strip */

.stadion-info-strip {
	padding: 0 0 42px;
}

.stadion-info-strip__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	border: 1px solid var(--fsv-border);
	background: rgba(0,38,84,.55);
}

.stadion-info-card {
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 20px;
	padding: 26px 30px;
	border: 0;
	border-right: 1px solid var(--fsv-border);
	box-shadow: none;
}

.stadion-info-card:last-child {
	border-right: 0;
}

.stadion-info-card__icon {
	color: #58a6ff;
	font-size: 52px;
}

.stadion-info-card h3 {
	margin-bottom: 7px;
}

.stadion-info-card p {
	margin-bottom: 10px;
	font-size: 14px;
	line-height: 1.5;
}

.stadion-info-card a,
.stadion-venue-card a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #8cc4ff;
	font-size: 13px;
	font-weight: 900;
	text-transform: uppercase;
	text-decoration: none;
}

.stadion-info-card a:hover,
.stadion-venue-card a:hover {
	color: var(--fsv-gold);
	text-decoration: none;
}

/* Venues */

.stadion-venues {
	padding-top: 0;
	padding-bottom: 64px;
}

.stadion-venues__grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 10px;
}

.stadion-venue-card {
	min-height: 150px;
	padding: 20px;
	border-radius: 8px;
}

.stadion-venue-card__icon {
	margin-bottom: 12px;
	color: rgba(255,255,255,.82);
	font-size: 36px;
}

.stadion-venue-card h3 {
	margin-bottom: 8px;
	font-size: 14px;
	line-height: 1.25;
}

.stadion-venue-card p {
	margin-bottom: 12px;
	font-size: 12px;
	line-height: 1.45;
}

/* Responsive */

@media (max-width: 1180px) {
	.stadion-facts__grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.stadion-fact:nth-child(3) {
		border-right: 0;
	}

	.stadion-fact:nth-child(n+4) {
		border-top: 1px solid var(--fsv-border);
	}

	.stadion-history__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.stadion-history-card:nth-child(2) {
		border-right: 0;
	}

	.stadion-history-card:nth-child(n+3) {
		border-top: 1px solid var(--fsv-border);
	}

	.stadion-plan-grid {
		grid-template-columns: 1fr 1fr;
	}

	.stadion-plan-card {
		grid-column: 1 / -1;
	}

	.stadion-venues__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 900px) {
	.fsv-stadion-hero {
		min-height: 540px;
		padding: 72px 0 94px;
		background-position: center;
	}

	.stadion-intro__grid,
	.stadion-facility {
		grid-template-columns: 1fr;
	}

	.stadion-copy {
		max-width: none;
	}

	.stadion-media-collage__small {
		right: 18px;
	}

	.stadion-plan-layout {
		grid-template-columns: 1fr;
	}

	.stadion-plan-legend {
		grid-template-columns: repeat(3, 1fr);
	}

	.stadion-info-strip__grid {
		grid-template-columns: 1fr;
	}

	.stadion-info-card {
		border-right: 0;
		border-bottom: 1px solid var(--fsv-border);
	}

	.stadion-info-card:last-child {
		border-bottom: 0;
	}
}

@media (max-width: 720px) {
	.stadion-container {
		width: min(100% - 28px, 1180px);
	}

	.stadion-hero__content h1 {
		font-size: clamp(48px, 15vw, 76px);
	}

	.stadion-facts__grid {
		grid-template-columns: 1fr;
	}

	.stadion-fact,
	.stadion-fact:nth-child(3),
	.stadion-fact:last-child {
		border-right: 0;
		border-top: 1px solid var(--fsv-border);
	}

	.stadion-fact:first-child {
		border-top: 0;
	}

	.stadion-history__grid {
		grid-template-columns: 1fr;
	}

	.stadion-history-card {
		border-right: 0;
		border-top: 1px solid var(--fsv-border);
	}

	.stadion-history-card:first-child {
		border-top: 0;
	}

	.stadion-plan-grid {
		grid-template-columns: 1fr;
	}

	.stadion-plan-card,
	.stadion-area-card,
	.stadion-ticket-card,
	.stadion-facility__content {
		padding: 22px;
	}

	.stadion-plan-legend {
		grid-template-columns: 1fr;
	}

	.stadion-field-plan {
		min-height: 190px;
		padding: 32px 43px;
	}

	.pitch {
		height: 126px;
	}

	.stand span {
		min-width: 33px;
		min-height: 28px;
		font-size: 11px;
		padding: 5px;
	}

	.stand-top,
	.stand-bottom {
		left: 43px;
		right: 43px;
	}

	.stadion-venues__grid {
		grid-template-columns: 1fr;
	}

	.stadion-info-card {
		grid-template-columns: 56px 1fr;
		padding: 22px;
	}

	.stadion-info-card__icon {
		font-size: 42px;
	}
}

/* Final: Premium Lageplan -------------------------------------------------- */
.fsv-stadion-page .stadion-plan-layout--premium {
  grid-template-columns: 178px minmax(0, 1fr);
  align-items: center;
  gap: 24px;
}

.fsv-stadion-page .stadion-plan-layout--premium .stadion-plan-legend {
  align-content: center;
}

.fsv-stadion-page .stadion-plan-layout--premium .legend-box {
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.22), 0 8px 18px rgba(0,0,0,.18);
}

.fsv-stadion-page .stadion-plan-layout--premium .legend-home-standing { background: #f3ef62; }
.fsv-stadion-page .stadion-plan-layout--premium .legend-home-seating { background: #2f7bea; }
.fsv-stadion-page .stadion-plan-layout--premium .legend-away { background: #e85b4f; }

.fsv-stadion-page .stadion-map {
  position: relative;
  margin: 0;
  padding: 18px;
  overflow: hidden;
  border: 1px solid rgba(143,196,255,.22);
  border-radius: 16px;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,210,0,.12), transparent 34%),
    linear-gradient(180deg, rgba(0,56,124,.56), rgba(0,24,54,.84));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 18px 44px rgba(0,0,0,.22);
}

.fsv-stadion-page .stadion-map::before {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  pointer-events: none;
}

.fsv-stadion-page .stadion-map__svg,
.fsv-stadion-page svg.fsv-map.stadion-map__svg {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 275px;
  color: rgba(143,196,255,.86);
  fill: initial;
  stroke: initial;
}

.fsv-stadion-page .stadion-map__svg text {
  font-family: inherit;
  font-weight: 950;
  font-size: 24px;
  letter-spacing: .01em;
  dominant-baseline: middle;
  text-anchor: middle;
  pointer-events: none;
}

.fsv-stadion-page .stadion-map__tribune-label rect {
  fill: rgba(255,255,255,.18);
  stroke: rgba(255,255,255,.20);
}

.fsv-stadion-page .stadion-map__tribune-label text {
  fill: rgba(255,255,255,.86);
  font-size: 18px;
  letter-spacing: .08em;
}

.fsv-stadion-page .map-zone rect {
  stroke: rgba(255,255,255,.38);
  stroke-width: 1.5;
  transition: transform .2s ease, filter .2s ease, stroke .2s ease;
  transform-box: fill-box;
  transform-origin: center;
}

.fsv-stadion-page .map-zone text { fill: #061b34; }
.fsv-stadion-page .map-zone--standing rect { fill: #f3ef62; }
.fsv-stadion-page .map-zone--seating rect { fill: #2f7bea; }
.fsv-stadion-page .map-zone--seating text { fill: #fff; }
.fsv-stadion-page .map-zone--away rect { fill: #e85b4f; }

.fsv-stadion-page .map-zone rect:hover {
  transform: translateY(-3px);
  stroke: rgba(255,210,0,.92);
  filter: drop-shadow(0 0 12px rgba(255,210,0,.40));
}

.fsv-stadion-page .stadion-map__pitch { color: rgba(143,196,255,.84); }

.fsv-stadion-page .stadion-map__pitch rect,
.fsv-stadion-page .stadion-map__pitch line,
.fsv-stadion-page .stadion-map__pitch circle {
  fill: none;
  stroke: currentColor;
  stroke-width: 4;
}

.fsv-stadion-page .stadion-map__pitch > rect:first-child {
  fill: url(#pitchGradient);
  stroke: rgba(143,196,255,.92);
}

.fsv-stadion-page .stadion-map__buffer line {
  stroke: rgba(255,255,255,.24);
  stroke-width: 2;
  stroke-dasharray: 8 8;
}

.fsv-stadion-page .stadion-map__buffer text {
  fill: rgba(255,255,255,.58);
  font-size: 18px;
  font-weight: 850;
}

.fsv-stadion-page .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 900px) {
  .fsv-stadion-page .stadion-plan-layout--premium { grid-template-columns: 1fr; }
  .fsv-stadion-page .stadion-plan-layout--premium .stadion-plan-legend {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    order: 2;
  }
}

@media (max-width: 720px) {
  .fsv-stadion-page .stadion-map {
    padding: 12px;
    overflow-x: auto;
  }

  .fsv-stadion-page .stadion-map__svg,
  .fsv-stadion-page svg.fsv-map.stadion-map__svg {
    width: 760px !important;
    max-width: none !important;
    min-height: 0;
  }

  .fsv-stadion-page .stadion-plan-layout--premium .stadion-plan-legend {
    grid-template-columns: 1fr;
  }
}

/* Lageplan Feinschliff */
.stadion-plan-layout--premium {
  grid-template-columns: 150px minmax(0, 1fr) !important;
  gap: 18px !important;
}

.stadion-map {
  padding: 10px !important;
}

.stadion-map__svg {
  min-height: 340px !important;
}

.stadion-plan-card h2 {
  margin-bottom: 14px !important;
}

.stadion-map__buffer .buffer-label {
  fill: rgba(255,255,255,.78) !important;
  font-size: 16px !important;
  font-weight: 900 !important;
}

.stadion-map__buffer .buffer-label--left {
  text-anchor: start !important;
}

.stadion-map__buffer .buffer-label--right {
  text-anchor: end !important;
}

.buffer-label-ui {
  position: absolute;
  top: 54%;
  transform: translateY(-50%);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  pointer-events: none;
}

.buffer-left {
  left: 10px;
  top: 54%;
  writing-mode: vertical-rl;
  transform: translateY(-50%) rotate(180deg);
}

.buffer-right {
  right: 10px;
  top: 68%;
  writing-mode: vertical-rl;
  transform: translateY(-50%);
}
/* ------------------------------------------------------------
   FSV63 Stadion: Bundesliga-Feinschliff 2026
------------------------------------------------------------ */

.fsv-stadion-page {
	--fsv-panel: rgba(0, 43, 99, .74);
	--fsv-panel-strong: rgba(0, 31, 70, .92);
	--fsv-glow: rgba(255, 210, 0, .18);
}

.fsv-stadion-page .fsv63-fa-icon {
	width: 1em;
	height: 1em;
	line-height: 1;
}

.fsv-stadion-page .stadion-button,
.fsv-stadion-page .stadion-link-button {
	border-radius: 999px;
}

.fsv-stadion-page .stadion-button {
	background: linear-gradient(135deg, var(--fsv-gold), #fff06a);
	color: #071a35;
	box-shadow: 0 18px 42px rgba(255, 210, 0, .18), 0 16px 42px rgba(0,0,0,.26);
}

.fsv-stadion-page .stadion-button:hover {
	color: #071a35;
}

.fsv-stadion-page .stadion-button--ghost {
	background: rgba(255,255,255,.09);
	color: #fff;
	border: 1px solid rgba(255,255,255,.24);
	box-shadow: none;
}

.fsv-stadion-page .stadion-button--ghost:hover {
	background: rgba(255,255,255,.14);
	color: #fff;
}

.fsv-stadion-page .stadion-link-button {
	border: 1px solid rgba(255,255,255,.18);
	background: rgba(8,102,216,.76);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 14px 28px rgba(0,0,0,.16);
}

.fsv-stadion-page .fsv-stadion-hero {
	min-height: 680px;
	padding: 116px 0 128px;
	background:
		linear-gradient(90deg, rgba(0,16,38,.98) 0%, rgba(0,24,55,.86) 38%, rgba(0,27,63,.44) 66%, rgba(0,20,47,.22) 100%),
		linear-gradient(180deg, rgba(0,21,47,.06) 0%, rgba(0,21,47,.78) 100%),
		var(--stadion-hero-image, radial-gradient(circle at 70% 28%, rgba(8,102,216,.45), transparent 40%), linear-gradient(135deg, #00152f, #00377e)) center center / cover no-repeat;
}

.fsv-stadion-page .fsv-stadion-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(110deg, rgba(255,210,0,.16) 0 14%, transparent 14% 100%),
		repeating-linear-gradient(-35deg, rgba(255,255,255,.08) 0 1px, transparent 1px 18px);
	mix-blend-mode: screen;
	opacity: .46;
}

.fsv-stadion-page .stadion-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 44px;
	align-items: end;
}

.fsv-stadion-page .stadion-hero__content h1 {
	max-width: 720px;
	text-shadow: 0 18px 50px rgba(0,0,0,.42);
}

.fsv-stadion-page .stadion-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.fsv-stadion-page .stadion-hero-card {
	position: relative;
	z-index: 2;
	display: grid;
	gap: 12px;
	padding: 18px;
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 24px;
	background: linear-gradient(180deg, rgba(0,43,99,.76), rgba(0,21,47,.86));
	box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 28px 64px rgba(0,0,0,.28);
	backdrop-filter: blur(10px);
}

.fsv-stadion-page .stadion-hero-card > div {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 4px 16px;
	align-items: end;
	padding: 16px 18px;
	border-radius: 18px;
	background: rgba(255,255,255,.07);
	border: 1px solid rgba(255,255,255,.10);
}

.fsv-stadion-page .stadion-hero-card span,
.fsv-stadion-page .stadion-hero-card small {
	color: rgba(255,255,255,.72);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.fsv-stadion-page .stadion-hero-card strong {
	grid-row: span 2;
	color: var(--fsv-gold);
	font-size: 34px;
	font-weight: 1000;
	line-height: .9;
	letter-spacing: -.05em;
}

.fsv-stadion-page .stadion-facts {
	border-top: 5px solid var(--fsv-gold);
	background: linear-gradient(90deg, rgba(0,32,74,.98), rgba(0,55,126,.92), rgba(0,32,74,.98));
}

.fsv-stadion-page .stadion-fact {
	transition: background .22s ease, transform .22s ease;
}

.fsv-stadion-page .stadion-fact:hover {
	background: rgba(255,255,255,.045);
	transform: translateY(-2px);
}

.fsv-stadion-page .stadion-fact__icon,
.fsv-stadion-page .stadion-history-card__icon,
.fsv-stadion-page .stadion-ticket-card__icon,
.fsv-stadion-page .stadion-info-card__icon,
.fsv-stadion-page .stadion-venue-card__icon,
.fsv-stadion-page .stadion-service-grid article > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: 18px;
	background: rgba(255,210,0,.10);
	border: 1px solid rgba(255,210,0,.26);
	color: var(--fsv-gold);
	font-size: 24px;
	box-shadow: 0 14px 28px rgba(0,0,0,.18);
}

.fsv-stadion-page .stadion-history__grid,
.fsv-stadion-page .stadion-facility__image,
.fsv-stadion-page .stadion-facility__content,
.fsv-stadion-page .stadion-plan-card,
.fsv-stadion-page .stadion-area-card,
.fsv-stadion-page .stadion-ticket-card,
.fsv-stadion-page .stadion-info-strip__grid,
.fsv-stadion-page .stadion-venue-card,
.fsv-stadion-page .stadion-service-grid article {
	border-radius: 24px;
	border: 1px solid rgba(255,255,255,.14);
	background:
		radial-gradient(circle at 16% 0%, rgba(255,210,0,.10), transparent 32%),
		linear-gradient(180deg, rgba(0,48,106,.68), rgba(0,24,54,.86));
	box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 18px 46px rgba(0,0,0,.20);
}

.fsv-stadion-page .stadion-history__grid {
	overflow: hidden;
}

.fsv-stadion-page .stadion-history-card {
	grid-template-columns: 64px 1fr;
	gap: 18px;
}

.fsv-stadion-page .stadion-history-card strong {
	font-size: clamp(30px, 3.4vw, 44px);
}

.fsv-stadion-page .stadion-facility__image,
.fsv-stadion-page .stadion-facility__content,
.fsv-stadion-page .stadion-plan-card,
.fsv-stadion-page .stadion-area-card,
.fsv-stadion-page .stadion-ticket-card,
.fsv-stadion-page .stadion-venue-card {
	overflow: hidden;
}

.fsv-stadion-page .stadion-media-collage__main,
.fsv-stadion-page .stadion-media-collage__small,
.fsv-stadion-page .stadion-facility__image,
.fsv-stadion-page .stadion-facility__image img,
.fsv-stadion-page .stadion-image-placeholder {
	border-radius: 24px;
}

.fsv-stadion-page .stadion-image-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 220px;
	width: 100%;
	border: 1px solid rgba(255,255,255,.14);
	background:
		repeating-linear-gradient(-45deg, rgba(255,255,255,.06) 0 1px, transparent 1px 14px),
		linear-gradient(135deg, rgba(0,55,126,.82), rgba(0,21,47,.94));
	color: rgba(255,255,255,.72);
	font-weight: 950;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.fsv-stadion-page .stadion-media-collage__main.stadion-image-placeholder {
	height: 318px;
}

.fsv-stadion-page .stadion-media-collage__small.stadion-image-placeholder {
	height: 166px;
}

.fsv-stadion-page .stadion-checklist li::before {
	content: "";
	width: 10px;
	height: 10px;
	top: .48em;
	border-radius: 999px;
	background: var(--fsv-gold);
	box-shadow: 0 0 0 5px rgba(255,210,0,.10);
}

.fsv-stadion-page .stadion-plan-grid {
	grid-template-columns: minmax(0, 1.52fr) minmax(250px, .55fr) minmax(250px, .55fr);
}

.fsv-stadion-page .stadion-area-card h3 {
	display: flex;
	align-items: center;
	gap: 10px;
}

.fsv-stadion-page .stadion-area-card h3 .fsv63-fa-icon {
	color: var(--fsv-gold);
}

.fsv-stadion-page .stadion-area-card li {
	padding: 11px 12px;
	border-radius: 14px;
	background: rgba(255,255,255,.06);
}

.fsv-stadion-page .stadion-ticket-card {
	position: relative;
}

.fsv-stadion-page .stadion-ticket-card::after {
	content: "";
	position: absolute;
	right: -42px;
	bottom: -42px;
	width: 150px;
	height: 150px;
	border-radius: 999px;
	background: rgba(255,210,0,.08);
}

.fsv-stadion-page .stadion-ticket-card > * {
	position: relative;
	z-index: 1;
}

.fsv-stadion-page .stadion-info-strip__grid {
	gap: 14px;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.fsv-stadion-page .stadion-info-card {
	border-radius: 24px;
	border: 1px solid rgba(255,255,255,.14);
	background: linear-gradient(180deg, rgba(0,48,106,.66), rgba(0,24,54,.86));
	box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 18px 42px rgba(0,0,0,.18);
}

.fsv-stadion-page .stadion-info-card:last-child,
.fsv-stadion-page .stadion-info-card {
	border-right: 1px solid rgba(255,255,255,.14);
}

.fsv-stadion-page .stadion-info-card__icon {
	font-size: 24px;
}

.fsv-stadion-page .stadion-section-head {
	max-width: 760px;
	margin-bottom: 26px;
}

.fsv-stadion-page .stadion-section-head h2 {
	margin-bottom: 0;
}

.fsv-stadion-page .stadion-section-head--compact {
	margin-bottom: 20px;
}

.fsv-stadion-page .stadion-service-section {
	padding-top: 16px;
}

.fsv-stadion-page .stadion-service-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.fsv-stadion-page .stadion-service-grid article {
	padding: 24px;
}

.fsv-stadion-page .stadion-service-grid article > span {
	margin-bottom: 18px;
}

.fsv-stadion-page .stadion-service-grid h3 {
	margin-bottom: 9px;
	color: #fff;
}

.fsv-stadion-page .stadion-service-grid p {
	margin-bottom: 0;
	font-size: 14px;
	line-height: 1.55;
}

.fsv-stadion-page .stadion-venues__grid {
	gap: 14px;
}

.fsv-stadion-page .stadion-venue-card {
	position: relative;
	min-height: 176px;
	transition: transform .22s ease, border-color .22s ease, background .22s ease;
}

.fsv-stadion-page .stadion-venue-card:hover {
	transform: translateY(-4px);
	border-color: rgba(255,210,0,.34);
	background:
		radial-gradient(circle at 16% 0%, rgba(255,210,0,.14), transparent 34%),
		linear-gradient(180deg, rgba(0,55,126,.76), rgba(0,24,54,.88));
}

.fsv-stadion-page .stadion-venue-card__icon {
	margin-bottom: 16px;
	font-size: 22px;
}

.fsv-stadion-page .stadion-venue-card h3 {
	font-size: 15px;
}

.fsv-stadion-page .stadion-venue-card p {
	font-size: 13px;
}

@media (max-width: 1180px) {
	.fsv-stadion-page .stadion-hero__grid {
		grid-template-columns: 1fr;
		align-items: start;
	}

	.fsv-stadion-page .stadion-hero-card {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		width: min(760px, 100%);
	}

	.fsv-stadion-page .stadion-hero-card > div {
		grid-template-columns: 1fr;
	}

	.fsv-stadion-page .stadion-plan-grid,
	.fsv-stadion-page .stadion-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.fsv-stadion-page .fsv-stadion-hero {
		min-height: 580px;
		padding: 82px 0 104px;
	}

	.fsv-stadion-page .stadion-hero-card,
	.fsv-stadion-page .stadion-plan-grid,
	.fsv-stadion-page .stadion-service-grid {
		grid-template-columns: 1fr;
	}

	.fsv-stadion-page .stadion-info-card {
		border-right: 1px solid rgba(255,255,255,.14);
		border-bottom: 1px solid rgba(255,255,255,.14);
	}
}

@media (max-width: 720px) {
	.fsv-stadion-page .fsv-stadion-hero {
		background:
			linear-gradient(180deg, rgba(0,16,38,.96) 0%, rgba(0,24,55,.88) 62%, rgba(0,21,47,.80) 100%),
			var(--stadion-hero-image, radial-gradient(circle at 50% 20%, rgba(8,102,216,.42), transparent 44%), linear-gradient(135deg, #00152f, #00377e)) center center / cover no-repeat;
	}

	.fsv-stadion-page .stadion-hero__actions {
		align-items: stretch;
	}

	.fsv-stadion-page .stadion-hero__actions .stadion-button {
		width: 100%;
	}

	.fsv-stadion-page .stadion-hero-card strong {
		font-size: 30px;
	}

	.fsv-stadion-page .stadion-history-card {
		grid-template-columns: 56px 1fr;
	}

	.fsv-stadion-page .stadion-media-collage {
		min-height: 0;
	}

	.fsv-stadion-page .stadion-media-collage__small {
		position: relative;
		right: auto;
		bottom: auto;
		width: 100%;
		margin-top: 14px;
	}
}

/* ------------------------------------------------------------
   FSV63 Stadion: Content-Hintergrund wie Vereinsseiten
   Nur CSS-Update, kein Template-Eingriff
------------------------------------------------------------ */

body.page-template-template-stadion-php,
body.page-template-template-stadion {
	background: #04101f !important;
}

body.page-template-template-stadion-php #main,
body.page-template-template-stadion-php #primary,
body.page-template-template-stadion-php #content,
body.page-template-template-stadion-php .site-content,
body.page-template-template-stadion-php .page-content,
body.page-template-template-stadion-php .entry-content,
body.page-template-template-stadion-php .content,
body.page-template-template-stadion #main,
body.page-template-template-stadion #primary,
body.page-template-template-stadion #content,
body.page-template-template-stadion .site-content,
body.page-template-template-stadion .page-content,
body.page-template-template-stadion .entry-content,
body.page-template-template-stadion .content {
	background: transparent !important;
}

.fsv-stadion-page {
	background:
		radial-gradient(circle at 12% 12%, rgba(18, 102, 223, .28), transparent 30%),
		radial-gradient(circle at 88% 34%, rgba(255, 210, 0, .13), transparent 28%),
		radial-gradient(circle at 50% 78%, rgba(8, 102, 216, .15), transparent 34%),
		linear-gradient(180deg, #061428 0%, #071b36 43%, #04101f 100%) !important;
	isolation: isolate;
}

.fsv-stadion-page::before {
	opacity: .06 !important;
	background:
		repeating-linear-gradient(-38deg, rgba(255,255,255,.14) 0 1px, transparent 1px 19px),
		linear-gradient(116deg, transparent 0 54%, rgba(255,210,0,.14) 54% 55.2%, transparent 55.2% 100%) !important;
}

.fsv-stadion-page::after {
	content: "";
	position: absolute;
	inset: 620px 0 0;
	z-index: 0;
	pointer-events: none;
	background:
		linear-gradient(180deg, rgba(6,20,40,0) 0%, rgba(4,16,31,.54) 30%, rgba(4,16,31,.86) 100%),
		radial-gradient(circle at 18% 18%, rgba(255,210,0,.08), transparent 30%),
		radial-gradient(circle at 88% 42%, rgba(18,102,223,.18), transparent 34%);
}

.fsv-stadion-page .stadion-section,
.fsv-stadion-page .stadion-history,
.fsv-stadion-page .stadion-plan-section,
.fsv-stadion-page .stadion-info-strip,
.fsv-stadion-page .stadion-venues,
.fsv-stadion-page .stadion-service-section {
	position: relative;
}

.fsv-stadion-page .stadion-intro,
.fsv-stadion-page .stadion-plan-section,
.fsv-stadion-page .stadion-service-section,
.fsv-stadion-page .stadion-venues {
	background: transparent !important;
}

.fsv-stadion-page .stadion-intro__grid,
.fsv-stadion-page .stadion-facility,
.fsv-stadion-page .stadion-plan-grid,
.fsv-stadion-page .stadion-info-strip__grid,
.fsv-stadion-page .stadion-service-grid,
.fsv-stadion-page .stadion-venues__grid {
	position: relative;
	z-index: 1;
}

.fsv-stadion-page .stadion-section-head,
.fsv-stadion-page .stadion-copy {
	position: relative;
	z-index: 1;
}

.fsv-stadion-page .stadion-section-head::before,
.fsv-stadion-page .stadion-copy::before {
	content: "";
	display: block;
	width: 72px;
	height: 5px;
	margin-bottom: 18px;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--fsv-gold), rgba(255,210,0,.18));
	box-shadow: 0 10px 24px rgba(255,210,0,.16);
}

.fsv-stadion-page .stadion-copy .stadion-eyebrow + h2::before,
.fsv-stadion-page .stadion-section-head .stadion-eyebrow + h2::before {
	content: none;
}

.fsv-stadion-page .stadion-history__grid,
.fsv-stadion-page .stadion-facility__content,
.fsv-stadion-page .stadion-plan-card,
.fsv-stadion-page .stadion-area-card,
.fsv-stadion-page .stadion-ticket-card,
.fsv-stadion-page .stadion-info-card,
.fsv-stadion-page .stadion-venue-card,
.fsv-stadion-page .stadion-service-grid article {
	background:
		radial-gradient(circle at 16% 0%, rgba(255,210,0,.11), transparent 34%),
		radial-gradient(circle at 100% 100%, rgba(18,102,223,.20), transparent 36%),
		linear-gradient(180deg, rgba(7,26,52,.90), rgba(4,16,31,.96)) !important;
	border-color: rgba(255,255,255,.16) !important;
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.09),
		0 22px 56px rgba(0,0,0,.24) !important;
}

.fsv-stadion-page .stadion-facility__image,
.fsv-stadion-page .stadion-media-collage__main,
.fsv-stadion-page .stadion-media-collage__small,
.fsv-stadion-page .stadion-map {
	box-shadow:
		0 22px 58px rgba(0,0,0,.30),
		0 0 0 1px rgba(255,255,255,.12) !important;
}

.fsv-stadion-page .stadion-facts {
	background:
		linear-gradient(90deg, rgba(5,19,38,.98), rgba(0,55,126,.92), rgba(5,19,38,.98)) !important;
	box-shadow: 0 24px 68px rgba(0,0,0,.24);
}

.fsv-stadion-page .stadion-history {
	padding-top: 18px;
}

.fsv-stadion-page .stadion-plan-section {
	padding-top: 38px;
}

.fsv-stadion-page .stadion-info-strip {
	padding-top: 10px;
}

.fsv-stadion-page .stadion-venues {
	padding-top: 20px;
}

.fsv-stadion-page .stadion-media-collage::before,
.fsv-stadion-page .stadion-facility::before,
.fsv-stadion-page .stadion-plan-grid::before {
	content: "";
	position: absolute;
	z-index: -1;
	width: 220px;
	height: 220px;
	border-radius: 999px;
	background: rgba(255,210,0,.09);
	filter: blur(18px);
	pointer-events: none;
}

.fsv-stadion-page .stadion-media-collage::before {
	right: -54px;
	top: -42px;
}

.fsv-stadion-page .stadion-facility::before,
.fsv-stadion-page .stadion-plan-grid::before {
	left: -70px;
	bottom: -56px;
}

@media (max-width: 900px) {
	.fsv-stadion-page::after {
		inset: 520px 0 0;
	}

	.fsv-stadion-page .stadion-section-head::before,
	.fsv-stadion-page .stadion-copy::before {
		width: 58px;
		height: 4px;
		margin-bottom: 14px;
	}
}

@media (max-width: 720px) {
	.fsv-stadion-page {
		background:
			radial-gradient(circle at 18% 9%, rgba(18,102,223,.25), transparent 34%),
			radial-gradient(circle at 86% 42%, rgba(255,210,0,.10), transparent 32%),
			linear-gradient(180deg, #061428 0%, #071b36 46%, #04101f 100%) !important;
	}

	.fsv-stadion-page .stadion-media-collage::before,
	.fsv-stadion-page .stadion-facility::before,
	.fsv-stadion-page .stadion-plan-grid::before {
		display: none;
	}
}
