/* vorOrt dabei – app v6 · Paket D: Merkliste/Listen, Orte/Strände, Navigation, Barrierefreiheit */

/* ---------- B30: Termin-/Ort-Detail – Zurück/Teilen/Merken bleiben beim Scrollen sichtbar, Tabbar sichtbar ---------- */
.route-termin .tabbar, .route-ort .tabbar { display: flex; }
.route-termin .view, .route-ort .view { padding-bottom: calc(var(--tab-h) + 20px); }
.route-termin ~ .toast, .route-ort ~ .toast { bottom: calc(var(--tab-h) + 16px); }
.route-termin .d-actions, .route-ort .d-actions {
  position: fixed; z-index: 45; top: calc(var(--safe-t) + 12px);
  left: 50%; right: auto; transform: translateX(-50%);
  width: 100%; max-width: 480px; padding: 0 16px; pointer-events: none;
}
.route-termin .d-actions > *, .route-ort .d-actions > * { pointer-events: auto; }

/* ---------- B25: langer Listentitel neben „Einladen“ ---------- */
.dt-n .h1 { overflow-wrap: break-word; word-break: break-word; hyphens: auto; -webkit-hyphens: auto; line-height: 1.1; }
.dt-head { align-items: flex-start; }
.dt-head > .licon, .dt-head > .licon-btn, .dt-head > .btn.inv { margin-top: 2px; }
@media (max-width: 380px) {
  .btn.inv { padding: 0 12px; }
}

/* ---------- B03: Gruppenbild ---------- */
.licon-btn { position: relative; }
.licon-btn::after {
  content: ''; position: absolute; right: -2px; bottom: -2px; width: 20px; height: 20px; border-radius: 50%;
  background: var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l1.5-2.5h7L17 8h3v11H4z'/%3E%3Ccircle cx='12' cy='13.5' r='3.5'/%3E%3C/svg%3E") center / 12px no-repeat;
  box-shadow: 0 0 0 2px #fff;
}
.icopt.foto { color: var(--teal-d); }
.icopt-x .ico-svg { display: flex; }

/* ---------- B44/B28: Merkliste – Orte mit Entfernen-Knopf, Kopf mit Info-Symbol ---------- */
.m-head { flex-direction: row; align-items: flex-start; justify-content: space-between; gap: 12px; }
.m-head-t { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mo-row { display: flex; align-items: center; gap: 6px; }
.mo-row + .mo-row { border-top: 1px dotted var(--dot); }
.mo-row > .scard { flex: 1 1 auto; min-width: 0; border-top: 0 !important; }
.heart.mo-rm { position: relative; top: auto; right: auto; flex-shrink: 0; width: 44px; height: 44px; border-radius: 22px; background: transparent; color: #D2475A; }
.heart.mo-rm:not(.on) { color: var(--muted); }

/* ---------- B22: Rechtstexte überall erreichbar ---------- */
.legal-foot { margin: 18px 0 4px; }
.foot-info { border: 0; background: none; font: inherit; color: var(--teal-d); cursor: pointer; padding: 12px 6px; min-height: 44px; }
.d-sheet > .legal-foot { margin-top: 10px; }

/* ---------- B43: Karussells – erste Karte nicht am Rand ---------- */
.orow { scroll-padding-inline: 20px; }

/* ---------- B52: Partner-Logos nicht über Originalgröße hochskalieren (Gut-Salzig-Logo ist nur 90×148 px) ---------- */
.ocard-img.logo { display: flex; align-items: center; justify-content: center; }
.ocard-img.logo img.logo, .ocard-img img.logo { width: auto; height: auto; max-width: 62%; max-height: 66%; padding: 0; object-fit: contain; }

/* ---------- B63: Kontrast ---------- */
.vhero-k { text-shadow: 0 1px 2px rgba(10, 20, 40, .85), 0 0 10px rgba(10, 20, 40, .6); }
.vhero::after { background: linear-gradient(180deg, rgba(14,28,52,.15) 0%, rgba(14,28,52,0) 26%, rgba(14,28,52,.62) 56%, rgba(14,28,52,.9) 100%); }
.sinfo-g li.off .sinfo-t { color: var(--muted); }   /* #5B6570 auf #F3F5F6 ≈ 5,4:1 */
.sinfo-g li.off .sinfo-i { color: #7A848E; }

/* ---------- B62: Tippflächen ≥ 44 px ---------- */
.sortrow button { min-height: 44px; padding: 0 4px; }
.reset { min-height: 44px; }
.foot a { display: inline-flex; align-items: center; min-height: 44px; }
.chk a, .check a, label a[href^="#/datenschutz"], p a[href="#/datenschutz"] { /* nicht .info-link/.foot (eigene Regeln) */ display: inline-block; padding: 12px 2px; margin: -12px 0; }
.toast-act { min-height: 44px; padding: 0 6px; }
.more { display: inline-flex; align-items: center; min-height: 44px; }

/* ---------- B66: Strand-Foto mit Aufnahmezeit ---------- */
.gal-badge { max-width: calc(100% - 100px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dt-n .h1.long { font-size: 1.5rem; }
.lcard .lc-m { display: block; white-space: normal; line-height: 1.3; }
.lcard .lc-m .ico-svg { display: inline-flex; vertical-align: -2px; margin-right: 4px; }
.gal-dots { bottom: 86px; }  /* Punkte über die Bild-Infos, damit „Winter · Januar 2026“ Platz hat */

/* B62 (Ergänzung): Herzen auf Orte-Karten (34 px sichtbar) mit 44-px-Tippfläche, Wortmarke, Reiter, Mail-Link */
.heart::after { content: ''; position: absolute; inset: -5px; border-radius: 50%; }
.wordmark { min-height: 44px; display: inline-flex; align-items: center; }
.tabs2 button { height: 44px; }
.partner-m a { display: inline-block; padding: 13px 0; margin: -13px 0; }
