/*
 * MehrMannheim – Template 1.0.0
 * Farben: Neckarblau, Wasserturm-Sandstein; Schrift: Archivo (Oberfläche, Überschriften), Source Serif 4 (Lesetext)
 * Alle Schriften lokal. Bewegung nur, wenn prefers-reduced-motion es erlaubt.
 */

@font-face {
  font-family: "Archivo";
  src: url("../fonts/archivo.woff") format("woff");
  font-weight: 400 800;
  font-stretch: 75% 100%;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Source Serif 4";
  src: url("../fonts/source-serif-4.woff") format("woff");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Source Serif 4";
  src: url("../fonts/source-serif-4-italic.woff") format("woff");
  font-weight: 400 700;
  font-style: italic;
  font-display: swap;
}

:root {
  --mm-blue: #14365a;
  --mm-blue-deep: #0d2640;
  --mm-blue-soft: #e6edf5;
  --mm-red: #b3402a;
  --mm-red-dark: #8f3020;
  --mm-ink: #18212c;
  --mm-mute: #566273;
  --mm-line: #d6dce4;
  --mm-paper: #ffffff;
  --mm-ground: #f2f4f7;

  --mm-sans: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --mm-serif: "Source Serif 4", Georgia, "Times New Roman", serif;

  --mm-wrap: 76rem;
  --mm-gutter: clamp(1rem, 3vw, 2rem);
  --mm-radius: 3px;
  --mm-step--1: 0.875rem;
  --mm-step-0: 1rem;
  --mm-step-1: 1.1875rem;
  --mm-step-2: 1.4375rem;
  --mm-step-3: 1.75rem;
  --mm-step-4: clamp(1.9rem, 1.4rem + 2vw, 2.6rem);
  --mm-step-5: clamp(2.2rem, 1.4rem + 3.4vw, 3.6rem);
  --mm-shadow: 0 1px 2px rgba(13, 38, 64, 0.08), 0 8px 24px -12px rgba(13, 38, 64, 0.25);
}

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

[hidden] { display: none !important; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: 6rem;
}

body {
  margin: 0;
  background: var(--mm-paper);
  color: var(--mm-ink);
  font-family: var(--mm-sans);
  font-size: var(--mm-step-0);
  line-height: 1.55;
  overflow-x: hidden;
}

/* Schutzregel: keine übergroßen Bilder/Grafiken */
img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }
svg:not([width]):not([viewBox]) { width: 1.5em; height: 1.5em; }
figure { margin: 0; }

a { color: var(--mm-blue); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { color: var(--mm-red); }
:focus-visible { outline: 3px solid var(--mm-red); outline-offset: 2px; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--mm-sans);
  font-stretch: 82%;
  font-weight: 750;
  line-height: 1.12;
  margin: 1.6em 0 0.5em;
  color: var(--mm-blue-deep);
  letter-spacing: -0.005em;
  overflow-wrap: break-word;
  hyphens: auto;
}

h1 { font-size: var(--mm-step-5); margin-top: 0; }
h2 { font-size: var(--mm-step-3); }
h3 { font-size: var(--mm-step-2); }
h4 { font-size: var(--mm-step-1); }

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

.mm-wrap {
  width: 100%;
  max-width: var(--mm-wrap);
  margin-inline: auto;
  padding-inline: var(--mm-gutter);
}

.mm-skip {
  position: absolute; left: 1rem; top: -4rem; z-index: 100;
  background: var(--mm-red); color: #fff; padding: 0.6rem 1rem; font-weight: 600;
}
.mm-skip:focus { top: 1rem; color: #fff; }

/* ---------- Kopf ---------- */

.mm-nav-open .mm-header { z-index: 80; }
.mm-header { position: relative; z-index: 30; background: var(--mm-paper); border-bottom: 1px solid var(--mm-line); }

.mm-topbar { background: var(--mm-blue-deep); color: #dbe4ee; font-size: var(--mm-step--1); }
.mm-topbar__inner { display: flex; justify-content: space-between; gap: 1rem; align-items: center; min-height: 2.25rem; }
.mm-topbar__claim { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 47.99rem) {
  .mm-topbar__claim { display: none; }
  .mm-topbar__inner { justify-content: flex-end; }
  .mm-topbar__contact { gap: 1rem; }
}
.mm-topbar__contact { display: flex; gap: 1.25rem; list-style: none; margin: 0; padding: 0; flex-shrink: 0; }
.mm-topbar a { color: #fff; text-decoration: none; }
.mm-topbar a:hover { text-decoration: underline; color: #fff; }

.mm-mast { display: flex; align-items: center; gap: 1rem; min-height: 4.5rem; }

.mm-logo { display: inline-flex; align-items: center; gap: 0.6rem; text-decoration: none; color: var(--mm-blue-deep); margin-right: auto; }
.mm-logo img { max-height: 3.25rem; width: auto; }
.mm-logo__mark { width: 2.5rem; height: 2.5rem; flex-shrink: 0; }
.mm-logo__word { display: flex; flex-direction: column; line-height: 0.95; font-stretch: 78%; font-size: 1.45rem; }
.mm-logo__word span:first-child { font-weight: 450; font-size: 0.72em; letter-spacing: 0.02em; color: var(--mm-red); }
.mm-logo__word span:last-child { font-weight: 800; }

.mm-mast__tools { display: flex; align-items: center; gap: 0.25rem; order: 3; }

.mm-iconbtn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
  min-width: 2.75rem; min-height: 2.75rem; padding: 0 0.5rem;
  border: 0; background: none; color: var(--mm-blue-deep); cursor: pointer;
  font: 600 var(--mm-step--1) var(--mm-sans); border-radius: var(--mm-radius);
}
.mm-iconbtn:hover { background: var(--mm-blue-soft); }

.mm-burger__lines, .mm-burger__lines::before, .mm-burger__lines::after {
  display: block; width: 1.25rem; height: 2px; background: currentColor; position: relative; content: "";
}
.mm-burger__lines::before { position: absolute; top: -6px; }
.mm-burger__lines::after { position: absolute; top: 6px; }

/* Navigation – mobil: Off-Canvas */
.mm-nav {
  position: fixed; inset: 0 0 0 auto; width: min(24rem, 92vw);
  background: var(--mm-paper); box-shadow: -12px 0 40px rgba(13, 38, 64, 0.25);
  transform: translateX(105%); visibility: hidden;
  overflow-y: auto; overscroll-behavior: contain; z-index: 60;
  padding: 0 0 2rem;
}
.mm-nav.is-open { transform: none; visibility: visible; }
.mm-nav__head { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 1rem; border-bottom: 1px solid var(--mm-line); }
.mm-nav__title { font-weight: 700; font-stretch: 82%; font-size: var(--mm-step-1); color: var(--mm-blue-deep); }

.mm-backdrop { position: fixed; inset: 0; background: rgba(13, 38, 64, 0.45); z-index: 55; }

.mm-nav ul { list-style: none; margin: 0; padding: 0; }
.mm-nav .mod-menu__toggle-sub { display: none; }
.mm-nav .mod-menu__sub.small { font-size: inherit; }
.mm-nav .mod-menu > li { border-bottom: 1px solid var(--mm-line); position: relative; }
.mm-nav li > a,
.mm-nav li > span.nav-header {
  display: block; padding: 0.85rem 3.25rem 0.85rem 1rem;
  color: var(--mm-blue-deep); text-decoration: none; font-weight: 650; font-stretch: 90%;
}
.mm-nav li > a:hover { color: var(--mm-red); }
.mm-nav li.current > a,
.mm-nav li.active > a { color: var(--mm-red); }
.mm-nav ul ul { display: none; padding: 0 0 0.5rem 1rem; }
.mm-nav ul ul a { font-weight: 450; padding-block: 0.5rem; }
.mm-nav li.is-open > ul { display: block; }
.mm-subtoggle {
  position: absolute; right: 0.25rem; top: 0.3rem;
  width: 2.75rem; height: 2.75rem; border: 0; background: none; cursor: pointer; color: var(--mm-blue);
  border-radius: var(--mm-radius);
}
.mm-subtoggle::before {
  content: ""; display: block; width: 0.55rem; height: 0.55rem; margin: auto;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-25%) rotate(45deg);
}
.mm-subtoggle[aria-expanded="true"]::before { transform: translateY(25%) rotate(-135deg); }
.mm-nav ul ul .mm-subtoggle { top: 0; }

@media (min-width: 64rem) {
  .mm-burger, .mm-nav__head { display: none; }
  .mm-backdrop { display: none; }
  .mm-mast { min-height: 5.25rem; }
  .mm-mast__tools { order: 3; }
  .mm-nav {
    position: static; transform: none; visibility: visible; width: auto; box-shadow: none;
    overflow: visible; padding: 0; background: none; order: 2;
  }
  .mm-nav .mod-menu { display: flex; gap: 0.25rem; }
  .mm-nav .mod-menu > li { border: 0; position: static; }
  .mm-nav .mod-menu > li > a {
    padding: 0.6rem 0.8rem; border-radius: var(--mm-radius); font-size: 1.02rem; position: relative;
  }
  .mm-nav .mod-menu > li > a::after {
    content: ""; position: absolute; left: 0.8rem; right: 0.8rem; bottom: 0.25rem; height: 2px;
    background: var(--mm-red); transform: scaleX(0); transform-origin: left;
  }
  .mm-nav .mod-menu > li > a:hover::after,
  .mm-nav .mod-menu > li.active > a::after,
  .mm-nav .mod-menu > li.is-open > a::after { transform: scaleX(1); }
  .mm-nav .mod-menu > li > .mm-subtoggle { display: none; }

  /* Ausklapp-Fläche */
  .mm-nav .mod-menu > li > ul {
    position: absolute; left: 0; right: 0; top: 100%;
    background: var(--mm-paper); border-top: 3px solid var(--mm-red); box-shadow: var(--mm-shadow);
    padding: 1.5rem max(var(--mm-gutter), calc((100vw - var(--mm-wrap)) / 2 + var(--mm-gutter)));
    display: none; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: 0.25rem 2rem;
  }
  .mm-nav .mod-menu > li.is-open > ul { display: grid; }
  .mm-nav .mod-menu > li > ul > li > a { font-weight: 700; padding: 0.4rem 0; color: var(--mm-blue-deep); }
  .mm-nav .mod-menu > li > ul > li > a:hover { color: var(--mm-red); }
  .mm-nav ul ul ul { display: block; padding: 0 0 0.75rem; }
  .mm-nav ul ul ul a { font-weight: 450; padding: 0.2rem 0; color: var(--mm-mute); font-size: 0.95rem; }
  .mm-nav ul ul .mm-subtoggle { display: none; }
}

/* Suche */
.mm-search { background: var(--mm-ground); border-top: 1px solid var(--mm-line); padding: 1rem 0; }
.mm-search form { display: flex; gap: 0.5rem; max-width: 40rem; }
.mm-search input[type="search"], .mm-search input[type="text"] {
  flex: 1; min-height: 2.9rem; padding: 0 0.9rem; font: inherit; border: 1px solid var(--mm-line); border-radius: var(--mm-radius); background: #fff;
}
.mm-search button, .mm-search .btn { min-height: 2.9rem; }
.mm-search label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- Brotkrumen ---------- */

.mm-crumbs { font-size: var(--mm-step--1); color: var(--mm-mute); border-bottom: 1px solid var(--mm-line); }
.mm-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; margin: 0; padding: 0.75rem 0; }
.mm-crumbs li { display: inline-flex; align-items: center; gap: 0.5rem; }
.mm-crumbs .mod-breadcrumbs__item + .mod-breadcrumbs__item::before { content: "/"; color: #9aa5b3; }
.mm-crumbs .mod-breadcrumbs__divider { display: none; }
.mm-crumbs a { color: var(--mm-mute); }
.mm-crumbs .divider, .mm-crumbs .icon-location { display: none; }

/* ---------- Inhalt ---------- */

.mm-main { padding-block: clamp(1.5rem, 4vw, 3rem) clamp(2.5rem, 6vw, 4.5rem); outline: none; }
.mm-layout { display: grid; gap: 2.5rem; }
.has-sidebar .mm-layout { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 64rem) { .has-sidebar .mm-layout { grid-template-columns: minmax(0, 1fr) 18rem; } }
.mm-content { min-width: 0; }

.mm-page-title { margin-bottom: 0.4em; font-stretch: 78%; }

.mm-article { max-width: 48rem; }
.mm-article--home { max-width: none; }
.mm-article__head { margin-bottom: 1.5rem; }
.mm-article__title { font-size: var(--mm-step-5); font-stretch: 78%; margin-bottom: 0.5rem; }
.mm-article__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; color: var(--mm-mute); font-size: var(--mm-step--1); }
.mm-article__meta .tags { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; margin: 0; padding: 0; }
.mm-article__meta .tags a,
.mm-chips a {
  display: inline-block; padding: 0.2rem 0.65rem; border: 1px solid var(--mm-line); border-radius: 999px;
  text-decoration: none; color: var(--mm-blue); font-size: var(--mm-step--1); background: #fff;
}
.mm-article__meta .tags a:hover, .mm-chips a:hover { border-color: var(--mm-red); color: var(--mm-red); }
.mm-article .item-image, .mm-article figure.item-image { margin: 0 0 1.75rem; }
.mm-article .item-image img { width: 100%; max-height: 32rem; object-fit: cover; border-radius: var(--mm-radius); }
.mm-badge { display: inline-block; background: var(--mm-red); color: #fff; font-size: 0.75rem; padding: 0.1rem 0.5rem; border-radius: 2px; }

/* Lesetext */
.mm-prose { font-family: var(--mm-serif); font-size: 1.125rem; line-height: 1.7; }
.mm-prose > * { max-width: 68ch; }
.mm-article--home .mm-prose > .mm-rubrics,
.mm-article--home .mm-prose > .mm-cards,
.mm-prose > .mm-cards, .mm-prose > .mm-rubrics, .mm-prose > .mm-table { max-width: none; }
.mm-prose h2, .mm-prose h3, .mm-prose h4 { font-family: var(--mm-sans); }
.mm-prose h2 { font-size: var(--mm-step-3); }
.mm-prose h3 { font-size: var(--mm-step-2); }
.mm-prose p, .mm-prose ul, .mm-prose ol { margin: 0 0 1.1em; }
.mm-prose ul, .mm-prose ol { padding-left: 1.3em; }
.mm-prose li { margin-bottom: 0.35em; }
.mm-prose li::marker { color: var(--mm-red); }
.mm-prose img { border-radius: var(--mm-radius); margin-block: 0.5rem 1rem; }
.mm-prose figure { margin: 1.5rem 0; }
.mm-prose figcaption { font-family: var(--mm-sans); font-size: var(--mm-step--1); color: var(--mm-mute); margin-top: 0.4rem; }
.mm-prose blockquote { margin: 1.5rem 0; padding: 0.25rem 0 0.25rem 1.25rem; border-left: 3px solid var(--mm-red); font-style: italic; color: var(--mm-blue-deep); }
.mm-prose hr { border: 0; border-top: 1px solid var(--mm-line); margin: 2rem 0; }
.mm-prose .mm-lead, .mm-lead { font-size: var(--mm-step-1); color: var(--mm-blue-deep); line-height: 1.6; }

/* Tabellen mobil wischbar */
.mm-prose table { width: 100%; border-collapse: collapse; font-family: var(--mm-sans); font-size: 0.95rem; display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.mm-prose th, .mm-prose td { border-bottom: 1px solid var(--mm-line); padding: 0.55rem 0.75rem; text-align: left; vertical-align: top; }
.mm-prose th { background: var(--mm-ground); color: var(--mm-blue-deep); }

/* Schaltflächen */
.mm-button, .btn-primary, .button {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  min-height: 2.9rem; padding: 0.6rem 1.25rem;
  background: var(--mm-red); color: #fff; border: 0; border-radius: var(--mm-radius);
  font: 650 1rem/1.2 var(--mm-sans); font-stretch: 90%; text-decoration: none; cursor: pointer;
}
.mm-button:hover, .btn-primary:hover, .button:hover { background: var(--mm-red-dark); color: #fff; }
.mm-button--quiet { background: transparent; color: var(--mm-blue); border: 1px solid var(--mm-blue); }
.mm-button--quiet:hover { background: var(--mm-blue); color: #fff; }
.mm-button--small { min-height: 2.4rem; padding: 0.4rem 1rem; font-size: 0.95rem; }
.btn { font-family: var(--mm-sans); }
.btn-secondary { background: #fff; color: var(--mm-blue); border: 1px solid var(--mm-line); border-radius: var(--mm-radius); min-height: 2.9rem; padding: 0.6rem 1rem; }
.mm-more { margin-top: 1.25rem; font-family: var(--mm-sans); }

/* ---------- Kacheln ---------- */

.mm-cards {
  display: grid; gap: 1.25rem; margin: 1.25rem 0 0;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
}

.mm-card, .mm-rubric {
  position: relative; background: #fff; border: 1px solid var(--mm-line); border-radius: var(--mm-radius);
  display: flex; flex-direction: column; font-family: var(--mm-sans);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

[data-mm-card] { cursor: pointer; }

.mm-card__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--mm-ground); border-radius: var(--mm-radius) var(--mm-radius) 0 0; }
.mm-card__media img { width: 100%; height: 100%; object-fit: cover; margin: 0; border-radius: 0; }
.mm-prose .mm-card__media, .mm-prose .mm-card__media img { margin: 0; }
.mm-card__body { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: 0.35rem; }
.mm-card__date { margin: 0; color: var(--mm-mute); font-size: var(--mm-step--1); }
.mm-card__title { margin: 0; font-size: 1.2rem; line-height: 1.2; font-stretch: 85%; }
.mm-card__title a { text-decoration: none; color: var(--mm-blue-deep); }
.mm-card__text { margin: 0.2rem 0 0; color: var(--mm-mute); font-size: 0.95rem; line-height: 1.5; }

/* Rubriken auf der Startseite */
.mm-rubrics {
  display: grid; gap: 0; border-top: 1px solid var(--mm-line); border-left: 1px solid var(--mm-line); margin: 1.5rem 0 2.5rem;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
}
.mm-rubric { border: 0; border-right: 1px solid var(--mm-line); border-bottom: 1px solid var(--mm-line); border-radius: 0; padding: 1.2rem 1.25rem 1.3rem; min-height: 9rem; }
.mm-rubric__title { margin: 0 0 0.25rem; font-size: 1.3rem; font-stretch: 80%; }
.mm-rubric__title a { text-decoration: none; color: var(--mm-blue-deep); }
.mm-rubric__count { margin: 0 0 0.5rem; color: var(--mm-red); font-size: var(--mm-step--1); font-weight: 600; }
.mm-rubric__links { list-style: none; margin: auto 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.15rem 0.9rem; font-size: 0.92rem; }
.mm-rubric__links a { color: var(--mm-mute); }
.mm-prose .mm-rubric__links { padding: 0; }
.mm-prose .mm-rubric__links li::marker { content: none; }

.mm-chips ul { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0 0; padding: 0; }
.mm-rubric-page__head { margin-bottom: 1.5rem; max-width: 52rem; }
.mm-rubric-page__desc { color: var(--mm-ink); }
.mm-empty { padding: 1.25rem; background: var(--mm-ground); border-left: 3px solid var(--mm-blue); font-family: var(--mm-sans); }

/* Alle Rubriken (com_tags tags) */
.com-tags .com-tags__items, .com-tags-tags { font-family: var(--mm-sans); }
.com-tags ul.category, .com-tags-tags ul { list-style: none; padding: 0; display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); }

/* Seitenzahlen */
.mm-pagination { margin-top: 2rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; font-family: var(--mm-sans); }
.mm-pagination ul, .pagination { list-style: none; display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0; padding: 0; }
.mm-pagination a, .mm-pagination span.page-link, .pagination .page-link {
  display: inline-flex; min-width: 2.6rem; min-height: 2.6rem; align-items: center; justify-content: center; padding: 0 0.6rem;
  border: 1px solid var(--mm-line); border-radius: var(--mm-radius); text-decoration: none;
}
.mm-pagination .active .page-link, .pagination .active .page-link { background: var(--mm-blue); color: #fff; border-color: var(--mm-blue); }
.mm-pagination__count { margin: 0; color: var(--mm-mute); font-size: var(--mm-step--1); }

/* Formulare (Kontakt) */
.mm-content form label { display: block; font-weight: 600; margin-bottom: 0.25rem; }
.mm-content form input[type="text"], .mm-content form input[type="email"], .mm-content form input[type="tel"], .mm-content form input[type="url"], .mm-content form textarea, .mm-content form select {
  width: 100%; max-width: 38rem; min-height: 2.9rem; padding: 0.55rem 0.8rem; font: inherit;
  border: 1px solid #b9c2ce; border-radius: var(--mm-radius); background: #fff;
}
.mm-content form textarea { min-height: 10rem; }
.mm-content .control-group, .mm-content .mb-3 { margin-bottom: 1rem; }
.mm-content fieldset { border: 0; padding: 0; margin: 0 0 1rem; }
.mm-content legend { font-weight: 700; font-stretch: 85%; font-size: var(--mm-step-2); color: var(--mm-blue-deep); margin-bottom: 0.75rem; }
.mm-content .star { color: var(--mm-red); }
.contact .contact-address, .contact address { font-style: normal; }
.contact h2, .contact h3 { font-size: var(--mm-step-2); }

/* Joomla-Meldungen */
joomla-alert, .alert { display: block; padding: 1rem 1.25rem; border-left: 4px solid var(--mm-blue); background: var(--mm-blue-soft); margin-bottom: 1.5rem; }
joomla-alert[type="danger"], .alert-danger, joomla-alert[type="error"] { border-color: var(--mm-red); background: #fbecea; }

/* ---------- Footer ---------- */

.mm-bottom { background: var(--mm-ground); padding-block: 2.5rem; }

.mm-footer { background: var(--mm-blue-deep); color: #c9d6e4; font-size: 0.95rem; }
.mm-footer a { color: #fff; text-decoration: none; }
.mm-footer a:hover { text-decoration: underline; color: #fff; }
.mm-footer__grid { display: grid; gap: 2rem; padding-block: 3rem 2.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12.5rem), 1fr)); }
.mm-footer__title { color: #fff; font-size: 1.05rem; font-stretch: 88%; margin: 0 0 0.75rem; letter-spacing: 0.01em; }
.mm-footer__title--sub { margin-top: 1.5rem; }
.mm-footer address { font-style: normal; line-height: 1.7; }
.mm-footer ul { list-style: none; margin: 0; padding: 0; }
.mm-footer li { margin-bottom: 0.4rem; }
.mm-footer .mod-menu { display: block; }
.mm-footer__social { display: flex; gap: 1rem; }
.mm-footer__route { display: inline-block; margin-top: 0.25rem; border-bottom: 1px solid rgba(255, 255, 255, 0.4); }
.mm-footer__base { border-top: 1px solid rgba(255, 255, 255, 0.14); font-size: var(--mm-step--1); }
.mm-footer__baseinner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem 2rem; padding-block: 1.1rem 5.5rem; }
.mm-footer__copy { margin: 0; display: flex; flex-wrap: wrap; gap: 0 0.75rem; }
.mm-footer__slogan { color: #93a6bb; }
.mm-footer__legal .mod-menu { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; }
.mm-footer__legal li { margin: 0; }
@media (min-width: 48rem) { .mm-footer__baseinner { padding-bottom: 1.1rem; } }

/* Schwebender Anruf-Knopf */
.mm-call {
  position: fixed; right: 1rem; bottom: 1rem; z-index: 40;
  display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1rem;
  background: var(--mm-red); color: #fff; border-radius: 999px; text-decoration: none; font-weight: 650;
  box-shadow: 0 6px 18px rgba(143, 48, 32, 0.4);
}
.mm-call:hover { color: #fff; background: var(--mm-red-dark); }
.mm-call svg { width: 1.25rem; height: 1.25rem; }
@media (min-width: 48rem) { .mm-call__label { display: inline; } }

/* Cookie-Hinweis (reine Information) */
.mm-cookie {
  position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 45; max-width: 34rem;
  background: #fff; color: var(--mm-ink); border: 1px solid var(--mm-line); box-shadow: var(--mm-shadow);
  padding: 1rem 1.1rem; display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; border-radius: var(--mm-radius);
}
.mm-cookie p { margin: 0; flex: 1 1 16rem; font-size: 0.95rem; }
.mm-cookie:not([hidden]) ~ .mm-call { bottom: 7rem; }

/* Fehlerseite */
.mm-error { text-align: left; max-width: 40rem; }
.mm-error__code { font-size: clamp(4rem, 12vw, 7rem); font-weight: 800; font-stretch: 75%; color: var(--mm-red); line-height: 1; margin: 0; }

@media (prefers-reduced-motion: no-preference) {
  .mm-nav { transition: transform 0.28s cubic-bezier(.2, .7, .2, 1), visibility 0.28s; }
  .mm-nav .mod-menu > li > a::after { transition: transform 0.2s ease; }
}

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

/* ---------- Kurz erklärt, Termin-Box, Zusammenfassung ---------- */

.mm-prose .mm-facts {
  max-width: 68ch; margin: 1.75rem 0 2rem; padding: 1.1rem 1.4rem 0.4rem;
  background: var(--mm-blue-soft); border-left: 4px solid var(--mm-blue); font-family: var(--mm-sans); font-size: 1rem;
}
.mm-prose .mm-facts h2 { margin: 0 0 0.5rem; font-size: 1.15rem; }
.mm-prose .mm-facts ul { padding-left: 1.1em; }

.mm-eventbox {
  margin: 0 0 1.75rem; padding: 1rem 1.25rem; border: 1px solid var(--mm-line); border-left: 4px solid var(--mm-red);
  background: #fff; font-family: var(--mm-sans); max-width: 48rem;
}
.mm-eventbox dl { margin: 0; display: grid; gap: 0.4rem; }
.mm-eventbox dl > div { display: grid; grid-template-columns: 4rem 1fr; gap: 0.75rem; }
.mm-eventbox dt { font-weight: 700; color: var(--mm-blue-deep); }
.mm-eventbox dd { margin: 0; }
.mm-eventbox__ics { margin: 0.75rem 0 0; font-size: 0.95rem; }
.mm-eventbox--past { border-left-color: var(--mm-mute); }
.mm-badge--quiet { background: var(--mm-mute); }

.mm-summary { display: grid; gap: 0.35rem; margin: 1rem 0; font-family: var(--mm-sans); }
.mm-summary > div { display: grid; grid-template-columns: minmax(8rem, 14rem) 1fr; gap: 0.75rem; padding: 0.4rem 0; border-bottom: 1px solid var(--mm-line); }
.mm-summary dt { font-weight: 650; color: var(--mm-blue-deep); }
.mm-summary dd { margin: 0; }
@media (max-width: 36rem) { .mm-summary > div, .mm-eventbox dl > div { grid-template-columns: 1fr; gap: 0.1rem; } }

/* ---------- Formulare ---------- */

.mm-prose .mm-form, .mm-prose .mm-form-done { max-width: 44rem; font-family: var(--mm-sans); font-size: 1rem; line-height: 1.5; }
.mm-form__group { border: 0; margin: 0 0 1.75rem; padding: 0; min-width: 0; }
.mm-form__group > legend {
  font-weight: 750; font-stretch: 85%; font-size: var(--mm-step-1); color: var(--mm-blue-deep);
  padding: 0 0 0.5rem; margin-bottom: 0.75rem; border-bottom: 2px solid var(--mm-blue-soft); width: 100%;
}
.mm-field { margin: 0 0 1.1rem; border: 0; padding: 0; min-width: 0; }
.mm-field > label, .mm-field > legend { display: block; font-weight: 650; margin-bottom: 0.3rem; color: var(--mm-ink); padding: 0; }
.mm-field input[type="text"], .mm-field input[type="email"], .mm-field input[type="tel"], .mm-field input[type="url"],
.mm-field input[type="date"], .mm-field input[type="time"], .mm-field input[type="month"], .mm-field select, .mm-field textarea {
  width: 100%; min-height: 2.9rem; padding: 0.55rem 0.8rem; font: inherit; color: var(--mm-ink);
  border: 1px solid #9aa6b5; border-radius: var(--mm-radius); background: #fff;
}
.mm-field input[type="date"], .mm-field input[type="time"], .mm-field input[type="month"] { max-width: 14rem; }
.mm-field--math input { max-width: 6rem; }
.mm-field textarea { min-height: 9rem; resize: vertical; }
.mm-field input:focus, .mm-field select:focus, .mm-field textarea:focus { outline: 3px solid var(--mm-red); outline-offset: 1px; border-color: var(--mm-blue); }
.mm-field input[type="file"] { font: inherit; max-width: 100%; }
.mm-field__help { margin: 0 0 0.35rem; color: var(--mm-mute); font-size: 0.92rem; }
.mm-field__error { margin: 0.3rem 0 0; color: #a3271a; font-weight: 600; font-size: 0.95rem; }
.mm-field.has-error input, .mm-field.has-error select, .mm-field.has-error textarea { border-color: #a3271a; border-width: 2px; }
.mm-choices { display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; }
.mm-choice { display: inline-flex; gap: 0.55rem; align-items: flex-start; font-weight: 400; cursor: pointer; padding: 0.2rem 0; }
.mm-field > .mm-choice { display: flex; font-weight: 400; }
.mm-choice input { width: 1.2rem; height: 1.2rem; margin-top: 0.15rem; flex-shrink: 0; accent-color: var(--mm-blue); }
.mm-req { color: #a3271a; }
.mm-form__required { font-size: 0.9rem; color: var(--mm-mute); margin: 0 0 0.75rem; }
.mm-form__submit { margin: 0; }
.mm-form__errors { border: 2px solid #a3271a; background: #fbecea; padding: 0.9rem 1.2rem; margin: 0 0 1.5rem; }
.mm-form__errors p { margin: 0 0 0.4rem; }
.mm-form__errors ul { margin: 0; padding-left: 1.2em; }
.mm-form__errors a { color: #7d1d13; }
.mm-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.mm-form-done { border: 2px solid #2e7d4f; background: #edf7f0; padding: 1.1rem 1.4rem; margin: 0.5rem 0 1.5rem; outline: none; }
.mm-form-done h2 { margin-top: 0; font-size: var(--mm-step-2); color: #1f5a37; }
.js [data-mm-showif].is-hidden { display: none; }

/* ---------- Preise ---------- */

.mm-prices { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); margin: 1.25rem 0 1rem; font-family: var(--mm-sans); max-width: none; }
.mm-price { border: 1px solid var(--mm-line); border-top: 4px solid var(--mm-blue); padding: 1.2rem 1.3rem; background: #fff; display: flex; flex-direction: column; }
.mm-price--highlight { border-top-color: var(--mm-red); box-shadow: var(--mm-shadow); }
.mm-prose .mm-price__name { margin: 0 0 0.5rem; font-size: 1.3rem; }
.mm-price__amount { margin: 0; }
.mm-price__net { font-size: 1.9rem; font-weight: 800; font-stretch: 80%; color: var(--mm-blue-deep); }
.mm-price__unit { display: block; color: var(--mm-mute); font-size: 0.95rem; }
.mm-price__gross { margin: 0.2rem 0 0.75rem; font-size: 0.9rem; color: var(--mm-mute); }
.mm-prose .mm-price__features { padding-left: 1.1em; margin: 0 0 1rem; font-size: 0.97rem; }
.mm-price__cta { margin: auto 0 0; }
.mm-prices__note { font-family: var(--mm-sans); font-size: 0.95rem; color: var(--mm-mute); }
.mm-prose .mm-prices__group { font-size: var(--mm-step-1); margin: 1.75rem 0 0; }
.mm-prose .mm-price__name { font-size: 1.3rem; }
.mm-price__badge { align-self: flex-start; margin: 0 0 0.5rem; padding: 0.1rem 0.5rem; background: var(--mm-red); color: #fff; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.mm-price__audience { margin: -0.3rem 0 0.5rem; font-size: 0.9rem; color: var(--mm-mute); font-style: italic; }
.mm-price__saving { margin: -0.4rem 0 0.75rem; padding: 0.4rem 0.6rem; background: var(--mm-blue-soft); font-size: 0.9rem; }
.mm-price__terms { margin: 0 0 1rem; font-size: 0.85rem; color: var(--mm-mute); }

/* ---------- Premium-Kennzeichnung ---------- */

.mm-flag { display: inline-block; padding: 0.05rem 0.45rem; font-family: var(--mm-sans); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; border-radius: 2px; line-height: 1.5; }
.mm-flag--premium { background: #f6e7c8; color: #5a3d00; border: 1px solid #d9b467; }
.mm-flag--tipp { background: var(--mm-red); color: #fff; }
.mm-card--premium { border-color: #d9b467; box-shadow: inset 0 3px 0 #d9b467; }
.mm-premium-top { margin: 0 0 1.5rem; }
.mm-recommended { margin: 2rem 0; }
.mm-recommended__note { margin: -0.4rem 0 0.75rem; font-family: var(--mm-sans); font-size: 0.85rem; color: var(--mm-mute); }
.mm-article__flag { margin: 0.4rem 0 0; font-family: var(--mm-sans); font-size: 0.85rem; color: var(--mm-mute); display: flex; gap: 0.5rem; align-items: center; }
.mm-calendar__flag { margin: 0 0 0.2rem; }
.mm-prose .mm-calendar__item--tipp { background: #fbf6ec; padding-left: 0.5rem; padding-right: 0.5rem; }

/* ---------- Buchung ---------- */

.mm-booking-review { margin-bottom: 1.5rem; padding: 1.25rem; border: 1px solid var(--mm-line); border-top: 4px solid var(--mm-blue); background: #fff; font-family: var(--mm-sans); }
.mm-prose .mm-booking-review h3 { margin-top: 0; }
.mm-booking-review__total { font-size: 1.15rem; margin: 1rem 0 0.5rem; }
.mm-form__legal { font-size: 0.9rem; color: var(--mm-mute); }
.mm-booking-review__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin-top: 1rem; }
.mm-booking-review__actions form { margin: 0; }
.mm-button--order { background: var(--mm-red); border-color: var(--mm-red); font-size: 1.05rem; padding-inline: 1.4rem; }
.mm-button--order:hover, .mm-button--order:focus-visible { background: var(--mm-red-dark); }
.mm-draft-note { padding: 0.75rem 1rem; background: #fff4d6; border-left: 4px solid #d9a400; font-family: var(--mm-sans); font-size: 0.95rem; }

/* ---------- Veranstaltungskalender ---------- */

.mm-calfilter { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.75rem 1rem; margin: 1.5rem 0; padding: 1rem; background: var(--mm-ground); font-family: var(--mm-sans); max-width: none; }
.mm-calfilter label { display: flex; flex-direction: column; gap: 0.25rem; font-weight: 650; font-size: 0.95rem; }
.mm-calfilter select { min-height: 2.6rem; padding: 0.3rem 0.6rem; font: inherit; font-weight: 400; border: 1px solid #9aa6b5; border-radius: var(--mm-radius); background: #fff; min-width: 11rem; }
.mm-calfilter__reset { align-self: center; }
.mm-calendar { max-width: 52rem; font-family: var(--mm-sans); }
.mm-prose .mm-calendar__month { font-size: var(--mm-step-2); margin: 2rem 0 0.75rem; }
.mm-prose .mm-calendar__list { list-style: none; padding: 0; margin: 0; }
.mm-prose .mm-calendar__item { display: grid; grid-template-columns: 4.5rem 1fr; gap: 1rem; padding: 1rem 0; border-top: 1px solid var(--mm-line); margin: 0; position: relative; }
.mm-prose .mm-calendar__item::marker { content: none; }
.mm-calendar__date { margin: 0; }
.mm-calendar__date time { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 4.5rem; padding: 0.4rem 0; background: var(--mm-blue); color: #fff; line-height: 1.1; }
.mm-calendar__wd, .mm-calendar__mon { font-size: 0.8rem; }
.mm-calendar__day { font-size: 1.7rem; font-weight: 800; font-stretch: 80%; }
.mm-prose .mm-calendar__title { margin: 0 0 0.25rem; font-size: 1.2rem; }
.mm-calendar__title a { text-decoration: none; color: var(--mm-blue-deep); }
.mm-calendar__item:hover .mm-calendar__title a { color: var(--mm-red); }
.mm-calendar__meta { margin: 0 0 0.25rem; font-weight: 600; color: var(--mm-red-dark); font-size: 0.95rem; }
.mm-calendar__text { margin: 0; color: var(--mm-mute); font-size: 0.95rem; }

/* ---------- Footer: Kündigungslink hervorheben ---------- */

.mm-footer__legal a.mm-cancel-link { color: #fff; background: var(--mm-red); padding: 0.25rem 0.7rem; border-radius: 2px; font-weight: 650; }
.mm-footer__legal a.mm-cancel-link:hover { background: var(--mm-red-dark); text-decoration: none; }

/* Auswahlfragen im Formular wie normale Feldbeschriftungen */
.mm-content .mm-field > legend { font-size: 1rem; font-weight: 650; font-stretch: 100%; color: var(--mm-ink); margin-bottom: 0.3rem; }

/* Anrufen-Knopf: auf dem Handy nur als runder Knopf, beim Ausfüllen eines Formulars ausgeblendet */
@media (max-width: 47.99rem) {
  .mm-call { padding: 0; width: 3.25rem; height: 3.25rem; justify-content: center; right: 0.75rem; bottom: 0.75rem; }
  .mm-call__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
body:has(.mm-form :focus) .mm-call, body.mm-nav-open .mm-call { display: none; }

/* =====================================================================
   Design 1.3 „Stadtmagazin“ – große Typografie, Quadrate, ruhige Flächen,
   Bewegung nur mit .mm-fx und nur ohne „Bewegung reduzieren“
   ===================================================================== */

:root {
  --mm-radius: 10px;
  --mm-radius-lg: 18px;
  --mm-radius-xl: 28px;
  --mm-ease: cubic-bezier(.2, .7, .2, 1);
  --mm-shadow-lift: 0 24px 48px -24px rgba(13, 38, 64, 0.45);
  --mm-display: clamp(3.6rem, 1rem + 13vw, 7.4rem);
  --mm-h2-home: clamp(2.2rem, 1.1rem + 3.6vw, 3.5rem);
}

/* ---------- Kopf: haftet oben, wird beim Scrollen kompakt ---------- */
.mm-header { position: sticky; top: 0; border-bottom: 1px solid #e3e8ee; transition: transform .35s var(--mm-ease), box-shadow .35s ease; }
.mm-header.is-scrolled { box-shadow: 0 10px 30px -18px rgba(13, 38, 64, 0.45); }
.mm-header.is-hidden { transform: translateY(-100%); }
.mm-topbar { overflow: hidden; max-height: 3rem; transition: max-height .35s var(--mm-ease); }
.mm-header.is-scrolled .mm-topbar { max-height: 0; }
.mm-mast { transition: min-height .35s var(--mm-ease); }
@media (min-width: 64rem) { .mm-header.is-scrolled .mm-mast { min-height: 4.25rem; } }
.mm-nav-open .mm-header { transform: none; }
.mm-head-fixed .mm-header { position: fixed; left: 0; right: 0; top: 0; }
.mm-header-spacer { display: block; }

.mm-logo__word { flex-direction: row; font-size: clamp(1.45rem, 1.1rem + 1vw, 1.85rem); font-stretch: 75%; letter-spacing: -0.01em; line-height: 1; text-transform: uppercase; }
.mm-logo__word span:first-child { font-size: 1em; font-weight: 800; color: var(--mm-blue-deep); letter-spacing: inherit; }
.mm-logo__word span:last-child { font-weight: 800; color: var(--mm-red); }
.mm-logo:hover .mm-logo__word span:first-child { color: var(--mm-red); }
.mm-logo:hover .mm-logo__word span:last-child { color: var(--mm-blue-deep); }
.mm-logo__word span { transition: color .3s ease; }

.mm-search-toggle { border: 1px solid #cdd6e0; border-radius: 999px; width: 2.75rem; padding: 0; }
.mm-iconbtn { border-radius: 999px; }
@media (min-width: 64rem) {
  .mm-nav .mod-menu > li > a { font-weight: 650; }
  .mm-nav .mod-menu > li > ul { border-top: 0; border-radius: 0 0 var(--mm-radius-xl) var(--mm-radius-xl); box-shadow: 0 30px 60px -30px rgba(13, 38, 64, 0.45); }
}

/* Lesefortschritt (Beiträge) */
.mm-progress { position: fixed; inset: 0 0 auto; height: 3px; z-index: 90; pointer-events: none; }
.mm-progress span { display: block; height: 100%; background: var(--mm-red); transform-origin: 0 50%; transform: scaleX(var(--p, 0)); }

/* ---------- Startseite: Kopfbereich ---------- */
.mm-hero { background: #fff; color: var(--mm-ink); overflow: hidden; }
.mm-hero__inner { display: grid; gap: clamp(2rem, 4vw, 3.5rem); align-items: center; padding-block: clamp(2.25rem, 6vw, 4.5rem) clamp(2rem, 5vw, 3.5rem); }
@media (min-width: 60rem) { .mm-hero__inner { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); } }

.mm-hero__kicker {
  margin: 0 0 1.25rem; font-size: 0.9rem; font-stretch: 100%; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: var(--mm-red); line-height: 1.45; max-width: 40rem; hyphens: manual; text-wrap: balance;
}
.mm-hero__display {
  margin: 0; font-family: var(--mm-sans); font-weight: 800; font-stretch: 75%; font-size: var(--mm-display);
  line-height: .88; letter-spacing: -0.02em; color: var(--mm-blue-deep);
}
.mm-hero__line { display: block; }
.mm-hero__line--accent { color: var(--mm-red); }
.mm-hero__lead { margin: 1.75rem 0 0; max-width: 34rem; font-family: var(--mm-serif); font-size: clamp(1.1rem, 1rem + .5vw, 1.3rem); line-height: 1.6; color: #3a4756; }

.mm-hero__search { margin-top: 2rem; display: flex; max-width: 36rem; border: 2px solid var(--mm-blue-deep); border-radius: 999px; overflow: hidden; background: #fff; transition: box-shadow .3s ease; }
.mm-hero__search:focus-within { box-shadow: 0 0 0 5px rgba(179, 64, 42, 0.18); }
.mm-hero__search input { flex: 1; min-width: 0; border: 0; padding: 0.95rem 1.4rem; font: inherit; font-size: 1rem; outline: none; background: transparent; }
.mm-hero__search button { border: 0; background: var(--mm-blue-deep); color: #fff; padding: 0 1.6rem; font: 700 1rem var(--mm-sans); cursor: pointer; transition: background .25s ease; }
.mm-hero__search button:hover { background: var(--mm-red); }

.mm-hero__art { position: relative; max-width: 32.5rem; width: 100%; justify-self: center; }
.mm-hero .mm-hero__map { display: block; width: 100%; height: auto; max-height: none; }
.mm-hero__plate { fill: var(--mm-blue-deep); }
.mm-hero__ring { fill: none; stroke: #2c4d70; stroke-width: 18; }
.mm-hero__castle { fill: #2c4d70; }
.mm-hero__block { fill: #173a5e; }
.mm-hero__block--red { fill: var(--mm-red); }
.mm-hero__block--gold { fill: #e9c46a; }
.mm-hero__block--rose { fill: #f0b9ab; }
.mm-hero__block--sky { fill: #5d8bb8; }

.mm-hero__next {
  position: absolute; left: clamp(-1.75rem, -2vw, -0.5rem); bottom: 2.25rem; width: min(16rem, 70%);
  display: flex; flex-direction: column; gap: .25rem; padding: 1.1rem 1.35rem; border-radius: 16px;
  background: #fff; color: var(--mm-ink); text-decoration: none; box-shadow: 0 20px 40px -20px rgba(13, 38, 64, 0.55);
  transition: transform .35s var(--mm-ease), box-shadow .35s ease;
}
.mm-hero__next:hover { color: var(--mm-ink); transform: translateY(-4px); box-shadow: 0 28px 50px -22px rgba(13, 38, 64, 0.6); }
.mm-hero__next strong { font-size: 1.15rem; font-stretch: 85%; line-height: 1.2; color: var(--mm-blue-deep); }
.mm-hero__next-label { font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--mm-red); }
.mm-hero__next-meta { font-size: .9rem; color: var(--mm-mute); }
@media (max-width: 59.99rem) {
  .mm-hero__art { max-width: 26rem; }
  .mm-hero__next { left: 0.75rem; bottom: 0.75rem; }
}

/* Laufband mit Rubriken */
.mm-ticker { background: var(--mm-red); color: #fff; overflow: hidden; font-weight: 700; font-size: .95rem; letter-spacing: .14em; text-transform: uppercase; }
.mm-ticker__track { display: flex; width: max-content; }
.mm-ticker__list { display: flex; list-style: none; margin: 0; padding: 0; }
.mm-ticker__list li { display: flex; align-items: center; white-space: nowrap; }
.mm-ticker__list li::after { content: "✦"; padding-inline: 1.75rem; opacity: .7; font-size: .8em; }
.mm-ticker a { color: #fff; text-decoration: none; padding-block: 0.9rem; display: inline-block; }
.mm-ticker a:hover { text-decoration: underline; text-underline-offset: .3em; }
.mm-ticker__list[aria-hidden="true"] { display: none; }
.mm-ticker__list:first-child { padding-left: 1.75rem; }

/* ---------- Startseite: Inhalte im Magazin-Stil ---------- */
.is-home .mm-main { padding-top: clamp(2rem, 5vw, 3.5rem); }
.mm-article--home .mm-prose > * { max-width: none; }
.mm-article--home .mm-prose > p:not(:has(> .mm-button)) { max-width: 52rem; }
.mm-article--home .mm-prose > .mm-lead { max-width: 46rem; font-size: clamp(1.15rem, 1rem + .6vw, 1.4rem); line-height: 1.6; margin-bottom: 2.5rem; }
.mm-article--home .mm-prose > h2,
.mm-article--home .mm-recommended > h2 {
  font-size: var(--mm-h2-home); font-stretch: 75%; font-weight: 800; line-height: 1; letter-spacing: -0.015em; margin: clamp(3rem, 6vw, 5rem) 0 1.5rem;
}

/* Rubriken als nummerierte Magazin-Liste */
.mm-rubrics { counter-reset: mm-rub; border: 0; border-top: 2px solid var(--mm-blue-deep); margin: 1rem 0 0; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); }
.mm-rubric {
  counter-increment: mm-rub; border-radius: 0; border: 0; border-bottom: 1px solid var(--mm-line); min-height: 0;
  padding: 1.5rem 1.25rem 1.4rem 3.6rem; background: #fff; transition: background .3s ease, color .3s ease;
}
.mm-rubric::before {
  content: counter(mm-rub, decimal-leading-zero); position: absolute; left: 1.25rem; top: 1.75rem;
  font-size: .85rem; font-weight: 800; color: var(--mm-red); transition: color .3s ease;
}
@media (min-width: 40rem) { .mm-rubric { border-right: 1px solid var(--mm-line); } }
.mm-rubric__title { font-size: clamp(1.3rem, 1.1rem + .6vw, 1.55rem); font-stretch: 80%; }
.mm-rubric__title a { transition: color .3s ease; }
.mm-rubric__count { color: var(--mm-mute); font-weight: 500; }
.mm-rubric__links { opacity: .9; }
.mm-rubric:hover, .mm-rubric:focus-within { background: var(--mm-blue-deep); box-shadow: none; }
.mm-rubric:hover::before, .mm-rubric:focus-within::before { color: #f0b9ab; }
.mm-rubric:hover .mm-rubric__title a, .mm-rubric:focus-within .mm-rubric__title a { color: #fff; }
.mm-rubric:hover .mm-rubric__count, .mm-rubric:hover .mm-rubric__links a,
.mm-rubric:focus-within .mm-rubric__count, .mm-rubric:focus-within .mm-rubric__links a { color: #c9d6e4; }

/* Karten: weich, mit Bild-Zoom und Anheben */
.mm-card { border-radius: var(--mm-radius-lg); border-color: #e3e8ee; overflow: hidden; transition: transform .35s var(--mm-ease), box-shadow .35s ease, border-color .35s ease; }
.mm-card:hover, .mm-card:focus-within { transform: translateY(-6px); box-shadow: var(--mm-shadow-lift); border-color: #d3dbe5; }
.mm-card__media { border-radius: 0; background: linear-gradient(135deg, #173a5e, #2c4d70); }
.mm-card__media img { transition: transform .9s var(--mm-ease); }
.mm-card:hover .mm-card__media img, .mm-card:focus-within .mm-card__media img { transform: scale(1.06); }
.mm-card__body { padding: 1.2rem 1.35rem 1.45rem; }
.mm-card__title { font-size: 1.28rem; font-stretch: 82%; }
.mm-card:hover .mm-card__title a { color: var(--mm-red); }
.mm-card--premium { border-color: #e6d3a4; box-shadow: none; }

/* Startseite „Neu“: erste Karte groß */
@media (min-width: 64rem) {
  .mm-article--home .mm-prose > .mm-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.75rem; }
  /* Aufmacher über die volle Breite: Bild links im Querformat (kaum Beschnitt), Text rechts */
  .mm-article--home .mm-prose > .mm-cards > .mm-card:first-child:has(.mm-card__media) { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: stretch; }
  .mm-article--home .mm-prose > .mm-cards > .mm-card:first-child:has(.mm-card__media) .mm-card__media { aspect-ratio: 16 / 10; height: 100%; min-height: 0; flex: none; }
  .mm-article--home .mm-prose > .mm-cards > .mm-card:first-child:has(.mm-card__media) .mm-card__body { display: flex; flex-direction: column; justify-content: center; padding: clamp(1.5rem, 3vw, 2.5rem); }
  .mm-article--home .mm-prose > .mm-cards > .mm-card:first-child:has(.mm-card__media) .mm-card__title { font-size: clamp(1.7rem, 1rem + 1.4vw, 2.3rem); }
  .mm-article--home .mm-prose > .mm-cards > .mm-card:first-child:has(.mm-card__media) .mm-card__text { font-size: 1.05rem; -webkit-line-clamp: 6; }
}

/* Empfohlen: erste Karte breiter */
.mm-recommended { margin: 0; }
.mm-recommended__note { margin: -0.75rem 0 1.25rem; }
@media (min-width: 64rem) {
  .mm-cards--premium { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr); gap: 1.75rem; }
  .mm-cards--premium > .mm-card:first-child .mm-card__title { font-size: 1.75rem; }
}

/* „Was MehrMannheim ausmacht“ als nummerierte Kacheln */
.mm-article--home .mm-prose > ul {
  counter-reset: mm-why; list-style: none; padding: 0; margin: 0 0 1rem;
  display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
}
.mm-article--home .mm-prose > ul > li {
  counter-increment: mm-why; margin: 0; padding: 1.4rem 1.3rem 1.5rem; border-radius: var(--mm-radius-lg);
  background: var(--mm-ground); font-size: 1rem; line-height: 1.55;
}
.mm-article--home .mm-prose > ul > li::before { content: counter(mm-why, decimal-leading-zero); display: block; font: 800 .85rem var(--mm-sans); color: var(--mm-red); margin-bottom: .6rem; }
.mm-article--home .mm-prose > ul > li strong { display: block; font-family: var(--mm-sans); font-stretch: 85%; font-size: 1.2rem; color: var(--mm-blue-deep); margin-bottom: .3rem; }

/* Mitmachen-Band */
.mm-prose .mm-join {
  max-width: none; margin: clamp(3rem, 6vw, 5rem) 0; padding: clamp(1.75rem, 4vw, 3.5rem); border-radius: var(--mm-radius-xl);
  background: var(--mm-blue-deep); color: #fff; font-family: var(--mm-sans);
  display: grid; gap: clamp(1.75rem, 3vw, 2.5rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  position: relative; overflow: hidden;
}
.mm-join::after {
  content: ""; position: absolute; right: -6rem; top: -6rem; width: 18rem; height: 18rem; border-radius: 50%;
  border: 18px solid rgba(255, 255, 255, 0.06); pointer-events: none;
}
.mm-join__kicker { margin: 0; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: #f0b9ab; font-weight: 700; }
.mm-prose .mm-join__title { margin: .5rem 0 .5rem; color: #fff; font-size: clamp(1.5rem, 1.2rem + 1vw, 1.9rem); font-stretch: 80%; }
.mm-join__text { margin: 0 0 1.25rem; color: #c9d6e4; font-size: 1rem; line-height: 1.5; }
.mm-join__btn {
  display: inline-flex; align-items: center; gap: .5rem; min-height: 2.9rem; padding: .7rem 1.4rem; border-radius: 999px;
  border: 1.5px solid #fff; color: #fff; text-decoration: none; font-weight: 700; transition: background .25s ease, color .25s ease, gap .25s ease;
}
.mm-join__btn:hover { background: #fff; color: var(--mm-blue-deep); gap: .8rem; }
.mm-join__btn--accent { background: var(--mm-red); border-color: var(--mm-red); }
.mm-join__btn--accent:hover { background: #fff; border-color: #fff; color: var(--mm-red); }

/* ---------- Unterseiten ---------- */
.mm-article__title, .mm-page-title { font-size: clamp(2.1rem, 1.1rem + 3.2vw, 3.6rem); text-wrap: balance; font-stretch: 75%; font-weight: 800; line-height: .98; letter-spacing: -0.015em; }
.mm-article__head::before, .mm-rubric-page__head::before, .com-content-category-blog > .mm-page-title::before {
  content: ""; display: block; width: 3rem; height: 4px; background: var(--mm-red); margin-bottom: 1.1rem; border-radius: 2px;
}
.mm-article .item-image img { border-radius: var(--mm-radius-lg); }
.mm-prose .mm-facts { border-left: 0; border-radius: var(--mm-radius-lg); padding: 1.4rem 1.6rem 0.6rem; }
.mm-eventbox, .mm-booking-review, .mm-price, .mm-calfilter { border-radius: var(--mm-radius-lg); }
.mm-price { transition: transform .35s var(--mm-ease), box-shadow .35s ease; }
.mm-price:hover { transform: translateY(-4px); box-shadow: var(--mm-shadow-lift); }
.mm-calendar__date time { border-radius: 12px; }
.mm-prose .mm-calendar__item { transition: background .25s ease; border-radius: 12px; }
.mm-prose .mm-calendar__item:hover { background: var(--mm-ground); }
.mm-empty { border-left: 0; border-radius: var(--mm-radius-lg); }

/* Schaltflächen und Felder */
.mm-button, .btn-primary, .button { border-radius: 999px; padding-inline: 1.5rem; transition: background .25s ease, transform .25s ease, box-shadow .25s ease; }
.mm-button:hover, .btn-primary:hover, .button:hover { transform: translateY(-2px); box-shadow: 0 10px 20px -12px rgba(143, 48, 32, 0.7); }
.mm-button--quiet:hover { box-shadow: 0 10px 20px -12px rgba(13, 38, 64, 0.6); }
.mm-field input[type="text"], .mm-field input[type="email"], .mm-field input[type="tel"], .mm-field input[type="url"],
.mm-field input[type="date"], .mm-field input[type="time"], .mm-field input[type="month"], .mm-field select, .mm-field textarea { border-radius: var(--mm-radius); }
.mm-form__errors, .mm-form-done, .mm-draft-note { border-radius: var(--mm-radius); }

/* ---------- Footer mit großer Wortmarke ---------- */
.mm-footer__brand {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .5rem 2rem;
  padding-block: clamp(2.5rem, 6vw, 4.5rem) 1.5rem; border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.mm-footer__bigword {
  display: flex; flex-wrap: wrap; font-weight: 800; font-stretch: 75%; font-size: clamp(3rem, 1rem + 9vw, 8.5rem);
  line-height: .85; letter-spacing: -0.02em; text-transform: uppercase; color: #fff;
}
.mm-footer__bigword span:last-child { color: transparent; -webkit-text-stroke: 2px rgba(255, 255, 255, 0.55); }
.mm-footer__bigslogan { font-family: var(--mm-serif); font-style: italic; font-size: 1.15rem; color: #93a6bb; padding-bottom: .6rem; }

/* ---------- Handy-Menü als Vollbild-Fläche ---------- */
@media (max-width: 63.99rem) {
  .mm-nav { width: min(28rem, 100vw); background: var(--mm-blue-deep); color: #fff; box-shadow: none; }
  .mm-nav__head { border-bottom-color: rgba(255, 255, 255, 0.14); padding: 1rem 1.25rem; }
  .mm-nav__title { color: #fff; }
  .mm-nav__close { color: #fff; }
  .mm-nav__close:hover { background: rgba(255, 255, 255, 0.1); }
  .mm-nav .mod-menu > li { border-bottom-color: rgba(255, 255, 255, 0.12); }
  .mm-nav li > a, .mm-nav li > span.nav-header { color: #fff; font-size: 1.35rem; font-stretch: 80%; font-weight: 750; padding: 1rem 3.5rem 1rem 1.25rem; }
  .mm-nav ul ul a { font-size: 1.05rem; font-weight: 500; color: #c9d6e4; font-stretch: 95%; padding-block: .55rem; }
  .mm-nav li > a:hover, .mm-nav li.current > a, .mm-nav li.active > a { color: #f0b9ab; }
  .mm-subtoggle { color: #fff; }
  .mm-subtoggle:hover { background: rgba(255, 255, 255, 0.1); }
}

/* ---------- Bewegung (nur wenn erlaubt) ---------- */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  ::view-transition-old(root) { animation: mm-vt-out .25s ease both; }
  ::view-transition-new(root) { animation: mm-vt-in .45s var(--mm-ease) both; }
  @keyframes mm-vt-out { to { opacity: 0; } }
  @keyframes mm-vt-in { from { opacity: 0; transform: translateY(12px); } }

  .mm-fx .mm-hero__line { animation: mm-rise .95s var(--mm-ease) both; animation-delay: calc(var(--i) * 120ms + 80ms); }
  .mm-fx .mm-hero__kicker, .mm-fx .mm-hero__lead, .mm-fx .mm-hero__search { animation: mm-rise .9s var(--mm-ease) both; }
  .mm-fx .mm-hero__lead { animation-delay: .45s; }
  .mm-fx .mm-hero__search { animation-delay: .6s; }
  .mm-fx .mm-hero__ring { stroke-dasharray: 1; animation: mm-draw 2.4s var(--mm-ease) .3s both; }
  .mm-fx .mm-hero__block { transform-box: fill-box; transform-origin: center; animation: mm-pop .7s var(--mm-ease) both; animation-delay: calc(var(--i) * 70ms + 300ms); }
  .mm-fx .mm-hero__block--red { animation: mm-pop .7s var(--mm-ease) .5s both, mm-breathe 4.5s ease-in-out 1.5s infinite; }
  .mm-fx .mm-hero__next { animation: mm-rise .9s var(--mm-ease) 1s both, mm-float 6s ease-in-out 2s infinite; }
  .mm-fx .mm-hero__next:hover { animation-play-state: paused; }

  .mm-fx .mm-ticker__list[aria-hidden="true"] { display: flex; }
  .mm-fx .mm-ticker__track { animation: mm-marquee 45s linear infinite; }
  .mm-fx .mm-ticker:hover .mm-ticker__track, .mm-fx .mm-ticker:focus-within .mm-ticker__track { animation-play-state: paused; }

  .mm-fx .mm-reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--mm-ease), transform .9s var(--mm-ease); transition-delay: var(--d, 0ms); }
  .mm-fx .mm-reveal.is-in { opacity: 1; transform: none; }
  .mm-fx .mm-card.mm-reveal.is-in { transition: opacity .9s var(--mm-ease), transform .35s var(--mm-ease), box-shadow .35s ease, border-color .35s ease; transition-delay: var(--d, 0ms), 0ms, 0ms, 0ms; }

  .mm-fx .mm-nav.is-open .mod-menu > li { animation: mm-slide .5s var(--mm-ease) both; }
  .mm-fx .mm-nav.is-open .mod-menu > li:nth-child(2) { animation-delay: 60ms; }
  .mm-fx .mm-nav.is-open .mod-menu > li:nth-child(3) { animation-delay: 120ms; }
  .mm-fx .mm-nav.is-open .mod-menu > li:nth-child(4) { animation-delay: 180ms; }
  .mm-fx .mm-nav.is-open .mod-menu > li:nth-child(5) { animation-delay: 240ms; }
  .mm-fx .mm-nav.is-open .mod-menu > li:nth-child(n+6) { animation-delay: 300ms; }

  @keyframes mm-rise { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: none; } }
  @keyframes mm-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
  @keyframes mm-pop { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: none; } }
  @keyframes mm-breathe { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
  @keyframes mm-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
  @keyframes mm-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  @keyframes mm-slide { from { opacity: 0; transform: translateX(32px); } to { opacity: 1; transform: none; } }
}

/* Ohne Bewegung: Laufband als ruhige, umbrechende Leiste */
@media (prefers-reduced-motion: reduce) {
  .mm-ticker__track { width: auto; }
  .mm-ticker__list:first-child { flex-wrap: wrap; padding-inline: var(--mm-gutter); }
}
.mm-ticker:not(:has(.mm-ticker__list[aria-hidden="true"]:not([style*="none"]))) .mm-ticker__track { width: auto; }
html:not(.js) .mm-ticker__list:first-child, body:not(.mm-fx) .mm-ticker__list:first-child { flex-wrap: wrap; padding-inline: var(--mm-gutter); }

/* Handy-Menü: Kontakt unten */
.mm-nav__foot { display: none; }
@media (max-width: 63.99rem) {
  .mm-nav__foot { display: grid; gap: .75rem; padding: 1.75rem 1.25rem 2rem; }
  .mm-nav__foot a { color: #fff; text-decoration: none; font-size: 1.05rem; }
  .mm-nav__foot .mm-nav__cta { display: inline-flex; justify-content: center; min-height: 3rem; align-items: center; border-radius: 999px; background: var(--mm-red); font-weight: 700; margin-bottom: .5rem; }
  .mm-hero__art { max-width: 24rem; }
}
/* Kein seitliches Wackeln (Off-Canvas-Menü außerhalb), ohne Scroll-Container zu erzeugen – „Kopf haftet oben“ bleibt intakt */
html, body { overflow-x: clip; }

/* ---------- Logo in den Quadraten (Kopfbereich Startseite) ---------- */
.mm-logo__mark { width: 2.4rem; height: 2.4rem; flex-shrink: 0; transition: transform .6s var(--mm-ease); }
.mm-logo:hover .mm-logo__mark { transform: rotate(90deg); }

.mm-hero__stage { position: relative; transform-style: preserve-3d; transition: transform .6s var(--mm-ease); will-change: transform;
  transform: perspective(1100px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); }
.mm-hero__square { fill: #0b2038; stroke: rgba(255, 255, 255, 0.08); stroke-width: 2; }
.mm-hero__logo {
  position: absolute; left: 35.4%; top: 35.4%; width: 29.2%; height: 29.2%; overflow: visible;
  filter: drop-shadow(0 18px 28px rgba(0, 0, 0, 0.45));
  transform: translate3d(var(--lx, 0px), var(--ly, 0px), 0); transition: transform .6s var(--mm-ease);
}
.mm-tile__red { fill: #d71f26; }
.mm-tile__white, .mm-tile__q { fill: #fff; }
.mm-tile__q--b { opacity: 0; }
.mm-tile__m { fill: none; stroke: #d71f26; stroke-width: 9; stroke-linejoin: miter; stroke-linecap: square; }
.mm-tile { transform-box: fill-box; transform-origin: center; }

@media (prefers-reduced-motion: no-preference) {
  /* Kacheln fliegen aus den Ecken in die Mitte der Quadrate */
  .mm-fx .mm-tile--tl { animation: mm-tile-tl 1.1s var(--mm-ease) 1.1s both; }
  .mm-fx .mm-tile--tr { animation: mm-tile-tr 1.1s var(--mm-ease) 1.25s both; }
  .mm-fx .mm-tile--bl { animation: mm-tile-bl 1.1s var(--mm-ease) 1.4s both; }
  .mm-fx .mm-tile--br { animation: mm-tile-br 1.1s var(--mm-ease) 1.55s both; }
  @keyframes mm-tile-tl { from { opacity: 0; transform: translate(-140px, -140px) rotate(-90deg) scale(.4); } }
  @keyframes mm-tile-tr { from { opacity: 0; transform: translate(220px, -140px) rotate(90deg) scale(.4); } }
  @keyframes mm-tile-bl { from { opacity: 0; transform: translate(-140px, 220px) rotate(90deg) scale(.4); } }
  @keyframes mm-tile-br { from { opacity: 0; transform: translate(220px, 220px) rotate(-90deg) scale(.4); } }
  .mm-fx .mm-tile--tr { transform: translate(80px, 0); }

  /* Das M schreibt sich selbst */
  .mm-fx .mm-tile__m { stroke-dasharray: 1; animation: mm-draw 1.1s var(--mm-ease) 2.2s both; }
  .mm-fx .mm-tile--br .mm-tile__m { animation-delay: 2.45s; }

  /* Schachbrett-Kacheln wechseln im Takt – das Logo „lebt“ */
  .mm-fx .mm-tile__q--a { animation: mm-q-a 6s steps(1, end) 3.4s infinite; }
  .mm-fx .mm-tile__q--b { animation: mm-q-b 6s steps(1, end) 3.4s infinite; }
  @keyframes mm-q-a { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
  @keyframes mm-q-b { 0%, 49% { opacity: 0; } 50%, 100% { opacity: 1; } }

  /* Platz unter dem Logo erscheint, Stadtblöcke schimmern nacheinander */
  .mm-fx .mm-hero__square { animation: mm-pop .8s var(--mm-ease) .9s both; transform-box: fill-box; transform-origin: center; }
  .mm-fx .mm-hero__block { animation: mm-pop .7s var(--mm-ease) both, mm-shimmer 7s ease-in-out infinite; animation-delay: calc(var(--i) * 60ms + 250ms), calc(var(--i) * 300ms + 3s); }
  @keyframes mm-shimmer { 0%, 88%, 100% { fill: #173a5e; } 94% { fill: #2f5d8a; } }
  .mm-fx .mm-hero__block--gold, .mm-fx .mm-hero__block--sky, .mm-fx .mm-hero__block--rose { animation: mm-pop .7s var(--mm-ease) both; animation-delay: calc(var(--i) * 60ms + 250ms); }

  /* Ring pulsiert ganz leicht nach dem Zeichnen */
  .mm-fx .mm-hero__ring { animation: mm-draw 2.4s var(--mm-ease) .3s both, mm-ring 5s ease-in-out 3s infinite; }
  @keyframes mm-ring { 0%, 100% { stroke: #2c4d70; } 50% { stroke: #3c6894; } }
}

/* Leuchtender Schein hinter der Grafik */
.mm-hero__art::before {
  content: ""; position: absolute; inset: -12% -12% auto auto; width: 70%; aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(circle, rgba(215, 31, 38, 0.22), rgba(215, 31, 38, 0) 70%); pointer-events: none; z-index: -1;
}
.mm-hero__art { isolation: isolate; }
@media (prefers-reduced-motion: no-preference) {
  .mm-fx .mm-hero__art::before { animation: mm-glow 6s ease-in-out infinite; }
  @keyframes mm-glow { 0%, 100% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } }
}

/* ---------- Einheitliche Bildformate ---------- */
/* Beitragsbild oben: immer 16:9, Motiv mittig */
.mm-article .item-image img, .mm-article figure.item-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: center 35%; max-height: none; }
/* Große Bilder im Text: gleiche Breite und Höhe (16:10), nichts wird abgeschnitten – Flyer und Logos bleiben vollständig */
.mm-prose img.mm-img-wide { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: contain; background: var(--mm-ground); border-radius: var(--mm-radius-lg); }
/* Fotos mit Querformat füllen die Fläche */
.mm-prose img.mm-img-wide[width][height] { object-fit: contain; }
/* Kleine Bilder (Logos, Banner) in natürlicher Größe */
.mm-prose img:not(.mm-img-wide) { max-width: min(100%, 28rem); }
/* Mehrere Bilder direkt hintereinander: als Galerie nebeneinander */
.mm-prose p:has(> img.mm-img-wide + img.mm-img-wide) { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; }

/* ---------- Rubrik-Grafiken ---------- */
.mm-art { display: block; width: 100%; height: 100%; }
.mm-art__icon { transition: transform .5s var(--mm-ease); }
.mm-rubric--art { padding: 0; display: flex; flex-direction: column; overflow: hidden; }
.mm-rubric--art::before { position: absolute; left: .9rem; top: .9rem; z-index: 1; background: #fff; color: var(--mm-red); padding: .15rem .5rem; border-radius: 6px; line-height: 1.4; }
.mm-rubric--art:hover::before, .mm-rubric--art:focus-within::before { color: var(--mm-red); }
.mm-rubric__art { aspect-ratio: 400 / 200; overflow: hidden; line-height: 0; }
.mm-rubric__art .mm-art { transition: transform .8s var(--mm-ease); }
.mm-rubric--art .mm-rubric__title, .mm-rubric--art .mm-rubric__count, .mm-rubric--art .mm-rubric__links { padding-inline: 1.25rem; }
.mm-rubric--art .mm-rubric__title { margin-top: .35rem; }
.mm-rubric--art .mm-rubric__links { padding-bottom: 1.3rem; margin-top: .5rem; }
.mm-rubric--art:not(:has(.mm-rubric__links)) .mm-rubric__count, .mm-rubric--art:not(:has(.mm-rubric__links)) .mm-rubric__title:last-child { padding-bottom: 1.3rem; }
.mm-rubric--art:hover .mm-rubric__art .mm-art, .mm-rubric--art:focus-within .mm-rubric__art .mm-art { transform: scale(1.06); }
.mm-rubrics:has(.mm-rubric--art) { gap: 1.5rem; border-top: 0; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); }
.mm-rubrics:has(.mm-rubric--art) .mm-rubric { border: 1px solid #e3e8ee; border-radius: var(--mm-radius-lg); }
@media (prefers-reduced-motion: no-preference) {
  .mm-fx .mm-art__acc { animation: mm-breathe 4.5s ease-in-out infinite; }
}

/* Rubrik-Seite: Grafik neben Titel */
.mm-rubric-page__art { border-radius: var(--mm-radius-xl); overflow: hidden; aspect-ratio: 400 / 260; line-height: 0; box-shadow: var(--mm-shadow-lift); }
@media (min-width: 52rem) {
  .mm-rubric-page__head--art { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 3rem; align-items: center; max-width: none; }
  .mm-rubric-page__head--art .mm-rubric-page__art { order: 2; }
}
@media (max-width: 51.99rem) { .mm-rubric-page__art { margin-bottom: 1.5rem; } }
.mm-rubric-page__head--art::before { display: none; }
.mm-rubric-faq { margin-top: clamp(3rem, 6vw, 4.5rem); max-width: 52rem; }
.mm-rubric-faq h2 { font-size: var(--mm-h2-home); font-stretch: 75%; font-weight: 800; line-height: 1; margin-top: 0; }
.mm-rubric-page__lead { margin: .75rem 0 0; font-family: var(--mm-serif); max-width: 40rem; }

/* ---------- Demnächst in der Region ---------- */
.mm-prose .mm-soon { max-width: none; margin: clamp(3rem, 6vw, 5rem) 0 0; font-family: var(--mm-sans); }
.mm-soon__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .5rem 2rem; margin-bottom: 1.25rem; }
.mm-prose .mm-soon__head h2 { margin: 0; font-size: var(--mm-h2-home); font-stretch: 75%; font-weight: 800; line-height: 1; }
.mm-soon__all { font-weight: 700; text-decoration: none; }
.mm-prose .mm-soon__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.mm-prose .mm-soon__item { margin: 0; display: flex; gap: 1rem; align-items: center; padding: 1rem; border: 1px solid #e3e8ee; border-radius: var(--mm-radius-lg); background: #fff; transition: transform .35s var(--mm-ease), box-shadow .35s ease; }
.mm-soon__item:hover { transform: translateY(-4px); box-shadow: var(--mm-shadow-lift); }
.mm-soon__date { flex: 0 0 4.5rem; height: 4.5rem; border-radius: 14px; background: var(--mm-blue-deep); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.05; font-size: .8rem; }
.mm-soon__date strong { font-size: 1.7rem; font-stretch: 80%; }
.mm-soon__item:first-child .mm-soon__date { background: var(--mm-red); }
.mm-prose .mm-soon__title { margin: 0 0 .2rem; font-size: 1.15rem; font-stretch: 85%; line-height: 1.2; }
.mm-soon__title a { text-decoration: none; color: var(--mm-blue-deep); }
.mm-soon__meta { margin: 0; color: var(--mm-mute); font-size: .92rem; }
/* Häufige Fragen: ruhige Trennlinien */
.mm-prose h2 + h3, .mm-prose h3 + p + h3 { }
.mm-article--home .mm-prose > h3 { font-size: 1.25rem; margin: 1.5rem 0 .4rem; padding-top: 1.25rem; border-top: 1px solid var(--mm-line); max-width: 52rem; }
.mm-rubric-faq h3 { font-size: 1.2rem; margin: 1.5rem 0 .4rem; padding-top: 1.2rem; border-top: 1px solid var(--mm-line); }

/* Ersatzgrafik für Beiträge ohne Foto */
.mm-card__media--art { aspect-ratio: 16 / 10; line-height: 0; }
.mm-card__media--art .mm-art { transition: transform .9s var(--mm-ease); }
.mm-card:hover .mm-card__media--art .mm-art, .mm-card:focus-within .mm-card__media--art .mm-art { transform: scale(1.06); }
.mm-card:hover .mm-art__icon { transform: translate(150px, 74px); }
.mm-article__art { aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--mm-radius-lg); line-height: 0; margin: 0 0 1.75rem; }
.mm-article__art .mm-art { height: 100%; }

/* =====================================================================
   1.5.0: Besucherzähler, Bestenlisten mit Voting, Werbeplätze, Affiliate
   ===================================================================== */

/* Zähler */
.mm-hero__count { display: flex; align-items: baseline; flex-wrap: wrap; gap: .35rem .6rem; margin: 1.25rem 0 0; font-family: var(--mm-sans); color: var(--mm-mute); font-size: .95rem; }
.mm-hero__count-num { font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.3rem); font-weight: 800; font-stretch: 75%; letter-spacing: -.01em; color: var(--mm-blue-deep); font-variant-numeric: tabular-nums; }
.mm-hero__count span { text-transform: uppercase; letter-spacing: .08em; font-size: .78rem; font-weight: 700; }
.mm-footer__visits { opacity: .8; font-variant-numeric: tabular-nums; }
.mm-footer__visits::before { content: "·"; margin: 0 .5rem; }
.mm-visits { display: inline-flex; align-items: center; gap: .3rem; font-family: var(--mm-sans); font-size: .85rem; color: var(--mm-mute); font-variant-numeric: tabular-nums; }
.mm-counter { display: flex; flex-direction: column; align-items: flex-start; margin: 1.5rem 0; padding: 1.25rem 1.5rem; background: var(--mm-blue-deep); color: #fff; border-radius: var(--mm-radius-lg); font-family: var(--mm-sans); }
.mm-counter__num { font-size: clamp(2.2rem, 1.4rem + 3vw, 3.6rem); font-weight: 800; font-stretch: 75%; line-height: 1; font-variant-numeric: tabular-nums; }
.mm-counter__label { margin-top: .4rem; text-transform: uppercase; letter-spacing: .1em; font-size: .8rem; font-weight: 700; color: #f0b9ab; }

/* Bestenliste */
.mm-toplist { margin: 2rem 0; padding: clamp(1rem, 3vw, 1.75rem); background: var(--mm-ground); border-radius: var(--mm-radius-xl); font-family: var(--mm-sans); }
.mm-toplist__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .25rem 1rem; margin-bottom: 1rem; }
.mm-toplist__kicker { margin: 0; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; color: var(--mm-red); }
.mm-toplist__info { margin: 0; font-size: .9rem; color: var(--mm-mute); }
.mm-toplist__msg { margin: 0 0 1rem; padding: .7rem 1rem; border-radius: var(--mm-radius); background: #fff; border-left: 4px solid var(--mm-blue); }
.mm-toplist__msg.is-ok { border-color: #2e7d4f; }
.mm-toplist__msg.is-error { border-color: var(--mm-red); }
.mm-toplist__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.mm-toplist__item { position: relative; display: grid; grid-template-columns: auto 1fr; grid-template-areas: "rank body" "rank vote"; gap: .5rem 1rem; padding: 1rem 1.1rem; background: #fff; border-radius: var(--mm-radius-lg); box-shadow: var(--mm-shadow); transition: transform .4s var(--mm-ease), box-shadow .4s ease; }
@media (min-width: 40rem) { .mm-toplist__item { grid-template-columns: auto 1fr auto; grid-template-areas: "rank body vote"; align-items: center; } }
.mm-toplist__item:hover { transform: translateY(-2px); box-shadow: var(--mm-shadow-lift); }
.mm-toplist__rank { grid-area: rank; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 10px; background: var(--mm-blue-deep); color: #fff; font-weight: 800; font-size: 1.25rem; font-stretch: 75%; }
.mm-toplist__item.is-first .mm-toplist__rank { background: var(--mm-red); }
.mm-toplist__item.is-first::after { content: "Platz 1"; position: absolute; top: -.6rem; right: 1rem; padding: .1rem .55rem; border-radius: 999px; background: #e9c46a; color: var(--mm-blue-deep); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.mm-toplist__body { grid-area: body; min-width: 0; }
.mm-toplist__name { margin: 0; font-family: var(--mm-sans); font-size: 1.15rem; line-height: 1.25; }
.mm-toplist__name a { color: var(--mm-blue-deep); text-decoration: none; }
.mm-toplist__name a:hover { color: var(--mm-red); text-decoration: underline; }
.mm-toplist__desc { margin: .25rem 0 0; font-family: var(--mm-serif); color: var(--mm-ink); font-size: .98rem; }
.mm-toplist__bar { margin-top: .6rem; height: 6px; border-radius: 999px; background: var(--mm-blue-soft); overflow: hidden; }
.mm-toplist__bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--mm-blue), var(--mm-red)); transition: width .8s var(--mm-ease); }
.mm-toplist__vote { grid-area: vote; display: flex; align-items: center; gap: .75rem; margin: 0; }
@media (min-width: 40rem) { .mm-toplist__vote { flex-direction: column; align-items: flex-end; gap: .35rem; } }
.mm-toplist__btn { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; padding: .55rem 1rem; border: 2px solid var(--mm-red); border-radius: 999px; background: #fff; color: var(--mm-red); font: 700 .9rem/1 var(--mm-sans); cursor: pointer; transition: background .2s ease, color .2s ease, transform .2s ease; }
.mm-toplist__btn:hover, .mm-toplist__btn:focus-visible { background: var(--mm-red); color: #fff; }
.mm-toplist__btn:active { transform: scale(.96); }
.mm-toplist__btn[disabled] { opacity: .55; cursor: default; }
.mm-toplist__item.is-voted .mm-toplist__btn { background: var(--mm-red); color: #fff; }
.mm-toplist__count { font-size: .85rem; color: var(--mm-mute); white-space: nowrap; font-variant-numeric: tabular-nums; }
.mm-toplist__count b { color: var(--mm-blue-deep); font-size: 1.05rem; }
.mm-toplist__more { margin: 1.5rem 0 .75rem; font-weight: 700; color: var(--mm-mute); }
.mm-toplist__list--more .mm-toplist__item { box-shadow: none; border: 1px solid var(--mm-line); }
.mm-toplist__list--more .mm-toplist__rank { background: var(--mm-blue-soft); color: var(--mm-blue-deep); }
.mm-toplist__note { margin: 1.25rem 0 0; font-size: .85rem; color: var(--mm-mute); }
@media (prefers-reduced-motion: no-preference) {
  .mm-fx .mm-toplist__item.is-bump .mm-toplist__count b { animation: mm-bump .6s var(--mm-ease); }
  .mm-fx .mm-toplist__btn.is-pop span[aria-hidden] { animation: mm-heart .6s var(--mm-ease); display: inline-block; }
}
@keyframes mm-bump { 0% { transform: scale(1); } 40% { transform: scale(1.5); color: var(--mm-red); } 100% { transform: scale(1); } }
@keyframes mm-heart { 0% { transform: scale(1); } 35% { transform: scale(1.7); } 100% { transform: scale(1); } }

/* Übersicht der Bestenlisten */
.mm-toplists { list-style: none; margin: 1rem 0 2rem; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); }
.mm-toplists__link { display: flex; flex-direction: column; gap: .4rem; height: 100%; padding: 1.25rem; border-radius: var(--mm-radius-lg); background: var(--mm-blue-deep); color: #fff; text-decoration: none; font-family: var(--mm-sans); transition: transform .3s var(--mm-ease), box-shadow .3s ease; }
.mm-toplists__link:hover { transform: translateY(-3px); box-shadow: var(--mm-shadow-lift); color: #fff; }
.mm-toplists__title { font-size: 1.2rem; font-weight: 800; line-height: 1.2; }
.mm-toplists__lead { color: #dbe4ee; }
.mm-toplists__meta { margin-top: auto; padding-top: .5rem; font-size: .85rem; font-weight: 700; color: #f0b9ab; }

/* Werbeplätze: feste Formate (nichts springt), sichtbar „Anzeige“ */
.mm-ad { margin: 2rem 0; clear: both; }
.mm-ad__label { display: block; margin-bottom: .35rem; font: 700 .7rem/1 var(--mm-sans); text-transform: uppercase; letter-spacing: .14em; color: var(--mm-mute); }
.mm-ad__link { display: block; border-radius: var(--mm-radius-lg); overflow: hidden; background: var(--mm-ground); box-shadow: var(--mm-shadow); transition: transform .3s var(--mm-ease), box-shadow .3s ease; }
.mm-ad__link:hover { transform: translateY(-2px); box-shadow: var(--mm-shadow-lift); }
.mm-ad picture { display: block; }
.mm-ad img, .mm-prose .mm-ad img.mm-img-wide { display: block; width: 100%; max-width: none; height: auto; aspect-ratio: 4 / 1; object-fit: cover; margin: 0; border-radius: 0; background: none; }
@media (max-width: 40rem) { .mm-ad.has-mobile img, .mm-prose .mm-ad.has-mobile img.mm-img-wide { aspect-ratio: 3 / 2; } }
.mm-cards__ad { grid-column: 1 / -1; }
.mm-cards__ad .mm-ad { margin: .5rem 0; }

/* Affiliate-Links */
.mm-aff__mark { margin-left: .1em; color: var(--mm-red); font-weight: 700; text-decoration: none; }
.mm-aff-note { margin-top: 2rem; padding-top: .75rem; border-top: 1px solid var(--mm-line); font-family: var(--mm-sans); font-size: .85rem; color: var(--mm-mute); }

/* Kontakt: Redaktion */
.mm-team, .mm-prose .mm-team { list-style: none; margin: .5rem 0 1.25rem; padding: 0; display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.mm-team li { padding: 1rem 1.1rem; border-radius: var(--mm-radius-lg); background: var(--mm-ground); border-left: 4px solid var(--mm-red); font-family: var(--mm-sans); line-height: 1.45; }
.mm-team strong { font-size: 1.1rem; color: var(--mm-blue-deep); }
.mm-contact__grid { display: grid; gap: clamp(1.5rem, 4vw, 3rem); margin-top: 1.5rem; }
@media (min-width: 60rem) { .mm-contact__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: start; } }
.mm-contact__more { max-width: 48rem; margin-top: clamp(2rem, 5vw, 3.5rem); padding-top: clamp(1.5rem, 4vw, 2.5rem); border-top: 1px solid var(--mm-line, #e5e1da); }
.mm-contact__name { margin: 0 0 .5rem; font: 800 1.25rem/1.2 var(--mm-sans); color: var(--mm-red); text-transform: uppercase; letter-spacing: .06em; }
.mm-contact__misc h2 { margin-top: 0; }
.mm-contact__misc .mm-team li { margin: 0; }
.mm-contact__card { display: grid; gap: .1rem; margin-top: 1.25rem; padding: 1.25rem 1.4rem; border-radius: var(--mm-radius-lg); background: var(--mm-blue-deep); color: #fff; font: normal 1rem/1.5 var(--mm-sans); }
.mm-contact__card a { color: #fff; text-decoration-color: #f0b9ab; }
.mm-contact__label { display: block; margin-top: .8rem; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: #f0b9ab; }
.mm-contact__label:first-child { margin-top: 0; }
.mm-contact__form { padding: clamp(1rem, 3vw, 1.75rem); border-radius: var(--mm-radius-xl); background: var(--mm-ground); }
.mm-contact__formtitle { margin-top: 0; }
.mm-contact__form .contact-form legend, .mm-contact__form .contact-form > form > fieldset > legend { display: none; }

/* Kachelbilder füllen ihre Fläche immer (die Regel für große Textbilder gilt hier nicht) */
.mm-card__media { position: relative; }
.mm-card__media img, .mm-card__media img[width][height], .mm-prose .mm-card__media img.mm-img-wide, .mm-prose .mm-card__media img.mm-img-wide[width][height] { position: absolute !important; inset: 0; display: block; width: 100% !important; height: 100% !important; max-width: none !important; aspect-ratio: auto !important; object-fit: cover !important; object-position: center 30%; background: none !important; border-radius: 0 !important; margin: 0 !important; }

/* Beitragsbild: Grafiken und ungewöhnliche Formate vollständig zeigen (kein Zuschnitt) */
.mm-article figure.mm-lead--fit { display: flex; flex-direction: column; align-items: center; padding: clamp(.75rem, 2vw, 1.5rem); border-radius: var(--mm-radius-lg); background: var(--mm-ground); }
.mm-article figure.mm-lead--fit img, .mm-article .mm-lead--fit img.mm-img-wide { width: auto; max-width: 100%; height: auto; max-height: 30rem; aspect-ratio: auto; object-fit: contain; border-radius: var(--mm-radius); background: none; }
.mm-article .mm-lead figcaption { margin-top: .5rem; font-family: var(--mm-sans); font-size: .85rem; color: var(--mm-mute); }

/* =====================================================================
   1.5.5: Branchenverzeichnis – Suche, Orte, Rubriken mit Anzahl, A–Z
   ===================================================================== */
.mm-dir { margin: 1.5rem 0 2.5rem; font-family: var(--mm-sans); }
.mm-dir__head { padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--mm-radius-xl); background: var(--mm-blue-deep); color: #fff; }
.mm-dir__stats { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; margin: 0 0 1rem; font-size: .9rem; color: #c9d6e4; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
.mm-dir__stats b { font-size: 1.6rem; font-stretch: 75%; letter-spacing: 0; color: #fff; margin-right: .3rem; font-variant-numeric: tabular-nums; }
.mm-dir__search { display: flex; border-radius: 999px; overflow: hidden; background: #fff; box-shadow: 0 10px 30px -15px rgba(0,0,0,.6); }
.mm-dir__search input { flex: 1; min-width: 0; border: 0; padding: .95rem 1.4rem; font: 400 1.05rem var(--mm-sans); color: var(--mm-ink); background: transparent; }
.mm-dir__search input:focus { outline: none; }
.mm-dir__search:focus-within { box-shadow: 0 0 0 4px rgba(240, 185, 171, .55); }
.mm-dir__search button { border: 0; padding: 0 1.5rem; background: var(--mm-red); color: #fff; font: 700 1rem var(--mm-sans); cursor: pointer; }
.mm-dir__search button:hover { background: var(--mm-red-dark); }
.mm-dir__chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.mm-dir__chip { display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .85rem; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; background: transparent; color: #fff; font: 600 .9rem var(--mm-sans); cursor: pointer; transition: background .2s ease, color .2s ease; }
.mm-dir__chip span { font-size: .75rem; opacity: .75; font-variant-numeric: tabular-nums; }
.mm-dir__chip:hover { background: rgba(255,255,255,.12); }
.mm-dir__chip[aria-pressed="true"] { background: #fff; color: var(--mm-blue-deep); border-color: #fff; }
.mm-dir__status { margin: 1.25rem 0 0; font-weight: 700; color: var(--mm-blue-deep); }
.mm-dir__groups { display: grid; gap: 1rem; margin-top: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 21rem), 1fr)); }
.mm-dir__group { display: grid; grid-template-columns: 5.5rem 1fr; gap: 1rem; padding: 1rem; border: 1px solid var(--mm-line); border-radius: var(--mm-radius-lg); background: #fff; transition: transform .3s var(--mm-ease), box-shadow .3s ease; }
.mm-dir__group:hover { transform: translateY(-2px); box-shadow: var(--mm-shadow-lift); }
.mm-dir__art { width: 5.5rem; height: 5.5rem; border-radius: var(--mm-radius); overflow: hidden; line-height: 0; }
.mm-dir__art .mm-art { width: 100%; height: 100%; }
.mm-dir__grouptitle { margin: 0; font-size: 1.1rem; line-height: 1.2; }
.mm-dir__grouptitle a { color: var(--mm-blue-deep); text-decoration: none; }
.mm-dir__grouptitle a:hover { color: var(--mm-red); }
.mm-dir__groupcount { margin: .2rem 0 .5rem; font-size: .85rem; font-weight: 700; color: var(--mm-red); }
.mm-dir__subs, .mm-prose .mm-dir__subs { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .3rem .4rem; }
.mm-dir__subs li { margin: 0; }
.mm-dir__subs a { display: inline-block; padding: .15rem .55rem; border-radius: 999px; background: var(--mm-ground); color: var(--mm-ink); font-size: .82rem; text-decoration: none; }
.mm-dir__subs a:hover { background: var(--mm-blue-soft); color: var(--mm-blue-deep); }
.mm-dir__n { display: inline-block; min-width: 1.3em; margin-left: .25rem; padding: 0 .35rem; border-radius: 999px; background: #fff; font-size: .72rem; font-weight: 700; text-align: center; color: var(--mm-blue-deep); font-variant-numeric: tabular-nums; }
.mm-dir__az { margin-top: 1.5rem; border: 1px solid var(--mm-line); border-radius: var(--mm-radius-lg); background: #fff; }
.mm-dir__az summary { padding: 1rem 1.25rem; cursor: pointer; font-weight: 700; color: var(--mm-blue-deep); }
.mm-dir__list, .mm-prose .mm-dir__list { list-style: none; margin: 0; padding: 0 1.25rem 1rem; columns: 2 20rem; column-gap: 2rem; }
.mm-dir__entry { break-inside: avoid; margin: 0; padding: .45rem 0; border-bottom: 1px solid var(--mm-ground); }
.mm-dir__entry a { font-weight: 700; color: var(--mm-blue-deep); text-decoration: none; }
.mm-dir__entry a:hover { color: var(--mm-red); text-decoration: underline; }
.mm-dir__meta { display: block; font-size: .8rem; color: var(--mm-mute); }
.mm-dir__empty { margin: 0; padding: 0 1.25rem 1.25rem; }
.mm-dir__cta { margin: 1.25rem 0 0; font-size: .95rem; color: var(--mm-mute); }
.mm-dir.is-filtering .mm-dir__groups { display: none; }
.mm-dir.is-filtering .mm-dir__az summary { display: none; }
.mm-dir mark { background: #fbe3a4; color: inherit; border-radius: 2px; }

/* Überschriften nicht automatisch trennen („Tür-öffnungen“), lieber ausgewogen umbrechen */
h1, h2, h3, h4, .mm-card__title, .mm-dir__grouptitle, .mm-toplist__name { hyphens: manual; -webkit-hyphens: manual; text-wrap: balance; }

/* Banner, Logos und Hochformate in Kacheln vollständig zeigen (kein Zuschnitt) */
.mm-card__media:has(img.mm-img-fit) { background: #fff; border-bottom: 1px solid var(--mm-line); }
.mm-card__media img.mm-img-fit, .mm-prose .mm-card__media img.mm-img-fit, .mm-prose .mm-card__media img.mm-img-wide.mm-img-fit[width][height] { object-fit: contain !important; padding: 5% 6%; box-sizing: border-box; background: #fff !important; }
.mm-card:hover .mm-card__media img.mm-img-fit { transform: scale(1.03); }

/* Formular-Hinweis (z. B. kostenpflichtige Brancheneinträge) */
.mm-form__notice { margin: .25rem 0 1.25rem; padding: .9rem 1.1rem; border-radius: var(--mm-radius); background: #fff4d6; border-left: 4px solid #d9a400; font-family: var(--mm-sans); font-size: .95rem; line-height: 1.5; }
.mm-form__notice a { font-weight: 700; }
.js .mm-form__notice[data-mm-showif].is-hidden { display: none; }
.mm-dir.is-filtering .mm-dir__heading { display: none; }
.mm-dir__heading { margin: 2rem 0 0; font-size: 1.35rem; }

/* Alle Rubriken A–Z */
.mm-az { display: grid; gap: 1.25rem 2rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }
.mm-az__letter { margin: 0 0 .4rem; font-size: 1.4rem; color: var(--mm-red); }
.mm-az__list, .mm-prose .mm-az__list { list-style: none; margin: 0; padding: 0; }
.mm-az__list li { margin: 0 0 .3rem; padding: 0; font-family: var(--mm-sans); }
.mm-az__list li::before { content: none; }
.mm-list-more { margin: 1rem 0 2rem; }

/* Archiv-Beiträge (übernommen von archiv.mehrmannheim.de) */
.mm-badge--archiv { background: var(--mm-mute, #5b6573); letter-spacing: 0.04em; text-transform: uppercase; font-weight: 700; font-size: 0.68rem; padding: 0.15rem 0.5rem; vertical-align: 0.1em; }
.mm-card__date .mm-badge--archiv { margin-right: 0.35rem; }
.mm-archive-note { display: flex; gap: 0.75rem; align-items: flex-start; margin: 0 0 1.5rem; padding: 0.85rem 1rem; border: 1px solid var(--mm-line, #d6dce4); border-left: 4px solid var(--mm-mute, #5b6573); border-radius: 4px; background: var(--mm-paper-2, #f5f6f8); font-size: 0.95rem; }
.mm-archive-note p { margin: 0; }

/* Zwischentitel ohne Überschriften-Tag (weniger Überschriften auf der Startseite, gleiche Optik) */
.mm-rubric__title, .mm-join__title, .mm-footer__title { font-family: var(--mm-sans); font-stretch: 82%; font-weight: 750; line-height: 1.15; }
.mm-free-note { margin: 0 0 1.5rem; padding: 0.85rem 1rem; border: 1px solid var(--mm-line, #d6dce4); border-left: 4px solid #2e7d32; border-radius: 4px; background: var(--mm-paper-2, #f5f6f8); font-size: 0.95rem; }
.mm-free-note p { margin: 0; }
.mm-prose .mm-free-note { margin-top: 2rem; }
/* Kartentitel als Absatz (weniger Überschriften für SEO), Aussehen wie bisher */
p.mm-card__title, p.mm-soon__title { font-family: var(--mm-sans); font-weight: 750; line-height: 1.2; color: var(--mm-blue-deep); letter-spacing: -0.005em; overflow-wrap: break-word; }
.mm-prose p.mm-card__title { margin: 0; }
