/*
 * Inhaltsseiten (Vorlage „Seite mit Kopfbild“): Seitenkopf mit Foto, Sprungleiste, Abschnitte.
 * Festivalseite „Das Treffen“: Preistafel, Ablauf, Angebot, Camping und Anreise, Fotos nach Jahrgängen.
 * Gemeinsame Bausteine (Sternliste, Pfeil-Link, Motto, Schluss) stehen in uscd.css.
 */

:root {
	--uscd-sprung-h: 3.4rem;
	--uscd-winkel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}

@media (prefers-reduced-motion: no-preference) {
	html:has(.uscd-sprungleiste) {
		scroll-behavior: smooth;
	}
}

.uscd-seite > .wp-block-post-content > * {
	margin-block: 0;
}

.uscd-seite > .wp-block-post-content > .alignfull:not(.wp-block-cover) {
	padding-inline: var(--uscd-rand);
}

/* Sprungziele landen unter der angedockten Sprungleiste */
.uscd-seite [id] {
	scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--uscd-sprung-h) + 1.25rem);
}

.uscd-seite :where(.uscd-eintritt-abschnitt, .uscd-ablauf, .uscd-angebot, .uscd-unterwegs, .uscd-fotos, .uscd-abschnitt) {
	padding-block: calc(var(--uscd-abschnitt) * 0.85);
}

.uscd-seite :where(.uscd-eintritt-abschnitt, .uscd-ablauf, .uscd-angebot, .uscd-unterwegs, .uscd-fotos, .uscd-abschnitt) h2 {
	margin-top: 0;
}

/* Einleitungen direkt im Abschnitt: links auf der Inhaltskante statt mittig in der 78rem-Spalte */
.uscd-seite .alignfull > .uscd-einleitung {
	margin-left: max(0px, (100% - 78rem) / 2) !important;
	margin-right: auto !important;
}

.uscd-hinweis {
	margin-top: 1.5rem !important;
	color: var(--uscd-stahl);
	font-size: 1.0625rem;
}

/* Seitenkopf: echtes Treffen-Foto, Text links unten wie im Hero der Startseite, aber ohne Chrom */
.uscd-seitenkopf.wp-block-cover {
	min-height: clamp(30rem, 64svh, 46rem);
	padding: 8.5rem var(--uscd-rand) clamp(2.25rem, 1.5rem + 2.5vw, 3.75rem);
	align-items: flex-end;
}

.uscd-seitenkopf .wp-block-cover__background {
	opacity: 1 !important;
	background:
		linear-gradient(0deg, rgba(8, 26, 45, 0.94) 0%, rgba(8, 26, 45, 0.62) 34%, rgba(8, 26, 45, 0.12) 68%, rgba(8, 26, 45, 0) 100%),
		linear-gradient(90deg, rgba(8, 26, 45, 0.62) 0%, rgba(8, 26, 45, 0.18) 55%, rgba(8, 26, 45, 0) 78%) !important;
}

/* Volle Breite, damit der Text auf der Inhaltskante sitzen kann (WordPress setzt sonst „auto“) */
.uscd-seitenkopf.wp-block-cover .wp-block-cover__inner-container {
	width: 100% !important;
}

/* Text auf der Inhaltskante der Abschnitte darunter (78rem-Spalte) */
.uscd-seitenkopf__text {
	max-width: 48rem;
	margin-left: max(0px, (100% - 78rem) / 2) !important;
}

.uscd-seitenkopf__titel.wp-block-heading {
	margin: 0;
	font-size: clamp(2.9rem, 1.5rem + 5.2vw, 5.75rem);
	font-weight: 700;
	line-height: 0.92;
	letter-spacing: -0.005em;
	text-transform: uppercase;
	color: #fff;
}

.uscd-seitenkopf__auflage {
	gap: 0 0.5em;
	margin: 1rem 0 0 !important;
	font-family: var(--uscd-oswald);
	font-weight: 500;
	font-size: clamp(1rem, 0.88rem + 0.5vw, 1.25rem);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--uscd-orange);
}

.uscd-seitenkopf__auflage > p {
	margin: 0 !important;
}

/* Trennpunkt nur, solange beide Teile in einer Zeile stehen (auf dem Handy zwei Zeilen ohne Punkt) */
.uscd-seitenkopf__auflage > p + p::before {
	content: "·";
	margin-right: 0.5em;
}

.uscd-seitenkopf__termin {
	margin: 0.35rem 0 0 !important;
	font-size: clamp(1.2rem, 1rem + 0.75vw, 1.6rem);
	color: #fff;
}

.uscd-seitenkopf__termin strong {
	font-weight: 700;
}

.uscd-seitenkopf__einleitung {
	margin: 1.1rem 0 0 !important;
	max-width: 36em;
	color: rgba(255, 255, 255, 0.88);
}

/* Sprungleiste: klebt oben, die Fahne zeigt den Abschnitt, in dem man liest (assets/js/sprungleiste.js) */
.uscd-sprungleiste {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 15;
	border-bottom: 1px solid rgba(169, 187, 208, 0.18);
	transition: box-shadow 0.25s ease-out;
}

.uscd-sprungleiste.ist-angedockt {
	box-shadow: 0 12px 26px -14px rgba(0, 0, 0, 0.6);
}

.uscd-sprungleiste__liste {
	position: relative;
	display: flex;
	gap: clamp(1.4rem, 0.6rem + 2.2vw, 2.75rem);
	margin: 0 auto !important;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
}

.uscd-sprungleiste__liste::-webkit-scrollbar {
	display: none;
}

.uscd-sprungleiste__liste > li {
	flex: none;
	margin: 0;
}

.uscd-sprungleiste__liste a {
	display: block;
	height: var(--uscd-sprung-h);
	line-height: var(--uscd-sprung-h);
	font-family: var(--uscd-oswald);
	font-weight: 500;
	font-size: 1.125rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--uscd-stahl-hell);
	transition: color 0.2s ease-out;
}

.uscd-sprungleiste__liste a[aria-current] {
	color: #fff;
}

@media (hover: hover) {
	.uscd-sprungleiste__liste a:hover {
		color: #fff;
	}
}

/* Der Fokusring bleibt innerhalb der wischbaren Leiste sichtbar */
.uscd-sprungleiste__liste a:focus-visible {
	outline-offset: -3px;
}

/* Die Fahne ist 100px breit und wird per transform auf Lage und Breite des Eintrags gebracht */
.uscd-sprungleiste__liste > .uscd-sprungleiste__fahne {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100px;
	height: 3px;
	transform-origin: 0 0;
	background: var(--uscd-orange);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease-out;
}

.uscd-sprungleiste.hat-fahne .uscd-sprungleiste__fahne {
	opacity: 1;
}

.uscd-sprungleiste.ist-bereit .uscd-sprungleiste__fahne {
	transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease-out;
}

/* Textseiten (Standardvorlage page.html, z. B. Datenschutz) und Rechtsseiten des Shops (Vorlage „Rechtstext“).
   Eigene Inhalte stehen in Abschnitten (alignfull); eingefügter Fließtext (Rechtstexte-Anbieter, Shortcodes) steht
   ohne Abschnitt und bekommt hier Lesebreite auf der Inhaltskante. */
/* Die Vorlage bekommt von Twenty Twenty-Five Seitenpolster; die Lesespalte rechnet ihre Kante selbst (siehe unten) */
:is(.uscd-rechtsseite, .uscd-textseite) .wp-block-post-content.has-global-padding {
	padding-inline: 0;
}

/* … und volle Abschnitte brauchen dann auch keinen negativen Rand mehr, um das Polster zu überbrücken */
:is(.uscd-rechtsseite, .uscd-textseite) .wp-block-post-content.has-global-padding > .alignfull {
	margin-inline: 0;
}

/* Standardvorlage: Abstand zu Kopf und Fuß am Inhalt selbst, weil Shortcodes zuerst <style> ausgeben können
   und :first-child dann nicht greift */
.uscd-textseite .wp-block-post-content {
	padding-block: calc(var(--uscd-abschnitt) * 0.6) calc(var(--uscd-abschnitt) * 0.85);
}

.uscd-textseite .wp-block-post-content > :not(.alignfull):first-child {
	margin-top: 0 !important;
}

.uscd-textseite .wp-block-post-content > :not(.alignfull):last-child {
	margin-bottom: 0 !important;
}

/* Lange Adressen im Fließtext (Datenschutz-Generator) brechen um, statt die Seite auf dem Handy zu verbreitern */
:is(.uscd-rechtsseite, .uscd-textseite) .wp-block-post-content a {
	overflow-wrap: anywhere;
}

:is(.uscd-rechtsseite, .uscd-textseite) .wp-block-post-content > :not(.alignfull) {
	max-width: 46rem;
	margin-left: max(var(--uscd-rand), (100% - 78rem) / 2) !important;
	margin-right: var(--uscd-rand) !important;
}

:is(.uscd-rechtsseite, .uscd-textseite) .wp-block-post-content > :not(.alignfull):first-child {
	margin-top: calc(var(--uscd-abschnitt) * 0.6) !important;
}

:is(.uscd-rechtsseite, .uscd-textseite) .wp-block-post-content > :not(.alignfull):last-child {
	margin-bottom: calc(var(--uscd-abschnitt) * 0.85) !important;
}

:is(.uscd-rechtsseite, .uscd-textseite) .wp-block-post-content > :not(.alignfull) + :not(.alignfull) {
	margin-top: 1rem;
}

/* Zwischentitel: Die Abstandsregel darüber (zwei :not) wiegt schwerer als h2:not(…), deshalb hier mit „+“ */
:is(.uscd-rechtsseite, .uscd-textseite) .wp-block-post-content > h2:not(.alignfull),
:is(.uscd-rechtsseite, .uscd-textseite) .wp-block-post-content > :not(.alignfull) + h2:not(.alignfull) {
	margin-top: 2.75rem;
	font-size: clamp(1.4rem, 1.2rem + 0.8vw, 1.9rem);
}

:is(.uscd-rechtsseite, .uscd-textseite) .wp-block-post-content > h3:not(.alignfull),
:is(.uscd-rechtsseite, .uscd-textseite) .wp-block-post-content > :not(.alignfull) + h3:not(.alignfull) {
	margin-top: 1.75rem;
	font-size: 1.3rem;
	letter-spacing: 0.03em;
}

.uscd-seitenkopf__einleitung .wp-block-post-excerpt__excerpt {
	margin: 0;
}

/* Eintritt: Preistafel */
.uscd-eintritt-abschnitt h2 {
	margin-bottom: clamp(1.5rem, 1rem + 1.5vw, 2.5rem);
}

.uscd-eintritt__raster {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(2rem, 1.5rem + 1.5vw, 3rem);
}

.uscd-eintritt__raster > * {
	margin: 0 !important;
}

/* Preistafel: nachtblaue Tafel mit schlichten Ziffern, die Rechenzeichen sitzen auf den Trennlinien (10 € + 10 € + frei = 20 €) */
.uscd-preistafel {
	--uscd-preis-gross: clamp(2.4rem, 1rem + 3.8vw, 4.75rem);
	--uscd-preis-zeile: 1.1;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 3px solid var(--uscd-rot);
	overflow: hidden;
}

.uscd-preis {
	position: relative;
	margin: 0 !important;
	padding: clamp(1.1rem, 0.9rem + 0.8vw, 1.6rem) clamp(1rem, 0.4rem + 1.6vw, 2.25rem) clamp(1.2rem, 1rem + 0.8vw, 1.7rem);
}

.uscd-preis + .uscd-preis {
	border-left: 1px solid rgba(169, 187, 208, 0.22);
}

/* Die Summe steht eine Stufe heller, auf Navy */
.uscd-preis--wochenende {
	background: var(--uscd-navy);
}

.uscd-preis + .uscd-preis::before {
	content: "+";
	position: absolute;
	left: 0;
	top: calc(clamp(1.1rem, 0.9rem + 0.8vw, 1.6rem) + 2.05rem + var(--uscd-preis-gross) * var(--uscd-preis-zeile) / 2);
	z-index: 1;
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	transform: translate(-50%, -50%);
	border: 1px solid rgba(169, 187, 208, 0.45);
	border-radius: 999px;
	background: var(--uscd-nacht);
	font-family: var(--uscd-oswald);
	font-weight: 600;
	font-size: 1.6rem;
	line-height: 1;
	color: #fff;
}

.uscd-preis + .uscd-preis--wochenende::before {
	content: "=";
}

.uscd-preis__tag {
	margin: 0 0 0.6rem !important;
	font-family: var(--uscd-oswald);
	font-weight: 600;
	font-size: 1.175rem;
	line-height: 1.25;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #fff;
}

.uscd-preis__betrag {
	margin: 0 !important;
	font-family: var(--uscd-oswald);
	font-weight: 600;
	font-size: var(--uscd-preis-gross);
	line-height: var(--uscd-preis-zeile);
	color: var(--uscd-orange);
	font-variant-numeric: tabular-nums;
	text-transform: uppercase;
	white-space: nowrap;
}

.uscd-preis__info {
	margin: 0.55rem 0 0 !important;
	font-size: 1.0625rem;
	line-height: 1.35;
	color: var(--uscd-stahl-hell);
}

.uscd-regeln {
	margin-top: 0 !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 28rem), 1fr));
}

/* Ablauf: Freitag bis Sonntag */
.uscd-ablauf .uscd-einleitung {
	margin-top: 1rem !important;
}

.uscd-tage {
	margin: clamp(2rem, 1.5rem + 1.5vw, 3rem) auto 0 !important;
	padding: 0;
	list-style: none;
	border-top: 2px solid var(--uscd-navy);
}

.uscd-tag {
	display: grid;
	grid-template-columns: minmax(11rem, 3fr) minmax(0, 8fr) minmax(4.5rem, 1fr);
	gap: 0.4rem 2rem;
	align-items: baseline;
	margin: 0 !important;
	padding: 1.35rem 0;
	border-bottom: 1px solid var(--uscd-linie);
}

.uscd-tag > * {
	margin: 0 !important;
}

.uscd-tag__datum.wp-block-heading {
	font-size: 1.3rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.uscd-tag__text {
	max-width: 42em;
}

.uscd-tag__preis {
	font-family: var(--uscd-oswald);
	font-weight: 600;
	font-size: 1.5rem;
	line-height: 1.2;
	text-align: right;
	text-transform: uppercase;
	color: var(--uscd-navy);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

/* Was erwartet dich? */
.uscd-angebot__spalten {
	gap: clamp(2rem, 1rem + 4vw, 5rem);
	align-items: flex-start;
}

.uscd-angebot__text .uscd-einleitung {
	margin-top: 1rem !important;
}

.uscd-angebot__liste {
	margin-top: 2rem !important;
}

.uscd-angebot__bild {
	align-self: flex-start; /* sonst streckt Core die Spalte auf volle Höhe und sie kann nicht kleben */
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--uscd-sprung-h) + 2rem);
}

.uscd-angebot__bild figure {
	margin: 0;
}

.uscd-angebot__bild img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 50% 75%;
	border-radius: 4px;
	box-shadow: var(--uscd-schatten);
}

.uscd-angebot__bild figcaption {
	margin-top: 0.7rem;
}

/* Camping und Anreise */
.uscd-unterwegs__raster {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 3rem clamp(2rem, 1rem + 4vw, 5rem);
}

.uscd-unterwegs__teil {
	margin: 0 !important;
}

.uscd-unterwegs__teil h2 {
	font-size: clamp(2rem, 1.4rem + 1.8vw, 2.9rem);
	margin-bottom: 1.25rem;
}

.uscd-unterwegs__teil p {
	max-width: 36em;
}

.uscd-unterwegs__teil .uscd-pfeil-link {
	margin-top: 1.5rem !important;
	font-size: 1.125rem;
}

.uscd-unterwegs .uscd-gruppen {
	margin-top: clamp(2.5rem, 2rem + 2vw, 3.5rem) !important;
	padding-top: 2rem;
	border-top: 2px solid var(--uscd-navy);
}

/* Wie war es bisher? Fotos nach Jahrgängen */
.uscd-fotos {
	color: #fff;
}

.uscd-fotos h2 {
	margin: 0;
	color: #fff;
}

.uscd-fotos__kopf {
	gap: 1rem 2rem;
}

.uscd-fotos .uscd-einleitung {
	margin-top: 1rem !important;
	color: var(--uscd-stahl-hell);
}

.uscd-jahrgang__kopf {
	gap: 0.6rem 1.1rem;
	margin-top: clamp(2.75rem, 2rem + 2.4vw, 4.5rem) !important;
	margin-bottom: 1.25rem !important;
}

.uscd-kennzeichen {
	margin: 0 !important;
	padding: 0.2rem 0.75rem;
	font-family: var(--uscd-oswald);
	font-weight: 600;
	font-size: 1.5rem;
	line-height: 1.6rem;
	letter-spacing: 0.04em;
	color: var(--uscd-navy);
	background: #fff;
	border: 2px solid var(--uscd-navy);
	border-radius: 4px;
	font-variant-numeric: tabular-nums;
}

.uscd-jahrgang__titel.wp-block-heading {
	margin: 0;
	font-size: clamp(1.35rem, 1.1rem + 0.9vw, 1.8rem);
	text-transform: uppercase;
	color: #fff;
}

/* Fotonachweis neben dem Titel, klein wie eine Bildunterschrift */
.uscd-jahrgang__quelle {
	margin: 0 !important;
	font-size: 0.9375rem;
	color: var(--uscd-stahl-hell);
}

/* Galerie als gleichmäßiges Raster aus 3:2-Kacheln, Reihe für Reihe (groß zeigt die Lightbox das ganze Foto) */
.uscd-galerie.wp-block-gallery.has-nested-images {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.75rem;
	margin-block: 0 !important;
}

.uscd-galerie.wp-block-gallery.has-nested-images figure.wp-block-image {
	width: auto !important;
	margin: 0 !important;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	border-radius: 4px;
	background: var(--uscd-nacht);
}

/* Auftaktbild 2 × 2, damit die Anzahl im Raster ohne Rest aufgeht */
.uscd-galerie--auftakt.wp-block-gallery.has-nested-images figure.wp-block-image:first-child {
	grid-column: span 2;
	grid-row: span 2;
	aspect-ratio: auto;
}

.uscd-galerie.wp-block-gallery.has-nested-images figure.wp-block-image img {
	display: block;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	object-position: 50% 40%;
	border-radius: 4px;
	transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.uscd-galerie.wp-block-gallery.has-nested-images figure.wp-block-image:hover img {
	transform: scale(1.04);
}

.uscd-mehr-fotos > summary {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	padding: calc(0.85em - 2px) calc(1.6em - 2px);
	list-style: none;
	cursor: pointer;
	border: 2px solid #fff;
	border-radius: 4px;
	font-family: var(--uscd-oswald);
	font-weight: 600;
	font-size: 1.125rem;
	line-height: 1.2;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #fff;
	transition: background-color 0.2s ease-out, color 0.2s ease-out;
}

.uscd-mehr-fotos > summary::-webkit-details-marker {
	display: none;
}

.uscd-mehr-fotos > summary::after {
	content: "";
	width: 1em;
	height: 1em;
	background: currentColor;
	-webkit-mask: var(--uscd-winkel) center / contain no-repeat;
	mask: var(--uscd-winkel) center / contain no-repeat;
	transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.uscd-mehr-fotos[open] > summary::after {
	transform: rotate(180deg);
}

.uscd-mehr-fotos > summary:focus-visible {
	background: #fff;
	color: var(--uscd-nacht);
}

@media (hover: hover) {
	.uscd-mehr-fotos > summary:hover {
		background: #fff;
		color: var(--uscd-nacht);
	}
}

.uscd-mehr-fotos[open] > summary {
	margin-bottom: 0.75rem;
}

.uscd-mehr-fotos {
	margin-top: 0.75rem !important;
}

/* Schluss der Inhaltsseite: Kontakt statt Termin */
.uscd-schluss__text {
	margin: 0 !important;
}

.uscd-schluss__text p {
	margin: 0.9rem 0 0 !important;
	max-width: 34em;
	color: #fff;
}

/* Links auf Rot und im Seitenkopf bleiben weiß */
.uscd-schluss__text a,
.uscd-seitenkopf__einleitung a {
	color: #fff;
	text-decoration-color: rgba(255, 255, 255, 0.65);
}

.uscd-seitenkopf__einleitung a {
	text-decoration-color: var(--uscd-orange);
}

.uscd-schluss__text a:hover,
.uscd-seitenkopf__einleitung a:hover {
	color: #fff;
	text-decoration-thickness: 2px;
}

/* Vereinsseite: Teamfoto im Querformat, Vereinsleben und Schritte ohne Preisspalte, Beitrag als kleine Preistafel */
.uscd-verein-wer .uscd-angebot__bild img {
	aspect-ratio: 3 / 2;
	object-position: 50% 45%;
}

.uscd-tage--ohne-preis .uscd-tag {
	grid-template-columns: minmax(11rem, 3fr) minmax(0, 9fr);
}

.uscd-schritte {
	counter-reset: schritt;
}

.uscd-schritte > .uscd-tag {
	counter-increment: schritt;
}

.uscd-schritte .uscd-tag__datum::before {
	content: counter(schritt) ".";
	display: inline-block;
	min-width: 1.3em;
	color: var(--uscd-stahl);
	font-variant-numeric: tabular-nums;
}

.uscd-beitrag {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(2rem, 1.5rem + 1.5vw, 3rem);
	align-items: start;
	margin-top: clamp(2.5rem, 2rem + 2vw, 3.5rem) !important;
}

.uscd-beitrag > * {
	margin: 0 !important;
}

.uscd-preistafel--zwei {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.uscd-preistafel--zwei .uscd-preis + .uscd-preis::before {
	content: none;
}

/* Preise noch offen („Eintrittspreise 2027 folgen“): eine Tafel über die ganze Breite statt der Rechnung */
.uscd-preistafel--offen {
	grid-template-columns: minmax(0, 1fr);
}

.uscd-preistafel a {
	color: #fff;
	text-decoration-color: var(--uscd-orange);
}

.uscd-verein-knoepfe {
	gap: 0.75rem;
	margin-top: clamp(2rem, 1.5rem + 1.5vw, 2.75rem) !important;
}

.uscd-verein-garage .uscd-mitglieder {
	margin-top: clamp(2rem, 1.5rem + 1.5vw, 3rem) !important;
}

.uscd-satzung {
	margin-top: clamp(1.75rem, 1.25rem + 1.5vw, 2.5rem) !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 28rem), 1fr));
}

.uscd-unterlagen {
	gap: 1rem 2.5rem;
	margin-top: 2rem !important;
}

/* Tablet */
@media (max-width: 960px) {
	.uscd-angebot__bild {
		position: static;
	}

	.uscd-angebot__bild img {
		aspect-ratio: 3 / 2;
	}

	.uscd-unterwegs__raster,
	.uscd-beitrag {
		grid-template-columns: minmax(0, 1fr);
	}

	.uscd-tag {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.uscd-tage--ohne-preis .uscd-tag {
		grid-template-columns: minmax(0, 1fr);
	}

	.uscd-tag__text {
		grid-column: 1 / -1;
		grid-row: 2;
	}
}

/* Handy */
@media (max-width: 600px) {
	:root {
		--uscd-sprung-h: 3.1rem;
	}

	.uscd-seitenkopf.wp-block-cover {
		min-height: clamp(26rem, 76svh, 36rem);
		padding-top: 6rem;
		padding-bottom: 1.75rem;
	}

	/* Die Leiste wischt waagrecht; rechts läuft sie aus, damit man sieht, dass es weitergeht */
	.uscd-sprungleiste__liste {
		padding-right: 2.5rem;
		-webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 2.5rem), transparent);
		mask-image: linear-gradient(90deg, #000 calc(100% - 2.5rem), transparent);
	}

	.uscd-sprungleiste__liste a {
		font-size: 1.0625rem;
	}

	.uscd-seitenkopf__auflage {
		flex-direction: column;
		align-items: flex-start !important;
	}

	.uscd-seitenkopf__auflage > p + p::before {
		content: none;
	}

	/* Auf dem Handy eine senkrechte Rechnung: Freitag + Samstag + Sonntag = Wochenende, je Zeile Tag, Preis, Hinweis */
	.uscd-preistafel {
		--uscd-preis-gross: 2rem;
		grid-template-columns: minmax(0, 1fr);
	}

	.uscd-preis {
		display: grid;
		grid-template-columns: 6.6rem 5rem minmax(0, 1fr);
		align-items: center;
		column-gap: 0.75rem;
		padding: 0.8rem 1rem;
	}

	.uscd-preis > * {
		margin: 0 !important;
	}

	.uscd-preis + .uscd-preis {
		border-left: 0;
		border-top: 1px solid rgba(169, 187, 208, 0.22);
	}

	/* Rechenzeichen auf der Trennlinie, über der Preisspalte */
	.uscd-preis + .uscd-preis::before {
		left: calc(1rem + 6.6rem + 0.75rem + 1.25rem);
		top: 0;
		width: 1.9rem;
		height: 1.9rem;
		font-size: 1.35rem;
	}

	.uscd-preis__tag {
		font-size: 1rem;
		letter-spacing: 0.06em;
	}

	.uscd-preis__info {
		font-size: 0.9375rem;
	}

	.uscd-preistafel--offen .uscd-preis {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 0.4rem;
		padding: 1rem 1.1rem 1.15rem;
	}

	.uscd-tag__preis {
		font-size: 1.35rem;
	}

	.uscd-mehr-fotos > summary {
		width: 100%;
		justify-content: center;
	}

	.uscd-galerie.wp-block-gallery.has-nested-images {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.5rem;
	}
}

/*
 * Presseseite und Kontaktseite: Pressetext mit klebenden Eckdaten, Steckbrief, Zähltafel, Chronik,
 * Flyer, Trailer im Hochformat, Berichte mit Kennzeichen-Badge, Formular mit direkten Kanälen, Impressum.
 */
.uscd-presse__spalten {
	gap: clamp(2rem, 1rem + 4vw, 5rem);
	align-items: flex-start;
	margin-top: clamp(2rem, 1.5rem + 1.5vw, 3rem) !important;
	margin-bottom: 0 !important;
}

.uscd-abschnitt > .uscd-einleitung,
.uscd-presse__spalten h2 + .uscd-einleitung {
	margin-top: 1rem !important;
}

.uscd-presse__spalten > .wp-block-column > :first-child {
	margin-top: 0;
}

.uscd-presse-flyer .uscd-presse__spalten,
.uscd-presse-video .uscd-presse__spalten {
	margin-top: 0 !important;
}

/* Core setzt align-items der Spalten mit !important; align-self an den Spalten greift trotzdem */
.uscd-presse-flyer .wp-block-column,
.uscd-presse-video .wp-block-column {
	align-self: center;
}

/* Eckdaten neben dem Pressetext und die direkten Kanäle neben dem Formular kleben unter der Sprungleiste */
.uscd-presse__eckdaten,
.uscd-kontakt__direkt {
	align-self: flex-start;
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--uscd-sprung-h) + 2rem);
}

.uscd-presse__eckdaten-titel.wp-block-heading {
	margin: 0 0 1rem;
	font-size: 1.3rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.uscd-presse__knoepfe {
	gap: 0.75rem;
	margin-top: 1.75rem !important;
}

/* Steckbrief: Tabelle aus Feldname und Wert wie das Datenblatt der Fahrzeugseite */
.uscd-steckbrief.wp-block-table {
	margin: 0;
	overflow: visible;
}

.uscd-steckbrief table {
	width: 100%;
	border-collapse: collapse;
	border-top: 2px solid var(--uscd-navy);
}

.uscd-steckbrief td {
	padding: 0.8rem 0;
	border: 0;
	border-bottom: 1px solid var(--uscd-linie);
	vertical-align: baseline;
	overflow-wrap: anywhere;
}

.uscd-steckbrief td:first-child {
	width: 38%;
	padding-right: 1rem;
	font-family: var(--uscd-oswald);
	font-weight: 500;
	font-size: 1rem;
	line-height: 1.3;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--uscd-stahl);
	overflow-wrap: normal;
	hyphens: auto;
}

.uscd-steckbrief td + td {
	font-family: var(--uscd-oswald);
	font-weight: 500;
	font-size: 1.2rem;
	line-height: 1.35;
	letter-spacing: 0.02em;
	color: var(--uscd-navy);
	font-variant-numeric: tabular-nums;
}

.uscd-steckbrief td a {
	color: var(--uscd-navy);
	text-decoration-color: var(--uscd-rot);
	text-decoration-thickness: 2px;
}

.uscd-steckbrief td a:hover {
	color: var(--uscd-rot-dunkel);
}

/* Variante Text (Impressum): Werte in Lato, damit Anschrift und Namen ruhig lesbar bleiben.
   Steht direkt im Abschnitt, also links auf der Inhaltskante statt mittig (wie die Einleitungen). */
.uscd-steckbrief--text {
	max-width: 52rem;
	margin-top: clamp(1.75rem, 1.25rem + 1.5vw, 2.5rem) !important;
}

.uscd-seite .alignfull > .uscd-steckbrief--text {
	margin-left: max(0px, (100% - 78rem) / 2) !important;
	margin-right: auto !important;
}

.uscd-steckbrief--text td:first-child {
	width: 34%;
}

.uscd-steckbrief--text td + td {
	font-family: inherit;
	font-weight: 400;
	font-size: var(--wp--preset--font-size--normal);
	line-height: 1.55;
	letter-spacing: 0;
	color: var(--wp--preset--color--tinte);
}

.uscd-steckbrief--text td a {
	color: var(--uscd-rot-dunkel);
	text-decoration-color: currentColor;
	text-decoration-thickness: 1px;
}

/* Pressetext: gesetzt wie eine Pressemitteilung, Überschrift bis 40em, Fließtext 35em */
.uscd-pressetext {
	margin: 0;
}

.uscd-pressetext > * {
	max-width: 40em;
}

/* Fließtext etwa 70 Zeichen je Zeile, der größere Vorspann entsprechend schmaler */
.uscd-pressetext > p {
	max-width: 35em;
}

.uscd-pressetext > .uscd-pressetext__vorspann {
	max-width: 30em;
}

.uscd-pressetext__titel.wp-block-heading {
	margin: 0;
	font-size: clamp(1.6rem, 1.2rem + 1.3vw, 2.35rem);
	line-height: 1.1;
	text-transform: uppercase;
}

.uscd-pressetext__vorspann {
	margin: 1rem 0 0 !important;
	font-size: var(--wp--preset--font-size--gross);
	line-height: 1.5;
	color: var(--uscd-navy);
}

.uscd-pressetext > p {
	margin: 1rem 0 0;
}

.uscd-pressetext__vorspann + p {
	margin-top: 1.5rem !important;
	padding-top: 1.5rem;
	border-top: 1px solid var(--uscd-linie);
}

.uscd-pressetext h4.wp-block-heading {
	margin: 2.1rem 0 0;
	font-size: 1.2rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.uscd-pressetext h4 + p {
	margin-top: 0.45rem;
}

.uscd-pressetext__kontakt {
	margin-top: 2.25rem !important;
	padding-top: 1.1rem;
	border-top: 2px solid var(--uscd-navy);
	font-size: 1.0625rem;
	color: var(--uscd-stahl);
}

.uscd-pressetext__kontakt strong {
	color: var(--wp--preset--color--tinte);
}

/* Wie groß ist das Treffen? Zähltafel mit hochzählenden Ziffern wie auf der Startseite, darunter die Chronik */
.uscd-zaehltafel.uscd-zaehlwerk {
	margin-top: clamp(2rem, 1.5rem + 1.5vw, 3rem) !important;
	padding: 0;
	overflow: hidden;
}

.uscd-zaehltafel .uscd-zaehler,
.uscd-zaehltafel .uscd-zaehler:first-child {
	padding: clamp(1.1rem, 0.9rem + 0.8vw, 1.6rem) clamp(1rem, 0.4rem + 1.6vw, 2.25rem) clamp(1.2rem, 1rem + 0.8vw, 1.7rem);
}

/* Die Erwartung für 2027 steht eine Stufe heller, wie die Summe der Preistafel */
.uscd-zaehler--ziel {
	background: var(--uscd-navy);
}

.uscd-zaehltafel .uscd-zaehler__text {
	margin-top: 0.35rem !important;
	font-size: 1.0625rem;
}

.uscd-presse-chronik.uscd-strecke__etappen {
	margin-top: clamp(3rem, 2.25rem + 2.5vw, 4.5rem) !important;
}

/* Flyer: liegt leicht schräg wie ein Zettel auf dem Tisch und richtet sich beim Überfahren auf */
.uscd-presse-flyer__bild figure {
	max-width: 25rem;
	margin: 0 0 0 auto;
}

.uscd-presse-flyer__bild img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 2480 / 3508;
	border-radius: 4px;
	box-shadow: var(--uscd-schatten);
	transform: rotate(-1.75deg);
	transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}

.uscd-presse-flyer__bild figure:hover img,
.uscd-presse-flyer__bild figure:focus-within img {
	transform: rotate(0deg);
}

.uscd-presse-flyer__formate {
	margin-top: clamp(1.75rem, 1.25rem + 1.5vw, 2.5rem) !important;
	grid-template-columns: minmax(0, 1fr);
	max-width: 36rem;
	margin-left: 0 !important;
}

/* Trailer im Hochformat auf Navy */
.uscd-presse-video h2 {
	color: #fff;
}

.uscd-presse-video .uscd-einleitung {
	margin-top: 1rem !important;
	color: var(--uscd-stahl-hell);
}

.uscd-presse-video .uscd-pfeil-link {
	margin-top: 2rem !important;
}

.uscd-presse-video .uscd-pfeil-link + .uscd-pfeil-link {
	margin-top: 0.85rem !important;
}

.uscd-presse-video__mehr {
	margin: 1.5rem 0 0 !important;
	max-width: 34em;
	color: var(--uscd-stahl-hell);
}

.uscd-presse-video__mehr a {
	color: #fff;
	text-decoration-color: var(--uscd-orange);
}

.uscd-presse-video__mehr a:hover {
	color: var(--uscd-orange);
}

.uscd-trailer.wp-block-video {
	max-width: 20rem;
	margin: 0 0 0 auto;
}

/* Aftermovie und Trailer nebeneinander, rechtsbündig in der Filmspalte */
.uscd-trailer-paar {
	display: flex;
	justify-content: flex-end;
	align-items: flex-start;
	gap: clamp(1rem, 0.5rem + 1.5vw, 1.75rem);
}

.uscd-trailer-paar .uscd-trailer.wp-block-video {
	flex: 1 1 0;
	min-width: 0;
	max-width: 16rem;
	margin: 0 !important;
}

.uscd-trailer video {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 9 / 16;
	border-radius: 4px;
	background: var(--uscd-nacht);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3), 0 16px 34px -10px rgba(0, 0, 0, 0.6);
}

.uscd-trailer figcaption {
	margin-top: 0.7rem;
	color: var(--uscd-stahl-hell);
}

/* Was wurde schon berichtet? Ablauf-Liste mit Jahr, Medium, Text und Link */
.uscd-berichte .uscd-tag {
	grid-template-columns: minmax(16rem, 4fr) minmax(0, 7fr) 9.5rem; /* feste Linkspalte, damit die Texte aller Zeilen bündig stehen */
	align-items: center;
}

.uscd-bericht__kopf {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.9rem;
}

.uscd-bericht__kopf > * {
	margin: 0 !important;
}

.uscd-bericht__kopf .uscd-kennzeichen {
	padding: 0.1rem 0.6rem;
	font-size: 1.2rem;
	line-height: 1.4rem;
}

.uscd-bericht__link {
	justify-self: end;
	font-size: 1.125rem;
	white-space: nowrap;
}

/* Mehrere Links in einer Zeile (OTZ: Bericht, Bilder, Ankündigung) stehen rechts untereinander */
.uscd-bericht__links {
	display: grid;
	gap: 0.45rem;
	justify-items: end;
	margin: 0 !important;
}

.uscd-bericht__links > * {
	margin: 0 !important;
}

/* Kontakt: Formular neben den direkten Kanälen */
.uscd-kontakt__datenschutz {
	max-width: 36rem;
}

.uscd-kontakt__direkt .uscd-hinweis {
	margin-top: 1.25rem !important;
}

.uscd-impressum .uscd-unterlagen {
	margin-top: clamp(1.75rem, 1.25rem + 1.5vw, 2.5rem) !important;
}

@media (prefers-reduced-motion: reduce) {
	.uscd-presse-flyer__bild img {
		transform: none;
	}
}

/* Tablet */
@media (max-width: 960px) {
	.uscd-presse__eckdaten,
	.uscd-kontakt__direkt {
		position: static;
	}

	.uscd-presse-flyer__bild figure,
	.uscd-trailer.wp-block-video {
		margin-left: 0;
	}

	.uscd-trailer-paar {
		justify-content: flex-start;
	}

	.uscd-zaehltafel .uscd-zaehler:nth-child(3) {
		border-left: 0;
	}

	.uscd-zaehltafel .uscd-zaehler:nth-child(n + 3) {
		border-top: 1px solid rgba(169, 187, 208, 0.22);
	}

	.uscd-zaehltafel .uscd-zaehlwerk__reihe {
		row-gap: 0;
	}

	.uscd-berichte .uscd-tag {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.uscd-berichte .uscd-tag__text {
		grid-column: 1 / -1;
		grid-row: 2;
	}
}

/* Handy */
@media (max-width: 600px) {
	.uscd-zaehltafel .uscd-zaehler,
	.uscd-zaehltafel .uscd-zaehler:first-child {
		padding: 0.9rem 1rem 1rem;
	}

	.uscd-zaehltafel .uscd-zaehler__zahl {
		font-size: 2.4rem;
	}

	.uscd-zaehltafel .uscd-zaehler__text {
		font-size: 0.975rem;
	}

	.uscd-steckbrief td:first-child {
		width: 36%;
		font-size: 0.9375rem;
	}

	.uscd-steckbrief td + td {
		font-size: 1.125rem;
	}

	/* Impressum: Feldname über dem Wert, damit lange Bezeichnungen nicht quetschen */
	.uscd-steckbrief--text tr {
		display: grid;
		padding: 0.8rem 0;
		border-bottom: 1px solid var(--uscd-linie);
	}

	.uscd-steckbrief--text td {
		width: auto !important;
		padding: 0;
		border: 0;
	}

	.uscd-steckbrief--text td + td {
		margin-top: 0.3rem;
	}

	.uscd-presse-flyer__bild figure {
		max-width: 19rem;
	}

	.uscd-trailer.wp-block-video {
		max-width: 16rem;
	}

	.uscd-berichte .uscd-tag {
		grid-template-columns: minmax(0, 1fr);
	}

	.uscd-bericht__link,
	.uscd-bericht__links {
		justify-self: start;
		grid-column: 1 / -1;
		grid-row: 3;
	}

	/* Auf dem Handy nebeneinander statt untereinander */
	.uscd-bericht__links {
		display: flex;
		flex-wrap: wrap;
		gap: 0.5rem 1.75rem;
	}
}
