/* Moorfrosch Lehrpfad Karte – Styles */
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&family=Lora:ital,wght@0,600&display=swap');

.mfkarte-wrap {
  font-family: 'Nunito', sans-serif;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0;
}

.mfkarte-wrap h1,
.mfkarte-wrap .mfkarte-subtitle {
  text-align: center;
}

.mfkarte-subtitle {
  font-size: .8rem;
  font-style: italic;
  margin-bottom: 12px;
  margin-top: 2px;
}

.mfkarte-frame {
  position: relative;
  width: 100%;
  max-width: 620px;
  border-radius: 12px;
  overflow: visible;
  box-shadow: 0 8px 36px rgba(8,30,16,.45);
}

.mfkarte-frame img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
}

svg#mfkarte-svg {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  overflow: visible;
}

/* ── Stations ── */
.mfk-station          { cursor: pointer; }
.mfk-station .s-ring  { fill: none; stroke-width: 3.5; opacity: 0; }
.mfk-station .s-bg    { stroke: #fff; stroke-width: 3;
                         filter: drop-shadow(0 1px 3px rgba(0,0,0,.45)); }
.mfk-station .s-num   { font-family:'Nunito',sans-serif; font-size:11px;
                         font-weight:700; pointer-events:none; }

.mfk-station.done   .s-bg  { fill: #2a7a48; }
.mfk-station.active .s-bg  { fill: #d4890a; }
.mfk-station.locked .s-bg  { fill: rgba(70,110,70,0.68);
                               stroke: rgba(255,255,255,.6); }
.mfk-station.done   .s-num,
.mfk-station.active .s-num { fill: #fff; }
.mfk-station.locked .s-num { fill: rgba(235,255,225,.9); }

.mfk-station.active .s-ring {
  stroke: #d4890a; opacity: 1;
  transform-box: fill-box;
  transform-origin: center;
  animation: mfk-pulse 1.8s ease-out infinite;
}
@keyframes mfk-pulse {
  0%   { transform: scale(1);   opacity: .75 }
  70%  { transform: scale(3.2); opacity: 0 }
  100% { transform: scale(3.2); opacity: 0 }
}

/* ── Markers ── */
.mfk-marker          { cursor: pointer; }
.mfk-marker .m-ring  { fill:none; stroke:#fff; stroke-width:2.5; opacity:0; }
.mfk-marker:hover .m-ring { opacity:.5; }

/* ── Tooltip ── */
#mfkarte-tooltip {
  position: absolute;
  background: #f8f5e8;
  border: 2px solid #4a7c59;
  border-radius: 10px;
  padding: 8px 12px;
  pointer-events: none;
  box-shadow: 0 4px 16px rgba(0,0,0,.22);
  max-width: 178px;
  display: none;
  z-index: 30;
  font-family: 'Nunito', sans-serif;
}
.tt-title  { font-family:'Lora',serif; font-size:.86rem;
             font-weight:600; color:#1a2e14; }
.tt-sub    { font-size:.7rem; color:#445538; margin-top:2px; line-height:1.35; }
.tt-badge  { display:inline-block; margin-top:5px; font-size:.64rem;
             padding:2px 8px; border-radius:20px; font-weight:700; }
.tt-badge.done   { background:#2a7a48; color:#fff; }
.tt-badge.active { background:#d4890a; color:#fff; }
.tt-badge.locked { background:#5a8460; color:#fff; }
.tt-badge.marker { background:#336699; color:#fff; }

/* ── Controls ── */
.mfkarte-controls {
  margin-top: 12px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}
.mfkarte-controls label { font-size:.8rem; font-weight:700; }
.mfkarte-controls select {
  font-family:'Nunito',sans-serif; font-size:.8rem;
  padding:5px 10px; border-radius:8px;
  border:2px solid #4a7c59; background:#f4f8f0; color:#1a2e14; cursor:pointer;
}
.mfkarte-btn-del {
  font-family:'Nunito',sans-serif; font-size:.76rem;
  padding:5px 10px; border-radius:8px;
  border:2px solid #b03020; background:#fff0ee; color:#b03020;
  cursor:pointer; font-weight:700;
}
.mfkarte-btn-del:hover { background:#fde0dc; }

/* ── Legend ── */
.mfkarte-legend {
  display:flex; gap:14px; margin-top:10px;
  font-size:.73rem; flex-wrap:wrap; justify-content:center;
}
.mfkarte-legend-item { display:flex; align-items:center; gap:5px; }
.mfk-ldot { width:11px; height:11px; border-radius:50%;
             border:2px solid rgba(255,255,255,.25); }
.mfk-ldot.done   { background:#2a7a48; }
.mfk-ldot.active { background:#d4890a; }
.mfk-ldot.locked { background:#5a8460; }
