/* MM Trauer Verzeichnis — folgt der Formensprache des Themes:
   Haarlinien-Raster, kein Radius, Fraunces für Namen, Plex Mono für Zahlen,
   alle Farben aus den Theme-Variablen, damit Hell- und Dunkelmodus tragen. */

/* ---------- Punktkarte ---------- */
.mmtv-kartenfeld{margin:var(--s5) 0 var(--s7);display:grid;gap:var(--s5);
  grid-template-columns:minmax(0,1fr);align-items:center;
  border-top:1px solid var(--linie);border-bottom:1px solid var(--linie);
  padding:var(--s6) 0}
.mmtv-karte{width:100%;max-width:320px;height:auto;margin-inline:auto;display:block;
  overflow:visible}
/* Beim Hineinzoomen wachsen die Punkte mit. Damit die Karte nicht zur Fläche
   verschmiert, nimmt die Deckkraft stufenweise ab und die Namen übernehmen. */
.mmtv-punkt{fill:var(--dim);opacity:.42;transition:fill .18s,opacity .18s}
.mmtv-karte[data-stufe="2"] .mmtv-punkt{opacity:.3}
.mmtv-karte[data-stufe="3"] .mmtv-punkt{opacity:.22}
.mmtv-karte[data-stufe="2"] .mmtv-punkt--aktiv{opacity:.5}
.mmtv-karte[data-stufe="3"] .mmtv-punkt--aktiv{opacity:.45}
.mmtv-karte{touch-action:none;cursor:zoom-in}
.mmtv-karte--zieht{cursor:grabbing}

/* Ortsnamen erscheinen gestaffelt beim Hineinzoomen */
.mmtv-name{font-family:var(--mono);font-size:9px;fill:var(--fg);opacity:0;
  pointer-events:none;transition:opacity .18s}
.mmtv-karte[data-stufe="2"] .mmtv-name[data-stufe="1"],
.mmtv-karte[data-stufe="3"] .mmtv-name[data-stufe="1"],
.mmtv-karte[data-stufe="3"] .mmtv-name[data-stufe="2"]{opacity:.85}
.mmtv-karte[data-stufe="3"] .mmtv-name[data-stufe="3"]{opacity:.6}
.mmtv-punkt--aktiv{fill:var(--ivy);opacity:.62;cursor:pointer}
.mmtv-karte a:hover .mmtv-punkt--aktiv,
.mmtv-karte a:focus-visible .mmtv-punkt--aktiv{opacity:1;fill:var(--ivy)}
.mmtv-karte a:focus-visible{outline:2px solid var(--ivy);outline-offset:2px}
.mmtv-kartenlegende{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--dim);text-align:center;margin-top:var(--s5);line-height:1.7}

/* Kartenhalter mit Zoomknöpfen */
.mmtv-kartenhalter{position:relative}
.mmtv-zoom{position:absolute;right:0;bottom:0;display:flex;flex-direction:column;gap:-1px}
.mmtv-zoom button{width:32px;height:32px;display:grid;place-items:center;cursor:pointer;
  border:1px solid var(--linie);background:var(--bg);color:var(--fg);
  font-family:var(--mono);font-size:14px;line-height:1;margin-top:-1px;transition:.18s}
.mmtv-zoom button:first-child{margin-top:0}
.mmtv-zoom button:hover:not(:disabled){border-color:var(--ivy);color:var(--ivy)}
.mmtv-zoom button:disabled{opacity:.3;cursor:default}

/* Google-Ebene: erst auf Klick */
.mmtv-gmaps{margin-top:var(--s5)}
.mmtv-ladeknopf{font-family:var(--mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;padding:12px 18px;cursor:pointer;
  border:1px solid var(--ivy);background:transparent;color:var(--ivy);transition:.18s}
.mmtv-ladeknopf:hover:not(:disabled){background:var(--ivy);color:var(--bg)}
.mmtv-ladeknopf:disabled{opacity:.5;cursor:default}
.mmtv-hinweis{font-size:12px;color:var(--dim);margin-top:10px;max-width:44ch;line-height:1.5}
.mmtv-gmaps-ziel{grid-column:1/-1;height:min(70vh,560px);margin-top:var(--s5);
  border:1px solid var(--linie)}
.mmtv-info{font-family:var(--sans);font-size:14px;color:#121915;line-height:1.5}
.mmtv-info a{color:#1F6B4C;text-decoration:underline}

@media (min-width:820px){
  .mmtv-kartenfeld{grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:var(--s7)}
  .mmtv-karte{max-width:300px;margin-inline:0}
  .mmtv-kartenlegende{text-align:left}
}
/* Kennzahlen neben der Karte */
.mmtv-zahlen{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s5) var(--s6)}
@media (min-width:560px){ .mmtv-zahlen{grid-template-columns:repeat(4,1fr)} }
.mmtv-zahl b{display:block;font-family:var(--serif);font-size:clamp(1.8rem,3.4vw,2.6rem);
  font-weight:600;letter-spacing:-.04em;line-height:1;color:var(--fg);
  font-variation-settings:"opsz" 144}
.mmtv-zahl span{display:block;margin-top:8px;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
@media (prefers-reduced-motion:reduce){ .mmtv-punkt{transition:none} }

/* Hub braucht die volle Breite: .artikel ist im Theme ein Zweispalter mit fester
   Seitenspalte. Ohne <aside> bliebe rechts ein Drittel leer und alles klebt links. */
@media (min-width:1000px){
  main.artikel.mmtv-weit{grid-template-columns:minmax(0,1fr)}
}

/* ---------- Ort-Kacheln (Hub) ---------- */
/* Ränder sitzen auf den Zellen, nicht als durchscheinender Hintergrund im Raster —
   sonst erscheint bei einer unvollständigen Zeile ein grauer Block. */
.mmtv-kacheln{display:grid;gap:0;list-style:none;margin:var(--s4) 0 var(--s7);padding:0;
  border-top:1px solid var(--linie);border-left:1px solid var(--linie)}
@media (min-width:560px){ .mmtv-kacheln{grid-template-columns:repeat(2,1fr)} }
@media (min-width:900px){ .mmtv-kacheln{grid-template-columns:repeat(3,1fr)} }
@media (min-width:1200px){ .mmtv-kacheln{grid-template-columns:repeat(4,1fr)} }

.mmtv-kachel{display:flex;flex-direction:column;gap:6px;background:transparent;
  padding:var(--s5);height:100%;transition:background .2s;
  border-right:1px solid var(--linie);border-bottom:1px solid var(--linie)}
.mmtv-kachel:hover{background:var(--bg2)}
.mmtv-kachel b{font-family:var(--serif);font-size:1.15rem;font-weight:600;
  letter-spacing:-.025em;line-height:1.15;font-variation-settings:"opsz" 48}
.mmtv-kachel span{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--dim)}

/* ---------- Betriebs-Kacheln (Ortsseite) ---------- */
.mmtv-liste{display:grid;gap:0;list-style:none;margin:var(--s5) 0 var(--s6);padding:0;
  border-top:1px solid var(--linie);border-left:1px solid var(--linie)}
@media (min-width:620px){ .mmtv-liste{grid-template-columns:repeat(2,1fr)} }

.mmtv-karte-eintrag{display:grid;grid-template-columns:42px 1fr;gap:var(--s4);
  background:transparent;padding:var(--s5);height:100%;transition:background .2s;
  border-right:1px solid var(--linie);border-bottom:1px solid var(--linie)}
.mmtv-karte-eintrag:hover{background:var(--bg2)}
.mmtv-kachel-ini{width:42px;height:42px;display:grid;place-items:center;
  border:1px solid var(--linie);font-family:var(--mono);font-size:13px;
  letter-spacing:.06em;color:var(--ivy)}
.mmtv-karte__text{display:flex;flex-direction:column;gap:4px;min-width:0}
.mmtv-karte__name{font-family:var(--serif);font-size:1.05rem;font-weight:600;
  letter-spacing:-.02em;line-height:1.2;font-variation-settings:"opsz" 32}
.mmtv-karte-eintrag:hover .mmtv-karte__name{color:var(--ivy)}
.mmtv-karte__adr,.mmtv-karte__tel{font-size:13.5px;color:var(--dim);line-height:1.45}
.mmtv-karte__tel{font-family:var(--mono);font-size:12px;letter-spacing:.04em}

/* ---------- Fakten, Hinweise ---------- */
.mmtv-fakten{width:100%;border-collapse:collapse;margin:var(--s5) 0 var(--s6)}
.mmtv-fakten th{text-align:left;width:34%;vertical-align:top;padding:10px var(--s4) 10px 0;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim);font-weight:500}
.mmtv-fakten td{padding:10px 0;border-bottom:1px solid var(--linie)}

.mmtv-versprechen{font-size:14px;color:var(--dim);padding:var(--s4) 0 var(--s4) var(--s4);
  margin:var(--s6) 0 var(--s3);border-left:1px solid var(--ivy)}
.mmtv-quelle{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--dim);
  margin:0 0 var(--s5)}
.mmtv-lead{font-size:1.05rem}

/* Friedhofstabelle: drei Spalten, Kopfzeile in Mono wie die Fakten-Labels */
.mmtv-fakten--friedhof th{width:auto;padding-bottom:12px}
.mmtv-fakten--friedhof td{font-size:14.5px;padding:9px var(--s4) 9px 0}
.mmtv-fakten--friedhof td:last-child{font-family:var(--mono);font-size:12px;color:var(--dim);
  white-space:nowrap;padding-right:0;text-align:right}
.mmtv-fakten--friedhof td:nth-child(2){color:var(--dim)}

.mmtv-az{display:flex;flex-wrap:wrap;gap:6px;margin:var(--s5) 0 var(--s6)}
.mmtv-az a{font-family:var(--mono);font-size:12px;letter-spacing:.08em;width:34px;height:34px;
  display:grid;place-items:center;border:1px solid var(--linie);color:var(--dim);transition:.18s}
.mmtv-az a:hover{border-color:var(--ivy);color:var(--ivy)}

.mmtv-buchstabe{font-family:var(--serif);font-size:clamp(1.4rem,2.6vw,2rem);
  letter-spacing:-.03em;color:var(--ivy);margin:var(--s6) 0 var(--s3);
  font-variation-settings:"opsz" 144}
