/*
 * GemS Marpingen – ergänzende Stile zu theme.json.
 * Breakpoint Hauptnavigation: 1100px (identisch in assets/js/navigation.js).
 */

/* ---------- Grundlagen ---------- */
:root {
	--gems-radius: 10px;
	--gems-focus: #F2D544;
	--gems-shadow: 0 8px 20px rgba(24, 54, 90, 0.10);
}

html { scroll-padding-top: 1rem; }
body { overflow-wrap: break-word; }
/* Lange deutsche Komposita (z. B. „Gemeinschaftsschule“) dürfen bei großer Schrift umbrechen. */
h1, h2, h3, h4, .wp-block-site-title, .wp-block-post-title, .gems-tile__title { overflow-wrap: anywhere; hyphens: auto; }
.gems-sectionhead > * { min-width: 0; }

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

.gems-visually-hidden,
.gems-visually-hidden.wp-block-heading {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	margin: 0 !important;
	padding: 0 !important;
}

.gems-skip-link {
	position: absolute;
	left: 1rem;
	top: -200px;
	z-index: 100000;
	background: var(--wp--preset--color--navy);
	color: #fff;
	padding: 0.75rem 1rem;
	font-weight: 700;
	border-radius: 0 0 8px 8px;
	text-decoration: none;
}
.gems-skip-link:focus { top: 0; color: #fff; }

#inhalt:focus { outline: none; }

/* ---------- Kopfbereich ---------- */
.gems-header { position: relative; z-index: 20; }

.gems-metabar { padding-top: 0.25rem; padding-bottom: 0.25rem; font-size: 0.9375rem; }
.gems-metabar__inner { gap: 0.25rem 1.25rem; align-items: center; }
.gems-metabar p { margin: 0; }
.gems-meta-link a {
	color: #fff;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	min-height: 44px;
}
.gems-meta-link a:hover { text-decoration: underline; color: #fff; }
.gems-meta-ls a::before {
	content: "";
	width: 1.1rem;
	height: 1.1rem;
	flex: none;
	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='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='4.5' r='2.5'/%3E%3Cpath d='M5 9h14M12 9v12M8 21l4-6 4 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='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='4.5' r='2.5'/%3E%3Cpath d='M5 9h14M12 9v12M8 21l4-6 4 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.gems-meta-portal a::after { content: "↗"; content: "↗" / ""; font-size: 0.85em; }

.gems-search { margin: 0; max-width: 100%; }
.gems-search .wp-block-search__inside-wrapper { gap: 0.25rem; flex-wrap: wrap; max-width: 100%; }
.gems-search .wp-block-search__input {
	border: 2px solid transparent;
	border-radius: 999px;
	padding: 0.35rem 0.9rem;
	min-height: 40px;
	width: 12rem;
	min-width: 0;
	flex: 1 1 8rem;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--body-text);
	background: #fff;
}
.gems-search .wp-block-search__button {
	margin: 0;
	min-height: 40px;
	padding: 0.35rem 0.9rem;
	font-size: 0.9375rem;
	background: var(--wp--preset--color--yellow);
	color: var(--wp--preset--color--navy);
	border-color: var(--wp--preset--color--yellow);
}
.gems-search .wp-block-search__button:hover {
	background: #fff;
	border-color: #fff;
	color: var(--wp--preset--color--navy);
}

.gems-mainbar { border-bottom: 1px solid var(--wp--preset--color--line); }
.gems-mainbar__inner {
	gap: 0.5rem 1rem;
	min-height: 88px;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
	align-items: center;
}
.gems-brand { gap: 0.75rem; flex: 0 1 auto; min-width: 0; align-items: center; }
.gems-brand .wp-block-site-logo { flex: none; }
/* Schullogo (Website-Logo): unverzerrt, nie hochskaliert über die Webfassung (180 × 192 px) hinaus. */
.gems-brand .wp-block-site-logo img { width: 76px; max-width: none; height: auto; aspect-ratio: auto; object-fit: contain; }
/* Mit Logo wird der Schulname zwischen 1100 und 1279 px nur noch vorgelesen, damit das Menü einzeilig bleibt. */
@media (min-width: 1100px) and (max-width: 1279px) {
	.gems-brand:has(.wp-block-site-logo img) .gems-brand__title {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
}
.gems-brand__title { margin: 0; max-width: 15rem; }
.gems-brand__title a { display: inline-block; padding: 0.25rem 0; }

.gems-header-cta { flex: none; margin: 0; }
.gems-header-cta .wp-block-buttons { margin: 0; }

/* Anmeldung Klasse 5 – dezenter Informationslink (Standard außerhalb der Anmeldephase) */
.gems-anmeldung-link { margin: 0; }
.gems-anmeldung-link a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	min-height: 44px;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
.gems-anmeldung-link a::before {
	content: "";
	width: 1.05rem;
	height: 1.05rem;
	flex: none;
	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='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v6M12 7.5v.5'/%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='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v6M12 7.5v.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.gems-anmeldung-link a:hover { color: var(--wp--preset--color--teal); }
.gems-header .gems-anmeldung-link { font-size: 0.9375rem; }

/* Hauptnavigation (Core-Navigationsblock, Untermenüs per Klick) */
.gems-mainnav { flex: 1 1 auto; justify-content: center; }
.gems-mainnav .wp-block-navigation__container { gap: 0.15rem; }
.gems-mainnav .wp-block-navigation-item__content {
	padding: 0.65rem 0.45rem;
	border-radius: 6px;
	white-space: nowrap;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}
.gems-mainnav .wp-block-navigation-item__content:hover,
.gems-mainnav .wp-block-navigation-submenu__toggle[aria-expanded="true"] {
	background: var(--wp--preset--color--teal-tint);
}
.gems-mainnav .current-menu-item > .wp-block-navigation-item__content,
.gems-mainnav .current-menu-ancestor > .wp-block-navigation-item__content {
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--teal);
}
.gems-mainnav .wp-block-navigation__submenu-icon { margin-left: 0; margin-right: 0.35rem; }
.gems-mainnav .wp-block-navigation__submenu-container {
	background: #fff !important;
	color: var(--wp--preset--color--body-text) !important;
	border: 1px solid var(--wp--preset--color--line) !important;
	border-top: 4px solid var(--wp--preset--color--teal-light) !important;
	border-radius: 0 0 8px 8px;
	box-shadow: 0 12px 24px rgba(24, 54, 90, 0.14);
	padding: 0.4rem !important;
	min-width: 17rem !important;
	/* Sofort sichtbar: verhindert, dass schnelles Tab während der Einblendung ins Leere geht. */
	transition: none !important;
}
.gems-mainnav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-weight: 500;
	width: 100%;
	color: var(--wp--preset--color--body-text);
	white-space: normal;
}
.gems-mainnav .wp-block-navigation__submenu-container .wp-block-navigation-item:first-child > .wp-block-navigation-item__content {
	font-weight: 700;
	color: var(--wp--preset--color--navy);
}

/* Menü-Button (wird nur per JavaScript erzeugt) */
.gems-menu-toggle {
	display: none;
	align-items: center;
	gap: 0.5rem;
	min-height: 44px;
	padding: 0.4rem 0.9rem;
	font: inherit;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	background: #fff;
	border: 2px solid var(--wp--preset--color--navy);
	border-radius: 8px;
	cursor: pointer;
}
.gems-menu-toggle:hover { background: var(--wp--preset--color--teal-tint); }
.gems-menu-toggle__icon,
.gems-menu-toggle__icon::before,
.gems-menu-toggle__icon::after {
	display: block;
	width: 20px;
	height: 2.5px;
	background: currentColor;
	border-radius: 2px;
	position: relative;
}
.gems-menu-toggle__icon::before,
.gems-menu-toggle__icon::after { content: ""; position: absolute; left: 0; }
.gems-menu-toggle__icon::before { top: -6px; }
.gems-menu-toggle__icon::after { top: 6px; }
.gems-nav-open .gems-menu-toggle__icon { background: transparent; }
.gems-nav-open .gems-menu-toggle__icon::before { top: 0; transform: rotate(45deg); }
.gems-nav-open .gems-menu-toggle__icon::after { top: 0; transform: rotate(-45deg); }

@media (max-width: 1099px) {
	.gems-mainbar__inner { flex-wrap: wrap !important; min-height: 72px; }
	.gems-brand { order: 1; flex: 1 1 0; min-width: 0; }
	.gems-brand .wp-block-site-logo img { width: 56px; }
	.gems-brand { gap: 0.6rem; }
	.gems-brand__title { font-size: 0.9375rem; }
	.gems-header-cta { order: 2; }
	.gems-menu-toggle { display: inline-flex; order: 3; }
	.gems-mainnav { order: 4; flex: 1 0 100%; justify-content: flex-start; }
	.gems-mainnav .wp-block-navigation__container {
		flex-direction: column;
		align-items: stretch !important;
		width: 100%;
		gap: 0;
		border-top: 1px solid var(--wp--preset--color--line);
	}
	.gems-mainnav .wp-block-navigation-item {
		flex-wrap: wrap;
		width: 100%;
		border-bottom: 1px solid var(--wp--preset--color--line);
	}
	.gems-mainnav .wp-block-navigation-item__content {
		width: 100%;
		justify-content: space-between;
		font-size: 1.0625rem;
		padding: 0.8rem 0.5rem;
		border-radius: 0;
		white-space: normal;
		text-align: left;
	}
	.gems-mainnav .wp-block-navigation-item .wp-block-navigation__submenu-container {
		position: static !important;
		box-shadow: none;
		border: 0 !important;
		border-left: 4px solid var(--wp--preset--color--teal-light) !important;
		border-radius: 0;
		min-width: 0 !important;
		width: 100% !important;
		margin: 0 0 0.5rem 0.5rem;
		padding: 0 !important;
	}
	.gems-mainnav .wp-block-navigation__submenu-container .wp-block-navigation-item { border-bottom: 0; }
	.gems-mainnav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.65rem 0.75rem; }
	.gems-mainnav .wp-block-navigation__submenu-icon { display: none; }
	.gems-mainnav .wp-block-navigation-submenu__toggle::after {
		content: "";
		width: 0.55rem;
		height: 0.55rem;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg) translate(-2px, -2px);
		flex: none;
	}
	.gems-mainnav .wp-block-navigation-submenu__toggle[aria-expanded="true"]::after { transform: rotate(-135deg); }
	/* Eingeklappt nur, wenn das Skript erfolgreich initialisiert wurde */
	.gems-nav-enhanced.gems-nav-collapsible:not(.gems-nav-open) .gems-mainnav { display: none; }
	.gems-meta-portal { display: none; }
	.gems-metabar__inner { justify-content: space-between !important; }
}

/* Sehr schmale Bildschirme: Mit Logo wird der Schulname nur noch vorgelesen (das Logo enthält ihn). */
@media (max-width: 389px) {
	.gems-brand:has(.wp-block-site-logo img) .gems-brand__title {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
}

@media (max-width: 520px) {
	.gems-header-cta { order: 4; flex: 1 0 100%; }
	.gems-header-cta .wp-block-buttons,
	.gems-header-cta .wp-block-button,
	.gems-header-cta .wp-block-button__link { width: 100%; }
	.gems-mainnav { order: 5; }
	.gems-brand__title { max-width: 11rem; }
}

/* Ohne JavaScript oder solange navigation.js die Untermenüs nicht übernommen hat:
   Untermenüs per Hover und Fokus-innerhalb erreichbar. */
.no-js .gems-mainnav .has-child:hover > .wp-block-navigation__submenu-container,
.no-js .gems-mainnav .has-child:focus-within > .wp-block-navigation__submenu-container,
nav.gems-mainnav[data-gems-submenus="theme"]:not(.gems-submenus-ready) .has-child:hover > .wp-block-navigation__submenu-container,
nav.gems-mainnav[data-gems-submenus="theme"]:not(.gems-submenus-ready) .has-child:focus-within > .wp-block-navigation__submenu-container {
	visibility: visible;
	opacity: 1;
	width: auto;
	height: auto;
	overflow: visible;
	min-width: 17rem;
}
@media (max-width: 1099px) {
	.no-js .gems-mainnav .wp-block-navigation__submenu-container {
		visibility: visible !important;
		opacity: 1 !important;
		height: auto !important;
		overflow: visible !important;
	}
	.no-js .gems-mainnav .wp-block-navigation-submenu__toggle::after { display: none; }
}

/* ---------- Abschnitte und Inhalte ---------- */
.gems-main { margin-block: 0; }
.gems-section { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--50); }
.gems-pagehead { padding-top: var(--wp--preset--spacing--40); padding-bottom: var(--wp--preset--spacing--40); }
.gems-pagehead .wp-block-post-title,
.gems-pagehead h1 { margin-top: 0.5rem; margin-bottom: 0; }
.gems-pagehead .wp-block-search { margin-top: 1.5rem; }
.gems-content { padding-top: var(--wp--preset--spacing--40); padding-bottom: var(--wp--preset--spacing--50); }
.gems-lead { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--navy); }

.gems-breadcrumbs { font-size: var(--wp--preset--font-size--small); margin: 0; }
.gems-breadcrumbs a { color: var(--wp--preset--color--teal); }

.gems-sectionhead { margin-bottom: 1.5rem; gap: 0.5rem 1rem; }
.gems-sectionhead h2 { margin: 0; }
.gems-more { margin: 0; font-weight: 600; }

/* Hero */
.gems-hero { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--50); position: relative; }
.gems-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 10px;
	background: linear-gradient(90deg, var(--wp--preset--color--teal-light) 0 25%, var(--wp--preset--color--yellow) 25% 50%, var(--wp--preset--color--pink) 50% 75%, var(--wp--preset--color--teal) 75%);
}
.gems-hero__cols { gap: var(--wp--preset--spacing--40); }
.gems-kicker {
	color: var(--wp--preset--color--yellow);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-size: 0.9375rem;
	margin-bottom: 0.5rem;
}
.gems-hero h1.gems-hero__title { color: #fff; font-size: clamp(2rem, 4.6vw, 3.1rem); margin-top: 0; }
.gems-hero__lead { font-size: var(--wp--preset--font-size--large); max-width: 34ch; }
.gems-hero__actions { margin-top: 1.5rem; gap: 0.75rem 1rem; }
.gems-hero a:not(.wp-element-button) { color: #fff; }
.gems-hero__anmeldung { margin-top: 1rem; }
.gems-hero .gems-anmeldung-link a:hover { color: var(--wp--preset--color--yellow); }
.gems-hero .gems-anmeldung--aktiv .wp-block-button__link { border-color: #fff; }
/* Fokuspunkt der Fotos: obere Bildmitte, damit Gesichter beim Zuschnitt erhalten bleiben. */
.gems-hero__image img,
.gems-slide__image img { object-position: 50% 35%; }
.wp-block-image.gems-foto img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; object-position: 50% 30%; border-radius: var(--gems-radius); }
.gems-hero__media { position: relative; }
.gems-hero__image { margin: 0; position: relative; }
.gems-hero__image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--gems-radius);
	position: relative;
	z-index: 1;
	box-shadow: -14px 14px 0 0 var(--wp--preset--color--teal-light);
}
@media (max-width: 781px) {
	.gems-hero__image img { aspect-ratio: 16 / 9; box-shadow: -8px 8px 0 0 var(--wp--preset--color--teal-light); }
	.gems-hero { padding-top: var(--wp--preset--spacing--40); }
}

/* Buttons */
.wp-block-button.is-style-gems-anmeldung .wp-block-button__link {
	background: var(--wp--preset--color--pink-strong);
	border-color: var(--wp--preset--color--pink-strong);
	color: #fff;
}
.wp-block-button.is-style-gems-anmeldung .wp-block-button__link:hover {
	background: #8E2459;
	border-color: #8E2459;
	color: #fff;
}
.wp-block-button.is-style-gems-gelb .wp-block-button__link {
	background: var(--wp--preset--color--yellow);
	border-color: var(--wp--preset--color--yellow);
	color: var(--wp--preset--color--navy);
}
.wp-block-button.is-style-gems-gelb .wp-block-button__link:hover {
	background: #fff;
	border-color: #fff;
	color: var(--wp--preset--color--navy);
}
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border-color: currentColor;
	color: inherit;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--navy);
	border-color: var(--wp--preset--color--navy);
	color: #fff;
}
.gems-hero .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border-color: #fff; }
.gems-hero .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--navy); }
.wp-element-button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }

/* Schnellzugriffe */
.gems-quick { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.gems-quick__grid { gap: 0.75rem; }
.gems-tile {
	position: relative;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--gems-radius);
	padding: 1rem 1rem 0.9rem 1rem;
	min-height: 96px;
}
.gems-tile:hover { border-color: var(--wp--preset--color--teal); box-shadow: var(--gems-shadow); }
.gems-tile:focus-within { outline: 3px solid var(--gems-focus); outline-offset: 2px; }
.gems-tile p { margin: 0; }
.gems-tile__title { font-weight: 700; line-height: 1.25; }
.gems-tile__title a { color: var(--wp--preset--color--navy); text-decoration: none; }
.gems-tile__title a::after { content: ""; position: absolute; inset: 0; border-radius: var(--gems-radius); }
.gems-tile__title a:focus-visible { outline: none; box-shadow: none; }
.gems-tile__text { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.gems-tile::before {
	content: "";
	display: block;
	width: 28px;
	height: 28px;
	margin-bottom: 0.4rem;
	background: var(--wp--preset--color--teal);
	-webkit-mask: var(--gems-icon) center / contain no-repeat;
	mask: var(--gems-icon) center / contain no-repeat;
}
.gems-tile--anmeldung { --gems-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M4 4h16v16H4zM8 9h8M8 13h8M8 17h5'/%3E%3C/svg%3E"); }
.gems-tile--oberstufe { --gems-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M2 9l10-5 10 5-10 5z'/%3E%3Cpath d='M6 11v5c3 2 9 2 12 0v-5'/%3E%3C/svg%3E"); }
.gems-tile--termine { --gems-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E"); }
.gems-tile--downloads { --gems-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 3v12m0 0-5-5m5 5 5-5M4 19h16'/%3E%3C/svg%3E"); }
.gems-tile--kontakt { --gems-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M5 4h4l2 5-3 2a11 11 0 0 0 5 5l2-3 5 2v4a2 2 0 0 1-2 2A17 17 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E"); }
.gems-tile-schalter { display: grid; }
.gems-tile-schalter > .gems-tile { height: 100%; margin: 0; }
.gems-tile--hervorgehoben { border-top: 6px solid var(--wp--preset--color--pink-strong); background: #FDF2F7; }
.gems-tile--hervorgehoben .gems-tile__title a { color: var(--wp--preset--color--pink-strong); }
.gems-tile--hervorgehoben::before { background: var(--wp--preset--color--pink-strong); }
@media (max-width: 599px) {
	.gems-quick__grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* Karten */
.wp-block-group.is-style-gems-karte {
	position: relative;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-top: 6px solid var(--gems-accent, var(--wp--preset--color--teal-light));
	border-radius: var(--gems-radius);
	padding: 1.1rem 1.1rem 1.25rem;
}
.wp-block-group.is-style-gems-karte > * { margin-top: 0; }
.wp-block-group.is-style-gems-karte > * + * { margin-top: 0.5rem; }
.wp-block-group.is-style-gems-karte p { font-size: var(--wp--preset--font-size--small); }
.is-style-gems-karte:has(.gems-card__title a):hover { box-shadow: var(--gems-shadow); }
.is-style-gems-karte:has(.gems-card__title a):focus-within { outline: 3px solid var(--gems-focus); outline-offset: 2px; }
.gems-card__title { font-size: 1.125rem; }
.gems-card__title a { color: var(--wp--preset--color--navy); text-decoration: none; }
.gems-card__title a::after { content: ""; position: absolute; inset: 0; }
.gems-card__title a:focus-visible { outline: none; box-shadow: none; }
.gems-akzent-teal { --gems-accent: var(--wp--preset--color--teal-light); }
.gems-akzent-yellow { --gems-accent: var(--wp--preset--color--yellow); }
.gems-akzent-pink { --gems-accent: var(--wp--preset--color--pink); }
.gems-akzent-navy { --gems-accent: var(--wp--preset--color--navy); }
.gems-cardgrid { gap: 1rem; }

/* Meldungen */
.gems-postgrid { gap: 1.25rem; }
.gems-postcard {
	position: relative;
	height: 100%;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--gems-radius);
	overflow: hidden;
}
.gems-postcard:hover { box-shadow: var(--gems-shadow); }
.gems-postcard:focus-within { outline: 3px solid var(--gems-focus); outline-offset: 2px; }
.gems-postcard > * { margin-block: 0 !important; }
.gems-postcard__image { margin: 0; }
.gems-postcard__image img { width: 100%; display: block; }
.gems-postcard__body { padding: 1rem 1rem 1.25rem; }
.gems-postcard__body > * { margin-top: 0; }
.gems-postcard__body > * + * { margin-top: 0.5rem; }
.gems-postcard__title { font-size: 1.125rem; line-height: 1.3; }
.gems-postcard__title a { color: var(--wp--preset--color--navy); text-decoration: none; }
.gems-postcard__title a::after { content: ""; position: absolute; inset: 0; }
.gems-postcard__title a:focus-visible { outline: none; box-shadow: none; }
.gems-postcard .wp-block-post-excerpt { font-size: var(--wp--preset--font-size--small); }
.gems-postmeta { gap: 0 0.3rem; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.gems-postmeta p, .gems-postmeta .wp-block-post-date, .gems-postmeta .wp-block-post-terms { margin: 0; }
.gems-pagination { margin-top: 2rem; }

/* Termine */
.gems-events { border-top: 4px solid var(--wp--preset--color--yellow); padding-top: 0.25rem; }
.is-style-gems-leerzustand {
	background: var(--wp--preset--color--surface);
	border: 1px dashed var(--wp--preset--color--line);
	border-radius: var(--gems-radius);
	padding: 1rem;
	color: var(--wp--preset--color--muted);
}
ul.is-style-gems-termine { list-style: none; padding: 0; border-top: 1px solid var(--wp--preset--color--line); }
ul.is-style-gems-termine li { padding: 0.75rem 0; border-bottom: 1px solid var(--wp--preset--color--line); }
ul.is-style-gems-termine li strong { display: block; color: var(--wp--preset--color--navy); }

/* Linklisten */
ul.is-style-gems-linkliste { list-style: none; padding-left: 0; }
ul.is-style-gems-linkliste li { margin: 0 0 0.35rem; }
ul.is-style-gems-linkliste a { display: inline-block; padding: 0.3rem 0; }
.gems-inline-list { display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; margin: 0; }

/* Bildungswege / Slider */
.gems-slide {
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--gems-radius);
	padding: clamp(1.25rem, 3vw, 2.5rem);
}
.gems-slider > .gems-slide + .gems-slide { margin-top: 1rem; }
.gems-slide[hidden] { display: none !important; }
.gems-slide__label {
	color: var(--wp--preset--color--pink-strong);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 0.9375rem;
	margin-bottom: 0.25rem;
}
.gems-slide h3 { margin-top: 0; }
.gems-slide__image { margin: 0; }
.gems-slide__image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 8px; }
.gems-slider__controls { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-top: 1rem; }
.gems-slider__nav,
.gems-slider__pick {
	font: inherit;
	min-height: 44px;
	min-width: 44px;
	border-radius: 999px;
	cursor: pointer;
}
.gems-slider__nav {
	font-size: 1.5rem;
	line-height: 1;
	font-weight: 700;
	background: #fff;
	color: var(--wp--preset--color--navy);
	border: 2px solid var(--wp--preset--color--navy);
}
.gems-slider__nav:hover { background: var(--wp--preset--color--navy); color: #fff; }
.gems-slider__picker { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.gems-slider__pick {
	font-size: 0.9375rem;
	padding: 0 1rem;
	background: #fff;
	color: var(--wp--preset--color--teal);
	border: 2px solid var(--wp--preset--color--teal);
}
.gems-slider__pick[aria-pressed="true"] { background: var(--wp--preset--color--teal); color: #fff; }
.gems-slider-links { margin-top: 1.25rem; gap: 0.25rem 1rem; }
.gems-slider-links p { margin: 0; }

/* Kontaktband und Hinweise */
.gems-contact h3 { font-size: 1.125rem; margin-top: 0; }
.wp-block-group.is-style-gems-hinweis {
	border-left: 6px solid var(--wp--preset--color--yellow);
	background: #FFFBE6;
	padding: 1rem 1.25rem;
	border-radius: 0 8px 8px 0;
}
.wp-block-group.is-style-gems-hinweis > :first-child { margin-top: 0; }

/* Tabellen */
.gems-table-hint { display: none; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); margin-bottom: 0.25rem; }
.wp-block-table.gems-table-scroll { overflow-x: auto; }
.wp-block-table table { border-collapse: collapse; width: 100%; min-width: 34rem; }
.wp-block-table caption {
	caption-side: top;
	text-align: left;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	padding: 0 0 0.6rem;
}
.wp-block-table th,
.wp-block-table td { border: 1px solid var(--wp--preset--color--line); padding: 0.6rem 0.75rem; text-align: left; vertical-align: top; }
.wp-block-table thead th { background: var(--wp--preset--color--navy); color: #fff; border-color: var(--wp--preset--color--navy); }
.wp-block-table tbody th { color: var(--wp--preset--color--navy); }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--wp--preset--color--surface); }
.wp-block-table.is-style-gems-zeilenkoepfe tbody tr:nth-child(odd) { background: var(--wp--preset--color--surface); }
.wp-block-table.is-style-gems-zeilenkoepfe tbody th,
.wp-block-table.is-style-gems-zeilenkoepfe tfoot th { font-weight: 700; white-space: normal; }
.wp-block-table.is-style-stripes { border-bottom: 0; }
@media (max-width: 640px) {
	.gems-table-hint { display: block; }
}

/* Downloads */
.wp-block-file.gems-download { margin: 0 0 0.5rem; }
.wp-block-file.gems-download a { font-weight: 600; }

/* Suche, Einzelmeldung */
.gems-search-large .wp-block-search__input { border: 2px solid var(--wp--preset--color--navy); border-radius: 8px; padding: 0.6rem 0.9rem; }
.gems-searchlist { list-style: none; padding: 0; }
.gems-searchlist > li { padding: 1rem 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.gems-searchlist .wp-block-post-title { font-size: 1.25rem; margin: 0 0 0.35rem; }
.gems-single__image img { border-radius: var(--gems-radius); }
.gems-postnav { margin-top: 1rem; gap: 1rem; }

/* Leichte Sprache */
.gems-leichte-sprache { font-size: 1.25rem; line-height: 1.75; }
.gems-leichte-sprache p { max-width: none; }
.gems-leichte-sprache .wp-block-list li { margin-bottom: 0.6rem; }
.gems-ls-list a { font-weight: 700; }

/* Fußbereich */
.gems-footer { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--40); position: relative; }
.gems-footer::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 8px;
	background: linear-gradient(90deg, var(--wp--preset--color--teal-light) 0 25%, var(--wp--preset--color--yellow) 25% 50%, var(--wp--preset--color--pink) 50% 75%, var(--wp--preset--color--teal) 75%);
}
.gems-footer a { color: #fff; }
.gems-footer a:hover { color: var(--wp--preset--color--yellow); }
.gems-footer__name { font-size: 1.25rem; margin-bottom: 0.5rem; }
.gems-footer__heading { font-size: 1.0625rem; color: #fff; margin-bottom: 0.5rem; }
.gems-footer__carrier { color: var(--wp--preset--color--teal-light); font-weight: 600; margin-bottom: 0.5rem; }
/* Schulträgerlogo: dezent, unverändert auf weißer Fläche (dunkle Schrift im Logo). */
.wp-block-image.gems-traeger-logo { margin: 0.25rem 0 0; }
.wp-block-image.gems-traeger-logo img { display: block; width: 168px; max-width: 100%; height: auto; background: #fff; padding: 0.4rem 0.6rem; border-radius: 8px; }

/* Bewegung reduzieren */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* Druck */
@media print {
	.gems-metabar, .gems-mainnav, .gems-menu-toggle, .gems-header-cta, .gems-slider__controls, .gems-skip-link { display: none !important; }
	.gems-slide[hidden] { display: block !important; }
}
