/* Physiopark · gemeinsamer Kartenbaustein · Version 0.1.0 · 2026-11-01 */
/* Karten: Anschrift bleibt beim Oeffnen und Schliessen an derselben Stelle. */
:is(.locations-page, .pp-home) .ppw-map-card,
:is(.locations-page, .pp-home) .ppw-map-stage,
:is(.locations-page, .pp-home) .ppw-map-card .map-placeholder,
:is(.locations-page, .pp-home) .ppw-map-card .map-container,
:is(.locations-page, .pp-home) .ppw-map-card .map-frame { min-width: 0; max-width: 100%; }
:is(.locations-page, .pp-home) .ppw-map-card { gap: 14px; }
:is(.locations-page, .pp-home) .ppw-map-location {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 10px 16px;
  min-width: 0;
  padding: 0 0 14px;
  border-bottom: 1px solid var(--border, #d4e1e3);
}
:is(.locations-page, .pp-home) .ppw-map-address {
  flex: 1 1 180px;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  color: var(--heading-sub, #123c46);
  font-size: 1rem;
  font-style: normal;
  line-height: 1.55;
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
  hyphens: auto;
}
:is(.locations-page, .pp-home) .ppw-map-address strong,
:is(.locations-page, .pp-home) .ppw-map-address span { display: block; min-width: 0; }
:is(.locations-page, .pp-home) .ppw-map-address span { color: var(--muted, #3a5258); font-size: .94rem; }
:is(.locations-page, .pp-home) .ppw-map-route,
:is(.locations-page, .pp-home) .ppw-map-close {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  min-width: 0;
  max-width: 100%;
  padding: 5px 0;
  border: 0;
  background: transparent;
  color: var(--primary, #0f5c63);
  font: inherit;
  font-size: .94rem;
  font-weight: 650;
  line-height: 1.5;
  text-decoration: underline;
  text-underline-offset: 4px;
  white-space: normal;
  overflow-wrap: anywhere;
  cursor: pointer;
}
:is(.locations-page, .pp-home) .ppw-map-close[hidden] { display: none !important; }
:is(.locations-page, .pp-home) .ppw-map-route:focus-visible,
:is(.locations-page, .pp-home) .ppw-map-close:focus-visible { outline: 3px solid var(--primary, #0f5c63); outline-offset: 4px; }
:is(.locations-page, .pp-home) .ppw-map-stage { border-radius: 10px; }
:is(.locations-page, .pp-home) .ppw-map-card .map-placeholder {
  min-height: 260px;
  padding: 26px clamp(14px, 3vw, 22px);
  gap: 14px;
  background: radial-gradient(circle at 50% 25%, rgba(15,92,99,.08), transparent 65%), #f4f8f7;
  border: 1px solid var(--border, #d4e1e3);
  border-radius: 10px;
}
:is(.locations-page, .pp-home) .ppw-map-symbol { width: 48px; height: 48px; color: var(--primary, #0f5c63); }
:is(.locations-page, .pp-home) .ppw-map-card .map-placeholder .cta-button {
  min-width: 0;
  max-width: 100%;
  min-height: 46px;
  padding: 11px 16px;
  white-space: normal;
  overflow-wrap: anywhere;
}
:is(.locations-page, .pp-home) .ppw-map-card .map-placeholder small {
  max-width: 35ch;
  color: var(--muted, #3a5258);
  font-size: .88rem;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
:is(.locations-page, .pp-home) .ppw-map-card .map-container { display: block; height: auto; }
:is(.locations-page, .pp-home) .ppw-map-card .map-frame { flex: 0 0 auto; height: clamp(280px, 36vw, 360px); }
:is(.locations-page, .pp-home) .ppw-map-card .map-frame iframe { display: block; width: 100%; height: 100%; border-radius: 10px; }
:is(.locations-page, .pp-home) .ppw-map-status { margin: 0; color: var(--muted, #3a5258); font-size: .9rem; line-height: 1.5; overflow-wrap: anywhere; }

/* Karten bleiben kompakt; Anschrift und Routenlink schrumpfen nicht mit. */
.locations-page .location-meta-grid { align-items: start; }
:is(.locations-page, .pp-home) .ppw-map-card { padding:clamp(14px,2vw,20px); gap:14px; }
:is(.locations-page, .pp-home) .ppw-map-card::before { content:none; }
:is(.locations-page, .pp-home) .ppw-map-location { display:grid;grid-template-columns:minmax(0,1fr);gap:4px; }
:is(.locations-page, .pp-home) .ppw-map-address { flex:none; }
:is(.locations-page, .pp-home) .ppw-map-route { justify-self:start; }

:is(.locations-page, .pp-home) .ppw-map-card { display:flex; flex-direction:column; }
.pp-home .ppw-map-card { padding:14px; margin-bottom:12px; border:1px solid var(--ppw-border); border-radius:10px; background:var(--ppw-surface); }
.pp-home .ppw-map-card .map-placeholder { margin:0; }
