/*
Theme Name: Will Markgräfler
Theme URI: https://www.will-reisen.com
Author: Will Markgräfler Reisen GmbH & Co. KG
Author URI: https://www.will-reisen.com
Description: Theme für Will Markgräfler Reisen – regionaler Linien- und Schülerverkehr im Markgräflerland. Blauer Auftritt mit Hintergrundfarbe Pantone 382 C, Bereichen für Fahrpläne & Linien, Tickets & Tarife, Aktuelles & Störungen, Unternehmen sowie Jobs & Kontakt, mit eigenem Schwerpunktbereich für den Schülerverkehr an 20 Schulen.
Version: 1.22.4
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: will-markgraefler
Tags: transportation, business, custom-menu, custom-logo, featured-images, translation-ready
*/

/* ---------- Variablen (Pantone 382 C als Signaturfarbe) ---------- */
:root {
  --color-background: #FCFBF8;
  --color-foreground: #034056;
  --color-primary: #00699F;
  --color-primary-foreground: #FDFDF7;
  --color-accent: #E4F984;
  --color-muted: #EDF4F8;
  --color-muted-foreground: #697D8E;
  --color-border: #D2DDE4;
  --color-ring: #0089C7;
  --color-brand: #E3FA6E;          /* an Pantone 382 C angelehnt */
  --color-brand-foreground: #00425F;
  --color-hero: #003F5E;
  --color-hero-foreground: #FDFDF7;
  --color-notice: #FFE3A2;
  --color-notice-foreground: #624000;
  --font-sans: Arial, "Helvetica Neue", Helvetica, sans-serif;
  --container: 80rem;
  --radius: 0.25rem;
}

/* ---------- Basis ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-foreground);
  background: var(--color-background);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3, h4 { line-height: 1.15; font-weight: 900; margin: 0 0 .6em; }
p { margin: 0 0 1em; }
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden; clip: rect(1px,1px,1px,1px);
  white-space: nowrap;
}
.container { max-width: var(--container); margin: 0 auto; padding-left: 1.25rem; padding-right: 1.25rem; }
@media (min-width: 1024px) { .container { padding-left: 2rem; padding-right: 2rem; } }

/* ---------- Kopf ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(252,251,248,.95);
  border-bottom: 1px solid var(--color-border);
  backdrop-filter: blur(8px);
}
.site-header__inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 5rem;
}
.brand { display: flex; align-items: center; gap: .75rem; text-decoration: none; }
.brand__mark {
  display: flex; align-items: center; justify-content: center;
  width: 3.5rem; height: 2.75rem;
  background: var(--color-brand); color: var(--color-brand-foreground);
  transform: skewX(-8deg);
  font-size: 1.25rem; font-weight: 900;
  flex: none;
}
.brand__mark span { display: block; transform: skewX(8deg); }
.brand__img,
.custom-logo { display: block; height: 44px; width: auto; max-width: 220px; object-fit: contain; }
@media (max-width: 47.99rem) { .brand__img, .custom-logo { height: 38px; max-width: 170px; } }
.main-nav ul { display: flex; gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
.main-nav a {
  font-size: .875rem; font-weight: 700; text-decoration: none; color: var(--color-foreground);
}
.main-nav a:hover, .main-nav .current-menu-item > a, .main-nav .current_page_item > a { color: var(--color-primary); }
.nav-toggle {
  display: none; border: 0; background: none; padding: .5rem; cursor: pointer;
  color: var(--color-primary);
}
.nav-toggle svg { width: 1.5rem; height: 1.5rem; display: block; }
@media (max-width: 1023px) {
  .nav-toggle { display: block; }
  .site-header__inner { height: auto; min-height: 5rem; flex-wrap: wrap; }
  .main-nav {
    display: none; width: 100%;
    border-top: 1px solid var(--color-border);
    background: var(--color-background);
    box-shadow: 0 14px 28px rgba(3, 64, 86, .18);
  }
  .main-nav.is-open { display: block; }
  .main-nav ul { display: block; padding: .5rem 0; }
  .main-nav li { border-bottom: 1px solid var(--color-border); }
  .main-nav li:last-child { border-bottom: 0; }
  .main-nav a { display: block; padding: .75rem 0; font-weight: 700; }
}

/* ---------- Hero ---------- */
.hero { position: relative; min-height: 650px; overflow: hidden; background: var(--color-hero); color: var(--color-hero-foreground); }
.hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to right, var(--color-hero) 0%, rgba(0,63,94,.8) 45%, rgba(0,63,94,0) 100%);
}
.hero__inner { position: relative; display: flex; align-items: center; min-height: 650px; padding-top: 5rem; padding-bottom: 5rem; }
.hero__content { max-width: 42rem; }
.eyebrow {
  display: inline-flex; align-items: center; margin-bottom: 1.25rem;
  padding-left: .75rem; border-left: 4px solid var(--color-brand);
  font-size: .875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .02em;
}
.hero h1 { font-size: clamp(2.5rem, 6vw, 4.5rem); }
.hero h1 span, .page-hero h1 span { color: var(--color-brand); }
.hero__text { max-width: 36rem; margin: 1.5rem 0 0; font-size: 1.125rem; color: rgba(253,253,247,.85); }
.page-hero__intro { max-width: 42rem; margin: 1.5rem 0 0; font-size: 1.125rem; color: rgba(253,253,247,.75); }
.hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.25rem; }

/* ---------- Schaltflächen ---------- */
.btn {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .75rem 1.5rem; border-radius: var(--radius);
  font-weight: 700; font-size: 1rem; text-decoration: none; cursor: pointer;
  border: 1px solid transparent; transition: background-color .15s ease, color .15s ease;
}
.btn--primary { background: var(--color-primary); color: var(--color-primary-foreground); }
.btn--primary:hover { background: #00588A; }
.btn--outline-light { border-color: rgba(253,253,247,.6); color: var(--color-hero-foreground); }
.btn--outline-light:hover { background: rgba(253,253,247,.12); }
.btn--outline { border-color: var(--color-border); color: var(--color-foreground); background: transparent; }
.btn--outline:hover { background: var(--color-muted); }
.btn--lg { padding: .9rem 1.75rem; font-size: 1.05rem; }
.btn svg { width: 1.1em; height: 1.1em; }

/* ---------- Verbindungssuche ---------- */
.search-card { position: relative; z-index: 10; margin-top: -2.5rem; }
.search-card__box { background: #fff; padding: 1.5rem 1.75rem; box-shadow: 0 25px 50px -12px rgba(0,0,0,.25); }
.search-card__head { display: flex; align-items: center; gap: .5rem; margin-bottom: 1rem; }
.search-card__head svg { width: 1.25rem; height: 1.25rem; color: var(--color-primary); }
.search-card__head h2 { margin: 0; font-size: 1.25rem; }
.search-card form { display: grid; gap: .75rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .search-card form { grid-template-columns: 1fr 1fr auto; } }
.search-card input[type="text"] {
  height: 3rem; padding: 0 1rem;
  border: 1px solid var(--color-border); border-radius: var(--radius);
  font-family: inherit; font-size: 1rem; background: #fff;
}
.search-card input[type="text"]:focus { outline: 2px solid var(--color-ring); outline-offset: 1px; }
.search-note {
  margin-top: 1rem; padding: .75rem 1rem;
  border-left: 4px solid var(--color-brand); background: var(--color-muted);
  font-size: .875rem;
}

/* ---------- Schnellzugriffe ---------- */
.quick-links { display: grid; gap: 1px; background: var(--color-border); margin-top: 5rem; }
@media (min-width: 768px) { .quick-links { grid-template-columns: repeat(3,1fr); } }
.quick-link { display: block; background: var(--color-background); padding: 2rem; text-decoration: none; transition: background-color .15s ease; }
.quick-link:hover { background: var(--color-muted); }
.quick-link svg { width: 2.25rem; height: 2.25rem; color: var(--color-primary); }
.quick-link h2 { margin: 1.5rem 0 .75rem; font-size: 1.5rem; }
.quick-link p { margin: 0; color: var(--color-muted-foreground); }
.quick-link span {
  display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.5rem;
  font-size: .875rem; font-weight: 700; color: var(--color-primary);
}
.quick-link:hover span svg { transform: translateX(4px); }
.quick-link span svg { width: 1rem; height: 1rem; transition: transform .15s ease; }

/* ---------- Hinweisband ---------- */
.notice-band { background: var(--color-notice); color: var(--color-notice-foreground); }
.notice-band__inner { display: flex; flex-direction: column; gap: 1.25rem; padding: 2rem 0; }
@media (min-width: 768px) { .notice-band__inner { flex-direction: row; align-items: center; } }
.notice-band__inner > svg { width: 2.5rem; height: 2.5rem; flex: none; }
.notice-band__body { flex: 1; }
.notice-band__body p.label { margin: 0; font-size: .8rem; font-weight: 700; text-transform: uppercase; }
.notice-band__body h2 { margin: .25rem 0 0; font-size: 1.25rem; }
.notice-band__body p.text { margin: .25rem 0 0; font-size: .875rem; }

/* ---------- Schülerverkehr-Sektion ---------- */
.school { display: grid; gap: 3rem; padding: 6rem 0; }
@media (min-width: 1024px) { .school { grid-template-columns: 1fr 1.15fr; } }
.school .eyebrow { color: var(--color-primary); border-color: transparent; }
.school h2 { font-size: clamp(1.9rem, 3.5vw, 2.6rem); }
.school__text { margin-top: 1.25rem; font-size: 1.125rem; color: var(--color-muted-foreground); }
.school__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.school__stat { padding: 1.75rem; }
.school__stat--primary { background: var(--color-primary); color: var(--color-primary-foreground); }
.school__stat--brand { background: var(--color-brand); color: var(--color-brand-foreground); }
.school__stat--brand svg { width: 2.25rem; height: 2.25rem; }
.school__stat strong { display: block; font-size: 3rem; font-weight: 900; }
.school__stat p { margin: 2rem 0 0; font-weight: 700; }
.school__fact {
  grid-column: span 2; display: flex; align-items: center; gap: 1.25rem;
  padding: 1.5rem; border: 1px solid var(--color-border);
}
.school__fact svg { width: 2.5rem; height: 2.5rem; color: var(--color-primary); flex: none; }
.school__fact p { margin: 0; }
.school__fact strong { display: block; }
.school__fact span { font-size: .875rem; color: var(--color-muted-foreground); }

/* ---------- Seiten-Hero und Inhaltskarten ---------- */
.page-hero { position: relative; overflow: hidden; background: var(--color-hero); color: var(--color-hero-foreground); }
.page-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.page-hero__overlay { position: absolute; inset: 0; background: linear-gradient(to right, rgba(0,63,94,.96) 0%, rgba(0,63,94,.82) 52%, rgba(0,63,94,.48) 100%); }
.page-hero__inner { position: relative; z-index: 1; min-height: 24rem; display: flex; flex-direction: column; justify-content: center; padding-top: 5rem; padding-bottom: 5rem; }
.page-hero__meta { display: flex; align-items: center; gap: .75rem; max-width: 48rem; color: var(--color-brand); }
.page-hero__meta svg { width: 1.75rem; height: 1.75rem; }
.page-hero__meta p { margin: 0; font-size: .875rem; font-weight: 700; text-transform: uppercase; }
.page-hero h1 { margin-top: 1.25rem; font-size: clamp(2.25rem, 5vw, 3.75rem); max-width: 56rem; }
.page-content { padding: 5rem 0; }
.info-grid { display: grid; gap: 1px; background: var(--color-border); }
@media (min-width: 768px) { .info-grid { grid-template-columns: repeat(2,1fr); } }
.info-card { background: var(--color-background); padding: 2rem; }
@media (min-width: 768px) { .info-card { padding: 2.5rem; } }
.info-card svg { width: 1.75rem; height: 1.75rem; color: var(--color-primary); }
.info-card h2 { margin: 1.25rem 0 .75rem; font-size: 1.5rem; }
.info-card p { margin: 0; color: var(--color-muted-foreground); }

/* ---------- Inhaltsbereich (Beiträge/Seiten) ---------- */
.entry-content { max-width: 46rem; }
.entry-content h2 { font-size: 1.75rem; margin-top: 2rem; }
.entry-content h3 { font-size: 1.35rem; margin-top: 1.6rem; }
.entry-content a { color: var(--color-primary); }
.entry-content blockquote { margin: 2rem 0; padding-left: 1.25rem; border-left: 4px solid var(--color-brand); font-weight: 700; }
.entry-content ul, .entry-content ol { padding-left: 1.4rem; }
.entry-content img { border-radius: var(--radius); }
.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content th, .entry-content td { padding: .6rem .8rem; border: 1px solid var(--color-border); text-align: left; }

/* ---------- Fuß ---------- */
.site-footer { background: var(--color-hero); color: var(--color-hero-foreground); }
.site-footer__grid { display: grid; gap: 2.5rem; padding: 3rem 0; }
@media (min-width: 768px) { .site-footer__grid { grid-template-columns: repeat(3,1fr); } }
.site-footer__brand p.display { margin: 0; font-size: 1.5rem; font-weight: 900; }
.site-footer__brand p.sub { margin: .5rem 0 0; font-size: .875rem; color: rgba(253,253,247,.7); }
.site-footer h3 { margin: 0 0 .75rem; font-size: 1rem; }
.site-footer p, .site-footer li { font-size: .875rem; color: rgba(253,253,247,.7); }
.site-footer ul { margin: .75rem 0 0; padding: 0; list-style: none; }
.site-footer li { padding: .35rem 0; }
.site-footer a { text-decoration: none; }
.site-footer a:hover { color: var(--color-brand); }
.site-footer__contact { display: flex; align-items: center; gap: .5rem; margin-top: .5rem; }
.site-footer__contact svg { width: 1rem; height: 1rem; flex: none; }
.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .75rem 1.5rem;
  border-top: 1px solid rgba(253,253,247,.15);
  padding: 1.25rem 0; text-align: center; font-size: .75rem; color: rgba(253,253,247,.5);
}

/* ---------- 404 ---------- */
.notfound { padding: 6rem 0; text-align: center; }
.notfound h1 { font-size: 4rem; }

/* ---------- Ausrichtung ---------- */
.text-right { text-align: right; } .text-center { text-align: center; }
.alignwide { max-width: 70rem; margin-left: auto; margin-right: auto; }
.alignfull { max-width: none; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

/* ---------------------------------------------------------
   Testdaten-Bausteine: Listen, Fahrplantabellen, Kennzahlen
   --------------------------------------------------------- */

.page-content h2 {
	font-size: clamp(1.6rem, 3vw, 2rem);
	font-weight: 900;
	margin: 3rem 0 0.75rem;
}

.page-content > h2:first-child {
	margin-top: 0;
}

.page-content p {
	max-width: 62rem;
	line-height: 1.7;
}

.wmr-list {
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
	display: grid;
	gap: 1px;
	background: #dfe6ea;
	border: 1px solid #dfe6ea;
}

@media (min-width: 48rem) {
	.wmr-list {
		grid-template-columns: 1fr 1fr;
	}
}

.wmr-list li {
	background: #fcfbf8;
	padding: 1rem 1.25rem;
	font-weight: 600;
	line-height: 1.5;
}

.wmr-list li strong {
	font-weight: 900;
}

.wmr-table {
	margin: 1.5rem 0 0;
	border: 1px solid #dfe6ea;
	overflow-x: auto;
}

.wmr-table__head {
	background: #eef3f6;
	border-bottom: 1px solid #dfe6ea;
	padding: 0.85rem 1.25rem;
}

.wmr-table__head strong {
	display: block;
	font-weight: 900;
}

.wmr-table__head span {
	font-size: 0.875rem;
	color: #5a7080;
}

.wmr-table table {
	width: 100%;
	min-width: 40rem;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.wmr-table th,
.wmr-table td {
	text-align: left;
	padding: 0.65rem 1.25rem;
	border-bottom: 1px solid #dfe6ea;
}

.wmr-table th {
	font-weight: 900;
	background: #fcfbf8;
}

.wmr-table tbody tr:nth-child(odd) td {
	background: rgba(238, 243, 246, 0.5);
}

.wmr-table tbody tr:last-child td {
	border-bottom: 0;
}

.wmr-stats {
	display: grid;
	gap: 1px;
	background: #dfe6ea;
	border: 1px solid #dfe6ea;
	margin-bottom: 1rem;
}

@media (min-width: 48rem) {
	.wmr-stats {
		grid-template-columns: repeat(3, 1fr);
	}
}

.wmr-stat {
	background: #00699f;
	color: #fff;
	padding: 1.75rem;
}

.wmr-stat strong {
	display: block;
	font-size: 2.75rem;
	font-weight: 900;
	line-height: 1;
}

.wmr-stat span {
	display: block;
	margin-top: 0.75rem;
	font-weight: 700;
}

/* Meldungen */
.wmr-notice { border-left: 4px solid var(--wmr-notice, #FFE3A2); padding: 0.25rem 0 0.25rem 1.25rem; margin-bottom: 2.5rem; }
.wmr-notice__date { font-weight: 700; color: #00699F; margin: 0.25rem 0 0.75rem; }

/* Schulbus-Verbindungen mit Fahrplan-Links */
.wmr-connection { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1rem; }
.wmr-connection__links { display: flex; flex-wrap: wrap; gap: .75rem; font-size: .9rem; }
.wmr-connection__links a { color: var(--wmr-primary, #00699F); font-weight: 700; }
/* Suchergebnis Fahrplanseite */
.wmr-search-result { border-left: 4px solid #E3FA6E; background: #F1EFEA; padding: 1rem 1.25rem; margin-bottom: 2.5rem; }
.wmr-search-result a { color: #00699F; font-weight: 700; }
.wmr-table tr.is-match td { background: #FFE3A2; font-weight: 700; }
.wmr-table__download { margin: 10px 4px 0; }
.wmr-download {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	color: #00699F;
	text-decoration: none;
	border-bottom: 2px solid #E3FA6E;
}
.wmr-download::before { content: "↓"; font-weight: 700; }
.wmr-download:hover, .wmr-download:focus { color: #003F5E; border-bottom-color: #00699F; }
h2[id^="fahrplan-"] { scroll-margin-top: 110px; }

/* Animierte Unternehmensgeschichte */
.wmr-history { overflow: hidden; border-top: 1px solid var(--color-border); background: var(--color-muted); }
.wmr-history__inner { padding-top: 5rem; padding-bottom: 5rem; }
.wmr-history__eyebrow { margin: 0 0 .75rem; color: var(--color-primary); font-size: .875rem; font-weight: 900; text-transform: uppercase; }
.wmr-history__heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.wmr-history__heading > div:first-child { max-width: 48rem; }
.wmr-history__heading h2 { margin: 0; font-size: clamp(2.25rem, 5vw, 3.5rem); }
.wmr-history__heading p { margin: 1rem 0 0; color: var(--color-muted-foreground); font-size: 1.1rem; }
.wmr-history__arrows { display: flex; gap: .5rem; flex: none; }
.wmr-history__arrow { display: grid; place-items: center; width: 3rem; height: 3rem; padding: 0; border: 1px solid var(--color-border); border-radius: var(--radius); background: var(--color-background); color: var(--color-primary); font-size: 1.5rem; cursor: pointer; }
.wmr-history__arrow:hover, .wmr-history__arrow:focus-visible { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-primary-foreground); }
.wmr-history__viewport { margin-top: 2.5rem; overflow: visible; outline: none; }
.wmr-history__viewport:focus-visible { outline: 3px solid var(--color-ring); outline-offset: 6px; }
.wmr-history__track { display: flex; gap: 1.25rem; transition: transform .7s cubic-bezier(.22,1,.36,1); }
.wmr-history__slide { position: relative; flex: 0 0 min(72vw,54rem); aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--radius); background: var(--color-hero); box-shadow: 0 22px 55px rgba(0,63,94,.2); }
.wmr-history__slide img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.8) contrast(1.05); }
.wmr-history__caption { position: absolute; inset: auto 0 0; padding: 4rem clamp(1.25rem,4vw,3rem) clamp(1.25rem,4vw,2.5rem); color: var(--color-hero-foreground); background: linear-gradient(to top, rgba(0,63,94,.96), transparent); }
.wmr-history__caption p { margin: 0; font-size: .875rem; font-weight: 900; text-transform: uppercase; }
.wmr-history__caption h3 { max-width: 34rem; margin: .45rem 0 0; font-size: clamp(1.5rem,3vw,2.75rem); }
.wmr-history__dots { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin-top: 1.5rem; }
.wmr-history__dot { width: .7rem; height: .7rem; padding: 0; border: 0; border-radius: 50%; background: var(--color-border); cursor: pointer; }
.wmr-history__dot.is-active { background: var(--color-primary); transform: scale(1.25); }
.wmr-history__dot:focus-visible { outline: 2px solid var(--color-ring); outline-offset: 3px; }
.wmr-history__source { margin: 1.5rem auto 0; text-align: center; color: var(--color-muted-foreground); font-size: .75rem; }
@media (max-width: 47.99rem) {
	.wmr-history__heading { align-items: start; flex-direction: column; }
	.wmr-history__slide { flex-basis: 82vw; aspect-ratio: 4 / 5; }
	.wmr-history__track { gap: .75rem; }
	.wmr-history__caption { padding-top: 6rem; }
}
@media (prefers-reduced-motion: reduce) { .wmr-history__track, .wmr-history__dot { transition: none; } }

.wmr-group--level-3,.wmr-group--level-4{margin-left:1.25rem;padding-left:1rem;border-left:3px solid var(--wmr-brand,#0072ce)}
.wmr-group h3{font-size:1.25rem;margin-top:1.5rem}
.wmr-group__desc{color:#555;margin:.25rem 0 .75rem}

/* Linienkarte (v29) */
.wmr-map { margin: 1.5rem 0 2rem; }
.wmr-map__canvas { position: relative; height: 460px; background: var(--color-muted, #eef3f6); border: 1px solid rgba(3,64,86,.15); z-index: 0; }
.wmr-map__consent { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; padding: 1.5rem; text-align: center; }
.wmr-map__consent p { max-width: 32rem; margin: 0; }
.wmr-map__legend { list-style: none; margin: .75rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.wmr-map__legend li { display: flex; align-items: center; gap: .5rem; }
.wmr-map__legend small { opacity: .7; }
.wmr-map__swatch { display: inline-block; width: 1.5rem; height: .35rem; border-radius: 2px; }
.wmr-map .leaflet-interactive { cursor: pointer; }
@media (max-width: 640px) { .wmr-map__canvas { height: 340px; } }

/* Linienkarte: Datenschutz-Hinweis und Widerruf (v30) */
.wmr-map__consent p { max-width: 34rem; margin: 0; font-size: .95rem; }
.wmr-map__consent-links { font-size: .85rem; }
.wmr-map__consent-links a { text-decoration: underline; }
.wmr-map__revoke { margin: .5rem 0 0; text-align: right; }
.wmr-map__revoke .button { font-size: .85rem; padding: .35rem .9rem; }

/* Kartensteuerung: Suche, Linien-Umschalter, Vollbild */
.wmr-map__tools { position: relative; display: flex; flex-wrap: wrap; gap: .5rem; align-items: flex-end; margin-bottom: .5rem; }
.wmr-map__tools[hidden], .wmr-map__results[hidden] { display: none; }
.wmr-map__search { flex: 1 1 16rem; display: flex; flex-direction: column; font-size: .85rem; font-weight: 700; }
.wmr-map__query { font: inherit; font-weight: 400; padding: .5rem .7rem; border: 1px solid rgba(3,64,86,.35); border-radius: 4px; }
.wmr-map__results { position: absolute; top: 100%; left: 0; right: 0; z-index: 1001; list-style: none; margin: .25rem 0 0; padding: 0; max-height: 15rem; overflow-y: auto; background: var(--color-background, #fff); border: 1px solid rgba(3,64,86,.25); box-shadow: 0 10px 20px rgba(3,64,86,.15); }
.wmr-map__results button { display: block; width: 100%; text-align: left; padding: .5rem .75rem; background: none; border: 0; font: inherit; cursor: pointer; }
.wmr-map__results button:hover, .wmr-map__results button:focus { background: var(--color-muted, #eef3f6); outline: none; }
.wmr-map__results small { opacity: .7; }
.wmr-map__legend li.is-off { opacity: .45; }
.wmr-map__legend li.is-active a { text-decoration: underline; }
.wmr-map__toggle { width: 1.1rem; height: 1.1rem; margin: 0; }
.wmr-map.is-fullscreen { position: fixed; inset: 0; z-index: 10000; margin: 0; padding: .75rem; background: var(--color-background, #fff); display: flex; flex-direction: column; overflow: auto; }
.wmr-map.is-fullscreen .wmr-map__canvas { flex: 1 1 auto; height: auto; min-height: 60vh; }

/* Schools directory and accessible local school markers. */
.wmr-school-pin { display:grid; place-items:center; background:var(--color-primary); color:var(--color-primary-foreground); border:3px solid var(--color-background); border-radius:50%; font-size:18px; }
.wmr-school-pin.is-selected {background:var(--color-brand);color:var(--color-brand-foreground)}
.wmr-school-pin:focus-visible {outline:3px solid var(--color-ring);outline-offset:3px}
.wmr-schools__list {list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1rem}
.wmr-schools__list li {min-width:0;max-width:100%}
.wmr-schools__list small {display:block;color:var(--color-muted-foreground);margin-top:.4rem}
.wmr-schools__select {white-space:normal;text-align:left;max-width:100%}
.wmr-schools__select[aria-pressed="true"] {background:var(--color-brand);color:var(--color-brand-foreground)}
.wmr-schools__panel {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:2rem;border-top:1px solid var(--color-border);padding-top:2rem;margin-top:2rem}
.wmr-schools__panel[hidden],.wmr-schools__list li[hidden],.wmr-map__legend li[hidden] {display:none}
.wmr-schools__image {width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.wmr-schools__links {list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,max(18rem,calc(50% - 1rem))),1fr));column-gap:2rem}
.wmr-schools__links li {border-bottom:1px solid var(--color-border);padding:.75rem 0;min-width:0}
.wmr-schools__links small {display:block;color:var(--color-muted-foreground)}
.wmr-schools__links a {color:var(--color-primary);font-weight:700;overflow-wrap:anywhere}
.wmr-map__consent {overflow-y:auto}
@media(max-width:640px){.wmr-schools__panel{grid-template-columns:minmax(0,1fr)}.wmr-schools .wmr-map__canvas{height:440px}}

