/* BIANCO — Projekt-/About-Inhalte & Footer */

/* Trennlinien nur Schwarz/Weiß — keine Grauabstufungen */
:root {
	--rule-on-light: var(--fg);
	--rule-on-dark: var(--white);
}

/* Project body — gleiches 12er-Raster wie Rest der Site */
.project-body {
	position: relative;
	display: grid;
	grid-template-columns: repeat(var(--layout-grid-cols), minmax(0, 1fr));
	column-gap: var(--layout-grid-gap);
	row-gap: 2rem;
	padding: var(--page-intro-vspace) 0;
	max-width: var(--max);
	margin: 0 auto;
	align-items: start;
}

.project-body > div:first-child {
	grid-column: 1 / span 3;
	min-width: 0;
}

.project-body .project-body__text {
	grid-column: 4 / span 9;
	min-width: 0;
}

@media (max-width: 48rem) {
	.project-body > div:first-child,
	.project-body .project-body__text {
		grid-column: 1 / -1;
	}
}

.project-body__label {
	margin: 0;
	font-size: var(--text-micro);
	text-transform: uppercase;
	color: var(--fg-muted);
}

.project-body__text {
	max-width: 44rem;
}

.project-body__lede {
	margin: 0 0 var(--page-intro-vspace);
}

.project-body__text .ktext > *:first-child {
	margin-top: 0;
}

.project-body__text .ktext > *:last-child {
	margin-bottom: 0;
}

/* Writer/Kirby: Betonung als punktierte Akzent-Linie statt Fett */
.ktext strong,
.ktext b {
	font-weight: inherit;
	text-decoration: underline;
	text-decoration-style: dotted;
	text-decoration-color: var(--accent);
	text-underline-offset: 0.18em;
}

.project-aside {
	margin-top: var(--page-intro-vspace);
}

/* Case: Specs — zwei Spalten; Linien für Light-Theme (unter dem Slider) */
.project-specs {
	margin: 2.5rem 0 0;
	padding: 0;
	max-width: 44rem;
	display: grid;
	gap: 0;
	border-top: 1px solid var(--fg);
}

.project-specs__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
	column-gap: var(--layout-grid-gap);
	align-items: baseline;
	padding: 0.85rem 0;
	margin: 0;
	border-bottom: 1px solid var(--fg);
}

@media (max-width: 36rem) {
	.project-specs__row {
		grid-template-columns: 1fr;
		row-gap: 0.35rem;
		padding: 0.75rem 0;
	}
}

.project-specs__term {
	margin: 0;
	font-size: var(--text-micro);
	font-weight: 400;
	text-transform: uppercase;
	opacity: 1;
}

.project-specs__def {
	margin: 0;
	font-size: var(--text-ui-sm);
	line-height: 1.45;
	font-weight: 400;
	opacity: 1;
}

/*
 * Case / Talent: unter dem Slider = Light (Standard --bg / --fg).
 * Raster wie .project-body; kein Vollschwarz — nur .hero-dark bleibt dunkel.
 */
body.page-case main.page-detail .project-body,
body.page-talent main.page-detail .project-body {
	background: var(--bg);
	color: var(--fg);
}

/* Service: warmer oberer Band (Liste, Marquee, Intro) / Impact + Footer auf Schwarz */
body.page-service main.page-service {
	padding-top: 0;
}

/* Contact — gleiche hell/warm-Choreographie wie Service (ohne Marquee) */
body.page-contact main.page-contact {
	padding-top: 0;
}

.contact-page__shell.section {
	padding: var(--page-intro-vspace) 0 clamp(3.5rem, 6vw, 5rem);
	background: var(--bg-warm);
	color: var(--fg);
}

.contact-page__lede-wrap {
	margin-bottom: var(--page-intro-vspace);
}

.contact-page__lede {
	font-size: var(--text-label);
	line-height: 1.65;
	color: var(--fg);
	max-width: min(46rem, 100%);
}

.contact-page__lede > *:first-child {
	margin-top: 0;
}

.contact-page__lede > *:last-child {
	margin-bottom: 0;
}

.contact-page__form {
	max-width: min(42rem, 100%);
}

.contact-page__status {
	margin: 0 0 1.5rem;
	font-size: var(--text-label);
	line-height: 1.5;
	color: var(--fg);
}

.contact-page__status--success {
	border-left: 2px solid var(--fg);
	padding-left: 1rem;
}

.contact-page__status--error {
	border-left: 2px solid var(--accent);
	padding-left: 1rem;
}

.contact-page__form-inner {
	margin: 0;
	padding: 0;
	border: 0;
}

.contact-page__field {
	margin: 0 0 1.75rem;
}

.contact-page__field-label {
	display: block;
	margin-bottom: 0.4rem;
	font-size: var(--text-label);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--fg);
}

.contact-page__input {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 0.55rem 0;
	font-family: var(--font-mono);
	font-size: var(--text-label);
	font-weight: 400;
	line-height: 1.45;
	color: var(--fg);
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--rule-on-light);
	border-radius: 0;
	outline: none;
	transition: border-color 0.15s ease;
}

.contact-page__input::placeholder {
	color: var(--fg);
}

.contact-page__input:hover {
	border-bottom-color: var(--fg);
}

.contact-page__input:focus {
	border-bottom-color: var(--fg);
}

.contact-page__textarea {
	min-height: 9rem;
	resize: vertical;
}

.contact-page__actions {
	margin-top: 2.25rem;
}

.contact-page__submit {
	display: inline-block;
	margin: 0;
	padding: 0.5rem 1.15rem;
	font-family: var(--font-display);
	font-size: var(--text-label);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-transform: none;
	color: var(--fg);
	background: rgba(0, 0, 0, 0.08);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.15s ease;
}

.contact-page__submit:hover,
.contact-page__submit:focus {
	background: rgba(0, 0, 0, 0.12);
}

.contact-page__mailto {
	margin: 2.75rem 0 0;
	font-size: var(--text-label);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.contact-page__mailto a {
	color: var(--fg);
	border-bottom-color: transparent;
}

.contact-page__mailto a:hover,
.contact-page__mailto a:focus {
	border-bottom-color: currentColor;
}

/* Hell: Einleitung unter Header; unten kein Padding — Marquee bündig an .home-scroll */
.service-band.section {
	padding: var(--page-intro-vspace) 0 0;
	background: var(--bg-warm);
	color: var(--fg);
}

/* Intro, dann gleicher Abstand bis SERVICE-Label */
.service-band__lede-wrap {
	margin-top: 0;
	margin-bottom: var(--page-intro-vspace);
}

.service-band__lede {
	font-size: var(--text-label);
	line-height: 1.65;
	color: var(--fg);
	max-width: min(46rem, 100%);
}

.service-band__lede > *:first-child {
	margin-top: 0;
}

.service-band__lede > *:last-child {
	margin-bottom: 0;
}

.service-band__list-wrap {
	margin-bottom: 0;
}

.service-band__detail-wrap {
	padding-top: 0;
	margin-top: var(--page-intro-vspace);
}

.service-band .service-band__detail {
	margin-top: 0;
}

.service-band__label,
.service-impact__label {
	margin: 0 0 clamp(1.35rem, 2.5vw, 2rem);
	font-family: var(--font-mono);
	font-size: var(--text-label);
	font-weight: 400;
	line-height: 1.3;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.service-band__rows {
	display: flex;
	flex-direction: column;
	gap: clamp(0.35rem, 1.2vw, 0.65rem);
}

.service-band__row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.45rem;
	align-items: baseline;
}

.service-band__row-title {
	margin: 0;
	font-family: var(--font-display);
	font-size: var(--home-mega-list-size);
	font-weight: 700;
	line-height: 1.06;
	text-transform: uppercase;
}

.service-band__row-caption {
	margin: 0;
	font-family: var(--font-mono);
	font-size: var(--text-label);
	font-weight: 400;
	text-transform: uppercase;
}

@media (min-width: 52.0625rem) {
	.service-band__row {
		grid-template-columns: minmax(0, 1fr) minmax(0, auto);
		column-gap: clamp(1.25rem, 3vw, 2.75rem);
	}

	.service-band__row-caption {
		text-align: right;
		justify-self: end;
		white-space: nowrap;
	}
}

@media (max-width: 52rem) {
	.service-band__row-title {
		font-size: var(--home-mega-list-size-sm);
	}
}

.service-band__detail {
	margin-top: 2.35rem;
}

.service-band__detail-prose {
	max-width: min(38rem, 100%);
}

.service-band__detail-prose p {
	margin: 0 0 0.65rem;
}

.service-band__detail-prose p:last-child {
	margin-bottom: 0;
}

.service-band__marquee-wrap {
	overflow: hidden;
	padding: 0.65rem 0;
}

/* Marquee: 8rem Abstand von Liste/Intro darüber; gleiche Luft im Band */
.service-band .service-band__marquee-wrap {
	margin-top: 8rem;
	margin-bottom: 0;
	padding-top: clamp(0.78rem, 1.9vw, 1.05rem);
	padding-bottom: clamp(0.78rem, 1.9vw, 1.05rem);
	background: transparent;
	color: var(--fg);
	border-top: 1px solid var(--rule-on-light);
	border-bottom: 0;
}

/* Service: kein vertikaler Spalt zwischen hellem Abschnitt und .home-scroll */
body.page-service .home-scroll {
	margin-top: 0;
}

.service-band__marquee {
	overflow: hidden;
}

.service-band__marquee-track {
	display: inline-flex;
	flex-wrap: nowrap;
	align-items: center;
	white-space: nowrap;
	will-change: transform;
	animation: service-band-marquee 32s linear infinite;
}

.service-band__marquee-item,
.service-band__marquee-sep {
	font-family: var(--font-mono);
	font-size: var(--text-label);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.service-band__marquee-sep {
	color: var(--fg);
}

@keyframes service-band-marquee {
	0% {
		transform: translate3d(0, 0, 0);
	}
	100% {
		transform: translate3d(-50%, 0, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.service-band__marquee-track {
		animation: none !important;
	}
}

/* Innerhalb .home-scroll: kein zweites Full-Bleed — Hintergrund kommt vom Wrapper wie auf Home */
.home-scroll .service-impact {
	margin-left: 0;
	margin-right: 0;
	width: 100%;
	max-width: none;
	margin-top: 0;
	padding: var(--page-intro-vspace) 0 3rem;
	background: transparent !important;
	color: var(--white);
}

.service-impact__label--inverse {
	color: var(--white);
	margin-bottom: 1.35rem;
}

.service-impact__stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.35rem, 3.5vw, 2.25rem) var(--layout-grid-gap);
}

@media (min-width: 48rem) {
	.service-impact__stats {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.service-impact__stat {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
	padding: 0;
	border: 0;
}

.service-impact__stat-value {
	font-family: var(--font-display);
	font-size: var(--home-mega-list-size);
	font-weight: 700;
	line-height: 1.06;
	text-transform: uppercase;
	color: var(--white);
}

.service-impact__stat-context {
	font-family: var(--font-mono);
	font-size: var(--text-label);
	font-weight: 400;
	line-height: 1.35;
	text-transform: none;
	letter-spacing: normal;
	color: var(--white);
	max-width: 12rem;
}

.service-impact__statements {
	margin-top: 8rem;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.service-impact__statement {
	margin: 0;
	font-family: var(--font-display);
	font-size: var(--home-mega-list-size);
	font-weight: 700;
	line-height: 1.06;
	text-transform: uppercase;
	color: var(--white);
}

@media (max-width: 52rem) {
	.service-impact__stat-value,
	.service-impact__statement {
		font-size: var(--home-mega-list-size-sm);
	}
}

.service-impact__footer {
	margin-top: var(--page-intro-vspace);
	color: var(--white);
	max-width: min(42rem, 100%);
}

.service-impact__footer a {
	color: var(--white);
}

/* About / Team — Raster über .about-page.layout-grid */
.about-page {
	padding-bottom: 0;
}

.about-claim {
	margin: var(--page-intro-vspace) 0;
	font-family: var(--font-display);
	font-size: var(--home-mega-list-size);
	font-weight: 700;
	line-height: 1.06;
	text-transform: uppercase;
}

.about-body {
	margin: 0 0 var(--page-intro-vspace);
}

.about-body .ktext p {
	margin: 0 0 1.25rem;
}

.team-section {
	margin: 0;
	padding: 0;
}

.about-page .team-section {
	grid-column: var(--layout-content-start) / -1;
	max-width: none;
	justify-self: stretch;
}

.about-page .team-section + .team-section {
	margin-top: 2rem;
}

.about-page .team-section:last-child {
	margin-bottom: 3rem;
}

.team-section__label {
	margin: 0 0 0.75rem;
	font-size: var(--text-label);
	font-weight: 400;
	line-height: 1.3;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	opacity: 0.92;
}

/* About / Team: Swiper (about-team-swiper.js), gap ≈ 1.125rem */
.about-page .team-swiper.swiper {
	margin: 0;
	padding: 0 var(--page-pad) 1.25rem 0;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.about-page .team-swiper .swiper-wrapper {
	align-items: stretch;
}

.about-page .team-swiper .swiper-slide.team-card {
	width: min(13.25rem, 82vw);
	height: auto;
	box-sizing: border-box;
}

.about-page .team-swiper .team-card {
	width: 100%;
	max-width: none;
}

.about-page .team-swiper img {
	-webkit-user-drag: none;
}

@media (max-width: 52rem) {
	.about-page .team-section {
		grid-column: 1 / -1;
	}

	.about-claim {
		font-size: var(--home-mega-list-size-sm);
	}
}

.team-card {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	min-width: 0;
	/* Flex: sonst min-height:auto = intrinsische Bildhöhe → Karten werden riesig */
	min-height: 0;
}

.team-card__img {
	display: block;
	flex: 0 0 auto;
	width: 100%;
	height: auto;
	max-width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	object-position: center top;
	border-radius: 0.2rem;
	background: var(--black);
	overflow: hidden;
}

/* Kein Portrait: X exakt auf den Bilddiagonalen (viewBox 3∶4), 1px Strich */
.team-card__img--missing {
	position: relative;
	flex-shrink: 0;
	height: auto;
	object-fit: unset;
	color: var(--white);
	line-height: 0;
}

.team-card__img__mark {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	vertical-align: top;
}

.team-card__img__mark line {
	stroke: currentColor;
	stroke-width: 1;
	vector-effect: non-scaling-stroke;
	stroke-linecap: square;
	fill: none;
}

.team-card__name {
	margin: 0.65rem 0 0.2rem;
	font-weight: 400;
	font-size: var(--text-ui-sm);
}

.team-card__role {
	margin: 0;
	font-size: var(--text-reading);
	opacity: 1;
}

/* Simple pages / Artikelspalte (Service, Contact, …) */
.page-article,
.simple-page {
	max-width: 42rem;
	margin: 0 auto;
	padding: var(--page-intro-vspace) 0 var(--page-intro-vspace);
}

.layout-grid__span-content.page-article,
.layout-grid__span-content.simple-page {
	margin: 0;
	max-width: min(42rem, 100%);
}

.layout-grid__span-content.page-article .page-article__title {
	margin-top: 0;
}

/* Default-Unterseiten: Titel wieder, aber kompakt (Mono / Footer-Zeile) */
body.page-default .page-article__title {
	font-family: var(--font-mono);
	font-size: var(--text-label);
	font-weight: 400;
	line-height: 1.35;
	text-transform: uppercase;
	margin: 0 0 var(--page-intro-vspace);
	max-width: min(42rem, 100%);
}

/* Rechtstext-Seiten: Fließtext; Abschnitte per JS als Accordion */
body[data-legal-accordion] .page-article__body {
	font-size: var(--text-reading);
	line-height: 1.55;
}

/*
 * Footer: überall exakt 1rem zum Viewport (Inhalt/Raster).
 * - Als Kind von .page-wrapper: ohne Ausgleich wäre der Block doppelt eingezogen.
 * - Auf Home/Service: Footer steckt in .home-scroll (nicht .page-wrapper > footer) — gleiche Regel nötig.
 */
.page-wrapper > .site-footer,
body:is(.page-home, .page-service) .home-scroll > .site-footer {
	margin-left: calc(-1 * var(--page-pad));
	margin-right: calc(-1 * var(--page-pad));
	width: calc(100% + 2 * var(--page-pad));
	max-width: none;
	box-sizing: border-box;
	padding-left: var(--page-pad);
	padding-right: var(--page-pad);
}

/* Footer — hell: Site-Hintergrund, dunkle Typo; Variante dunkel: .site-footer--dark (s. Snippet) */
.site-footer {
	--footer-line: var(--rule-on-light);
	margin-top: 4rem;
	background: var(--bg);
	color: var(--fg);
	border-top: 1px solid var(--footer-line);
	padding-top: var(--page-pad);
	padding-bottom: var(--site-footer-pad-bottom);
	overflow: visible;
}

/* Dunkle Variante: schwarzer Grund, helle Typo (Cases/Talents/Home-Talents-Block, About, Case- & Talent-Detail) */
.site-footer--dark {
	--footer-line: var(--rule-on-dark);
	margin-top: 0;
	background: var(--black);
	color: var(--white);
	border-top: 1px solid var(--footer-line);
	padding-top: 2rem;
	padding-bottom: var(--site-footer-pad-bottom);
}

/* Obere Linie sitzt am Meta-Block; Doppelrand vermeiden */
.site-footer.site-footer--has-meta {
	border-top: 0;
	padding-top: 0;
}

/*
 * Schwarz bündig zum Viewport; gilt die ganze Home-Session (auch während Intro), damit am Ende
 * kein horizontaler Sprung entsteht. Kein transform auf .home-scroll — Talent-Vorschau (fixed) = Viewport.
 * Gleiches horizontales „Breakout“ wie Service-Marquee (Kind von .page-wrapper mit --page-pad).
 */
body:is(.page-home, .page-service) .home-scroll,
.service-band__marquee-wrap {
	margin-left: calc(-1 * var(--page-pad));
	margin-right: calc(-1 * var(--page-pad));
	width: calc(100% + 2 * var(--page-pad));
	max-width: none;
	box-sizing: border-box;
}

body:is(.page-home, .page-service) .home-scroll {
	background: var(--black);
	color: var(--white);
	padding-left: var(--page-pad);
	padding-right: var(--page-pad);
}

.site-footer--dark .logo-mega--svg img {
	filter: invert(1);
}

.site-footer__inner {
	max-width: var(--max);
	margin: 0 auto;
	padding: 0;
	width: 100%;
	row-gap: 0;
}

.site-footer__inner.layout-grid {
	padding-bottom: 0;
	row-gap: 0;
}

/* Adresse + Inquiries: eigener Block mit Linien oben/unten (Entwurf) */
.site-footer__meta {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--layout-grid-gap);
	row-gap: 2rem;
	min-width: 0;
	box-sizing: border-box;
	padding: 4rem 0;
	border-top: 1px solid var(--footer-line);
	border-bottom: 1px solid var(--footer-line);
}

@supports (grid-template-columns: subgrid) {
	.site-footer__inner.layout-grid > .site-footer__meta {
		grid-template-columns: subgrid;
		column-gap: inherit;
	}
}

/* Footer-Typo wie Header-Nav (.site-nav / .site-nav--mega) */
.site-footer__address {
	grid-column: 1 / -1;
	margin: 0;
	line-height: 1.5;
	opacity: 1;
	font-size: var(--text-label);
	font-weight: 400;
	text-transform: uppercase;
	min-width: 0;
}

.site-footer__inquiry {
	margin-top: 0;
	border-bottom: none;
	opacity: 1;
	text-decoration: none;
	font-size: var(--text-label);
	font-weight: 400;
	text-transform: uppercase;
	white-space: nowrap;
	min-width: 0;
}

.site-footer__meta .site-footer__address ~ .site-footer__inquiry,
.site-footer__meta .site-footer__inquiry + .site-footer__inquiry {
	margin-top: 0;
}

.site-footer__inquiry:hover,
.site-footer__inquiry:focus {
	opacity: 1;
}

/* Contact-Falte (mobil): Kurzer Fließtext + Mail(s); Adresse bleibt im Meta-Block. */
.site-footer__nav-fold__panel.site-footer__contact-fold {
	gap: 0.35rem;
}

.site-footer__contact-fold__intro {
	margin: 0 0 0.25rem;
	font-size: var(--text-reading);
	font-weight: 400;
	line-height: 1.55;
	text-transform: none;
	opacity: 1;
	white-space: normal;
}

.site-footer__contact-fold__mail {
	display: block;
	padding: 0.35rem 0;
	min-height: 2.25rem;
	line-height: 1.35;
	box-sizing: border-box;
	text-decoration: none;
	border-bottom: none;
	opacity: 1;
	text-transform: none;
	font-size: var(--text-label);
	font-weight: 400;
	white-space: normal;
	word-break: break-word;
}

.site-footer__contact-fold__mail:hover,
.site-footer__contact-fold__mail:focus {
	opacity: 1;
}

@media (max-width: 64rem) {
	/* Inquiry-Zeilen nur in der Contact-Klappe; Adresse bleibt sichtbar */
	.site-footer--compact-nav-mobile .site-footer__meta .site-footer__inquiry {
		display: none;
	}
}

/*
 * Footer-Zeile: gleiche Gitterlinien wie .site-nav--mega (4/7, 7/11, 11/–1).
 * Zeile hängt per Subgrid direkt am .site-footer__inner.layout-grid — kein verschachteltes 12er-Raster mehr.
 */
.site-footer__nav-wrap {
	padding-top: 2rem;
	box-sizing: border-box;
	min-width: 0;
}

@supports (grid-template-columns: subgrid) {
	/* Nur Mega-Zeile; --compact hätte sonst display:grid und würde display:none auf Desktop überschreiben */
	.site-footer__inner.layout-grid > .site-footer__nav-wrap.site-footer__nav-wrap--mega {
		display: grid;
		grid-template-columns: subgrid;
		grid-column: 1 / -1;
		column-gap: inherit;
	}

	.site-footer__inner.layout-grid > .site-footer__nav-wrap.site-footer__nav-wrap--mega > .site-footer__nav.site-footer__nav--plan {
		display: contents;
	}
}

.site-footer__nav {
	gap: 0.75rem 1.5rem;
}

.site-footer__nav.site-footer__nav--row {
	align-items: baseline;
	width: 100%;
	margin: 0;
	padding: 0;
	opacity: 1;
}

/* Fallback ohne Subgrid: eigenes Raster in der Zeile (Breite = volle .layout-grid-Zelle) */
@supports not (grid-template-columns: subgrid) {
	.site-footer__nav.site-footer__nav--plan {
		display: grid;
		grid-template-columns: repeat(var(--layout-grid-cols), minmax(0, 1fr));
		column-gap: var(--layout-grid-gap);
		row-gap: 0.35rem;
		box-sizing: border-box;
		align-items: baseline;
	}
}

.site-footer__nav-wrap .site-footer__nav-cluster {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 2rem;
	min-width: 0;
}

.site-footer__nav-wrap .site-footer__nav-cluster:empty {
	display: none;
}

/* Spalten wie .site-nav--mega .site-nav__cluster--* */
.site-footer__nav-wrap .site-footer__nav-cluster--left {
	grid-column: 4 / 7;
	justify-self: start;
	justify-content: flex-start;
	text-align: left;
}

.site-footer__nav-wrap .site-footer__nav-cluster--center {
	grid-column: 7 / 11;
	justify-self: start;
	justify-content: flex-start;
	text-align: left;
}

.site-footer__nav-wrap .site-footer__nav-cluster--right {
	grid-column: 11 / -1;
	justify-self: end;
	justify-content: flex-end;
	text-align: right;
}

.site-footer__nav-link {
	border-bottom: none;
	text-decoration: none;
	opacity: inherit;
	font-size: var(--text-label);
	font-weight: 400;
	text-transform: uppercase;
	white-space: nowrap;
	min-width: 0;
}

.site-footer__nav-link:hover,
.site-footer__nav-link:focus {
	opacity: 1;
}

/*
 * Tablet/Mobile (≤64rem): optionale Top-Links + „Contact“- und „Legal info“-Falten (<details>),
 * sobald mindestens eine Legal-Seite (imprint / terms / privacy) in den Footer-Links vorkommt.
 */
.site-footer__nav-wrap--compact {
	display: none;
}

@media (max-width: 64rem) {
	.site-footer__inner.layout-grid:has(> .site-footer__nav-wrap--compact) > .site-footer__nav-wrap--mega {
		display: none;
	}

	.site-footer__nav-wrap--compact {
		display: block;
		padding-top: 2rem;
		box-sizing: border-box;
		min-width: 0;
	}

	@supports (grid-template-columns: subgrid) {
		.site-footer__inner.layout-grid > .site-footer__nav-wrap--compact > .site-footer__nav--compact {
			grid-column: 1 / -1;
		}
	}

	.site-footer__nav.site-footer__nav--compact {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		width: 100%;
		gap: 0;
		margin: 0;
		padding: 0;
		opacity: 1;
	}

	.site-footer__nav-link--compact {
		display: block;
		padding: 0.5rem 0;
		min-height: 2.75rem;
		line-height: 1.35;
		box-sizing: border-box;
		white-space: normal;
	}

	.site-footer__nav--compact > .site-footer__nav-fold {
		width: 100%;
		max-width: 100%;
		border-top: 1px solid var(--footer-line);
		margin-top: 0.35rem;
		padding-top: 0;
		box-sizing: border-box;
	}

	.site-footer__nav--compact > .site-footer__nav-fold:first-child {
		border-top: 0;
		margin-top: 0;
	}

	.site-footer__nav-fold__summary {
		cursor: pointer;
		list-style: none;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.75rem;
		width: 100%;
		box-sizing: border-box;
		padding: 0.5rem 0;
		min-height: 2.75rem;
		border: 0;
		background: transparent;
		color: inherit;
		font-family: var(--font-mono);
		font-size: var(--text-label);
		font-weight: 400;
		text-transform: uppercase;
		text-align: left;
		opacity: 1;
		-webkit-tap-highlight-color: transparent;
	}

	.site-footer__nav-fold__summary::-webkit-details-marker {
		display: none;
	}

	/* Plus (zu × bei open), Strichstärke an Mono/Körpergröße gekoppelt */
	.site-footer__nav-fold__summary::after {
		content: "";
		flex: 0 0 auto;
		box-sizing: border-box;
		width: 0.58em;
		height: 0.58em;
		background:
			linear-gradient(currentColor, currentColor) 50% 50% / 100% max(1px, 0.09em) no-repeat,
			linear-gradient(currentColor, currentColor) 50% 50% / max(1px, 0.09em) 100% no-repeat;
		opacity: 1;
		transition: transform 0.2s ease;
	}

	.site-footer__nav-fold[open] > .site-footer__nav-fold__summary::after {
		transform: rotate(45deg);
	}

	.site-footer__nav-fold__panel {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		padding: 0 0 0.35rem;
		width: 100%;
		box-sizing: border-box;
	}

	.site-footer__nav-fold__link {
		display: block;
		padding: 0.45rem 0;
		min-height: 2.75rem;
		line-height: 1.35;
		box-sizing: border-box;
		white-space: normal;
	}
}

/* Imprint / Terms / Privacy: Abschnitte nach <h2> als <details> (legal-page-accordion.js) */
body[data-legal-accordion] .page-legal-accordion {
	--page-legal-accordion-line: var(--rule-on-light);
	margin: 0;
	border: 0;
	border-bottom-width: 1px;
	border-bottom-style: solid;
	border-bottom-color: var(--page-legal-accordion-line);
	max-width: min(42rem, 100%);
}

body[data-legal-accordion] .page-legal-accordion:first-of-type {
	border-top-width: 1px;
	border-top-style: solid;
	border-top-color: var(--page-legal-accordion-line);
	margin-top: 0.15rem;
}

.page-legal-accordion__summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	width: 100%;
	box-sizing: border-box;
	padding: 0.65rem 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: var(--text-label);
	font-weight: 400;
	line-height: 1.35;
	text-transform: uppercase;
	text-align: left;
	-webkit-tap-highlight-color: transparent;
}

.page-legal-accordion__summary::-webkit-details-marker {
	display: none;
}

.page-legal-accordion__summary::after {
	content: "";
	flex: 0 0 auto;
	box-sizing: border-box;
	width: 0.58em;
	height: 0.58em;
	background:
		linear-gradient(currentColor, currentColor) 50% 50% / 100% max(1px, 0.09em) no-repeat,
		linear-gradient(currentColor, currentColor) 50% 50% / max(1px, 0.09em) 100% no-repeat;
	opacity: 1;
	transition: transform 0.2s ease;
}

.page-legal-accordion[open] > .page-legal-accordion__summary::after {
	transform: rotate(45deg);
}

.page-legal-accordion__panel {
	padding: 0 0 1.1rem;
	font-size: var(--text-reading);
	line-height: 1.55;
	text-transform: none;
	font-weight: 400;
}

.page-legal-accordion__panel > *:first-child {
	margin-top: 0;
}

.page-legal-accordion__panel > *:last-child {
	margin-bottom: 0;
}

@media (max-width: 52rem) {
	.site-footer__meta .site-footer__inquiry {
		grid-column: 1 / -1;
	}

	@supports (grid-template-columns: subgrid) {
		.site-footer__nav-wrap .site-footer__nav-cluster--left,
		.site-footer__nav-wrap .site-footer__nav-cluster--center,
		.site-footer__nav-wrap .site-footer__nav-cluster--right {
			grid-column: 1 / -1;
			justify-self: start;
			justify-content: flex-start;
			text-align: left;
		}
	}

	@supports not (grid-template-columns: subgrid) {
		.site-footer__nav-wrap .site-footer__nav.site-footer__nav--plan {
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			gap: 0.35rem;
		}

		.site-footer__nav-wrap .site-footer__nav-cluster--left,
		.site-footer__nav-wrap .site-footer__nav-cluster--center,
		.site-footer__nav-wrap .site-footer__nav-cluster--right {
			grid-column: auto;
			justify-self: start;
			justify-content: flex-start;
			text-align: left;
		}
	}
}

@media (min-width: 52.0625rem) {
	.site-footer__meta .site-footer__address {
		grid-column: var(--layout-content-start) / span var(--layout-content-span);
		grid-row: 1;
		justify-self: start;
		align-self: start;
	}

	.site-footer__meta .site-footer__inquiry--general {
		grid-column: var(--layout-content-start) / 8;
		grid-row: 2;
		justify-self: start;
		align-self: start;
	}

	.site-footer__meta .site-footer__inquiry--talent {
		grid-column: 8 / -1;
		grid-row: 2;
		justify-self: start;
		align-self: start;
	}

	.site-footer__meta:not(:has(.site-footer__inquiry--talent)) .site-footer__inquiry--general {
		grid-column: var(--layout-content-start) / span var(--layout-content-span);
	}

	.site-footer__meta:not(:has(.site-footer__inquiry--general)) .site-footer__inquiry--talent {
		grid-column: 8 / -1;
	}

	.site-footer__meta:not(:has(.site-footer__address)) .site-footer__inquiry--general,
	.site-footer__meta:not(:has(.site-footer__address)) .site-footer__inquiry--talent {
		grid-row: 1;
	}

}
