/* ============================================================
   Lucky Ones Casino — Stylesheet
   Aufbau: Tokens -> Schmalformat -> Reset -> Basis -> Hilfsmittel
           -> Bausteine (Kopf, Wegweiser, Abschnitte, Fuss)
   ============================================================ */

/* --- 1. Tokens ------------------------------------------------ */

:root {
	/* Farben */
	--t-root: #22201c;
	--t-flare: #bca262;
	--t-action-down: #ae8d4f;
	--t-back: #211f1b;
	--t-card: #2b2823;
	--t-script: #ffffff;
	--t-muted: #a09890;
	--t-border: #3a352f;
	--t-edge-hard: #554e45;
	--t-gradient-light: #999997;
	--t-fade-bottom: #fadeaa;
	--t-notice: #b91c1c;

	/* Abstaende */
	--g-2xs: 5px;
	--g-xs: 10px;
	--g-sm: 15px;
	--g-md: 25px;
	--g-lg: 40px;
	--g-xl: 60px;
	--g-2xl: 90px;
	--g-3xl: 140px;

	/* Geometrie — kantig, ohne Rundungen */
	--r-2xs: 0;
	--r-xs: 0;
	--r-sm: 0;
	--r-md: 0;
	--r-lg: 0;
	--r-xl: 0;
	--r-2xl: 0;
	--r-3xl: 0;
	--r-stadium: 0;
	--r-round-full: 50%;
	--b-fine: 1px;
	--b-medium: 2px;
	--b-thick: 4px;

	/* Schrift */
	--f-head: "DM Sans", "Segoe UI", system-ui, sans-serif;
	--f-base: "DM Sans", "Segoe UI", system-ui, sans-serif;
	--z-xxl: clamp(22px, 4.4vw, 36px);
	--z-display-2: clamp(19px, 2.6vw, 26px);
	--z-sub: clamp(17px, 1.8vw, 20px);
	--z-h4: 17px;
	--z-minor: 14px;
	--z-micro-head: 12px;
	--z-base: 14px;
	--z-small: 12px;
	--z-tiny: 11px;
	--l-close: 1.15;
	--l-base: 1.45;
	--l-relaxed: 1.6;
	--w-base: 400;
	--w-demi: 500;
	--w-heavy: 700;
	--e-packed: -0.01em;
	--e-normal: 0;
	--e-loose: 0.06em;

	/* Schatten */
	--d-2xs: none;
	--d-xs: none;
	--d-sm: 0 1px 0 rgba(0, 0, 0, 0.28);
	--d-md: 0 2px 0 rgba(0, 0, 0, 0.34);
	--d-lg: 0 4px 0 rgba(0, 0, 0, 0.4);
	--d-xl: 0 6px 0 rgba(0, 0, 0, 0.44);
	--d-2xl: 0 8px 0 rgba(0, 0, 0, 0.48);
	--d-3xl: 0 12px 0 rgba(0, 0, 0, 0.52);

	/* Bewegung */
	--t-quick: 152ms;
	--t-steady: 310ms;
	--t-gentle: 625ms;
	--x-settle: cubic-bezier(0.18, 0.9, 0.29, 0.98);
	--x-start: cubic-bezier(0.71, 0.02, 0.82, 0.1);
	--x-swing: cubic-bezier(0.6, 0.05, 0.43, 0.92);
	--x-spring: cubic-bezier(0.21, 1.05, 0.69, 1.35);

	/* Raster */
	--v-site: 1420px;
	--v-prose: 1420px;
	--v-brief: 540px;
	--v-pad-lg: 64px;
	--v-pad-md: 32px;
	--v-pad-sm: 20px;
	--h-tall: 58px;
	--h-size-mobile: 54px;

	/* abgeleitet */
	--v-shell: calc(var(--v-site) + 2 * var(--v-pad-lg));
	--v-clear: 112px;
}

/* --- 2. Schmalformat ------------------------------------------ */
/* Aufbau ist breitenzuerst gedacht, hier die engen Fenster. */

@media (max-width: 860px) {
	:root {
		--z-h4: 16px;
		--z-minor: 13px;
		--z-micro-head: 11px;
		--z-base: 14px;
		--z-small: 12px;
		--z-tiny: 10px;
		--v-clear: 96px;
	}
}

/* --- 3. Reset -------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body {
	overflow-x: clip;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--t-back);
	color: var(--t-script);
	font-family: var(--f-base);
	font-size: var(--z-base);
	font-weight: var(--w-base);
	line-height: var(--l-base);
}

img {
	max-width: 100%;
	border: 0;
}

ul,
ol {
	margin: 0;
	padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	overflow-wrap: anywhere;
	font-family: var(--f-head);
	letter-spacing: var(--e-packed);
	line-height: var(--l-close);
}

h1 {
	font-size: var(--z-xxl);
	font-weight: var(--w-heavy);
}

h2 {
	font-size: var(--z-display-2);
	font-weight: var(--w-heavy);
}

h3 {
	font-family: var(--f-base);
	font-size: var(--z-sub);
	font-weight: var(--w-heavy);
	letter-spacing: var(--e-normal);
}

h4 {
	font-family: var(--f-base);
	font-size: var(--z-h4);
	font-weight: var(--w-heavy);
	letter-spacing: var(--e-normal);
}

p {
	margin: 0;
}

a {
	color: inherit;
}

button {
	font: inherit;
	color: inherit;
}

:focus-visible {
	outline: var(--b-medium) solid var(--t-fade-bottom);
	outline-offset: 2px;
}

/* --- 4. Eigene Schrift ---------------------------------------- */

@font-face {
	font-family: "DM Sans";
	font-display: swap;
	font-style: normal;
	font-weight: 400;
	src: url("/look-plus/type/dmsans-400.woff2") format("woff2");
}

@font-face {
	font-family: "DM Sans";
	font-display: swap;
	font-style: normal;
	font-weight: 500;
	src: url("/look-plus/type/dmsans-500.woff2") format("woff2");
}

@font-face {
	font-family: "DM Sans";
	font-display: swap;
	font-style: normal;
	font-weight: 700;
	src: url("/look-plus/type/dmsans-700.woff2") format("woff2");
}

/* --- 5. Hilfsmittel ------------------------------------------- */

.skip-link {
	position: absolute;
	z-index: 400;
	inset-inline-start: var(--g-sm);
	padding: var(--g-xs) var(--g-sm);
	background: var(--t-fade-bottom);
	color: var(--t-root);
	font-weight: var(--w-heavy);
	text-decoration: none;
}

.skip-link:not(:focus) {
	top: -200px !important;
}

.skip-link:focus {
	top: var(--g-xs);
}

.sr-only {
	position: absolute;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	width: 1px;
	height: 1px;
	white-space: nowrap;
}

/* Gemeinsame Innenbreite aller Abschnitte. */
.rafter-body,
.gallery-body,
.pavilion-body,
.lattice-body,
.keystone-body,
.spread-body,
.portico-body,
.plinth-body,
.tile-body,
.grotto-body,
.joist-body,
.quayside-body,
.parapet-body,
.filigree-body,
.hearth-body {
	max-width: calc(var(--v-site) + 2 * var(--v-pad-lg));
	margin-inline: auto;
	padding-inline: var(--v-pad-lg);
	display: block;
}

@media (max-width: 1160px) {
	.rafter-body,
	.gallery-body,
	.pavilion-body,
	.lattice-body,
	.keystone-body,
	.spread-body,
	.portico-body,
	.plinth-body,
	.tile-body,
	.grotto-body,
	.joist-body,
	.quayside-body,
	.parapet-body,
	.filigree-body,
	.hearth-body {
		padding-inline: var(--v-pad-md);
	}
}

@media (max-width: 580px) {
	.rafter-body,
	.gallery-body,
	.pavilion-body,
	.lattice-body,
	.keystone-body,
	.spread-body,
	.portico-body,
	.plinth-body,
	.tile-body,
	.grotto-body,
	.joist-body,
	.quayside-body,
	.parapet-body,
	.filigree-body,
	.hearth-body {
		padding-inline: var(--v-pad-sm);
	}
}

/* Einblenden beim Scrollen — Richtung: von unten heranfahren. */
[data-cue] {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity var(--t-gentle) var(--x-settle), transform var(--t-gentle) var(--x-settle);
}

[data-cue].revealed {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	[data-cue] {
		opacity: 1;
		transform: none;
		transition: none;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* --- 6. Hinweisband 18+ --------------------------------------- */

.rg-band {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--g-2xs) var(--g-xs);
	padding: var(--g-2xs) var(--v-pad-sm);
	background: var(--t-notice);
	color: var(--t-script);
	font-size: var(--z-tiny);
	letter-spacing: var(--e-loose);
	text-align: center;
	animation: rg-fade var(--t-gentle) var(--x-settle) both;
}

.rg-band-flag {
	padding: 1px var(--g-2xs);
	border: var(--b-fine) solid var(--t-script);
	font-weight: var(--w-heavy);
}

.rg-band-link {
	color: var(--t-script);
	text-underline-offset: 3px;
}

.rg-band-link:hover {
	background: var(--t-notice);
	color: var(--t-fade-bottom);
}

@keyframes rg-fade {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@media (max-width: 620px) {
	.rg-band-say {
		display: none;
	}
}

/* --- 7. Kopf: schmales Band + Hauptzeile ---------------------- */

.cloister {
	position: sticky;
	z-index: 100;
	top: 0;
	background: var(--t-back);
	border-block-end: var(--b-fine) solid var(--t-border);
}

.cloister-strip {
	background: var(--t-root);
	border-block-end: var(--b-fine) solid var(--t-border);
}

.cloister-strip-hold {
	max-width: calc(var(--v-site) + 2 * var(--v-pad-lg));
	min-height: 34px;
	margin-inline: auto;
	padding-inline: var(--v-pad-lg);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--g-xs) var(--g-md);
	color: var(--t-muted);
	font-size: var(--z-tiny);
	letter-spacing: var(--e-loose);
}

.cloister-say {
	text-transform: uppercase;
}

.cloister-aux {
	display: flex;
	align-items: center;
	gap: var(--g-sm);
}

.cloister-aux-link {
	color: var(--t-muted);
	text-decoration: none;
	white-space: nowrap;
}

.cloister-aux-link:hover {
	background: var(--t-root);
	color: var(--t-fade-bottom);
}

.cloister-tier {
	background: var(--t-back);
	transition: background var(--t-steady) var(--x-settle);
}

.cloister-hold {
	max-width: calc(var(--v-site) + 2 * var(--v-pad-lg));
	min-height: 58px;
	margin-inline: auto;
	padding-block: var(--g-xs);
	padding-inline: var(--v-pad-lg);
	display: flex;
	align-items: center;
	gap: var(--g-md);
}

/* Schriftzug */
.cloister-crest {
	order: 2;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}

.cloister-crest-pic {
	display: block;
	width: auto;
	height: 56px;
	transition: height var(--t-steady) var(--x-settle);
}

.cloister.is-lean .cloister-crest-pic {
	height: 44px;
}

/* Wegweiser in der Zeile */
.cloister-map {
	order: 3;
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	gap: var(--g-sm);
	min-width: 0;
}

.cloister-roll {
	display: flex;
	overflow: hidden;
	align-items: center;
	gap: var(--g-sm);
	list-style: none;
}

.cloister-one {
	flex: 0 0 auto;
	position: relative;
}

.cloister-link {
	display: block;
	padding-block: var(--g-xs);
	color: var(--t-script);
	font-size: 16px;
	font-variant: small-caps;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
	transition: background var(--t-quick) var(--x-settle), color var(--t-quick) var(--x-settle);
}

.cloister-link:hover {
	background: var(--t-root);
	color: var(--t-fade-bottom);
}

/* aktiver Bereich — Punkt darunter */
.cloister-link[aria-current="page"] {
	color: var(--t-fade-bottom);
}

.cloister-link[aria-current="page"]::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	bottom: 2px;
	width: 5px;
	height: 5px;
	margin-inline: auto;
	background: var(--t-flare);
	border-radius: var(--r-round-full);
}

/* Rest unter der Sammelschaltflaeche */
.cloister-extra {
	position: relative;
	flex: 0 0 auto;
}

.cloister-pane-one {
	display: block;
}

.cloister-pane-one .cloister-link[aria-current="page"]::after {
	display: none;
}

.cloister-more {
	display: inline-flex;
	align-items: center;
	gap: var(--g-2xs);
	padding: var(--g-xs) var(--g-sm);
	background: transparent;
	border: var(--b-fine) solid var(--t-edge-hard);
	color: var(--t-script);
	font-size: 16px;
	font-variant: small-caps;
	font-weight: 500;
	cursor: pointer;
	white-space: nowrap;
	transition: background var(--t-quick) var(--x-settle), color var(--t-quick) var(--x-settle);
}

.cloister-more:hover {
	background: var(--t-root);
	color: var(--t-fade-bottom);
}

.cloister-more-sign {
	display: grid;
	grid-template-columns: repeat(2, 4px);
	gap: 2px;
}

.cloister-more-sign i {
	width: 4px;
	height: 4px;
	background: var(--t-flare);
}

.cloister-pane {
	position: absolute;
	z-index: 30;
	top: calc(100% + var(--g-xs));
	inset-inline-end: 0;
	display: none;
	min-width: 220px;
	max-height: 60vh;
	overflow-y: auto;
	padding: var(--g-xs) 0;
	background: var(--t-card);
	border: var(--b-fine) solid var(--t-edge-hard);
	box-shadow: var(--d-lg);
}

.cloister-pane.is-open {
	display: block;
}

.cloister-pane-roll {
	list-style: none;
}

.cloister-pane .cloister-link {
	padding: var(--g-xs) var(--g-sm);
}

.cloister-pane .cloister-link[aria-current="page"]::after {
	display: none;
}

/* Schaltflaeche des Angebots */
.cloister-deck {
	order: 4;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: var(--g-xs);
	margin-inline-start: auto;
}

.cloister-press {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding-inline: var(--g-md);
	background: var(--t-flare);
	border: var(--b-fine) solid var(--t-flare);
	color: var(--t-root);
	font-family: var(--f-base);
	font-size: var(--z-small);
	font-weight: var(--w-heavy);
	letter-spacing: var(--e-loose);
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
	transition: background var(--t-quick) var(--x-settle), color var(--t-quick) var(--x-settle);
}

.cloister-press:hover {
	background: var(--t-action-down);
	color: var(--t-root);
	outline: var(--b-medium) solid var(--t-fade-bottom);
	outline-offset: 2px;
}

/* Menuschaltflaeche — Raster, mit Rahmen */
.cloister-switch {
	order: 1;
	display: none;
	align-items: center;
	justify-content: center;
	gap: 3px;
	width: 46px;
	height: 44px;
	padding: 0;
	background: transparent;
	border: var(--b-fine) solid var(--t-edge-hard);
	cursor: pointer;
}

.cloister-switch-sign {
	display: grid;
	grid-template-columns: repeat(2, 6px);
	gap: 3px;
}

.cloister-switch-sign i {
	width: 6px;
	height: 6px;
	background: var(--t-flare);
	transition: background var(--t-quick) var(--x-settle);
}

.cloister-switch:hover .cloister-switch-sign i {
	background: var(--t-fade-bottom);
}

/* Ausfahrbare Liste */
.cloister-drawer {
	display: none;
	max-height: 70vh;
	overflow-y: auto;
	padding: var(--g-sm) var(--v-pad-sm) var(--g-md);
	background: var(--t-root);
	border-block-start: var(--b-fine) solid var(--t-border);
}

.cloister-drawer.is-open {
	display: block;
}

.cloister-drawer-roll {
	display: flex;
	flex-direction: column;
	list-style: none;
}

.cloister-drawer-link {
	display: block;
	padding-block: var(--g-sm);
	border-block-end: var(--b-fine) solid var(--t-border);
	color: var(--t-script);
	font-size: 16px;
	font-variant: small-caps;
	font-weight: 500;
	text-decoration: none;
}

.cloister-drawer-link:hover {
	background: var(--t-card);
	color: var(--t-fade-bottom);
}

.cloister-drawer-link[aria-current="page"] {
	color: var(--t-fade-bottom);
}

@media (max-width: 1160px) {
	.cloister-strip-hold,
	.cloister-hold {
		padding-inline: var(--v-pad-md);
	}
}

@media (max-width: 899px) {
	.cloister-switch {
		display: inline-flex;
	}

	.cloister-map {
		display: none;
	}

	.cloister-crest {
		order: 2;
		margin-inline-end: auto;
	}

	.cloister-crest-pic {
		height: 42px;
	}

	.cloister.is-lean .cloister-crest-pic {
		height: 38px;
	}

	.cloister-hold {
		min-height: var(--h-size-mobile);
		gap: var(--g-sm);
	}

	.cloister-say {
		display: none;
	}

	.cloister-strip-hold {
		justify-content: center;
	}
}

@media (max-width: 580px) {
	.cloister-strip-hold,
	.cloister-hold {
		padding-inline: var(--v-pad-sm);
	}

	.cloister-press {
		padding-inline: var(--g-sm);
		font-size: var(--z-tiny);
	}

	.cloister-aux {
		gap: var(--g-xs);
	}
}

@media (max-width: 400px) {
	.cloister-crest-pic {
		height: 36px;
	}
}

/* --- 8. Brotkrumen: Pillen ------------------------------------ */

.filigree {
	padding-block: var(--g-sm);
	background: var(--t-back);
}

.filigree-roll {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--g-xs);
	list-style: none;
}

.filigree-one {
	display: inline-flex;
}

.filigree-chip {
	display: inline-block;
	padding: var(--g-2xs) var(--g-sm);
	background: var(--t-card);
	color: var(--t-muted);
	font-size: var(--z-tiny);
	letter-spacing: var(--e-loose);
	text-decoration: none;
	text-transform: uppercase;
	transition: background var(--t-quick) var(--x-settle), color var(--t-quick) var(--x-settle);
}

.filigree-chip:hover {
	background: var(--t-flare);
	color: var(--t-root);
}

.filigree-here {
	display: inline-block;
	padding: var(--g-2xs) var(--g-sm);
	background: var(--t-root);
	color: var(--t-script);
	font-size: var(--z-tiny);
	letter-spacing: var(--e-loose);
	text-transform: uppercase;
}

/* --- 9. Erster Bildschirm: mittig, kompakt -------------------- */

.rafter {
	position: relative;
	overflow: hidden;
	padding-block: var(--g-xl) var(--g-lg);
	background-color: var(--t-root);
	background-image: linear-gradient(180deg, rgba(33, 31, 27, 0.82), rgba(33, 31, 27, 0.96)), url("/look-plus/scene.webp");
	background-position: center;
	background-size: cover;
	text-align: center;
}

.rafter-body {
	text-align: center;
}

.rafter-flag {
	display: block;
	margin-block-end: var(--g-md);
	color: var(--t-flare);
	font-size: var(--z-tiny);
	letter-spacing: var(--e-loose);
	text-transform: uppercase;
}

.rafter h1 {
	margin-inline: auto;
	max-width: 900px;
	color: var(--t-script);
}

.rafter-subtitle {
	max-width: var(--v-brief);
	margin-block: var(--g-md);
	margin-inline: auto;
	color: var(--t-muted);
	font-size: var(--z-base);
	line-height: var(--l-relaxed);
}

.rafter-deck {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--g-sm);
	margin-block: var(--g-lg) var(--g-md);
}

.rafter-press {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	padding-inline: var(--g-lg);
	background: var(--t-flare);
	border: var(--b-fine) solid var(--t-flare);
	color: var(--t-root);
	font-family: var(--f-head);
	font-size: var(--z-minor);
	font-weight: var(--w-heavy);
	letter-spacing: var(--e-loose);
	text-decoration: none;
	text-transform: uppercase;
	transition: background var(--t-steady) var(--x-settle), color var(--t-steady) var(--x-settle);
}

.rafter-press:hover {
	background: var(--t-action-down);
	color: var(--t-root);
	outline: var(--b-medium) solid var(--t-fade-bottom);
	outline-offset: 3px;
}

.rafter-calm {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	padding-inline: var(--g-md);
	background: transparent;
	border: var(--b-fine) solid var(--t-edge-hard);
	color: var(--t-script);
	font-size: var(--z-minor);
	font-weight: var(--w-demi);
	letter-spacing: var(--e-loose);
	text-decoration: none;
	text-transform: uppercase;
	transition: background var(--t-steady) var(--x-settle), color var(--t-steady) var(--x-settle);
}

.rafter-calm:hover {
	background: var(--t-card);
	color: var(--t-fade-bottom);
}

.rafter-note {
	display: block;
	max-width: var(--v-brief);
	margin-inline: auto;
	color: var(--t-muted);
	font-size: var(--z-tiny);
}

/* Anfahrt des ersten Bildschirms */
.rafter-body > * {
	animation: rafter-rise var(--t-gentle) var(--x-settle) both;
}

.rafter-body > *:nth-child(2) {
	animation-delay: 60ms;
}

.rafter-body > *:nth-child(3) {
	animation-delay: 120ms;
}

@keyframes rafter-rise {
	from {
		opacity: 0;
		transform: translateY(18px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* --- 10. Seitenkopf: Marken + Titel --------------------------- */

.gallery {
	padding-block: var(--g-lg);
	background: var(--t-root);
}

.gallery-tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--g-xs);
	margin-block-end: var(--g-md);
	list-style: none;
}

.gallery-tag {
	display: inline-block;
	padding: var(--g-2xs) var(--g-sm);
	background: var(--t-back);
	color: var(--t-script);
	font-size: var(--z-tiny);
	letter-spacing: var(--e-loose);
	text-transform: uppercase;
}

.gallery-line {
	max-width: var(--v-prose);
	margin-block-start: var(--g-sm);
	color: var(--t-muted);
	font-size: var(--z-base);
	line-height: var(--l-relaxed);
}

/* --- 11. Verfasserzeile --------------------------------------- */

.hearth {
	padding-block: var(--g-sm);
	background: var(--t-back);
}

.hearth-body {
	display: flex;
}

.hearth-hold {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--g-xs);
	width: 100%;
	padding-block-end: var(--g-sm);
	border-block-end: var(--b-fine) solid var(--t-border);
}

.hearth-photo {
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	border-radius: var(--r-round-full);
	object-fit: cover;
}

.hearth-info {
	color: var(--t-muted);
	font-size: var(--z-small);
}

.hearth-who {
	color: var(--t-flare);
	text-decoration: none;
}

.hearth-who:hover {
	background: var(--t-back);
	color: var(--t-fade-bottom);
	text-decoration: underline;
}

.hearth-duty {
	color: var(--t-muted);
}

/* --- 12. Fliesstext: Stern vor der Ueberschrift --------------- */

.portico {
	padding-block: var(--g-lg);
	background: var(--t-back);
}

.portico-part + .portico-part {
	margin-block-start: var(--g-md);
}

.portico-top {
	position: relative;
	display: flex;
	align-items: baseline;
	gap: var(--g-sm);
	margin-block: 0 var(--g-sm);
	color: var(--t-script);
}

.portico-top::before {
	content: "";
	flex: 0 0 auto;
	align-self: center;
	width: 10px;
	height: 10px;
	background: var(--t-flare);
	clip-path: polygon(50% 0%, 61.2% 34.5%, 97.6% 34.5%, 68.2% 55.9%, 79.4% 90.5%, 50% 69.1%, 20.6% 90.5%, 31.8% 55.9%, 2.4% 34.5%, 38.8% 34.5%, 50% 0%, 50% 22.5%, 43.8% 41.5%, 23.8% 41.5%, 40% 53.2%, 33.8% 72.2%, 50% 60.5%, 66.2% 72.2%, 60% 53.2%, 76.2% 41.5%, 56.2% 41.5%, 50% 22.5%);
}

.portico-line {
	max-width: var(--v-prose);
	margin-block-start: var(--g-sm);
	color: var(--t-muted);
	font-size: var(--z-base);
	line-height: var(--l-relaxed);
}

.portico-line strong {
	color: var(--t-script);
	font-weight: var(--w-heavy);
}

.portico-line em {
	color: var(--t-fade-bottom);
	font-style: italic;
}

.portico-line a,
.portico-one a {
	color: var(--t-flare);
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: background var(--t-quick) var(--x-settle), color var(--t-quick) var(--x-settle);
}

.portico-line a:hover,
.portico-one a:hover {
	background: var(--t-flare);
	color: var(--t-root);
	text-decoration: none;
}

.portico-roll {
	max-width: var(--v-prose);
	margin-block-start: var(--g-sm);
	padding-inline-start: var(--g-md);
	color: var(--t-muted);
	font-size: var(--z-base);
	line-height: var(--l-relaxed);
}

.portico-one {
	margin-block-start: var(--g-2xs);
}

.portico-one strong {
	color: var(--t-script);
	font-weight: var(--w-heavy);
}

.portico-one::marker {
	color: var(--t-flare);
}

.portico-fig {
	margin: var(--g-md) 0 0;
	text-align: center;
}

.portico-fig img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 380px;
	margin-inline: auto;
	border: var(--b-fine) solid var(--t-border);
	object-fit: contain;
}

/* --- 13. Karten im Laufband ----------------------------------- */

.pavilion {
	padding-block: var(--g-lg);
	background: var(--t-root);
}

.pavilion-top,
.lattice-top,
.keystone-top,
.plinth-top {
	margin-block-end: var(--g-md);
	color: var(--t-script);
}

.pavilion-rail {
	display: flex;
	overflow-x: auto;
	gap: var(--g-md);
	padding-block-end: var(--g-sm);
	list-style: none;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
}

.pavilion-slab {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	gap: var(--g-xs);
	width: 320px;
	min-height: 200px;
	padding: var(--g-md);
	background: var(--t-card);
	border: var(--b-fine) solid var(--t-border);
	scroll-snap-align: start;
	transition: box-shadow var(--t-steady) var(--x-settle), border-color var(--t-steady) var(--x-settle);
}

.pavilion-slab:hover {
	border-color: var(--t-edge-hard);
	box-shadow: var(--d-lg);
}

.pavilion-sign {
	display: block;
	width: 26px;
	height: 26px;
	color: var(--t-flare);
}

.pavilion-sign svg {
	display: block;
	width: 26px;
	height: 26px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.pavilion-slab-top {
	color: var(--t-script);
	font-size: var(--z-h4);
}

.pavilion-slab-line {
	color: var(--t-muted);
	font-size: var(--z-small);
	line-height: var(--l-base);
}

.pavilion-dots,
.keystone-dots {
	display: flex;
	justify-content: center;
	gap: var(--g-2xs);
	margin-block-start: var(--g-sm);
	list-style: none;
}

.pavilion-dot,
.keystone-dot {
	width: 6px;
	height: 6px;
	background: var(--t-edge-hard);
	border-radius: var(--r-round-full);
	transition: background var(--t-quick) var(--x-settle);
}

.pavilion-dot.is-live,
.keystone-dot.is-live {
	background: var(--t-flare);
}

/* --- 14. Stimmen im Laufband ---------------------------------- */

.keystone {
	padding-block: var(--g-lg);
	background: var(--t-back);
}

.keystone-rail {
	display: flex;
	overflow-x: auto;
	gap: var(--g-md);
	padding-block-end: var(--g-sm);
	list-style: none;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
}

.keystone-slab {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	gap: var(--g-xs);
	width: 360px;
	min-height: 240px;
	padding: var(--g-lg);
	background: var(--t-card);
	border: var(--b-fine) solid var(--t-border);
	scroll-snap-align: start;
	transition: box-shadow var(--t-steady) var(--x-settle), border-color var(--t-steady) var(--x-settle);
}

.keystone-slab:hover {
	border-color: var(--t-edge-hard);
	box-shadow: var(--d-lg);
}

.keystone-info {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--g-2xs);
	color: var(--t-muted);
	font-size: var(--z-small);
}

.keystone-who {
	color: var(--t-script);
	font-weight: var(--w-heavy);
}

.keystone-score {
	color: var(--t-flare);
	font-size: var(--z-small);
	font-weight: var(--w-heavy);
	letter-spacing: var(--e-loose);
}

.keystone-bar {
	width: 60%;
	height: 4px;
	background: var(--t-border);
}

.keystone-bar i {
	display: block;
	height: 4px;
	background: var(--t-flare);
}

.keystone-line {
	color: var(--t-muted);
	font-size: var(--z-small);
	line-height: var(--l-relaxed);
}

/* --- 15. Fragen und Antworten, kompakt ------------------------ */

.lattice {
	padding-block: var(--g-lg);
	background: var(--t-root);
}

.lattice-roll {
	display: flex;
	flex-direction: column;
	gap: var(--g-sm);
	list-style: none;
}

.lattice-one {
	border-block-end: var(--b-fine) solid var(--t-border);
}

.lattice-ask {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: var(--g-sm);
	padding-block: var(--g-xs);
	cursor: pointer;
	list-style: none;
}

.lattice-ask::-webkit-details-marker {
	display: none;
}

.lattice-one-top {
	color: var(--t-script);
	font-size: var(--z-minor);
	font-weight: var(--w-demi);
	letter-spacing: var(--e-normal);
	line-height: var(--l-base);
}

.lattice-sign {
	position: relative;
	width: 12px;
	height: 12px;
	flex: 0 0 auto;
}

.lattice-sign::before,
.lattice-sign::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 12px;
	height: 2px;
	margin-top: -1px;
	background: var(--t-flare);
	transition: transform var(--t-steady) var(--x-swing);
}

.lattice-sign::after {
	transform: rotate(90deg);
}

.lattice-one[open] .lattice-sign::after {
	transform: rotate(0deg);
}

.lattice-line {
	padding-block: var(--g-xs) var(--g-sm);
	color: var(--t-muted);
	font-size: var(--z-small);
	line-height: var(--l-base);
	animation: lattice-open var(--t-steady) var(--x-settle) both;
}

@keyframes lattice-open {
	from {
		opacity: 0;
		max-height: 0;
	}

	to {
		opacity: 1;
		max-height: 600px;
	}
}

/* --- 16. Tabellenersatz: schwebende Karten -------------------- */

.plinth {
	padding-block: var(--g-lg);
	background: var(--t-back);
}

.plinth-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--g-md);
	list-style: none;
}

.plinth-slab {
	display: flex;
	flex-direction: column;
	gap: var(--g-sm);
	padding: var(--g-lg);
	background: var(--t-card);
	border: var(--b-fine) solid var(--t-border);
}

.plinth-control {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.plinth-mark {
	color: var(--t-muted);
	font-size: var(--z-tiny);
	letter-spacing: var(--e-loose);
	text-transform: uppercase;
}

.plinth-worth {
	color: var(--t-script);
	font-size: var(--z-base);
	font-weight: var(--w-demi);
	overflow-wrap: anywhere;
}

/* --- 17. Aufruf: Band in Akzentfarbe -------------------------- */

.spread {
	padding-block: var(--g-xl);
	background: var(--t-flare);
}

.spread-body {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--g-md);
}

.spread-matter {
	flex: 1 1 420px;
}

.spread-top {
	max-width: var(--v-brief);
	color: var(--t-back);
	text-transform: uppercase;
}

.spread-line {
	max-width: var(--v-brief);
	margin-block-start: var(--g-sm);
	color: var(--t-root);
	font-size: var(--z-base);
	line-height: var(--l-base);
}

.spread-press {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 220px;
	min-height: 56px;
	padding-inline: var(--g-lg);
	background: var(--t-back);
	border: var(--b-fine) solid var(--t-back);
	color: var(--t-flare);
	font-family: var(--f-head);
	font-size: var(--z-minor);
	font-weight: var(--w-heavy);
	letter-spacing: var(--e-loose);
	text-decoration: none;
	text-transform: uppercase;
	transition: background var(--t-steady) var(--x-settle), color var(--t-steady) var(--x-settle);
}

.spread-press:hover {
	background: var(--t-root);
	color: var(--t-fade-bottom);
	outline: var(--b-medium) solid var(--t-back);
	outline-offset: 3px;
}

.spread-small {
	flex: 1 1 100%;
	color: var(--t-root);
	font-size: var(--z-tiny);
}

@media (max-width: 860px) {
	.spread-press {
		width: 100%;
	}
}

/* --- 18. Kurze Einschuebe mit zwei Schaltflaechen ------------- */

.parapet {
	padding-block: var(--g-md);
	background: var(--t-back);
}

.parapet-body {
	text-align: center;
}

.parapet-hold {
	max-width: 600px;
	margin-inline: auto;
	padding: var(--g-md);
	background: var(--t-card);
	border: var(--b-fine) solid var(--t-border);
	display: flex;
	flex-direction: column;
	gap: var(--g-sm);
}

.parapet-line {
	color: var(--t-muted);
	font-size: var(--z-base);
	line-height: var(--l-base);
}

.parapet-deck {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--g-sm);
}

.parapet-press {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding-inline: var(--g-md);
	background: var(--t-flare);
	border: var(--b-fine) solid var(--t-flare);
	color: var(--t-root);
	font-size: var(--z-small);
	font-weight: var(--w-heavy);
	letter-spacing: var(--e-loose);
	text-decoration: none;
	text-transform: uppercase;
	transition: background var(--t-quick) var(--x-settle), color var(--t-quick) var(--x-settle);
}

.parapet-press:hover {
	background: var(--t-action-down);
	color: var(--t-root);
	outline: var(--b-medium) solid var(--t-fade-bottom);
	outline-offset: 2px;
}

.parapet-calm {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding-inline: var(--g-md);
	background: transparent;
	border: var(--b-fine) solid var(--t-edge-hard);
	color: var(--t-script);
	font-size: var(--z-small);
	font-weight: var(--w-demi);
	letter-spacing: var(--e-loose);
	text-decoration: none;
	text-transform: uppercase;
	transition: background var(--t-quick) var(--x-settle), color var(--t-quick) var(--x-settle);
}

.parapet-calm:hover {
	background: var(--t-card);
	color: var(--t-fade-bottom);
}

@media (max-width: 580px) {
	.parapet-deck {
		flex-direction: column;
	}

	.parapet-press,
	.parapet-calm {
		width: 100%;
	}
}

/* --- 19. Rechtstexte im Rahmen -------------------------------- */

.tile {
	padding-block: var(--g-lg);
	background: var(--t-back);
}

.tile-box {
	position: relative;
	padding: var(--g-lg);
	background: var(--t-card);
	border: var(--b-fine) solid var(--t-border);
	box-shadow: var(--d-sm);
}

.tile-stamp {
	display: block;
	margin-block-end: var(--g-sm);
	color: var(--t-muted);
	font-size: var(--z-tiny);
	letter-spacing: var(--e-loose);
	text-align: end;
	text-transform: uppercase;
}

.tile-lead {
	max-width: var(--v-prose);
	color: var(--t-script);
	font-size: var(--z-base);
	line-height: var(--l-relaxed);
}

.tile-part {
	margin-block-start: var(--g-md);
}

.tile-part-top {
	margin-block-end: var(--g-xs);
	color: var(--t-script);
}

.tile-line {
	max-width: var(--v-prose);
	margin-block-start: var(--g-xs);
	color: var(--t-muted);
	font-size: var(--z-base);
	line-height: var(--l-relaxed);
}

.tile-roll {
	margin-block-start: var(--g-xs);
	padding-inline-start: var(--g-md);
	color: var(--t-muted);
	font-size: var(--z-base);
	line-height: var(--l-relaxed);
}

.tile-roll li {
	margin-block-start: var(--g-2xs);
}

.tile-small {
	display: block;
	margin-block-start: var(--g-md);
	padding-block-start: var(--g-sm);
	border-block-start: var(--b-fine) solid var(--t-border);
	color: var(--t-muted);
	font-size: var(--z-small);
	line-height: var(--l-base);
}

/* --- 20. Kontaktformular -------------------------------------- */

.grotto {
	padding-block: var(--g-lg);
	background: var(--t-back);
}

.grotto-lead {
	max-width: var(--v-brief);
	margin-inline: auto;
	margin-block-end: var(--g-md);
	color: var(--t-muted);
	font-size: var(--z-base);
	line-height: var(--l-relaxed);
	text-align: center;
}

.grotto-form {
	max-width: 620px;
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	gap: var(--g-sm);
}

.grotto-control {
	display: flex;
	flex-direction: column;
	gap: var(--g-2xs);
}

.grotto-mark {
	color: var(--t-muted);
	font-size: var(--z-tiny);
	letter-spacing: var(--e-loose);
	text-transform: uppercase;
}

.grotto-input,
.grotto-area {
	width: 100%;
	padding: var(--g-xs) var(--g-sm);
	background: var(--t-card);
	border: var(--b-medium) solid var(--t-border);
	color: var(--t-script);
	font-family: var(--f-base);
	font-size: var(--z-base);
}

.grotto-area {
	min-height: 140px;
	resize: vertical;
}

.grotto-input:focus,
.grotto-area:focus {
	border-color: var(--t-flare);
	outline: none;
}

.grotto-press {
	width: 100%;
	min-height: 52px;
	background: var(--t-flare);
	border: var(--b-fine) solid var(--t-flare);
	color: var(--t-root);
	font-family: var(--f-base);
	font-size: var(--z-small);
	font-weight: var(--w-heavy);
	letter-spacing: var(--e-loose);
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--t-quick) var(--x-settle), color var(--t-quick) var(--x-settle);
}

.grotto-press:hover {
	background: var(--t-action-down);
	color: var(--t-root);
}

.grotto-done {
	max-width: 620px;
	margin-inline: auto;
	padding: var(--g-md);
	background: var(--t-card);
	border: var(--b-fine) solid var(--t-flare);
	color: var(--t-script);
	font-size: var(--z-base);
	line-height: var(--l-relaxed);
}

.grotto-facts {
	max-width: 620px;
	margin-inline: auto;
	margin-block-start: var(--g-md);
	display: flex;
	flex-wrap: wrap;
	gap: var(--g-sm) var(--g-md);
	list-style: none;
	color: var(--t-muted);
	font-size: var(--z-small);
}

.grotto-facts a {
	color: var(--t-flare);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.grotto-facts a:hover {
	background: var(--t-flare);
	color: var(--t-root);
	text-decoration: none;
}

/* --- 21. Karte der Redaktion ---------------------------------- */

.joist {
	padding-block: var(--g-lg);
	background: var(--t-back);
}

.joist-slab {
	display: grid;
	grid-template-columns: 100px 1fr;
	gap: var(--g-lg);
	padding: var(--g-lg);
	background: var(--t-card);
	border-inline-start: var(--b-thick) solid var(--t-flare);
}

.joist-photo {
	width: 100px;
	height: 100px;
	border-radius: var(--r-round-full);
	object-fit: cover;
	object-position: center 22%;
}

.joist-matter {
	display: flex;
	flex-direction: column;
	gap: var(--g-xs);
}

.joist-quote {
	display: block;
	color: var(--t-flare);
	font-family: var(--f-head);
	font-size: 36px;
	font-weight: var(--w-heavy);
	line-height: 0.7;
}

.joist-line {
	max-width: var(--v-prose);
	color: var(--t-script);
	font-size: var(--z-minor);
	font-style: italic;
	line-height: var(--l-base);
}

.joist-sign {
	color: var(--t-muted);
	font-size: var(--z-small);
	letter-spacing: var(--e-loose);
}

.joist-works {
	margin-block-start: var(--g-md);
	padding: var(--g-md);
	background: var(--t-card);
	border: var(--b-fine) solid var(--t-border);
}

.joist-works-top {
	margin-block-end: var(--g-xs);
	color: var(--t-script);
	font-size: var(--z-h4);
}

.joist-works-roll {
	display: flex;
	flex-direction: column;
	gap: var(--g-2xs);
	list-style: none;
}

.joist-works-one a {
	color: var(--t-flare);
	font-size: var(--z-base);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.joist-works-one a:hover {
	background: var(--t-flare);
	color: var(--t-root);
	text-decoration: none;
}

@media (max-width: 580px) {
	.joist-slab {
		grid-template-columns: 1fr;
		gap: var(--g-md);
	}
}

/* --- 22. Fehlerseite: Karte im Rahmen ------------------------- */

.quayside {
	padding-block: var(--g-2xl);
	background: var(--t-back);
}

.quayside-slab {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--g-md);
	max-width: var(--v-brief);
	margin-inline: auto;
	padding: var(--g-lg);
	background: var(--t-card);
	border: var(--b-medium) solid var(--t-flare);
	box-shadow: var(--d-md);
	text-align: center;
}

.quayside-top {
	color: var(--t-script);
}

.quayside-line {
	color: var(--t-muted);
	font-size: var(--z-base);
	line-height: var(--l-relaxed);
}

.quayside-press {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding-inline: var(--g-md);
	background: var(--t-flare);
	border: var(--b-fine) solid var(--t-flare);
	color: var(--t-root);
	font-size: var(--z-small);
	font-weight: var(--w-heavy);
	letter-spacing: var(--e-loose);
	text-decoration: none;
	text-transform: uppercase;
	transition: background var(--t-quick) var(--x-settle), color var(--t-quick) var(--x-settle);
}

.quayside-press:hover {
	background: var(--t-action-down);
	color: var(--t-root);
}

/* --- 23. Hinweis zu Cookies (im Fluss, vor dem Fuss) ---------- */

.vault {
	display: none;
	padding-block: var(--g-md);
	background: var(--t-back);
}

.vault.is-live {
	display: block;
	animation: vault-fade var(--t-gentle) var(--x-settle) both;
}

@keyframes vault-fade {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

.vault-hold {
	max-width: calc(var(--v-site) + 2 * var(--v-pad-lg));
	margin-inline: auto;
	padding-inline: var(--v-pad-lg);
}

.vault-slab {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: var(--g-lg);
	padding: var(--g-lg);
	background: var(--t-card);
	border: var(--b-fine) solid var(--t-border);
}

.vault-notice {
	color: var(--t-muted);
	font-size: var(--z-small);
	line-height: var(--l-base);
}

.vault-deck {
	display: flex;
	align-items: center;
	gap: var(--g-xs);
}

.vault-agree {
	min-height: 44px;
	padding-inline: var(--g-md);
	background: var(--t-flare);
	border: var(--b-fine) solid var(--t-flare);
	color: var(--t-root);
	font-size: var(--z-small);
	font-weight: var(--w-heavy);
	letter-spacing: var(--e-loose);
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--t-quick) var(--x-settle), color var(--t-quick) var(--x-settle);
}

.vault-agree:hover {
	background: var(--t-action-down);
	color: var(--t-root);
}

.vault-refuse {
	min-height: 44px;
	padding-inline: var(--g-md);
	background: transparent;
	border: var(--b-fine) solid var(--t-edge-hard);
	color: var(--t-script);
	font-size: var(--z-small);
	font-weight: var(--w-demi);
	letter-spacing: var(--e-loose);
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--t-quick) var(--x-settle), color var(--t-quick) var(--x-settle);
}

.vault-refuse:hover {
	background: var(--t-back);
	color: var(--t-fade-bottom);
}

@media (max-width: 1160px) {
	.vault-hold {
		padding-inline: var(--v-pad-md);
	}
}

@media (max-width: 700px) {
	.vault-hold {
		padding-inline: var(--v-pad-sm);
	}

	.vault-slab {
		grid-template-columns: 1fr;
		gap: var(--g-sm);
		padding: 12px 14px !important;
		font-size: 13px !important;
		line-height: 1.35 !important;
	}

	.vault-deck {
		width: 100%;
	}

	.vault-agree,
	.vault-refuse {
		flex: 1 1 auto;
		min-height: 36px;
		padding: 8px 14px !important;
		font-size: 12px !important;
	}
}

/* --- 24. Fuss: gross und mittig ------------------------------- */

.desk {
	padding-block: var(--g-xl);
	background: var(--t-back);
	border-block-start: var(--b-fine) solid var(--t-border);
	text-align: center;
}

.desk-hold {
	max-width: calc(var(--v-site) + 2 * var(--v-pad-lg));
	margin-inline: auto;
	padding-inline: var(--v-pad-lg);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--g-lg);
}

.desk-crest {
	display: inline-flex;
}

.desk-crest-pic {
	display: block;
	width: auto;
	height: 88px;
}

.desk-map {
	width: 100%;
}

.desk-roll {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--g-sm) var(--g-lg);
	list-style: none;
}

.desk-link {
	color: var(--t-script);
	font-family: var(--f-head);
	font-size: var(--z-base);
	font-weight: var(--w-demi);
	text-decoration: none;
	transition: background var(--t-quick) var(--x-settle), color var(--t-quick) var(--x-settle);
}

.desk-link:hover {
	background: var(--t-back);
	color: var(--t-fade-bottom);
}

.desk-line {
	max-width: var(--v-brief);
	color: var(--t-muted);
	font-size: var(--z-small);
	line-height: var(--l-relaxed);
}

.desk-legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--g-sm);
}

.desk-legal a {
	color: var(--t-muted);
	font-size: var(--z-tiny);
	letter-spacing: var(--e-loose);
	text-decoration: none;
	text-transform: uppercase;
}

.desk-legal a:hover {
	background: var(--t-back);
	color: var(--t-fade-bottom);
}

.desk-dot {
	color: var(--t-muted);
	font-size: var(--z-tiny);
}

.desk-small {
	color: var(--t-muted);
	font-size: var(--z-tiny);
}

.desk-note {
	max-width: 760px;
	color: var(--t-muted);
	font-size: var(--z-tiny);
	line-height: var(--l-base);
}

@media (max-width: 1160px) {
	.desk-hold {
		padding-inline: var(--v-pad-md);
	}
}

@media (max-width: 580px) {
	.desk-hold {
		padding-inline: var(--v-pad-sm);
		gap: var(--g-md);
	}

	.desk-crest-pic {
		height: 64px;
	}

	.desk-roll {
		gap: var(--g-sm) var(--g-md);
	}
}

/* --- 25. Sprungziele unter dem festen Kopf -------------------- */

[id] {
	scroll-margin-top: var(--v-clear);
}
.lozenge-hit{display:inline-flex;align-items:center;justify-content:center;padding:0 var(--g-md);min-height:44px;border-radius:var(--r-sm);border:var(--b-fine) solid var(--t-flare);font-size:var(--z-small);font-weight:var(--w-heavy);letter-spacing:var(--e-loose)}
.lozenge-hit{position:relative;
  background:#16A34A;color:#211F1B;text-decoration:none;text-transform:uppercase;
  transition:background var(--t-steady) var(--x-settle),box-shadow var(--t-steady) var(--x-settle);}
.lozenge-hit.lozenge-hit{color:#211F1B;text-decoration:none;}
.lozenge-hit:hover{background:#15803D;color:#FFFFFF;animation:none}
.lozenge-hit.lozenge-hit:hover{color:#FFFFFF;text-decoration:none}
.lozenge-hit:hover::after{animation:none}
.lozenge-hit:active{background:#166534;color:#FFFFFF}
.lozenge-hit:focus-visible{outline:3px solid #211F1B;outline-offset:3px}
@keyframes lozenge-drift{0%,100%{transform:scaleX(0)}40%,60%{transform:scaleX(1)}}
.lozenge-hit::after{content:"";position:absolute;left:12%;right:12%;bottom:6px;height:0;border-block-end:4px solid currentColor;opacity:.5;transform-origin:left;animation:lozenge-drift 2.2s var(--x-swing) infinite}
@media (prefers-reduced-motion:reduce){.lozenge-hit,.lozenge-hit::after{animation:none!important;transition:none!important}}

/* Grössen der grossen Schaltflaechen nach dem Angebotsblock zurueckholen. */
.cloister-deck .lozenge-hit {
	min-height: 44px;
	padding-inline: var(--g-md);
}

.rafter .lozenge-hit {
	min-height: 56px;
	padding-inline: var(--g-lg);
	font-family: var(--f-head);
	font-size: var(--z-minor);
}

.spread .lozenge-hit {
	min-width: 220px;
	min-height: 56px;
	padding-inline: var(--g-lg);
	box-shadow: 0 0 0 2px var(--t-back);
	font-family: var(--f-head);
	font-size: var(--z-minor);
}

.parapet .lozenge-hit {
	min-height: 48px;
	padding-inline: var(--g-md);
}

.keystone-bar {
	display: block;
}

@media (max-width: 919px) {
  .cloister-map,
  .cloister-roll,
  .cloister-link { display: none !important; }
  .cloister-switch { display: flex !important; }
}

/* nojs guard 28.09.2026: без JS контент виден */
html.no-js h1,
html.no-js .rafter-subtitle,
html.no-js .rafter-deck,
html.no-js [data-cue]{opacity:1!important;transform:none!important;visibility:visible!important;clip-path:none!important}
