/* vorOrt dabei – app v5: Werbepartner (Logo-Pins, Partner-Schalter, Vorschaukarte, In der Nähe, Partner-Seite, Anzeige im Vollbild) */

/* ---------- Karte: Schalter-Chip „Partner“ ---------- */
.karte .chip.pchip { gap: 7px; padding: 0 10px 0 12px; }
.karte .chip.pchip .ico-svg { color: var(--teal-d); margin-right: 0; }
.karte .chip.pchip.is-on { box-shadow: inset 0 0 0 2px var(--yellow), 0 1px 3px rgba(29, 54, 95, .22); }
.ptog { position: relative; width: 30px; height: 18px; border-radius: 9px; background: var(--line); flex-shrink: 0; transition: background .15s; }
.ptog::after { content: ''; position: absolute; left: 2px; top: 2px; width: 14px; height: 14px; border-radius: 7px; background: #fff; box-shadow: 0 1px 2px rgba(29, 54, 95, .25); transition: left .15s; }
.pchip.is-on .ptog { background: var(--teal-d); }
.pchip.is-on .ptog::after { left: 14px; }
@media (prefers-reduced-motion: reduce) { .ptog, .ptog::after { transition: none; } }

/* ---------- Partner-Pins ---------- */
.ppin { position: absolute; left: 0; top: 0; transform: translate(-50%, -50%); cursor: pointer; }
.ppin-c {
  width: 40px; height: 40px; border-radius: 20px; background: #fff; border: 2.5px solid #fff; overflow: hidden;
  box-shadow: 0 0 0 1.5px var(--teal-d), 0 2px 6px rgba(14, 28, 52, .3);
  display: flex; align-items: center; justify-content: center; color: var(--teal-d);
}
.ppin-c img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ppin.prem .ppin-c {
  width: 58px; height: 58px; border-radius: 29px; border: 4px solid var(--yellow);
  box-shadow: 0 0 0 7px rgba(243, 197, 0, .28), 0 4px 12px rgba(14, 28, 52, .35);
}
.ppin.prem .ppin-c img { object-fit: contain; padding: 4px; }
.ppin-g {
  position: absolute; right: -6px; top: -6px; width: 24px; height: 24px; border-radius: 12px; background: var(--yellow); color: var(--navy);
  border: 2px solid #fff; display: flex; align-items: center; justify-content: center;
}
.ppin-n {
  position: absolute; left: 50%; top: calc(100% + 6px); transform: translateX(-50%); white-space: nowrap;
  background: var(--navy); color: #fff; font-weight: 700; font-size: 0.875rem; line-height: 1.2; padding: 3px 9px; border-radius: 9px;
  box-shadow: 0 2px 6px rgba(14, 28, 52, .25);
}
.ppin.is-sel .ppin-c { box-shadow: 0 0 0 3px var(--navy), 0 4px 12px rgba(14, 28, 52, .4); }
.ppin.prem.is-sel .ppin-c { box-shadow: 0 0 0 3px var(--navy), 0 0 0 9px rgba(243, 197, 0, .32), 0 4px 12px rgba(14, 28, 52, .4); }
.leaflet-marker-icon:focus-visible .ppin-c { outline: 3px solid var(--teal-d); outline-offset: 3px; }

/* ---------- Legende (im Listen-Sheet, dezent) ---------- */
.pleg { display: flex; justify-content: center; align-items: center; gap: 14px; flex-shrink: 0; margin: -4px 0 6px; font-weight: 600; font-size: 0.875rem; color: var(--muted); }
.pleg span { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.pleg i { display: inline-block; width: 14px; height: 14px; border-radius: 7px; background: #fff; box-shadow: 0 0 0 1.5px var(--teal-d); }
.pleg i.y { box-shadow: 0 0 0 3px var(--yellow); }
.pleg i.e { width: 20px; border-radius: 5px; box-shadow: 0 0 0 2px var(--navy); }
.pleg i.o { border-radius: 5px; box-shadow: 0 0 0 2px var(--teal-d); }
.msheet .pleg + .tabs2 { margin-top: 0; }

/* ---------- Vorschaukarte eines Partners ---------- */
.ppv-slot { position: absolute; z-index: 7; left: 12px; right: 12px; bottom: calc(var(--sheet-h) + 12px); pointer-events: none; }
.ppv {
  pointer-events: auto; display: flex; gap: 12px; padding: 12px; background: #fff; border-radius: 20px;
  box-shadow: 0 6px 24px rgba(14, 28, 52, .25); min-height: 140px;
}
.ppv-im { width: 96px; flex-shrink: 0; border-radius: 14px; overflow: hidden; background: var(--mint); display: block; }
.ppv-im img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ppv-im.logo { background: #fff; box-shadow: inset 0 0 0 1px var(--edge); }
.ppv-im.logo img { object-fit: contain; padding: 8px; }
.ppv-im.fill { display: flex; align-items: center; justify-content: center; color: var(--teal-d); background: linear-gradient(135deg, var(--mint-l), var(--mint)); }
.ppv-b { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ppv-t { font-weight: 900; font-size: 1.1875rem; line-height: 1.1; color: var(--navy); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ppv-m { font-weight: 600; font-size: 0.9062rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ppv-v { display: flex; align-items: center; gap: 4px; font-weight: 700; font-size: 0.9062rem; color: #8A6A00; min-width: 0; }
.ppv-v span:last-child { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ppv-v .ico-svg { flex-shrink: 0; }
.ppv-bt { display: flex; gap: 8px; margin-top: auto; padding-top: 4px; }
.ppv-bt .btn { height: 36px; border-radius: 18px; padding: 0 14px; font-size: 0.875rem; gap: 6px; }
.ppv-bt .btn.soft { box-shadow: none; }
.karte.has-ppv .locate { display: none; }

/* ---------- Listen & Kacheln: Partner-Bilder ---------- */
.othumb.logo { background: #fff; box-shadow: inset 0 0 0 1px var(--edge); }
.othumb.logo img { object-fit: contain; padding: 5px; }
.scard .othumb.logo img { width: 100%; height: 100%; border-radius: 0; background: #fff; }
.ocard-img.logo { background: #fff; box-shadow: inset 0 -1px 0 var(--edge); }
.ocard-img img.logo { object-fit: contain; padding: 36px 20px 30px; }
.ocard.prem { box-shadow: 0 0 0 2.5px var(--yellow); }
.vrow-b .adtag { align-self: flex-start; }

/* ---------- Termin-Detail: In der Nähe ---------- */
.near { display: flex; flex-direction: column; gap: 6px; padding-top: 10px; }
.near-hd { display: flex; align-items: center; gap: 8px; }
.near-hd .h2 { font-size: 1.3125rem; }
.near-hd .more { margin-left: auto; font-family: var(--cond); font-size: 1rem; }
.near-sub { font-size: 0.875rem; color: var(--muted); margin-top: -4px; }
.near-row { display: flex; gap: 12px; overflow-x: auto; margin: 0 -20px; padding: 6px 20px 10px; scroll-snap-type: x mandatory; scroll-padding: 0 20px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.near-row::-webkit-scrollbar { display: none; }
.ncard { flex: 0 0 168px; scroll-snap-align: start; background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 0 0 1px var(--edge); color: var(--ink); display: flex; flex-direction: column; }
.ncard:hover { color: var(--ink); box-shadow: 0 0 0 1.5px var(--dot); }
.ncard.prem, .ncard.prem:hover { box-shadow: 0 0 0 2.5px var(--yellow); }
.ncard-img { position: relative; display: block; height: 112px; background: #fff; flex-shrink: 0; }
.ncard-img > img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; display: block; }
.ncard-img.fill { display: flex; align-items: center; justify-content: center; color: var(--teal-d); background: linear-gradient(135deg, var(--mint-l), var(--mint)); }
.ncard-img .vbadge { position: absolute; left: 8px; bottom: 8px; height: 22px; box-shadow: 0 1px 4px rgba(14, 28, 52, .25); }
.ncard-logo {
  position: absolute; right: 8px; bottom: -16px; width: 36px; height: 36px; border-radius: 18px; background: #fff; border: 2px solid #fff;
  box-shadow: 0 1px 5px rgba(14, 28, 52, .3); overflow: hidden; display: flex; align-items: center; justify-content: center; color: var(--teal-d);
}
.ncard-logo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ncard-b { padding: 10px 12px 12px; display: flex; flex-direction: column; gap: 2px; }
.ncard-t { font-weight: 900; font-size: 0.9688rem; color: var(--navy); line-height: 1.15; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; padding-right: 30px; }
.ncard-m { font-weight: 600; font-size: 0.875rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ncard-d { font-weight: 700; font-size: 0.875rem; color: var(--teal-d); display: flex; align-items: center; gap: 3px; white-space: nowrap; overflow: hidden; }

/* ---------- Partner-Seite #/ort/<id> (ohne eigenes Foto) ---------- */
.pdetail .p-top { position: relative; height: 150px; background: linear-gradient(160deg, #C9E7EA, var(--mint-l)); }
.pdetail .d-sheet { margin-top: -66px; background: transparent; padding-top: 0; border-radius: 0; }
.pdetail .d-sheet::before { content: ''; position: absolute; left: 0; right: 0; top: 66px; bottom: 0; background: #fff; z-index: -1; }
.pdetail .d-sheet { isolation: isolate; }
.p-head { display: flex; gap: 14px; align-items: flex-end; }
.p-head .otags { flex-direction: column; align-items: flex-start; gap: 6px; margin-bottom: 6px; }
.p-head .adtag { border-radius: 9px; }
.p-logo {
  width: 92px; height: 92px; border-radius: 46px; background: #fff; flex-shrink: 0; overflow: hidden;
  border: 3px solid #fff; box-shadow: 0 0 0 1.5px var(--teal-d), 0 4px 14px rgba(14, 28, 52, .2);
  display: flex; align-items: center; justify-content: center; color: var(--teal-d);
}
.p-logo img { width: 100%; height: 100%; object-fit: contain; padding: 8px; display: block; }
.p-logo.prem { border: 4px solid var(--yellow); box-shadow: 0 4px 14px rgba(14, 28, 52, .2); }
.p-logo.fill { background: linear-gradient(135deg, var(--mint-l), var(--mint)); }
.pdetail .d-title { margin-top: 2px; }

/* Aus der Broschüre */
.adbox { background: #fff; border-radius: 18px; box-shadow: 0 0 0 1px var(--edge); overflow: hidden; }
.adbox-h { display: flex; align-items: center; gap: 8px; padding: 6px 8px 6px 14px; }
.adbox-h > .cond { font-weight: 700; font-size: 0.875rem; color: var(--muted); letter-spacing: .5px; text-transform: uppercase; }
.adbox-z { margin-left: auto; border: 0; background: none; min-height: 36px; padding: 0 6px; display: inline-flex; align-items: center; gap: 5px; font-family: var(--cond); font-weight: 700; font-size: 0.9375rem; color: var(--teal-d); cursor: pointer; }
.adbox-imgs { display: flex; flex-direction: column; gap: 2px; width: 100%; border: 0; padding: 0; margin: 0; background: var(--edge); cursor: zoom-in; }
.adbox-imgs img { display: block; width: 100%; height: auto; background: #fff; }

/* Vollbild-Anzeige */
.adview { position: fixed; inset: 0; z-index: 1000; background: rgba(10, 18, 34, .94); display: flex; flex-direction: column; }
.adview-top { display: flex; align-items: center; gap: 10px; padding: calc(var(--safe-t) + 12px) 12px 10px 18px; color: #fff; }
.adview-t { flex: 1; min-width: 0; font-weight: 600; font-size: 0.9375rem; color: #C9D6E8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.adview-x { width: 44px; height: 44px; border-radius: 22px; border: 0; background: #fff; color: var(--navy); display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; }
.adview-x:focus-visible { outline: 3px solid var(--yellow); outline-offset: 2px; }
.adview-imgs { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; align-items: center; justify-content: safe center; gap: 12px; padding: 4px 12px calc(var(--safe-b) + 20px); }
.adview-imgs img { display: block; max-width: 100%; max-height: calc(100dvh - 100px); object-fit: contain; background: #fff; border-radius: 6px; }
