/*
 * GemS Freisen – Gestaltung „Bilder im Mittelpunkt“ (Layout C, ab 0.2.0) mit Pferdestempel
 * Farben und Schriften kommen aus theme.json (CSS-Variablen --wp--preset--…).
 * Sonne/Sonnenstrahlen nur im vollständigen Original-Logo, nicht als Verzierung.
 * Kontraste der Textkombinationen: siehe TESTPROTOKOLL. Gelb und Hellblau nie als Schrift auf Weiß.
 */

:root {
	--gf-navy: var(--wp--preset--color--navy, #072b5f);
	--gf-navy-deep: var(--wp--preset--color--navy-deep, #04204a);
	--gf-blue: var(--wp--preset--color--blue, #84bdd6);
	--gf-blue-text: var(--wp--preset--color--blue-text, #2b6584);
	--gf-yellow: var(--wp--preset--color--yellow, #ffca00);
	--gf-yellow-tint: var(--wp--preset--color--yellow-tint, #fff6cc);
	--gf-tint: var(--wp--preset--color--tint, #eef6fa);
	--gf-ink: var(--wp--preset--color--ink, #1c2733);
	--gf-muted: var(--wp--preset--color--muted, #4a5866);
	--gf-line: var(--wp--preset--color--line, #c9dde6);
	--gf-radius: 6px;
	--gf-touch: 44px;
	/* Eigene, einfache Linien aus der Formensprache des Logos (Hügel). Keine Logo-Kopie. */
	--gf-horizont: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 28 C 200 8, 380 8, 600 22 S 1000 40, 1200 18' fill='none' stroke='%2384BDD6' stroke-width='3'/%3E%3Cpath d='M0 36 C 240 20, 460 22, 700 32 S 1040 38, 1200 30' fill='none' stroke='%2384BDD6' stroke-width='2' opacity='.6'/%3E%3C/svg%3E");
}

/* ---------- Grundlagen ---------- */
html { scroll-padding-top: 1rem; }
body { -webkit-font-smoothing: antialiased; font-variant-numeric: lining-nums; }
h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; hyphens: auto; text-wrap: balance; }
p, li { overflow-wrap: break-word; }
a { text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
::selection { background: var(--gf-yellow); color: var(--gf-navy); }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--gf-yellow);
	outline-offset: 2px;
	box-shadow: 0 0 0 5px var(--gf-navy);
	border-radius: 2px;
}

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; width: 1px; word-wrap: normal !important;
}
.skip-link.screen-reader-text:focus,
.screen-reader-text:focus {
	clip: auto !important; clip-path: none; height: auto; width: auto; margin: 0;
	background: var(--gf-yellow); color: var(--gf-navy); font-weight: 700;
	padding: 0.75rem 1rem; left: 0.5rem; top: 0.5rem; z-index: 100000;
	text-decoration: none; border-radius: var(--gf-radius);
}

img { max-width: 100%; height: auto; }

/* ---------- Kopfbereich ---------- */
.gf-header { position: relative; z-index: 20; }
.gf-servicezeile { font-size: var(--wp--preset--font-size--small); }
.gf-servicezeile a { color: #fff; text-decoration: none; }
.gf-servicezeile a:hover { text-decoration: underline; }
.gf-servicenav .wp-block-navigation-item__content { padding: 0.5rem 0; min-height: var(--gf-touch); display: inline-flex; align-items: center; }
.gf-servicenav .wp-block-navigation__submenu-container { background: #fff !important; color: var(--gf-navy) !important; border-top: 3px solid var(--gf-yellow); }
.gf-servicenav .wp-block-navigation__submenu-container a { color: var(--gf-navy); padding: 0.5rem 0.875rem; }

.gf-suche .wp-block-search__inside-wrapper { background: #fff; border: 0; border-radius: var(--gf-radius); padding: 2px; min-height: 40px; }
.gf-suche .wp-block-search__input { border: 0; padding: 0.35rem 0.6rem; min-width: 9rem; font-size: 1rem; color: var(--gf-ink); background: transparent; }
.gf-suche .wp-block-search__button { margin: 0; padding: 0.35rem 0.8rem; background: var(--gf-yellow); color: var(--gf-navy); border-radius: 4px; font-size: 0.9375rem; }
.gf-suche .wp-block-search__button:hover { background: var(--gf-navy); color: #fff; }

.gf-hauptleiste { position: relative; padding-bottom: 1.4rem !important; }
.gf-hauptleiste::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 18px;
	background: var(--gf-horizont) bottom / 100% 100% no-repeat; pointer-events: none;
}
.gf-marke { min-width: 0; }
.gf-logo { flex: 0 0 auto; margin: 0; }
.gf-logo img { width: 52px; height: auto; max-height: 69px; display: block; }
.gf-schulname, .gf-schulname a {
	font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: clamp(1.0625rem, 0.95rem + 0.6vw, 1.375rem);
	line-height: 1.2; color: #fff; text-decoration: none; margin: 0;
}
.gf-schulname a:hover { text-decoration: underline; text-decoration-color: var(--gf-yellow); }
.gf-untertitel { color: var(--gf-blue); font-size: var(--wp--preset--font-size--small); margin: 0; line-height: 1.3; }
.gf-untertitel:empty { display: none; }

/* Hauptnavigation – Kernblock „Navigation“ mit Overlay; ab 72rem als Leiste. */
.gf-mainnav { font-family: var(--wp--preset--font-family--heading); font-weight: 600; }
.gf-mainnav .wp-block-navigation__responsive-container-open {
	min-height: var(--gf-touch); padding: 0.4rem 1rem !important; border: 2px solid #fff !important;
	border-radius: var(--gf-radius); font-weight: 700 !important; font-size: 1rem !important; color: #fff;
	display: inline-flex; align-items: center; gap: 0.4rem;
}
.gf-mainnav .wp-block-navigation__responsive-container-open:hover { background: var(--gf-yellow) !important; color: var(--gf-navy); border-color: var(--gf-yellow) !important; }
.gf-mainnav .wp-block-navigation__responsive-container-open::before {
	content: ""; width: 18px; height: 12px; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor;
	background: linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat;
}

/* Overlay (mobil und Tablet) */
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open { padding: 1rem clamp(1rem, 4vw, 2rem) 2rem; }
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; align-items: stretch; }
.gf-mainnav .is-menu-open .wp-block-navigation__container { width: 100%; gap: 0 !important; }
.gf-mainnav .is-menu-open .wp-block-navigation-item { width: 100%; flex-wrap: wrap; align-items: center !important; border-bottom: 1px solid rgba(255, 255, 255, 0.18); }
.gf-mainnav .is-menu-open .wp-block-navigation-item__content { padding: 0.7rem 0 !important; min-height: var(--gf-touch); font-size: 1.125rem; flex: 1 1 auto; }
.gf-mainnav .is-menu-open .wp-block-navigation__responsive-container-close {
	min-height: var(--gf-touch); padding: 0.4rem 1rem; border: 2px solid #fff; border-radius: var(--gf-radius);
	display: inline-flex; align-items: center; top: 1rem; right: clamp(1rem, 4vw, 2rem);
}
/* Untermenüs im Overlay einzeln aufklappbar (Schalter aus assets/js/navigation.js, Bereichslink bleibt klickbar). */
.gf-untermenue-schalter { display: none; }
.gf-mainnav .is-menu-open .gf-untermenue-schalter {
	display: inline-flex; width: var(--gf-touch); height: var(--gf-touch); flex: 0 0 auto; align-items: center; justify-content: center;
	margin: 0; padding: 0; border: 1px solid rgba(255, 255, 255, 0.55); border-radius: var(--gf-radius); background: transparent; color: #fff; cursor: pointer;
}
.gf-mainnav .is-menu-open .gf-untermenue-schalter:hover { background: var(--gf-yellow); color: var(--gf-navy); }
.gf-mainnav .is-menu-open .gf-untermenue-schalter svg { transition: transform 0.15s; }
.gf-mainnav .is-menu-open .gf-untermenue-schalter[aria-expanded="true"] svg { transform: rotate(180deg); }
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child > .wp-block-navigation__submenu-container {
	display: none !important; width: 100%; flex-basis: 100%; padding: 0 0 0.75rem 1rem !important; gap: 0 !important;
}
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child.gf-offen > .wp-block-navigation__submenu-container { display: flex !important; }
.gf-mainnav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border-bottom: 0; }
.gf-mainnav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1rem; font-weight: 500; padding: 0.55rem 0 !important; }
.gf-mainnav .is-menu-open .current-menu-item > .wp-block-navigation-item__content { text-decoration: underline; text-decoration-color: var(--gf-yellow); text-decoration-thickness: 3px; }

/* Leiste ab 72rem: Navigation als zweite Zeile unter Logo und Schulname. */
@media (min-width: 72rem) {
	.gf-hauptleiste__inhalt > .gf-mainnav { flex-basis: 100%; }
	.gf-mainnav .wp-block-navigation__responsive-container-open { display: none !important; }
	.gf-mainnav .wp-block-navigation__responsive-container.hidden-by-default:not(.is-menu-open) {
		display: block; position: relative; width: 100%; background: transparent !important; color: inherit !important; z-index: auto;
	}
	.gf-mainnav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close { display: none; }
	.gf-mainnav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container { gap: 0 0.25rem; }
	.gf-mainnav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content {
		color: #fff; padding: 0.6rem 0.7rem; min-height: var(--gf-touch); display: inline-flex; align-items: center;
		text-decoration: none; border-bottom: 4px solid transparent;
	}
	.gf-mainnav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
	.gf-mainnav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content,
	.gf-mainnav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .current-menu-ancestor > .wp-block-navigation-item__content {
		border-bottom-color: var(--gf-yellow);
	}
	.gf-mainnav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-icon {
		width: 28px; height: var(--gf-touch); margin-left: -0.35rem; padding: 0; color: #fff;
		display: inline-flex; align-items: center; justify-content: center;
	}
	.gf-mainnav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
		background: #fff !important; color: var(--gf-navy) !important; border: 0 !important; border-top: 4px solid var(--gf-yellow) !important;
		border-radius: 0 0 var(--gf-radius) var(--gf-radius); box-shadow: 0 10px 24px rgba(4, 32, 74, 0.25); min-width: 17rem !important; padding: 0.4rem 0;
	}
	.gf-mainnav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		color: var(--gf-navy); border: 0; padding: 0.55rem 1rem; min-height: 40px; font-weight: 500; width: 100%;
	}
	.gf-mainnav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
	.gf-mainnav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content {
		background: var(--gf-tint); text-decoration: underline;
	}
}

/* ---------- Brotkrumen, Titel, Datum ---------- */
.gf-brotkrumen { font-size: var(--wp--preset--font-size--small); color: var(--gf-muted); }
.gf-brotkrumen ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; }
.gf-brotkrumen li { display: inline-flex; align-items: center; gap: 0.5rem; }
.gf-brotkrumen li + li::before { content: "›"; color: var(--gf-blue-text); font-weight: 700; }
.gf-brotkrumen a { color: var(--gf-navy); }
.gf-brotkrumen [aria-current] { color: var(--gf-ink); }

.gf-titel { margin-top: 0.25rem; margin-bottom: 0; max-width: 46rem; }
.gf-datum { color: var(--gf-blue-text); font-weight: 600; font-size: var(--wp--preset--font-size--small); letter-spacing: 0.01em; }

/* Früherer Blockstil „Mit Sonnenakzent“: ab 0.2.0 ohne Sonne (ältere Inhalte bleiben gültig, nur neutral). */
.is-style-gf-sonne::before { content: none !important; display: none !important; }

/* ---------- Inhaltsseiten ---------- */
.gf-seitenraster { gap: var(--wp--preset--spacing--50); }
.gf-seitenraster__rand:empty { display: none; }
@media (max-width: 781px) { .gf-seitenraster__rand { order: 2; } }
.gf-bereichsnav { background: var(--gf-tint); border-radius: var(--gf-radius); border-top: 4px solid var(--gf-navy); padding: 1rem 1.25rem; position: sticky; top: 1rem; }
.gf-bereichsnav__titel { font-family: var(--wp--preset--font-family--heading); font-weight: 700; margin: 0 0 0.5rem; }
.gf-bereichsnav__titel a { text-decoration: none; }
.gf-bereichsnav ul { list-style: none; margin: 0; padding: 0; }
.gf-bereichsnav li a { display: block; padding: 0.45rem 0.5rem; min-height: var(--gf-touch); box-sizing: border-box; text-decoration: none; border-radius: 4px; }
.gf-bereichsnav li a:hover { background: #fff; text-decoration: underline; }
.gf-bereichsnav li a[aria-current="page"] { background: #fff; font-weight: 600; box-shadow: inset 4px 0 0 var(--gf-yellow); }

.gf-inhalt > * { max-width: 46rem; }
.gf-inhalt > .alignwide { max-width: 76rem; }
.gf-inhalt > .alignfull { max-width: none; }
.gf-inhalt h2, .gf-inhalt h3, .gf-inhalt h4 { margin-top: 1.6em; }
.gf-inhalt table { border-collapse: collapse; width: 100%; }
.gf-inhalt th, .gf-inhalt td { border: 1px solid var(--gf-line); padding: 0.5rem 0.65rem; vertical-align: top; text-align: left; }
.gf-inhalt th { background: var(--gf-tint); }
.wp-block-table { overflow-x: auto; }
.is-style-gf-lead, .gf-lead { font-size: var(--wp--preset--font-size--medium); font-weight: 600; color: var(--gf-navy); line-height: 1.5; }

/* Kopfbild von Seiten */
.gf-kopfbild { margin: 0; }
.gf-kopfbild img { display: block; width: 100%; }
.gf-kopfbild.gf-bild-zugeschnitten img { height: clamp(10rem, 24vw, 22rem); }
.gf-kopfbild.gf-bild-ganz { background: var(--gf-tint); padding: var(--wp--preset--spacing--30) clamp(1rem, 4vw, 2rem); text-align: center; }
.gf-kopfbild.gf-bild-ganz img { width: auto; max-width: min(100%, 76rem); max-height: 80vh; margin-inline: auto; height: auto; }

/* ---------- Meldung (Einzelansicht) ---------- */
.gf-meldung__kopf { max-width: 46rem; }
.gf-beitragsbild { margin-left: auto !important; margin-right: auto !important; text-align: center; max-width: 46rem; }
.gf-beitragsbild img, .gf-beitragsbild a img { width: auto !important; height: auto !important; max-width: 100%; max-height: 80vh; object-fit: contain; display: inline-block; border-radius: 4px; }
.gf-beitragsbild a { display: inline-block; }
.gf-meldung__fuss { border-top: 1px solid var(--gf-line); padding-top: 1rem; margin-top: var(--wp--preset--spacing--40) !important; max-width: 46rem; }
.gf-kategorie { font-size: var(--wp--preset--font-size--small); color: var(--gf-muted); }
.gf-blaettern { gap: 1rem; }
.gf-blaettern .post-navigation-link-previous, .gf-blaettern .post-navigation-link-next { max-width: 48%; }
.gf-blaettern a { display: inline-block; padding: 0.4rem 0; }

/* ---------- Bilder im Inhalt ---------- */
.wp-block-image img { height: auto; }
.wp-block-image figcaption, .wp-element-caption { color: var(--gf-muted); font-size: var(--wp--preset--font-size--small); margin-top: 0.4rem; }
.wp-block-image.is-style-gf-plakat { max-width: min(100%, 32.5rem) !important; margin-left: auto; margin-right: auto; }
.wp-block-image.is-style-gf-plakat img { width: 100%; border: 1px solid var(--gf-line); }
.wp-block-image.is-style-gf-logo img { max-height: 110px; width: auto; object-fit: contain; }
.gf-hinweis-klein { font-size: var(--wp--preset--font-size--small); color: var(--gf-muted); }

/* Galerie: Raster in Lesereihenfolge (kein Masonry). Beschnitt nur bei „Bilder zuschneiden“. */
.wp-block-gallery.has-nested-images { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 1fr)); gap: 0.75rem !important; align-items: start; }
.wp-block-gallery.has-nested-images.columns-2 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); }
.wp-block-gallery.has-nested-images figure.wp-block-image { width: auto !important; margin: 0 !important; flex-direction: column; }
.wp-block-gallery.has-nested-images figure.wp-block-image img { width: 100%; }
.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image img { aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
.wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image img { height: auto; object-fit: contain; }
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	position: static !important; background: none !important; color: var(--gf-muted) !important; padding: 0.35rem 0 0 !important;
	max-height: none !important; overflow: visible !important; text-align: left !important; font-size: var(--wp--preset--font-size--small) !important; text-shadow: none !important;
}
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::before { display: none !important; }
.wp-block-gallery.has-nested-images figure.wp-block-image a { display: block; }

/* Logo-Reihe */
.wp-block-gallery.is-style-gf-logos { display: flex !important; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1.5rem 2.5rem !important; }
.wp-block-gallery.is-style-gf-logos figure.wp-block-image { flex: 0 0 auto !important; width: auto !important; }
.wp-block-gallery.is-style-gf-logos figure.wp-block-image img { width: auto !important; height: auto !important; max-height: 96px; max-width: 220px; object-fit: contain !important; aspect-ratio: auto !important; }

/* ---------- Karten (Meldungen) ---------- */
.gf-karten { gap: var(--wp--preset--spacing--30) !important; }
.gf-karte {
	position: relative; display: flex; flex-direction: column; height: 100%; box-sizing: border-box;
	background: #fff; border: 1px solid var(--gf-line); border-top: 4px solid var(--gf-navy); border-radius: var(--gf-radius); overflow: hidden;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.gf-karte:hover, .gf-karte:focus-within { border-top-color: var(--gf-yellow); box-shadow: 0 6px 18px rgba(4, 32, 74, 0.12); }
.gf-karte-bild { margin: 0 !important; background: var(--gf-tint); }
.gf-karte-bild img { display: block; width: 100%; height: auto !important; aspect-ratio: 3 / 2; }
.gf-karte-bild.gf-bild-ganz img { padding: 0.75rem; box-sizing: border-box; background: var(--gf-tint); }
.gf-karte__text { padding: 1rem 1.15rem 1.25rem; display: flex; flex-direction: column; flex: 1 1 auto; }
.gf-karte__titel { margin: 0; line-height: 1.3; }
.gf-karte__titel a { text-decoration: none; color: var(--gf-navy); }
.gf-karte__titel a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.gf-karte__titel a:hover { text-decoration: underline; }
.gf-karte__titel a:focus-visible { outline: none; box-shadow: none; }
.gf-karte:has(.gf-karte__titel a:focus-visible) { outline: 3px solid var(--gf-yellow); outline-offset: 2px; box-shadow: 0 0 0 5px var(--gf-navy); }
.gf-karte__auszug { color: var(--gf-ink); font-size: 1rem; margin: 0; }
.gf-karte__auszug p { margin: 0; }
.gf-karte:not(:has(.gf-karte-bild)) { background: var(--gf-tint) var(--gf-horizont) bottom / 100% 22px no-repeat; }
.gf-karte:not(:has(.gf-karte-bild)) .gf-karte__text { padding-bottom: 2.2rem; }
.gf-mehr { margin-top: var(--wp--preset--spacing--30); font-family: var(--wp--preset--font-family--heading); font-weight: 600; }
.gf-mehr a::after { content: " ›"; }

.gf-uebersicht { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--40); }
.gf-seiten { margin-top: var(--wp--preset--spacing--30); }
.gf-seiten a, .gf-seiten .page-numbers { display: inline-flex; min-width: var(--gf-touch); min-height: var(--gf-touch); align-items: center; justify-content: center; }
.gf-seiten .current { background: var(--gf-navy); color: #fff; border-radius: 4px; }
.gf-jahresarchiv { border-top: 1px solid var(--gf-line); padding-top: var(--wp--preset--spacing--30); }
.gf-jahre { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.gf-jahre li a { display: inline-flex; align-items: center; min-height: var(--gf-touch); padding: 0 0.9rem; border: 2px solid var(--gf-navy); border-radius: 999px; text-decoration: none; font-weight: 600; }
.gf-jahre li a:hover, .gf-jahre li a[aria-current] { background: var(--gf-navy); color: #fff; }

/* Suche */
.gf-trefferliste { display: flex; flex-direction: column; gap: 0; list-style: none; padding: 0; }
.gf-treffer { padding: 1rem 0; border-bottom: 1px solid var(--gf-line); }
.gf-treffer h2 { margin: 0; }
.gf-suche-gross .wp-block-search__input { border: 2px solid var(--gf-navy); border-radius: var(--gf-radius); padding: 0.6rem 0.75rem; font-size: 1.0625rem; min-height: var(--gf-touch); }
.gf-suche-gross .wp-block-search__button { min-height: var(--gf-touch); }
.gf-suche-gross .wp-block-search__label { font-weight: 600; }

/* ---------- Blockstile ---------- */
.is-style-gf-hinweis { background: var(--gf-yellow-tint); border-left: 6px solid var(--gf-yellow); border-radius: var(--gf-radius); padding: 1.25rem 1.5rem; }
.is-style-gf-hinweis > :first-child { margin-top: 0; }
.is-style-gf-hinweis > :last-child { margin-bottom: 0; }
.is-style-gf-karte { background: #fff; border: 1px solid var(--gf-line); border-top: 4px solid var(--gf-navy); border-radius: var(--gf-radius); padding: 1.25rem 1.4rem; box-sizing: border-box; }
.is-style-gf-karte > :first-child { margin-top: 0; }
.is-style-gf-band-navy { background: var(--gf-navy); color: #fff; }
.is-style-gf-band-navy :where(h1, h2, h3, h4, a) { color: #fff; }
.is-style-gf-band-tint { background: var(--gf-tint); }
.wp-block-separator.is-style-gf-horizont { border: 0 !important; height: 22px; background: var(--gf-horizont) center / 100% 100% no-repeat; opacity: 1; }

.wp-block-list.is-style-gf-links, .wp-block-list.is-style-gf-downloads { list-style: none; padding-left: 0; }
.is-style-gf-links li, .is-style-gf-downloads li { padding: 0.5rem 0 0.5rem 1.9rem; border-bottom: 1px solid var(--gf-line); position: relative; }
.is-style-gf-links li::before { content: "›"; position: absolute; left: 0.5rem; top: 0.45rem; color: var(--gf-navy); font-weight: 700; }
.is-style-gf-downloads li::before, .wp-block-file::before {
	content: ""; position: absolute; left: 0.2rem; top: 0.65rem; width: 1rem; height: 1.25rem;
	border: 2px solid var(--gf-navy); border-radius: 2px; background: linear-gradient(135deg, transparent 68%, var(--gf-navy) 68%);
}
.wp-block-file { position: relative; padding: 0.5rem 0 0.5rem 1.9rem; border-bottom: 1px solid var(--gf-line); display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; margin: 0; }
.wp-block-file::before { top: 0.75rem; }
.wp-block-file + .wp-block-file { margin-top: 0; }
.wp-block-file .wp-block-file__button { background: var(--gf-navy); color: #fff; border-radius: 4px; padding: 0.35rem 0.8rem; font-size: 0.9375rem; text-decoration: none; }
.wp-block-file .wp-block-file__button:hover { background: var(--gf-yellow); color: var(--gf-navy); }
.gf-dateiinfo { color: var(--gf-muted); font-size: var(--wp--preset--font-size--small); }

/* Schnellzugriff-Kacheln */
.gf-kacheln { gap: 1rem !important; }
.is-style-gf-kachel {
	position: relative; background: #fff; border: 2px solid var(--gf-navy); border-radius: var(--gf-radius) var(--gf-radius) 40% 40% / var(--gf-radius) var(--gf-radius) 18% 18%;
	padding: 1.1rem 0.75rem 1.5rem; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 0.6rem; box-sizing: border-box;
	transition: background 0.15s;
}
.is-style-gf-kachel::before {
	content: ""; width: 3.25rem; height: 3.25rem; border-radius: 50%; background-color: var(--gf-navy);
	background-image: var(--gf-icon, none); background-repeat: no-repeat; background-position: center; background-size: 55%;
}
.is-style-gf-kachel p { margin: 0; font-family: var(--wp--preset--font-family--heading); font-weight: 700; line-height: 1.25; }
.is-style-gf-kachel a { color: var(--gf-navy); text-decoration: none; }
.is-style-gf-kachel a::after { content: ""; position: absolute; inset: 0; }
.is-style-gf-kachel:hover { background: var(--gf-yellow-tint); }
.is-style-gf-kachel:hover a { text-decoration: underline; }
.is-style-gf-kachel a:focus-visible { outline: none; box-shadow: none; }
.is-style-gf-kachel:has(a:focus-visible) { outline: 3px solid var(--gf-yellow); outline-offset: 2px; box-shadow: 0 0 0 5px var(--gf-navy); }
.is-style-gf-kachel:nth-child(3n+2)::before { background-color: var(--gf-blue-text); }
.gf-icon-personen { --gf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6'/%3E%3Ccircle cx='17' cy='9' r='2.5'/%3E%3Cpath d='M15.5 14.3c3 .1 5.5 2.6 5.5 5.7'/%3E%3C/svg%3E"); }
.gf-icon-uhr { --gf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/svg%3E"); }
.gf-icon-formular { --gf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M6 3h8l4 4v14H6z'/%3E%3Cpath d='M14 3v4h4M9 12h6M9 16h6'/%3E%3C/svg%3E"); }
.gf-icon-ganztag { --gf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='5' r='2.5'/%3E%3Cpath d='M12 8v7M7 10l5 2 5-2M9 21l3-6 3 6'/%3E%3C/svg%3E"); }
.gf-icon-video { --gf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M10 9l5 3-5 3z'/%3E%3C/svg%3E"); }
.gf-icon-foto { --gf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M4 7h3l2-2h6l2 2h3v12H4z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%3E%3C/svg%3E"); }
.gf-icon-kalender { --gf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E"); }
.gf-icon-info { --gf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v6M12 7.5v.5'/%3E%3C/svg%3E"); }
.gf-icon-schule { --gf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M3 10l9-6 9 6M5 9v11h14V9M10 20v-5h4v5'/%3E%3C/svg%3E"); }

/* ---------- Startseite ---------- */
.gf-startinhalt > * { margin-block-start: 0 !important; }
.gf-willkommen h1 { color: #fff; }
.gf-willkommen a { color: #fff; }
.gf-willkommen .gf-willkommen__bild img { border-radius: var(--gf-radius); box-shadow: 0 0 0 4px var(--gf-blue); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.gf-willkommen { position: relative; }
.gf-willkommen::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 18px; background: var(--gf-horizont) bottom / 100% 100% no-repeat; }
.gf-abschnitt > .wp-block-heading { margin-bottom: var(--wp--preset--spacing--30); }
.gf-profil .is-style-gf-karte img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; border-radius: 4px; }
.gf-profil .is-style-gf-karte h3 a { text-decoration: none; }
.gf-profil .is-style-gf-karte h3 a:hover { text-decoration: underline; }
.gf-partner { border-top: 1px solid var(--gf-line); }

/* ---------- Personen / Kollegium ---------- */
.wp-block-details { border: 1px solid var(--gf-line); border-radius: var(--gf-radius); padding: 0; margin-block: 0 0.5rem; background: #fff; }
.wp-block-details summary { cursor: pointer; padding: 0.75rem 1rem; min-height: var(--gf-touch); box-sizing: border-box; font-family: var(--wp--preset--font-family--heading); font-weight: 600; color: var(--gf-navy); list-style-position: inside; }
.wp-block-details[open] summary { border-bottom: 1px solid var(--gf-line); background: var(--gf-tint); }
.wp-block-details > :not(summary) { margin-left: 1rem; margin-right: 1rem; }
.wp-block-details > :last-child { margin-bottom: 1rem; }
.gf-chips { font-size: var(--wp--preset--font-size--small); color: var(--gf-navy); }
.gf-person { gap: 1rem; align-items: flex-start; }
.gf-person__foto { margin: 0; flex: 0 0 auto; }
.gf-person__foto img { border-radius: 50%; }
.gf-person__text { flex: 1 1 14rem; }

/* ---------- Fußbereich ---------- */
.gf-fuss a { color: #fff; }
.gf-kontakt { display: grid; gap: 1.25rem 2rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.gf-kontakt__titel { font-size: var(--wp--preset--font-size--medium); margin: 0 0 0.4rem; }
.gf-kontakt p { margin: 0 0 0.5rem; }
.gf-kontakt--fuss .gf-kontakt__titel { color: var(--gf-yellow); }
.gf-kontakt--karte { grid-template-columns: 1fr; }
/* Marke im Fuß (0.2.4): Schullogo aus der zentralen Logoauswahl + Schulname, ein Link zur Startseite.
   Logo unverändert auf heller Kachel (Kontrast zum Dunkelblau, wie bei den Schwesterseiten). Sehr schmal rückt der
   Name unter das Logo statt mitten im Wort umzubrechen. */
.gf-kontakt--fuss .gf-marke { color: #fff; margin-bottom: 1rem; }
.gf-marke__link { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.625rem 0.875rem; max-width: 100%; color: #fff !important; text-decoration: none; }
.gf-marke__link:hover .gf-marke__name, .gf-marke__link:focus-visible .gf-marke__name { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.2em; }
.gf-marke__logo { flex: none; display: block; box-sizing: border-box; width: auto; height: 4rem; max-width: none; padding: 0.3rem; background: #fff; border-radius: 6px; object-fit: contain; }
.gf-marke__name { flex: 1 1 9rem; min-width: 0; line-height: 1.25; hyphens: manual; overflow-wrap: normal; }
@media (forced-colors: active) { .gf-marke__logo { background: Canvas; } }
/* Anordnung des dunklen Fußes (0.2.5): drei Gruppen in der Inhaltsbreite – Schule und Anschrift, Erreichbarkeit,
   weiterer Kontakt. Breit 40/30/30 mit gemeinsamer oberer Bezugslinie: Logo-/Namenszeile und die beiden kleinen
   Überschriften stehen in einer gleich hohen Kopfzeile, die Angaben beginnen darunter auf derselben Linie. Mittel steht
   die Schule oben über der vollen Breite, die zwei Kontaktgruppen darunter nebeneinander; schmal alles untereinander.
   Reihenfolge im DOM = Reihenfolge auf dem Bildschirm. Weiß als Grundfarbe, Gelb nur für die zwei kurzen Überschriften. */
.gf-kontakt--fuss { --gf-fuss-kopf: 3.5rem; grid-template-columns: minmax(0, 1fr); gap: 2rem clamp(2rem, 4vw, 4.5rem); align-items: start; line-height: 1.5; }
.gf-kontakt--fuss .gf-kontakt__abschnitt { min-width: 0; }
.gf-kontakt--fuss .gf-kontakt__titel { display: flex; align-items: center; margin: 0 0 0.625rem; font-size: 1.0625rem; line-height: 1.3; }
.gf-kontakt--fuss .gf-marke { margin: 0 0 0.875rem; font-size: 1.1875rem; color: #fff; }
.gf-kontakt--fuss .gf-marke__logo { height: var(--gf-fuss-kopf); }
.gf-kontakt--fuss p { margin: 0 0 0.75rem; }
.gf-kontakt--fuss p:last-child { margin-bottom: 0; }
@media (min-width: 40rem) {
	.gf-kontakt--fuss { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gf-kontakt--fuss .gf-kontakt__abschnitt--schule { grid-column: 1 / -1; }
}
@media (min-width: 64rem) {
	.gf-kontakt--fuss { grid-template-columns: minmax(0, 4fr) minmax(0, 3fr) minmax(0, 3fr); }
	.gf-kontakt--fuss .gf-kontakt__abschnitt--schule { grid-column: auto; }
	.gf-kontakt--fuss .gf-kontakt__titel { min-height: var(--gf-fuss-kopf); margin-bottom: 0.875rem; }
}

/* ---------- Lightbox ---------- */
.gf-lightbox { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(4, 22, 48, 0.96); color: #fff; }
.gf-lightbox[open] { display: flex; flex-direction: column; }
.gf-lightbox::backdrop { background: rgba(4, 22, 48, 0.9); }
.gf-lightbox__kopf, .gf-lightbox__fuss { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; padding: 0.75rem clamp(0.75rem, 3vw, 1.5rem); flex-wrap: wrap; }
.gf-lightbox__zaehler { margin: 0; font-weight: 600; }
.gf-lightbox button, .gf-lightbox__original {
	min-height: var(--gf-touch); padding: 0.4rem 1rem; border-radius: var(--gf-radius); border: 2px solid #fff; background: transparent; color: #fff;
	font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: 0.35rem;
}
.gf-lightbox button:hover, .gf-lightbox__original:hover { background: var(--gf-yellow); color: var(--gf-navy); border-color: var(--gf-yellow); }
.gf-lightbox button:disabled { opacity: 0.45; cursor: default; background: transparent; color: #fff; border-color: #fff; }
.gf-lightbox__schliessen { margin-left: auto; }
.gf-lightbox__bild { flex: 1 1 auto; margin: 0; padding: 0 clamp(0.5rem, 3vw, 1.5rem); display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 0; }
.gf-lightbox__bild img { max-width: 100%; max-height: calc(100vh - 11rem); width: auto; height: auto; object-fit: contain; background: #fff; }
.gf-lightbox__bild figcaption { margin-top: 0.6rem; text-align: center; max-width: 60rem; }
html.gf-lightbox-offen { overflow: hidden; }

/* ---------- Bewegung reduzieren, Druck ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media print {
	.gf-header, .gf-footer, .gf-brotkrumen, .gf-blaettern, .gf-bereichsnav, .wp-block-search { display: none !important; }
	body { font-size: 11pt; }
	a { color: #000; text-decoration: underline; }
}

/* ---------- Abstände zwischen Kopf, Inhalt und Fuß ---------- */
.wp-site-blocks > .gf-header + *, .wp-site-blocks > .gf-footer, .wp-site-blocks > .gf-kopfbild { margin-block-start: 0 !important; }
.wp-site-blocks > .gf-kopfbild + .gf-main { margin-block-start: 0 !important; }

/* Raster füllen die verfügbare Breite (statt leerer Spalten). */
.gf-kacheln.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr)) !important; }
.gf-profilkarten.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)) !important; }
.is-style-gf-kachel p { font-size: 1.0625rem; overflow-wrap: anywhere; hyphens: auto; }

/* Kopf auf schmalen Bildschirmen: Marke und Menü-Button in einer Zeile, Servicezeile kompakt. */
@media (max-width: 71.99rem) {
	.gf-hauptleiste__inhalt { flex-wrap: nowrap !important; }
	.gf-marke { flex: 1 1 auto; }
	.gf-mainnav { flex: 0 0 auto; }
}
@media (max-width: 47.99rem) {
	.gf-servicezeile > .wp-block-group { flex-wrap: wrap !important; }
	.gf-servicenav { flex: 1 1 100%; min-width: 0; }
	.gf-servicenav .wp-block-navigation__container { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: thin; padding-bottom: 2px; }
	.gf-servicenav .wp-block-navigation-item { flex: 0 0 auto; }
	.gf-suche { flex: 1 1 100%; margin-bottom: 0.35rem; }
	.gf-suche .wp-block-search__input { min-width: 0; }
	.gf-schulname, .gf-schulname a { font-size: 1.0625rem; }
	.gf-logo img { width: 44px; }
}
@media (min-width: 48rem) {
	.gf-servicezeile > .wp-block-group { flex-wrap: nowrap !important; }
	.gf-servicenav { flex: 1 1 auto; min-width: 0; }
	/* Viele Service-Links: eine Zeile, bei Platzmangel waagerecht scrollbar statt mehrzeilig. */
	.gf-servicenav .wp-block-navigation__container { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: thin; padding-bottom: 2px; }
	.gf-servicenav .wp-block-navigation-item { flex: 0 0 auto; }
	.gf-suche { flex: 0 0 auto; }
}

/* Ungeschnittene Bildreihen: einheitliche Zellen (4:3), Motiv vollständig, keine Leerflächen, Lesereihenfolge erhalten. */
.wp-block-gallery.has-nested-images:not(.is-cropped):not(.is-style-gf-logos) figure.wp-block-image img {
	aspect-ratio: 4 / 3; object-fit: contain; background: var(--gf-tint); border-radius: 4px;
}
/* Blättern zwischen Meldungen */
.gf-blaettern .post-navigation-link-previous, .gf-blaettern .post-navigation-link-next { display: flex; align-items: flex-start; gap: 0.35rem; }
.gf-blaettern .post-navigation-link-next { margin-left: auto; text-align: right; }
.gf-blaettern [class*="arrow"] { color: var(--gf-navy); font-weight: 700; padding-top: 0.4rem; }
.gf-brotkrumen.alignwide { max-width: 76rem; }
.gf-karten { align-items: start; }
.gf-karte { height: auto; }
.gf-jahre li { display: inline-flex; align-items: center; gap: 0.35rem; min-height: var(--gf-touch); padding: 0 0.9rem 0 0; border: 2px solid var(--gf-navy); border-radius: 999px; color: var(--gf-muted); }
.gf-jahre li a { border: 0; min-height: 0; padding: 0.55rem 0 0.55rem 0.9rem; }
.gf-jahre li a:hover { background: none; color: var(--gf-navy); text-decoration: underline; }

/* Overlay: linksbündig, Bereichslink links, Schalter rechts, Unterseiten darunter. */
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: stretch !important; }
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	flex-direction: row !important; flex-wrap: wrap !important; align-items: center !important; justify-content: space-between !important; text-align: left;
}
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { flex: 1 1 0; text-align: left; }
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; text-align: left; }
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { font-weight: 700; }
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open .has-child.gf-offen > .wp-block-navigation__submenu-container {
	flex: 1 0 100% !important; width: 100% !important; align-items: stretch !important; padding: 0.25rem 0 0.5rem 1rem !important; gap: 0 !important;
}
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { justify-content: flex-start !important; width: 100%; }
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { display: flex; align-items: center; min-height: 44px; text-align: left; justify-content: flex-start; }
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { align-items: flex-start !important; }
.gf-mainnav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { width: 100%; }

/* Ohne JavaScript (unter 72rem): Das Kern-Overlay lässt sich nicht öffnen. Stattdessen stehen die
   Hauptbereiche als umbrechende Linkzeile im Kopf; die Unterseiten erreicht man über die Bereichsnavigation. */
@media (max-width: 71.99rem) {
	html:not(.gf-js) .gf-hauptleiste__inhalt { flex-wrap: wrap !important; }
	html:not(.gf-js) .gf-hauptleiste__inhalt > .gf-mainnav { flex-basis: 100%; }
	html:not(.gf-js) .gf-mainnav .wp-block-navigation__responsive-container-open { display: none !important; }
	html:not(.gf-js) .gf-mainnav .wp-block-navigation__responsive-container {
		display: block !important; position: static !important; width: 100%; background: transparent !important; color: #fff !important; padding: 0 !important;
	}
	html:not(.gf-js) .gf-mainnav .wp-block-navigation__responsive-container-close,
	html:not(.gf-js) .gf-mainnav .wp-block-navigation__submenu-container,
	html:not(.gf-js) .gf-mainnav .wp-block-navigation__submenu-icon { display: none !important; }
	html:not(.gf-js) .gf-mainnav .wp-block-navigation__responsive-container-content { display: block !important; padding: 0 !important; }
	html:not(.gf-js) .gf-mainnav .wp-block-navigation__container { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: 0 1rem !important; }
	html:not(.gf-js) .gf-mainnav .wp-block-navigation-item__content { color: #fff; min-height: var(--gf-touch); display: inline-flex; align-items: center; }
}

/* ---------- Schulweite Plugins (lkwnd-*): nur Variablen und eng begrenzte Selektoren ---------- */
body {
	--lkwnd-akzent: var(--gf-navy);
	--lkwnd-text: var(--gf-ink);
	--lkwnd-flaeche: var(--gf-tint);
	--lkwnd-radius: var(--gf-radius);
	--lkwnd-viewer-bg: #04204A;
	--lkwnd-viewer-fg: #fff;
	--lkwnd-viewer-accent: var(--gf-yellow);
	--lkwnd-viewer-focus: var(--gf-yellow);
	--lkwnd-viewer-radius: var(--gf-radius);
	--lkwnd-sd-text: var(--gf-ink);
	--lkwnd-sd-flaeche: #fff;
	--lkwnd-sd-platzhalter: var(--gf-tint);
	--lkwnd-sd-akzent: var(--gf-navy);
	--lkwnd-sd-akzent-text: #fff;
	--lkwnd-sd-fokus: var(--gf-yellow);
	--lkwnd-sd-radius: var(--gf-radius);
}
.wp-block-lkwnd-infobox.lkwnd-infobox { border-left: 6px solid var(--gf-yellow); background: var(--gf-yellow-tint, #FFF6CC); border-radius: var(--gf-radius); padding: 1rem 1.25rem; }
.wp-block-lkwnd-infobox .lkwnd-infobox__titel { font-family: var(--wp--preset--font-family--heading); font-weight: 700; color: var(--gf-navy); }
.wp-block-lkwnd-downloads .lkwnd-downloads__liste { list-style: none; padding: 0; }
.wp-block-lkwnd-downloads .lkwnd-downloads__eintrag { padding: 0.5rem 0; border-bottom: 1px solid var(--gf-line); }
.wp-block-lkwnd-downloads .lkwnd-downloads__meta { color: var(--gf-muted); font-size: var(--wp--preset--font-size--small); }
.wp-block-lkwnd-person.lkwnd-person .lkwnd-person__name { font-family: var(--wp--preset--font-family--heading); font-weight: 700; color: var(--gf-navy); }


/* Termine/Downloads: Karten oben ausrichten, keine erzwungen gleichen Höhen. */
.gf-termine-downloads .wp-block-columns { align-items: flex-start !important; }
.gf-termine-downloads .wp-block-column > .is-style-gf-karte { height: auto; }
.gf-beitragsbild .gf-beitragsbild__unterschrift { font-size: var(--wp--preset--font-size--small); color: var(--gf-muted); margin-top: 0.5rem; text-align: left; }
.gf-bildpanel .components-radio-control { margin-bottom: 1rem; }
/* Blättern: lange Titel umbrechen, Pfeil bleibt innerhalb der Spalte (auch bei 320 px). */
.gf-blaettern .post-navigation-link-previous, .gf-blaettern .post-navigation-link-next { min-width: 0; }
.gf-blaettern .post-navigation-link-previous a, .gf-blaettern .post-navigation-link-next a { min-width: 0; overflow-wrap: anywhere; }
.gf-blaettern [class*="arrow"] { flex: 0 0 auto; }

/* =====================================================================================================
   Layout C „Bilder im Mittelpunkt“ (0.2.0)
   - Einstieg: Kernblock „Medien und Text“ (.gf-held), Foto rechts mit Fokuspunkt, dunkelblaue Textseite.
   - Schnellzugriffe als weiße Leiste leicht über dem unteren Rand des Einstiegs.
   - Aktuelles: eine große und zwei kleine Meldungen (zwei Abfragen, Versatz 1).
   - Pferdestempel: geglättete Pferdevorlage nach dem Schullogo (assets/img/pferd-freisen-glatt.svg, ohne Sockel) als rein dekorative
     Ebene (::before, kein DOM-Element, kein Fokus, keine Klicks), unterer Bereich per CSS-Maske weich
     ausgeblendet. Ohne Maskenunterstützung wird der Stempel nicht gezeigt (keine hart abgeschnittenen Beine).
   ===================================================================================================== */
:root { --gf-schatten: 0 10px 28px rgba(4, 32, 74, 0.13); --gf-radius-gross: 12px; }

/* ---------- Pferdestempel (ab 0.2.2: geglättete Vorlage assets/img/pferd-freisen-glatt.svg, viewBox 280 × 205) ---------- */
.gf-held .wp-block-media-text__content::before,
.gf-profil.gf-mit-stempel::before {
	content: ""; position: absolute; z-index: -1; pointer-events: none; aspect-ratio: 280 / 205; height: auto;
	/* Kopf, Hals und Rücken voll; ab dem Bauch (ca. 55 %) weich ausblenden, Beinansätze vollständig transparent. */
	-webkit-mask-image: url("../img/pferd-freisen-glatt.svg"), linear-gradient(to bottom, #000 0%, #000 55%, rgba(0, 0, 0, 0.35) 70%, transparent 86%);
	-webkit-mask-size: 100% 100%, 100% 100%;
	-webkit-mask-repeat: no-repeat, no-repeat;
	-webkit-mask-composite: source-in;
	mask-image: url("../img/pferd-freisen-glatt.svg"), linear-gradient(to bottom, #000 0%, #000 55%, rgba(0, 0, 0, 0.35) 70%, transparent 86%);
	mask-size: 100% 100%, 100% 100%;
	mask-repeat: no-repeat, no-repeat;
	mask-composite: intersect;
}
@supports not ((mask-composite: intersect) or (-webkit-mask-composite: source-in)) {
	.gf-held .wp-block-media-text__content::before, .gf-profil.gf-mit-stempel::before { display: none; }
}

/* ---------- Einstieg ---------- */
.gf-startinhalt > .gf-held { margin-block-start: 0 !important; }
.gf-held { position: relative; overflow: clip; }
.gf-held .wp-block-media-text__content {
	position: relative; isolation: isolate; overflow: clip; align-self: stretch; display: flex; flex-direction: column; justify-content: flex-start;
	/* unten Platz für den tiefer liegenden Stempel und die überlappende Schnellzugriffsleiste */
	padding: clamp(1.5rem, 3.5vw, 2.75rem) max(1rem, calc((100% - 76rem) / 2)) calc(clamp(1.75rem, 4vw, 3rem) + 3.25rem);
}
.gf-held .wp-block-media-text__content > * { position: relative; max-width: 36rem; }
.gf-held .wp-block-media-text__content::before {
	/* Hellblau auf Dunkelblau, zurückhaltend; ruht im unteren Teil der Textfläche, rechts, Kopf frei sichtbar. */
	background: var(--gf-blue); opacity: 0.12;
	width: min(62%, 21rem); right: -1.5rem; bottom: 0.5rem;
}
/* H1 in zwei Ebenen: Begrüßung (kleiner) und Schulname (groß). Keine Silbentrennung im Schulnamen; die Schrift
   ist so begrenzt, dass „Gemeinschaftsschule“ (ca. 10,2 em) auch ohne Trennwörterbuch in eine Zeile passt. */
.gf-held h1 {
	font-size: min(clamp(1.85rem, 1.2rem + 2vw, 2.75rem), calc((100vw - 2.5rem) / 10.8)); line-height: 1.12; font-weight: 800; letter-spacing: -0.01em; margin: 0;
	hyphens: none; -webkit-hyphens: none; overflow-wrap: normal; word-break: normal; text-wrap: balance;
}
.gf-held h1 .gf-held__gruss { display: block; font-size: 0.6em; font-weight: 600; letter-spacing: 0; line-height: 1.25; color: #dcebf4; margin-bottom: 0.3em; }
.gf-held h1 .gf-held__schule { display: block; }
.gf-held h1::after { content: ""; display: block; width: 4.5rem; height: 6px; border-radius: 3px; background: var(--gf-yellow); margin-top: 1rem; }
/* Schulpreis: nachrangiger Hinweis, kleiner, halbfett, luftige Zeilenhöhe, deutlicher Abstand zur H1. */
.gf-held h2, .gf-held h2.has-large-font-size { font-size: clamp(1rem, 0.94rem + 0.3vw, 1.1875rem) !important; line-height: 1.55; font-weight: 500; margin: 1.5rem 0 0; max-width: 26rem; color: #e8f1f7; hyphens: manual; -webkit-hyphens: manual; text-wrap: pretty; }
.gf-held h2 strong { font-weight: 500; }
.gf-held .wp-block-media-text__media { position: relative; margin: 0; }
.gf-held .wp-block-media-text__media img { display: block; }
.gf-held:not(:has(.wp-block-media-text__media img)) .wp-block-media-text__media { display: none; }

/* Gestapelt (Smartphone bis kleiner Laptop): Foto oben in seinem echten Seitenverhältnis (keine Gesichter beschnitten), Text darunter. */
@media (max-width: 79.99rem) {
	.gf-held { grid-template-columns: 100% !important; }
	.gf-held .wp-block-media-text__media { grid-column: 1 !important; grid-row: 1 !important; aspect-ratio: 1600 / 792; min-height: 0 !important; height: auto !important; }
	.gf-held .wp-block-media-text__media img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }
	.gf-held .wp-block-media-text__content { grid-column: 1 !important; grid-row: 2 !important; }
	.gf-held .wp-block-media-text__content > * { max-width: 40rem; }
	/* Smartphone: eigene Stempelzone unter dem Text (Kopf frei), Beine laufen hinter der Schnellzugriffsleiste aus. */
	.gf-held .wp-block-media-text__content { padding-bottom: calc(3.25rem + 9.5rem); }
	.gf-held .wp-block-media-text__content::before { width: min(60%, 16rem); right: -1.5rem; bottom: 0.25rem; opacity: 0.12; }
}
@media (min-width: 48rem) and (max-width: 79.99rem) {
	/* Tablet/kleiner Laptop: rechts neben dem (auf 40rem begrenzten) Text, Kopf unterhalb der H1-Zeile */
	.gf-held .wp-block-media-text__content { padding-bottom: calc(3.25rem + 4.5rem); }
	.gf-held .wp-block-media-text__content::before { width: clamp(13rem, 26vw, 18rem); right: 1rem; bottom: 1.25rem; }
}
/* Nebeneinander ab 80rem: Textseite 52 %, Foto 48 %. Höhe mindestens so, dass das Foto kaum beschnitten wird. */
@media (min-width: 80rem) {
	.gf-held { grid-template-columns: 52% 48% !important; min-height: min(calc(48vw / 2.02), 29rem); }
	.gf-held .wp-block-media-text__content { padding: 2.25rem clamp(1.5rem, 3vw, 3rem) calc(1.75rem + 3.25rem) max(2rem, calc((100vw - 76rem) / 2)); justify-content: center; }
	.gf-held h1 { font-size: min(2.6rem, calc((52vw - max(2rem, (100vw - 76rem) / 2) - clamp(1.5rem, 3vw, 3rem) - 1rem) / 10.8)); }
	/* Desktop: unten rechts in der Textfläche; Kopf rechts neben dem (auf 26rem begrenzten) Schulpreis-Hinweis,
	   unterhalb der Schulnamen-Zeile; Schweif läuft am Rand zum Foto aus. */
	.gf-held .wp-block-media-text__content::before { width: 20rem; right: -6rem; bottom: -1.25rem; opacity: 0.13; }
	.gf-held .wp-block-media-text__media::after {
		content: ""; position: absolute; inset: 0 auto 0 0; width: 4%; pointer-events: none;
		background: linear-gradient(90deg, var(--gf-navy) 0%, rgba(7, 43, 95, 0) 100%);
	}
}

/* ---------- Schnellzugriffe als weiße Leiste ---------- */
.gf-startinhalt > .gf-schnellzugriffe { padding-top: 0 !important; padding-bottom: var(--wp--preset--spacing--30) !important; }
.gf-startinhalt > .gf-held + .gf-schnellzugriffe { margin-top: -3.25rem !important; position: relative; z-index: 3; }
.gf-schnellzugriffe .gf-kacheln {
	background: #fff; border-radius: var(--gf-radius-gross); box-shadow: var(--gf-schatten); border: 1px solid rgba(201, 221, 230, 0.7);
	padding: 0.5rem; gap: 0 !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.gf-schnellzugriffe .is-style-gf-kachel {
	border: 0; border-radius: 8px; background: transparent; padding: 0.9rem 0.5rem 1rem; gap: 0.55rem; min-height: 7rem; justify-content: flex-start;
}
.gf-schnellzugriffe .is-style-gf-kachel::before { width: 3.25rem; height: 3.25rem; background: #dcebf4 !important; background-image: none !important; }
.gf-schnellzugriffe .is-style-gf-kachel::after {
	content: ""; position: absolute; top: calc(0.9rem + 0.8125rem); left: 50%; width: 1.625rem; height: 1.625rem; transform: translateX(-50%);
	background: var(--gf-navy); pointer-events: none;
	-webkit-mask: var(--gf-icon) center / contain no-repeat; mask: var(--gf-icon) center / contain no-repeat;
}
.gf-schnellzugriffe .is-style-gf-kachel p { font-size: 1rem; }
.gf-schnellzugriffe .is-style-gf-kachel:hover { background: var(--gf-tint); }
@media (min-width: 30rem) { .gf-schnellzugriffe .gf-kacheln { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (min-width: 64rem) {
	.gf-schnellzugriffe .gf-kacheln { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; padding: 0.75rem 0.5rem; }
	.gf-schnellzugriffe .is-style-gf-kachel + .is-style-gf-kachel { box-shadow: -1px 0 0 0 var(--gf-line); border-radius: 0; }
	.gf-schnellzugriffe .is-style-gf-kachel:hover { border-radius: 8px; }
}
@media (max-width: 23.99rem) {
	.gf-schnellzugriffe .is-style-gf-kachel p { font-size: 0.8125rem; hyphens: manual; }
	/* Kopf bei 320 px: Schulname und Menü-Schalter ohne Überlappung */
	.gf-schulname, .gf-schulname a { font-size: 0.9375rem !important; }
	.gf-logo img { width: 40px !important; }
	.gf-marke { gap: 0.6rem !important; }
	.gf-mainnav .wp-block-navigation__responsive-container-open { padding: 0.35rem 0.6rem !important; font-size: 0.9375rem !important; gap: 0.3rem; }
}

/* ---------- Begrüßungstext (Fortsetzung) und Anmeldehinweis ---------- */
.gf-einstieg { padding-top: var(--wp--preset--spacing--30) !important; }
.gf-einstieg__spalten { align-items: flex-start !important; margin: 0; }
.gf-einstieg__text p { max-width: 42rem; }
.gf-einstieg__text > :first-child { margin-top: 0; }
.gf-einstieg .is-style-gf-hinweis { padding: 1.25rem 1.4rem; border-radius: 10px; }
.gf-einstieg .is-style-gf-hinweis h2 { margin-bottom: 0.5rem; }
.gf-einstieg .is-style-gf-hinweis p { font-size: 1rem; }
.gf-einstieg .is-style-gf-hinweis .wp-block-button__link { background: var(--gf-navy); color: #fff; border-radius: 8px; padding: 0.65rem 1.1rem; min-height: var(--gf-touch); display: inline-flex; align-items: center; }
.gf-einstieg .is-style-gf-hinweis .wp-block-button__link::after { content: ""; width: 0.9em; height: 0.9em; margin-left: 0.5em; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }
.gf-einstieg .is-style-gf-hinweis .wp-block-button__link:hover { background: var(--gf-yellow); color: var(--gf-navy); }
@media (max-width: 781px) { .gf-einstieg__spalten { gap: var(--wp--preset--spacing--30) !important; } }

/* ---------- Aktuelles: eine große, zwei kleine Meldungen ---------- */
.gf-aktuelles__kopf { margin-bottom: var(--wp--preset--spacing--30); gap: 0.5rem 1.5rem; }
.gf-aktuelles__kopf > * { margin: 0 !important; }
.gf-aktuelles__kopf .gf-mehr { font-size: 1rem; }
.gf-aktuelles__raster { display: grid; gap: 1.25rem; align-items: start; }
.gf-aktuelles__raster > .wp-block-query { margin: 0 !important; }
@media (min-width: 56rem) {
	.gf-aktuelles__raster:has(> .gf-aktuell-klein) { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
}
.gf-aktuelles .gf-karten { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; }
.gf-aktuelles .gf-karten > li { margin: 0 !important; }
.gf-aktuelles .gf-karte { border: 1px solid var(--gf-line); border-radius: 10px; box-shadow: 0 2px 10px rgba(4, 32, 74, 0.06); }
.gf-aktuelles .gf-karte:hover, .gf-aktuelles .gf-karte:focus-within { border-color: var(--gf-blue); box-shadow: var(--gf-schatten); }
.gf-aktuelles .gf-karte__text { position: relative; padding-right: 3.5rem; }
.gf-aktuelles .gf-karte__text::after {
	/* rein dekorativer Pfeil; die ganze Karte ist über den Titellink klickbar */
	content: ""; position: absolute; right: 1rem; bottom: 1rem; width: 2.25rem; height: 2.25rem; border-radius: 50%;
	background: #dcebf4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23072B5F' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 1.1rem no-repeat;
}
.gf-aktuell-gross .gf-karte-bild img { aspect-ratio: 16 / 10; }
.gf-aktuell-gross .gf-karte__text { padding: 1.15rem 3.75rem 1.4rem 1.35rem; }
.gf-aktuell-gross .gf-karte__titel { font-size: clamp(1.3rem, 1.05rem + 0.8vw, 1.75rem) !important; }
.gf-aktuell-gross .gf-karte__auszug { font-size: 1.0625rem; }
.gf-aktuell-klein .gf-karte__titel { font-size: 1.125rem !important; }
.gf-aktuell-klein .gf-karte__auszug { font-size: 0.9375rem; }
@media (min-width: 30rem) {
	.gf-aktuell-klein .gf-karte:has(.gf-karte-bild) { display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 1fr); }
	/* Bild füllt die linke Spalte, bestimmt aber nicht die Kartenhöhe (sonst können lazy geladene Bilder mit
	   sizes="auto" die Karte überlang machen). Höhe = Text, mindestens 9.5rem. */
	.gf-aktuell-klein .gf-karte-bild { position: relative; height: 100%; min-height: 9.5rem; overflow: hidden; }
	.gf-aktuell-klein .gf-karte-bild img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; aspect-ratio: auto; }
	.gf-aktuell-klein .gf-karte-bild.gf-bild-ganz img { padding: 0.5rem; }
}
.gf-aktuelles .gf-karte:not(:has(.gf-karte-bild)) { background: var(--gf-tint); border-left: 5px solid var(--gf-yellow); }
.gf-aktuell-gross .gf-karte:not(:has(.gf-karte-bild)) .gf-karte__text { padding-top: 2rem; padding-bottom: 2.75rem; }

/* ---------- Schulprofil mit zweitem Stempel: sichtbar im freien Kopfbereich rechts neben der Überschrift ---------- */
.gf-profil.gf-mit-stempel { position: relative; isolation: isolate; overflow: clip; }
.gf-profil.gf-mit-stempel > .wp-block-heading { margin-bottom: clamp(2rem, 5vw, 4.25rem); }
.gf-profil.gf-mit-stempel::before {
	/* Dunkelblau auf Hellblau, zurückhaltend. Kopf und Hals über den Karten; Beine laufen hinter der Kartenoberkante aus. */
	background: var(--gf-navy); opacity: 0.1;
	width: clamp(12rem, 20vw, 17.5rem); right: max(0.5rem, calc((100% - 76rem) / 2 - 1rem)); top: clamp(0.75rem, 2vw, 1.75rem);
}
@media (max-width: 47.99rem) {
	.gf-profil.gf-mit-stempel > .wp-block-heading { margin-bottom: 1.75rem; }
	.gf-profil.gf-mit-stempel::before { width: 8.5rem; right: -0.75rem; top: 1.1rem; opacity: 0.09; }
}
@media (max-width: 23.99rem) {
	/* 320 px: weiter an den Rand, damit der Kopf nicht an die Überschrift stößt (Körper läuft am Rand aus). */
	.gf-profil.gf-mit-stempel::before { width: 7.5rem; right: -2.25rem; top: 1.25rem; }
}
.gf-profil .is-style-gf-karte { border-radius: 10px; border-top-width: 1px; border-color: var(--gf-line); box-shadow: 0 2px 10px rgba(4, 32, 74, 0.06); }
.gf-profil .is-style-gf-karte img { border-radius: 6px; }

/* ---------- Servicezeile unter 72rem: beschrifteter Bereich „Service & Links“ (0.2.2) ----------
   Mit JavaScript: Schalter (aria-expanded/aria-controls) klappt die Links als Raster auf, ohne waagerechtes Scrollen.
   Ohne JavaScript: Links stehen dauerhaft als umbrechendes Raster. Ab 72rem bleibt die einzeilige Leiste. */
.gf-service-schalter { display: none; }
@media (max-width: 71.99rem) {
	.gf-servicezeile > .wp-block-group { flex-wrap: wrap !important; align-items: center; gap: 0.5rem 0.75rem !important; }
	nav.gf-servicenav { order: 3; flex: 1 1 100% !important; min-width: 0; }
	.gf-servicenav .wp-block-navigation__container {
		display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 9.5rem), 1fr)); gap: 0 1rem !important; align-items: stretch;
		overflow: visible !important; flex-wrap: wrap !important; padding: 0 0 0.35rem !important; margin: 0;
	}
	.gf-servicenav .wp-block-navigation-item { display: block !important; flex: initial !important; min-height: 0 !important; margin: 0 !important; border-top: 1px solid rgba(255, 255, 255, 0.16); }
	.gf-servicenav .wp-block-navigation-item__content { display: flex !important; align-items: center; width: 100%; min-height: var(--gf-touch); padding: 0.4rem 0 !important; font-size: 1rem; line-height: 1.3; }
	.gf-suche { order: 2; flex: 1 1 12rem; margin: 0.35rem 0 !important; }
	.gf-suche .wp-block-search__input { min-width: 0; }
	html.gf-js .gf-service-schalter {
		order: 1; display: inline-flex; align-items: center; gap: 0.45rem; flex: 0 0 auto;
		min-height: var(--gf-touch); padding: 0.4rem 0.85rem; margin: 0.35rem 0;
		background: transparent; color: #fff; border: 2px solid rgba(255, 255, 255, 0.75); border-radius: var(--gf-radius);
		font: inherit; font-weight: 700; font-size: 0.9375rem; cursor: pointer;
	}
	html.gf-js .gf-service-schalter:hover { background: var(--gf-yellow); color: var(--gf-navy); border-color: var(--gf-yellow); }
	html.gf-js .gf-service-schalter svg { transition: transform 0.15s; }
	html.gf-js .gf-service-schalter[aria-expanded="true"] svg { transform: rotate(180deg); }
	html.gf-js nav.gf-servicenav:not(.gf-service-offen) { display: none !important; }
}
@media (max-width: 23.99rem) {
	html.gf-js .gf-service-schalter { padding-inline: 0.65rem; font-size: 0.875rem; }
	.gf-suche { flex-basis: 9.5rem; }
}

/* ---------- Zweiter Abschluss unter dem dunklen Fuß (0.2.4) ----------
   Aufbau wie bei den Schwesterseiten des Landkreises (stage.gemsmarpingen.de, gems-wnd.lkwnd.schule): helle Leiste,
   links Landkreislogo mit Trennstrich und Zuordnung, rechtsbündig die rechtliche Navigation; schmal untereinander. */
.gf-abschluss { background: #fff; color: var(--gf-ink); border-top: 1px solid var(--gf-line); padding-top: 0.9rem; padding-bottom: 0.9rem; font-size: 0.875rem; margin: 0 !important; }
.wp-site-blocks > .gf-footer .gf-abschluss, .gf-footer > .gf-abschluss { margin-block-start: 0 !important; }
.gf-abschluss__inhalt { gap: 0.5rem 2rem; align-items: center; }
.gf-abschluss__inhalt > * { margin: 0 !important; }
.gf-traeger { margin: 0; }
.gf-traeger__inhalt { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.25rem; }
.gf-traeger__logo { display: block; height: 2.9rem; width: auto; max-width: 9rem; object-fit: contain; }
.gf-traeger__link { display: inline-block; }
.gf-traeger__text { margin: 0; padding-left: 1.25rem; border-left: 1px solid var(--gf-line); font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 0.875rem; color: var(--gf-navy); }
.gf-footernav { margin-left: auto; }
.gf-footernav .wp-block-navigation__container { gap: 0 1.25rem; justify-content: flex-end; }
.gf-footernav .wp-block-navigation-item__content { color: var(--gf-navy) !important; padding: 0; min-height: var(--gf-touch); display: inline-flex; align-items: center; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.25em; overflow-wrap: anywhere; }
.gf-footernav .wp-block-navigation-item__content:hover { text-decoration-thickness: 2px; }
/* 0.2.5: Fokusrahmen auf der hellen Leiste dunkelblau statt gelb (Kontrast zum weißen Grund). */
.gf-abschluss :where(a, button):focus-visible { outline-color: var(--gf-navy); }
@media (max-width: 37.49rem) {
	.gf-traeger__text { padding-left: 0; border-left: 0; flex-basis: 100%; }
	.gf-footernav { margin-left: 0; flex-basis: 100%; }
	.gf-footernav .wp-block-navigation__container { justify-content: flex-start; }
}
