/* vorOrt dabei – app v16: Suche mit Vorschlägen, Orte = Partner + Strände, „Partner werden“, Partnerbedingungen
   Keine Inline-Styles (CSP) – alles hier. Farben aus app.css (:root) und v4.css (--coupon). */

/* =============== Suche: Vorschläge (ARIA-Listbox) =============== */
.sug { background: #fff; border-radius: 16px; box-shadow: 0 0 0 1px var(--edge), 0 6px 22px rgba(29, 54, 95, .16); padding: 6px 0; overflow-y: auto; overscroll-behavior: contain; }
.sug[hidden] { display: none; }
.sug-inline { margin: 0 16px 12px; max-height: none; }
.sug-g + .sug-g { border-top: 1px solid var(--edge); margin-top: 4px; padding-top: 4px; }
.sug-gh { font-weight: 700; font-size: 0.8125rem; letter-spacing: .5px; text-transform: uppercase; color: var(--teal-d); padding: 8px 16px 4px; }
.sug-o { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 6px 14px; cursor: pointer; color: var(--ink); }
.sug-o.on { background: var(--mint-l); box-shadow: inset 3px 0 0 var(--navy); }
.sug-o:hover { background: #F4FAFA; }
.sug-ico { width: 38px; height: 38px; border-radius: 12px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: var(--mint-l); color: var(--teal-d); overflow: hidden; }
.sug-ico.t-kat { background: var(--navy); color: #fff; }
.sug-ico.t-vorteil { background: var(--coupon); color: #8A6A00; }
.sug-ico.t-alle { background: transparent; color: var(--muted); }
.sug-ico.logo { background: #fff; box-shadow: inset 0 0 0 1px var(--edge); }
.sug-ico.logo img { width: 100%; height: 100%; object-fit: contain; padding: 3px; }
.sug-o.prem .sug-ico { box-shadow: 0 0 0 2.5px var(--yellow); }
.sug-b { display: flex; flex-direction: column; gap: 1px; min-width: 0; flex: 1 1 auto; }
.sug-t { display: flex; align-items: center; gap: 8px; min-width: 0; }
.sug-l { font-weight: 700; font-size: 0.9688rem; line-height: 1.25; color: var(--navy); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.sug-o.t-kat .sug-l { font-weight: 900; }
.sug-o.t-alle .sug-l { font-weight: 700; color: var(--teal-d); }
.sug-tag { flex-shrink: 0; font-family: var(--cond); font-weight: 700; font-size: 0.75rem; letter-spacing: .4px; text-transform: uppercase; height: 18px; display: inline-flex; align-items: center; padding: 0 5px; border-radius: 5px; color: var(--teal-d); box-shadow: inset 0 0 0 1.3px var(--teal-d); }
.sug-tag.prem { background: var(--coupon); color: var(--navy); box-shadow: inset 0 0 0 1.3px var(--coupon-line); }
.sug-tag.v { color: #8A6A00; box-shadow: inset 0 0 0 1.3px var(--coupon-line); }
.sug-m { font-weight: 600; font-size: 0.875rem; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sug-go { color: var(--muted); flex-shrink: 0; }
/* Karte: Liste schwebt unter dem Suchfeld über Karte, Liste und Vorschaukarte */
.karte .map-bar { position: relative; }
.sug-pop { position: absolute; left: 0; right: 0; top: calc(100% + 8px); max-height: min(62vh, 520px); }
.karte.sug-open .map-top { z-index: 30; }
.karte.sug-open .map-chips { visibility: hidden; }

/* =============== Such-Overlay: Kategorien, Ergebnisse =============== */
.kat-chips .chip.lg { box-shadow: inset 0 0 0 1px var(--line); background: #fff; color: var(--navy); }
.s-ort-ico.logo { background: #fff; box-shadow: inset -1px 0 0 var(--edge); }
.s-ort-ico.logo img { width: 46px; height: 46px; object-fit: contain; }
.s-ort-tag { align-self: flex-start; margin-bottom: 2px; }
.kerg { display: flex; flex-direction: column; gap: 10px; }
.kerg-head { display: flex; align-items: center; gap: 12px; }
.kerg-ico { width: 46px; height: 46px; border-radius: 15px; background: var(--navy); color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.kerg-ht { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; }
.kerg-n { font-weight: 600; font-size: 0.9062rem; color: var(--muted); }
.kerg-karte { flex-shrink: 0; }
.kerg-l { padding: 4px 12px; }
.kerg-l.prem { box-shadow: 0 0 0 2px var(--yellow); }
.kerg-leer { font-size: 0.9375rem; color: var(--muted); background: #fff; border-radius: 14px; padding: 14px; }
.kerg-h3 { font-weight: 900; font-size: 1.0625rem; color: var(--navy); margin-top: 8px; }
.sug-vrow .othumb { width: 56px; height: 56px; }
.orte-hint { display: flex; align-items: flex-start; gap: 6px; font-weight: 600; font-size: 0.875rem; line-height: 1.35; color: var(--teal-d); margin: 2px 0 6px; }
.orte-hint b { font-weight: 700; }
.orte-hint .ico-svg { margin-top: 1px; }
.orte-hint .ico-svg { flex-shrink: 0; }
.orte-hint-s { color: var(--muted); font-weight: 500; }
.kerg .orte-hint { color: var(--muted); font-weight: 500; line-height: 1.35; align-items: flex-start; margin: 0; }
.kerg .orte-hint .ico-svg { color: var(--teal-d); margin-top: 1px; }

/* =============== „Dein Betrieb fehlt? Partner werden ›“ =============== */
.pw-card { display: flex; align-items: center; gap: 12px; padding: 14px; margin: 12px 0 4px; border-radius: 16px; background: #fff; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--navy); flex-wrap: wrap; }
.pw-card:hover { color: var(--ink); background: var(--mint-l); }
.pw-card-i { width: 40px; height: 40px; border-radius: 13px; background: var(--navy); color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pw-card-t { display: flex; flex-direction: column; gap: 2px; flex: 1 1 180px; min-width: 0; font-size: 0.875rem; line-height: 1.35; color: var(--muted); }
.pw-card-t b { font-weight: 900; font-size: 1rem; color: var(--navy); }
.pw-card-go { display: inline-flex; align-items: center; gap: 2px; font-weight: 700; font-size: 0.9375rem; color: var(--teal-d); margin-left: auto; min-height: 32px; }
.msheet .pw-card { margin-top: 14px; }
.thanks .pw-card { margin: 0; }
.pw-mini { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 6px; font-weight: 600; font-size: 0.875rem; color: var(--muted); margin-top: 10px; padding-top: 12px; border-top: 1px dotted var(--dot); }
.pw-mini .ico-svg { color: var(--teal-d); }
.pw-mini a { font-weight: 700; display: inline-flex; align-items: center; min-height: 44px; }

/* =============== Alter Link auf einen Ort, der nicht mehr in der App ist =============== */
.ort-weg-card { display: flex; flex-direction: column; gap: 10px; color: var(--ink); }
.ort-weg-i { width: 48px; height: 48px; border-radius: 16px; background: var(--mint-l); color: var(--teal-d); display: flex; align-items: center; justify-content: center; }
.ort-weg-t { font-weight: 900; font-size: 1.0625rem; line-height: 1.3; color: var(--navy); }
.ort-weg-s { font-size: 0.9375rem; line-height: 1.45; color: var(--muted); }
.ort-weg-btns { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.ort-weg-btns .btn { height: 44px; flex: 1 1 140px; }

/* =============== vorOrt-Vorteile: Geschäft aus der Suche hervorheben =============== */
.gcard.is-hl { box-shadow: 0 0 0 3px var(--navy), 0 4px 16px rgba(29, 54, 95, .18); }
.gcard:focus { outline: none; }

/* =============== Partner werden: Infoseite =============== */
.pw-page { gap: 20px; padding-bottom: 24px; }
.pw-hero { background: var(--navy); color: #fff; border-radius: 22px; padding: 20px 18px; display: flex; flex-direction: column; gap: 10px; }
.pw-hero p { font-size: 0.9688rem; line-height: 1.45; color: rgba(255, 255, 255, .88); }
.pw-hero .btn.primary { background: var(--yellow); color: var(--navy); height: 50px; margin-top: 4px; font-size: 1rem; }
.pw-hero .btn.primary:hover { background: #E3B800; color: var(--navy); }
.pw-hero .pick-draft { margin: 0; color: rgba(255, 255, 255, .85); }
.pw-hero .pick-draft .ico-svg { color: var(--yellow); }
.pw-hero .pick-draft-x { color: #FFD6D2; }
.pw-kick { font-weight: 700; font-size: 0.875rem; letter-spacing: .8px; text-transform: uppercase; color: var(--yellow); }
.pw-hero-t { font-weight: 900; font-size: 1.625rem; line-height: 1.12; color: #fff; }
.pw-gruender { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border-radius: 16px; background: var(--coupon); box-shadow: inset 0 0 0 2px var(--coupon-line); color: #3D3D30; }
.pw-gruender-i { width: 40px; height: 40px; border-radius: 20px; background: var(--yellow); color: var(--navy); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pw-gruender-b { display: flex; flex-direction: column; gap: 3px; font-size: 0.875rem; line-height: 1.4; }
.pw-gruender-b b { font-weight: 900; font-size: 1rem; color: var(--navy); line-height: 1.25; }
.pw-gruender-b .pw-gruender-erinn { margin-top: 4px; }
.pw-gruender.klein { padding: 12px; }
.pw-gruender.klein .pw-gruender-i { width: 34px; height: 34px; }
.pw-stufen { display: flex; flex-direction: column; gap: 10px; }
.pw-stufe { background: #fff; border-radius: 18px; padding: 16px; box-shadow: 0 0 0 1px var(--edge); display: flex; flex-direction: column; gap: 8px; }
.pw-stufe.basis { box-shadow: 0 0 0 2px var(--teal-d); }
.pw-stufe.premium { box-shadow: 0 0 0 2.5px var(--yellow), 0 4px 14px rgba(243, 197, 0, .18); }
.pw-stufe-tag { align-self: flex-start; font-weight: 700; font-size: 0.875rem; letter-spacing: .3px; padding: 2px 8px; border-radius: 7px; background: var(--mint-l); color: var(--teal-d); }
.pw-stufe.premium .pw-stufe-tag { background: var(--coupon); color: #6A5200; }
.pw-stufe.basis .pw-stufe-tag { background: var(--teal-d); color: #fff; }
.pw-stufe-t { font-weight: 900; font-size: 1.1875rem; color: var(--navy); }
.pw-stufe-sub { margin: -4px 0 4px; font-size: 0.9375rem; font-weight: 600; line-height: 1.35; color: var(--muted); }
.pw-stufe-l { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 5px; font-size: 0.9062rem; line-height: 1.35; color: var(--ink); }
.pw-stufe-l li { display: flex; gap: 8px; align-items: flex-start; }
.pw-stufe-l .ico-svg { color: var(--teal-d); margin-top: 2px; flex-shrink: 0; }
.pw-stufe-a { display: inline-flex; align-items: center; gap: 2px; font-weight: 700; min-height: 44px; align-self: flex-start; }
.pw-stufe-n { font-size: 0.875rem; color: var(--muted); line-height: 1.4; }
.pw-preise { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pw-preis { display: flex; flex-direction: column; gap: 2px; padding: 14px; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px var(--edge); color: var(--ink); min-height: 96px; }
.pw-preis:hover { color: var(--ink); box-shadow: 0 0 0 2px var(--navy); }
.pw-preis.gruender { grid-column: 1 / -1; background: var(--coupon); box-shadow: inset 0 0 0 2px var(--coupon-line); }
.pw-preis-d { font-weight: 700; font-size: 0.875rem; color: var(--teal-d); }
.pw-preis-p { font-weight: 900; font-size: 1.5rem; color: var(--navy); line-height: 1.1; }
.pw-preis-m { font-weight: 600; font-size: 0.875rem; color: var(--muted); }
.pw-note { display: flex; gap: 8px; align-items: flex-start; font-size: 0.875rem; line-height: 1.45; color: var(--muted); }
.pw-note .ico-svg { color: var(--teal-d); flex-shrink: 0; margin-top: 2px; }
.pw-faqs { display: flex; flex-direction: column; gap: 8px; }
.pw-faq { background: #fff; border-radius: 14px; box-shadow: 0 0 0 1px var(--edge); }
.pw-faq summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 52px; padding: 10px 14px; font-weight: 700; font-size: 0.9375rem; color: var(--navy); }
.pw-faq summary::-webkit-details-marker { display: none; }
.pw-faq summary::after { content: '+'; font-weight: 900; font-size: 1.25rem; color: var(--teal-d); flex-shrink: 0; }
.pw-faq[open] summary::after { content: '–'; }
.pw-faq-a { padding: 0 14px 14px; font-size: 0.9062rem; line-height: 1.5; color: var(--ink); }
.pw-cta { display: flex; flex-direction: column; gap: 8px; }
.pw-cta .btn { height: 52px; font-size: 1rem; }
.pw-cta-s { font-weight: 600; font-size: 0.875rem; color: var(--muted); text-align: center; }
.pw-cta-s a { text-decoration: underline; display: inline-block; padding: 12px 2px; margin: -12px 0; }

/* =============== Partner werden: Formular =============== */
.app.pw-form .tabbar { display: none; }
.app.pw-form .view { padding-bottom: 0; }
.app.pw-form ~ .toast { bottom: calc(var(--safe-b) + 100px); }
.pw-kat { display: inline-flex; align-items: center; gap: 6px; padding: 0 14px 0 12px; }
.pw-kat .ico-svg { color: var(--teal-d); }
.pw-kat[aria-pressed="true"] .ico-svg { color: #fff; }
.pw-kat-nr { min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: var(--yellow); color: var(--navy); font-weight: 900; font-size: 0.75rem; display: inline-flex; align-items: center; justify-content: center; }
.fchip.voll { opacity: .55; }
.pw-datei .imgprev.pw-logo-prev { aspect-ratio: auto; height: 150px; background: #fff; box-shadow: inset 0 0 0 1px var(--edge); }
.pw-datei .imgprev.pw-logo-prev img { object-fit: contain; padding: 10px 10px 54px; }
.pw-pakete { display: flex; flex-direction: column; gap: 8px; }
.pw-paket { position: relative; }
.pw-radio { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.pw-paket label { display: flex; flex-direction: column; gap: 3px; padding: 12px 14px 12px 46px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); cursor: pointer; position: relative; min-height: 56px; }
.pw-paket label::before { content: ''; position: absolute; left: 14px; top: 14px; width: 20px; height: 20px; border-radius: 50%; box-shadow: inset 0 0 0 2px #9FB4B6; background: #fff; }
.pw-radio:checked + label { box-shadow: inset 0 0 0 2px var(--navy); background: var(--mint-l); }
.pw-radio:checked + label::before { box-shadow: inset 0 0 0 6px var(--navy); }
.pw-radio:focus-visible + label { outline: 3px solid var(--teal-d); outline-offset: 2px; }
.pw-paket.gruender label { background: var(--coupon); box-shadow: inset 0 0 0 1.5px var(--coupon-line); }
.pw-paket.gruender .pw-radio:checked + label { box-shadow: inset 0 0 0 2px var(--navy); }
.pw-paket-k { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.pw-paket-k b { font-weight: 900; font-size: 1rem; color: var(--navy); }
.pw-paket-p { font-weight: 900; font-size: 1rem; color: var(--navy); white-space: nowrap; }
.pw-paket-t { font-weight: 600; font-size: 0.875rem; color: var(--muted); line-height: 1.35; }
.f.invalid .pw-paket label { box-shadow: inset 0 0 0 1.5px #B3261E; }
.pw-printbox[hidden] { display: none; }
.pw-summe { display: flex; gap: 8px; align-items: flex-start; font-size: 0.875rem; line-height: 1.4; color: var(--ink); background: var(--mint-l); border-radius: 12px; padding: 10px 12px; margin: 0; }
.pw-summe .ico-svg { color: var(--teal-d); flex-shrink: 0; margin-top: 1px; }
.pw-summe b { color: var(--navy); }
.pw-prem .f { gap: 0; }
.pw-prem .help.pw-prem-h { padding-left: 36px; margin: 0; }
.pw-zus-box { background: #fff; border-radius: 14px; padding: 14px; box-shadow: inset 0 0 0 1px var(--line); display: flex; flex-direction: column; gap: 8px; }
.pw-zus { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 0; font-size: 0.875rem; line-height: 1.4; }
.pw-zus dt { font-weight: 700; color: var(--muted); }
.pw-zus dd { margin: 0; color: var(--ink); overflow-wrap: anywhere; }
.pw-betrieb { display: flex; align-items: center; gap: 12px; background: #fff; border-radius: 16px; padding: 12px; box-shadow: inset 0 0 0 1px var(--line); }
.pw-betrieb-logo.plogo { width: 56px; height: 56px; border-radius: 28px; flex-shrink: 0; overflow: hidden; background: #fff; box-shadow: inset 0 0 0 1px var(--edge); display: flex; align-items: center; justify-content: center; color: var(--teal-d); }
.pw-betrieb-logo.plogo img { width: 100%; height: 100%; object-fit: contain; padding: 6px; display: block; }
.pw-betrieb-logo.plogo.prem { box-shadow: 0 0 0 3px var(--yellow); }
.pw-betrieb-logo.plogo.fill { background: linear-gradient(135deg, var(--mint-l), var(--mint)); }
.pw-betrieb-b { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pw-betrieb-b .pw-kick { color: var(--teal-d); font-size: 0.8125rem; }
.pw-betrieb-t { font-weight: 900; font-size: 1.0625rem; color: var(--navy); line-height: 1.2; }
.pw-betrieb-m { font-weight: 600; font-size: 0.875rem; color: var(--muted); }
.pw-kurz-h { margin: -4px 0 0; }
.pw-tcard-i { width: 76px; height: 76px; border-radius: 12px; background: var(--mint); color: var(--teal-d); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pw-tcard img { object-fit: contain; background: #fff; box-shadow: inset 0 0 0 1px var(--edge); }

/* =============== „Kein Logo oder Foto zur Hand?“ – Bilder von der Website (17.10.2026, SW vod-v18-5) =============== */
.pw-webbilder { display: flex; flex-direction: column; gap: 12px; padding: 14px; border-radius: 16px; background: var(--mint-l); box-shadow: inset 0 0 0 1.5px var(--line); }
.pw-webbilder[hidden] { display: none; }
.pw-webbilder.an { box-shadow: inset 0 0 0 2px var(--navy); }
.pw-webbilder-k { display: flex; gap: 12px; align-items: flex-start; }
.pw-webbilder-i { width: 40px; height: 40px; border-radius: 20px; background: #fff; color: var(--teal-d); box-shadow: inset 0 0 0 1px var(--line); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pw-webbilder-b { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pw-webbilder-t { margin: 0; font-weight: 900; font-size: 1rem; line-height: 1.25; color: var(--navy); }
.pw-webbilder-p { margin: 0; font-size: 0.875rem; line-height: 1.4; color: var(--ink); }
.pw-webbilder .f { gap: 0; }
.pw-webbilder-hin { display: flex; gap: 6px; align-items: flex-start; margin: 0; padding-left: 36px; }
.pw-webbilder-hin[hidden], .pw-req-web[hidden] { display: none; }
.pw-webbilder-hin .ico-svg { color: var(--teal-d); flex-shrink: 0; margin-top: 1px; }
/* 17.10.2026 (vod-v18-6): „Bilder & Texte für deinen Eintrag“ – immer sichtbar, Pflicht-Haken im hellen Kasten */
.pw-bilder-k { gap: 6px; }
.pw-bilder-p { margin: 0; line-height: 1.45; }
.pw-bilder-hin { display: flex; gap: 6px; align-items: flex-start; margin: 0; color: var(--teal-d); }
.pw-bilder-hin[hidden] { display: none; }
.pw-bilder-hin .ico-svg { flex-shrink: 0; margin-top: 1px; }
.pw-bilder-geraet { margin: -4px 0 0; }
.pw-bilder-ok { padding: 12px 14px; }
.pw-bilder-ok .crow label { font-size: 0.9375rem; line-height: 1.4; }

/* =============== Partnerbedingungen (Entwurf) =============== */
.pw-entwurf { display: flex; gap: 10px; align-items: flex-start; padding: 14px; border-radius: 14px; background: #FFF4CC; box-shadow: inset 0 0 0 2px #E8B400; color: #4A3B00; font-size: 0.9375rem; line-height: 1.4; }
.pw-entwurf .ico-svg { color: #8A6A00; flex-shrink: 0; margin-top: 1px; }
.pw-entwurf b { font-weight: 900; text-transform: uppercase; letter-spacing: .5px; }
.pw-pb-back { height: 48px; }
.h1.small.pw-pb-h1 { font-size: clamp(1.375rem, 7.4vw, 1.875rem); min-width: 0; overflow-wrap: anywhere; }

@media (min-width: 420px) {
  .pw-preise { grid-template-columns: repeat(2, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .sug-o { transition: none; }
}
