/* page.css — Partnersuche neu. rem + kit tokens only, no hover lift, mobile-first (main breakpoint 48rem / 62rem). */

[hidden] { display: none !important; }
.visually-hidden { position: absolute !important; width: 0.0625rem; height: 0.0625rem; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ── Draft bar (prototype only) ── */
.draft-bar { background: var(--color-teal-50); border-bottom: 0.0625rem solid var(--color-teal-100); }
.draft-bar__in { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; padding-top: 0.625rem; padding-bottom: 0.625rem; }
.draft-bar__txt { flex: 1 1 18rem; margin: 0; font-size: var(--text-body-sm-size); color: var(--color-graphite-800); }
.draft-bar__txt strong { color: var(--color-teal); font-size: var(--text-caption-size); font-weight: 700; line-height: var(--text-caption-lh); letter-spacing: 0.15em; text-transform: uppercase; }
.draft-bar__back { font-size: var(--text-body-sm-size); font-weight: 700; color: var(--color-teal); }
.draft-bar__btn { padding: 0; border: 0; background: none; cursor: pointer; font-family: var(--font-family); text-decoration: underline; }
.proto-toast { position: fixed; left: 50%; bottom: 1.5rem; transform: translateX(-50%); z-index: 10000; margin: 0; padding: 0.75rem 1.125rem; border-radius: var(--radius); background: var(--color-teal-900); color: var(--color-white); font-size: var(--text-body-sm-size); box-shadow: var(--shadow-card); max-width: calc(100% - 2rem); }

/* ── Page head (kit: breadcrumbs + page title) ── */
.ps-lead { margin: var(--space-2) 0 var(--space-2); font-size: var(--text-body-size); line-height: 1.5; color: var(--color-graphite-700); }
.ps-lead b { color: var(--color-teal); }

/* ── Request bar: the product from the product page ── */
.rq-bar { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-3) var(--space-4); align-items: center; margin-bottom: var(--space-4); padding: var(--space-3) var(--space-4) var(--space-3) var(--space-3); border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); background: var(--color-white); box-shadow: var(--shadow-card); overflow: hidden; }
.rq-bar__media { display: flex; align-items: center; justify-content: center; width: 4.5rem; height: 4.5rem; border-radius: var(--radius-lg); background: var(--color-paper); }
.rq-bar__img { width: 4rem; height: 4rem; object-fit: contain; }
.rq-bar__txt p { margin: 0; }
.rq-bar__eyebrow { display: flex; align-items: center; gap: 0.375rem; font-size: 0.75rem; font-weight: 700; color: var(--color-green); }
.rq-bar__eyebrow svg { width: 0.875rem; height: 0.875rem; }
.rq-bar__name { margin-top: 0.125rem !important; font-size: var(--text-h4-size); font-weight: 700; line-height: var(--text-h4-lh); letter-spacing: -0.005em; color: var(--color-digital-black); }
.rq-bar__chips { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-2) 0 0; padding: 0; }
.rq-bar__chips li { display: inline-flex; align-items: center; gap: 0.375rem; height: 1.75rem; padding: 0 0.625rem; border-radius: var(--radius-pill); background: var(--color-graphite-100); font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-800); }
.rq-bar__sw { width: 0.875rem; height: 0.875rem; border-radius: 50%; border: 0.0625rem solid var(--color-graphite-300); }
/* kit Stepper in the request card (right) */
@media (min-width: 62rem) {
  .rq-bar { grid-template-columns: auto minmax(0, 1fr) 26rem; padding-right: var(--space-10); }
}

/* ── Search card — FAQ search style (teal gradient, white field, light chips), inside the container ── */
.ps-find { --pad: var(--space-6); position: relative; z-index: 500; margin-bottom: var(--space-6); padding: var(--pad); border-radius: var(--radius-xl); background: radial-gradient(ellipse 40% 80% at 50% 0%, color-mix(in srgb, var(--color-mint) 14%, transparent) 0%, transparent 70%), linear-gradient(180deg, var(--color-teal) 0%, var(--color-teal-700) 100%); color: var(--color-white); }
.ps-find__box { position: relative; display: flex; align-items: center; gap: var(--space-2); height: 3.5rem; padding: 0 0.375rem 0 var(--space-4); background: var(--color-white); border: 0.0625rem solid var(--color-white); border-radius: var(--radius-lg); box-shadow: var(--shadow-modal); }
.ps-find__box:focus-within { box-shadow: var(--shadow-modal), 0 0 0 0.1875rem color-mix(in srgb, var(--color-mint) 45%, transparent); }
.ps-find__pin { width: 1.25rem; height: 1.25rem; flex: none; color: var(--color-graphite-500); }
.ps-find__input { flex: 1 1 auto; min-width: 0; height: 100%; padding: 0 var(--space-2); border: 0; outline: none; background: transparent; font-family: var(--font-family); font-size: 1rem; color: var(--color-graphite-850); }
.ps-find__input::placeholder { color: var(--color-graphite-500); }
.ps-find__loc { display: inline-flex; align-items: center; gap: 0.375rem; height: 2.5rem; padding: 0 var(--space-3); border: 0; border-radius: var(--radius); background: transparent; color: var(--color-teal); font-family: var(--font-family); font-size: var(--text-body-sm-size); font-weight: 700; cursor: pointer; white-space: nowrap; transition: background 0.15s; }
.ps-find__loc:hover { background: var(--color-teal-50); }
.ps-find__loc svg { width: 1.125rem; height: 1.125rem; }
.ps-find__loc.is-busy svg { animation: ps-spin 1s linear infinite; }
@keyframes ps-spin { to { transform: rotate(360deg); } }
.ps-find__btn { flex: none; height: 2.5rem; }
@media (max-width: 39.99rem) { .ps-find__loc span { display: none; } .ps-find__loc { padding: 0 var(--space-2); } .ps-find { --pad: var(--space-4); } }

.ps-suggest { position: absolute; top: calc(100% + 0.375rem); left: 0; right: 0; z-index: 10; margin: 0; padding: var(--space-2); list-style: none; background: var(--color-white); border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); box-shadow: var(--shadow-modal); color: var(--color-graphite-900); }
.ps-suggest li { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr) auto; align-items: center; gap: var(--space-3); padding: var(--space-3); border-radius: var(--radius); cursor: pointer; }
.ps-suggest li:hover, .ps-suggest li.is-active { background: var(--color-teal-50); }
.ps-suggest svg { width: 1.125rem; height: 1.125rem; color: var(--color-graphite-500); }
.ps-suggest span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ps-suggest small { font-size: 0.75rem; font-weight: 700; color: var(--color-teal); white-space: nowrap; }

/* quick cities: quiet outline chips on the band (as FAQ) */
/* Variante A · one search bar: Wo? | Leistung | Umkreis | Suchen (dropdown list styled like the place suggestions) */
.ps-bar { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "place place" "type type" "km go"; align-items: stretch; padding: 0.5rem; border-radius: var(--radius-lg); background: var(--color-white); box-shadow: var(--shadow-modal); color: var(--color-graphite-850); }
.ps-bar__seg { position: relative; display: grid; grid-template-rows: auto auto; align-content: start; row-gap: 0.125rem; min-width: 0; padding: 0.375rem var(--space-4); }
.ps-bar__seg--place { grid-area: place; }
.ps-bar__seg--type { grid-area: type; border-top: 0.0625rem solid var(--color-graphite-200); }
.ps-bar__seg--km { grid-area: km; border-top: 0.0625rem solid var(--color-graphite-200); }
.ps-bar__lbl { display: block; font-size: var(--text-caption-size); font-weight: 400; line-height: var(--text-caption-lh); color: var(--color-graphite-600); }
.ps-bar__field { display: flex; align-items: center; gap: var(--space-2); height: calc(var(--text-body-size) * var(--text-body-lh)); }
.ps-bar__input { flex: 1 1 auto; min-width: 0; height: 100%; padding: 0; border: 0; outline: none; background: transparent; font-family: var(--font-family); font-size: var(--text-body-size); color: var(--color-digital-black); }
.ps-bar__input::placeholder { color: var(--color-graphite-500); }
.ps-bar__btn { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-rows: auto auto; align-content: start; column-gap: var(--space-3); row-gap: 0.125rem; align-items: center; width: 100%; height: auto; padding: 0; border: 0; background: none; font-family: var(--font-family); text-align: left; color: inherit; cursor: pointer; outline: none; }
.ps-bar__btn > svg { grid-row: 1 / span 2; grid-column: 3; width: 1.25rem; height: 1.25rem; color: var(--color-teal); transition: transform 0.15s; }
.ps-bar__btn[aria-expanded="true"] > svg { transform: rotate(180deg); }
.ps-bar__val { font-size: var(--text-body-size); font-weight: 400; line-height: var(--text-body-lh); color: var(--color-digital-black); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* bottoms in one line: values, „Mein Standort“ and „Suchen“ end on the same edge */
.ps-bar__go { grid-area: go; align-self: end; margin: 0 var(--space-2) 0.375rem var(--space-3); }
.ps-bar .ps-suggest { top: calc(100% + 0.75rem); left: 0; right: 0; }
/* „Mein Standort“: small outline button, centred right in the place segment */
.ps-bar__seg--place { grid-template-columns: auto minmax(0, 1fr) auto; column-gap: var(--space-3); padding-right: var(--space-4); }
.ps-bar__seg--place > .ps-bar__lbl, .ps-bar__seg--place > .ps-bar__field { grid-column: 2; }
.ps-bar .ps-find__loc { grid-column: 3; grid-row: 1 / span 2; align-self: end; height: 2.25rem; padding: 0 var(--space-3); border: 0.0625rem solid var(--color-graphite-200); background: var(--color-white); color: var(--color-graphite-850); font-weight: 400; transition: border-color 0.15s, color 0.15s; }
.ps-bar .ps-find__loc:hover { border-color: var(--color-teal); background: var(--color-white); color: var(--color-teal); }
.ps-bar .ps-find__loc svg { width: 1.125rem; height: 1.125rem; color: var(--color-teal); }
/* lighter search card, popular places without label and in regular weight */
/* card = kit Kaufberater bar (.advisor__bar): light teal gradient, hairline + inset line */
.ps-find--bar { --adv-teal-5: rgba(1,82,83,0.05); --adv-teal-10: rgba(1,82,83,0.10); border: 0.0625rem solid var(--adv-teal-10); border-radius: var(--radius-lg); background: linear-gradient(135deg, var(--adv-teal-5) 0%, var(--color-teal-50) 100%); box-shadow: inset 0 0 0 0.0625rem var(--adv-teal-10); color: var(--color-graphite-850); }
.ps-find--bar .ps-bar, .vb-search .ps-bar { border: 0.0625rem solid var(--color-graphite-200); box-shadow: none; }
.ps-find--bar .ps-find__quick button { border-color: var(--adv-teal-10); background: var(--color-white); color: var(--color-graphite-850); font-weight: 400; }
.ps-find--bar .ps-find__quick button:hover { border-color: var(--color-teal); background: var(--color-white); color: var(--color-teal); }
.ps-bar__val, .ps-bar__field { height: calc(var(--text-body-size) * var(--text-body-lh)); }
.ps-dd__menu { position: absolute; top: calc(100% + 0.75rem); left: 0; z-index: 10; min-width: 100%; margin: 0; padding: var(--space-2); list-style: none; border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); background: var(--color-white); box-shadow: var(--shadow-modal); color: var(--color-graphite-900); }
@media (min-width: 62rem) { .ps-bar__seg--type .ps-dd__menu { width: max(100%, 22rem); } }
.ps-dd__menu li { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-3); border-radius: var(--radius); font-size: var(--text-body-size); line-height: var(--text-body-lh); cursor: pointer; outline: none; }
/* states as in the FAQ product menu: hover = paper, active = teal-50 + teal text */
.ps-dd__menu li:hover, .ps-dd__menu li:focus-visible { background: var(--color-paper); }
.ps-dd__menu li.is-active { background: var(--color-teal-50); }
.ps-dd__menu li b { font-weight: 400; }
.ps-dd__menu li.is-active b { font-weight: 700; color: var(--color-teal); }
.ps-dd__txt { display: grid; min-width: 0; }
.ps-dd__txt small { font-size: var(--text-caption-size); line-height: var(--text-caption-lh); color: var(--color-graphite-600); }
.ps-dd__n { flex: none; font-size: var(--text-caption-size); font-weight: 700; color: var(--color-teal); }
@media (min-width: 48rem) {
  .ps-bar { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; grid-template-areas: "place place place" "type km go"; }
  .ps-bar__seg--km { border-left: 0.0625rem solid var(--color-graphite-200); }
}
@media (min-width: 62rem) {
  .ps-bar { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 0.7fr) auto; grid-template-areas: "place type km go"; }
  .ps-bar__seg--type, .ps-bar__seg--km { border-top: 0; border-left: 0.0625rem solid var(--color-graphite-200); }
}
@media (max-width: 47.99rem) { .ps-bar__go { min-width: 8rem; margin-right: var(--space-2); } }

.ps-find__quick { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: var(--space-4) 0 0; font-size: var(--text-body-sm-size); }
.ps-find__quick span { color: color-mix(in srgb, var(--color-white) 80%, transparent); }
.ps-find__quick button { height: 2rem; padding: 0 0.75rem; border: 0.0625rem solid color-mix(in srgb, var(--color-white) 22%, transparent); border-radius: var(--radius); background: color-mix(in srgb, var(--color-white) 8%, transparent); color: var(--color-white); font-family: var(--font-family); font-size: var(--text-body-sm-size); font-weight: 700; cursor: pointer; transition: background 0.15s, border-color 0.15s; }
.ps-find__quick button:hover { background: color-mix(in srgb, var(--color-white) 16%, transparent); border-color: color-mix(in srgb, var(--color-white) 55%, transparent); }

/* ── Filters: light lower part of the card (two-tone), kit teal for the selection ── */
.ps { padding-top: var(--space-6); }


/* ── Result: list | map ── */
.ps-app { display: grid; gap: var(--space-5); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 62rem) {
  .ps-app { grid-template-columns: minmax(0, 1fr) minmax(30rem, 0.85fr); height: clamp(38rem, calc(100vh - 8rem), 48rem); }
  .ps-mapwrap { order: -1; }
  .ps-panel { display: flex; flex-direction: column; min-height: 0; }
  .ps-list, .pd { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding-right: var(--space-1); }
}
.ps-summary { margin: 0 0 var(--space-3); font-size: var(--text-body-sm-size); line-height: 1.5; color: var(--color-graphite-700); }
.ps-summary b { color: var(--color-digital-black); }

@media (max-width: 61.99rem) {
  .ps-app[data-view="list"] .ps-mapwrap { display: none; }
  .ps-app[data-view="map"] .ps-list, .ps-app[data-view="map"] .pd { display: none; }
}

.ps-list { list-style: none; margin: 0; padding: 0; display: grid; align-content: start; gap: var(--space-3); }
.ps-card { position: relative; display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: var(--space-1) var(--space-3); padding: var(--space-4) var(--space-4) 0; border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); background: var(--color-white); cursor: pointer; transition: border-color 0.15s, box-shadow 0.15s; }
.ps-card:hover, .ps-card.is-active { border-color: var(--color-graphite-400); box-shadow: var(--shadow-card); }
.ps-card.is-active { box-shadow: inset 0.1875rem 0 0 var(--color-digital-black), var(--shadow-card); }
.ps-card__logo { position: relative; display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius); background: var(--color-white); }
.ps-card__logo img { width: 100%; height: 100%; object-fit: contain; padding: 0.125rem; border-radius: var(--radius); }
.ps-card__logo b { font-size: 1.125rem; color: var(--color-teal); }
.ps-card__logo--lg { width: 4.5rem; height: 4.5rem; flex: none; }
.ps-card__num { position: absolute; top: -0.5rem; left: -0.5rem; display: grid; place-items: center; min-width: 1.375rem; height: 1.375rem; padding: 0 0.25rem; border-radius: var(--radius-pill); background: var(--color-digital-black); color: var(--color-white); font-size: var(--text-caption-size); font-weight: 700; box-shadow: 0 0 0 0.125rem var(--color-white); }
.ps-card__body { min-width: 0; }
.ps-card__body p { margin: 0; }
.ps-card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-2); }
.ps-card__name { font-weight: 700; line-height: 1.3; color: var(--color-digital-black); }
.ps-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); margin-top: var(--space-1) !important; font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-700); }
.ps-card__offer { margin-top: var(--space-1) !important; font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-700); }
.ps-status { margin-top: var(--space-1) !important; display: inline-flex; align-items: center; gap: 0.375rem; font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-700); }
.ps-status::before { content: ""; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--color-graphite-400); }
.ps-status.is-open { color: var(--color-green); }
.ps-status.is-open::before { background: var(--color-green); }
.ps-status.is-off::before { background: var(--status-warning); }
.ps-card__act { grid-column: 1 / -1; display: flex; align-items: center; gap: var(--space-1); margin: var(--space-3) calc(var(--space-4) * -1) 0; padding: var(--space-2) var(--space-3); border-top: 0.0625rem solid var(--color-graphite-100); }
.ps-card__act .btn { height: 2.25rem; padding: 0 var(--space-4); }

/* Map */
.ps-mapwrap { position: relative; min-height: 26rem; }
.ps-map { position: absolute; inset: 0; border-radius: var(--radius-lg); overflow: hidden; background: var(--color-graphite-100); z-index: 0; }
@media (max-width: 61.99rem) { .ps-mapwrap { height: 70vh; } }
.ps-map__legend { position: absolute; left: var(--space-3); bottom: var(--space-3); z-index: 400; display: flex; align-items: center; gap: var(--space-2); margin: 0; padding: var(--space-2) var(--space-3); border-radius: var(--radius); background: var(--color-white); box-shadow: var(--shadow-card); font-size: 0.75rem; color: var(--color-graphite-700); }
.ps-dot { display: inline-block; width: 0.75rem; height: 0.75rem; border-radius: 50%; }
.ps-dot + .ps-dot, .ps-map__legend .ps-dot:not(:first-child) { margin-left: var(--space-2); }
.ps-dot--premium, .ps-mk--premium { background: var(--color-teal); }
.ps-dot--montage, .ps-mk--montage { background: var(--color-white); border: 0.1875rem solid var(--color-teal); box-sizing: border-box; }
.ps-mk { display: block; width: 1.375rem; height: 1.375rem; border-radius: 50%; border: 0.1875rem solid var(--color-white); box-shadow: 0 0.0625rem 0.375rem rgba(0, 0, 0, 0.35); box-sizing: border-box; transition: box-shadow 0.15s; }
.ps-mk--montage { border-color: var(--color-teal); }
.ps-mk.is-active { box-shadow: 0 0 0 0.375rem rgba(1, 82, 83, 0.25), 0 0.0625rem 0.375rem rgba(0, 0, 0, 0.35); background: var(--color-teal-900); }
.ps-mk--num { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; font-size: 0.75rem; font-weight: 700; color: var(--color-white); background: var(--color-digital-black); }
.ps-mk--num.ps-mk--montage { background: var(--color-white); color: var(--color-digital-black); border-color: var(--color-digital-black); }
.ps-here { display: block; width: 1.125rem; height: 1.125rem; border-radius: 50%; background: var(--color-red); border: 0.1875rem solid var(--color-white); box-shadow: 0 0 0 0.375rem rgba(212, 41, 36, 0.2); box-sizing: border-box; }
.leaflet-container { font-family: var(--font-family); }
.ps-map .leaflet-tile-pane { filter: saturate(0.25) contrast(0.92) brightness(1.04); }

/* Before a search: partner types + 3 steps */
.ps-intro { display: grid; gap: var(--space-3); align-content: start; }
.ps-steps { margin: 0; padding: var(--space-4) var(--space-4) var(--space-4) var(--space-8); border-radius: var(--radius-lg); background: var(--color-paper); font-size: var(--text-body-sm-size); line-height: 1.5; color: var(--color-graphite-700); display: grid; gap: var(--space-2); }
.ps-steps b { color: var(--color-digital-black); }
@media (min-width: 62rem) { .ps-intro { flex: 1 1 auto; min-height: 0; overflow-y: auto; } }


/* ── Request dialog (kit Modal MD) ── */
.rq-modal__title { font-size: 1.25rem; }
.rq-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
.rq-grid { display: grid; gap: var(--space-4) var(--space-3); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 30rem) { .rq-grid { grid-template-columns: 1fr 1fr; } }
/* a bit more air above the message: its floating label sits on the top border */
.rq-ta { margin-top: var(--space-2); }
.rq-ta textarea { min-height: 7.5rem; resize: vertical; line-height: var(--text-body-lh); }
/* consent: kit checkbox-sm (1.125rem box, 0.875rem text), box on the first text line */
.rq-consent { align-items: flex-start; position: relative; line-height: var(--text-body-sm-lh); color: var(--color-graphite-850); }
.rq-consent .checkbox { margin-top: calc((var(--text-body-sm-size) * var(--text-body-sm-lh) - 1.125rem) / 2); }
.rq-consent { font-size: var(--text-body-sm-size); }
.rq-consent a, .rq-consent a:visited { color: var(--color-teal); text-decoration: underline; text-underline-offset: 0.1875rem; }
.rq-consent a:hover { color: var(--color-teal-600); }
.rq-consent__input { position: absolute; opacity: 0; width: 1.125rem; height: 1.125rem; margin: 0; cursor: pointer; }
.rq-consent__input:focus-visible + .checkbox { border-color: var(--color-teal); }
.rq-consent .checkbox { color: var(--color-white); }
.rq-consent .checkbox svg { visibility: hidden; }
.rq-consent .checkbox.checked-filter svg { visibility: visible; }
.rq-consent.is-error .checkbox { border-color: var(--color-red); }
.rq-form__err { margin: 0; font-size: var(--text-body-sm-size); color: var(--color-red); }
.rq-done { display: grid; gap: var(--space-5); }
@media (max-width: 47.99rem) {
  .rq-modal { padding: 0; align-items: flex-end; }
  .rq-modal .modal-dialog { max-height: 94vh; border-radius: var(--radius-xl) var(--radius-xl) 0 0; }
  .rq-modal .modal-header, .rq-modal .modal-body { padding-left: var(--space-4); padding-right: var(--space-4); }
}

/* phones: intents stacked, compact; radius 4 segments */
@media (max-width: 47.99rem) {
}

/* phones: compact request card — no overlap with the ×, short step labels */
@media (max-width: 47.99rem) {
  .rq-bar { grid-template-columns: 3.5rem minmax(0, 1fr); align-items: start; padding: var(--space-3); }
  .rq-bar__media { width: 3.5rem; height: 3.5rem; }
  .rq-bar__img { width: 3rem; height: 3rem; }
  .rq-bar__txt { padding-right: var(--space-6); }
  .rq-bar__name { font-size: 1rem; }
  .rq-bar__chips li { height: 1.5rem; font-size: 0.75rem; }
}

/* ── Kit components: layout only ── */
.ps-radius__chip.seg-tabs__tab { padding-left: 0.5rem; padding-right: 0.5rem; gap: 0.375rem; }
.ps-filter { min-width: 0; }
.ps-filter__lbl { margin: 0 0 var(--space-2); font-size: var(--text-caption-size); font-weight: 700; line-height: var(--text-caption-lh); letter-spacing: 0.15em; text-transform: uppercase; color: var(--color-graphite-600); }
.seg-tabs__icon svg { width: 1.25rem; height: 1.25rem; color: var(--color-teal); }
.ps-find .seg-tabs__tab, .rq-when .seg-tabs__tab { padding: 0.75rem 1rem; }
.rq-mode .seg-tabs__tab { padding: 0.625rem 1rem; }
.ps-switch { margin-bottom: var(--space-3); }
@media (min-width: 62rem) { .ps-switch { display: none; } }
@media (max-width: 61.99rem) {
  .ps-app[data-view="list"] .ps-mapwrap { display: none; }
  .ps-app[data-view="map"] .ps-list, .ps-app[data-view="map"] .pd { display: none; }
}
.ps-summary .alert { margin-top: var(--space-1); }
.rq-when { display: grid; gap: 0; }

/* request bar: chips right of the text */
.rq-bar { grid-template-columns: auto minmax(0, 1fr); }
.rq-bar__chips { grid-column: 2; margin: 0; }
@media (min-width: 80rem) {
  .rq-bar { grid-template-columns: auto auto minmax(0, 1fr); }
  .rq-bar__chips { grid-column: auto; justify-content: flex-start; margin-left: var(--space-2); padding-left: var(--space-5); border-left: 0.0625rem solid var(--color-graphite-200); }
}

/* partner card (kit badges, kit buttons, kit link-arrow) */
.ps-card__meta .badge, .ps-card__top .badge { flex: none; }
.ps-rating { color: var(--color-graphite-700); }
.ps-rating__stars { color: var(--color-star); }
.ps-card__act { grid-column: 1 / -1; display: flex; align-items: center; gap: var(--space-2); margin: var(--space-3) calc(var(--space-4) * -1) 0; padding: var(--space-3) var(--space-4); border-top: 0.0625rem solid var(--color-graphite-100); }
.ps-card__more { margin-left: auto; font-size: var(--text-body-sm-size); font-weight: 700; }


.ps-find .seg-tabs__bar { gap: 0.25rem; }

/* partner card — readable: clear name, one meta line, one info line, buttons under the text */
.ps-card { grid-template-columns: 3.25rem minmax(0, 1fr); gap: var(--space-4); padding: var(--space-5); }
.ps-card__logo { width: 3.25rem; height: 3.25rem; }
.ps-card__body { display: grid; gap: 0.375rem; }
.ps-card__name { font-size: var(--text-h4-size); font-weight: 700; line-height: var(--text-h4-lh); letter-spacing: -0.005em; }
.ps-card__dist { flex: none; font-size: var(--text-body-sm-size); font-weight: 700; color: var(--color-graphite-850); white-space: nowrap; }
.ps-card__meta { margin-top: 0 !important; font-size: var(--text-body-sm-size); color: var(--color-graphite-700); gap: var(--space-2); }
.ps-card__info { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-4); font-size: var(--text-body-sm-size); color: var(--color-graphite-700); }
.ps-card__info .ps-status { margin-top: 0 !important; font-size: var(--text-body-sm-size); }
.ps-card__act { grid-column: auto; margin: var(--space-2) 0 0; padding: 0; border-top: 0; }
@media (max-width: 29.99rem) { .ps-card { grid-template-columns: 2.75rem minmax(0, 1fr); gap: var(--space-3); padding: var(--space-4); } .ps-card__logo { width: 2.75rem; height: 2.75rem; } .ps-card__act { flex-wrap: wrap; } }

/* remove = kit close button (.modal-close: one ✕ for all), only positioned here */
/* „Kein Partner …“: kit info alert, title + link in black */
.ps-summary .alert { --a-title: var(--color-digital-black); }
.ps-summary .alert__link { color: var(--color-info); }
/* Premiumpartner badge: gold like the Premium seal (kit token --color-star), Montagepartner stays kit .badge--outlined */
.badge--premium { background: color-mix(in srgb, var(--color-star) 28%, var(--color-white)); color: var(--color-graphite-900); box-shadow: inset 0 0 0 0.0625rem color-mix(in srgb, var(--color-star) 70%, var(--color-white)); }


/* ══════════ Partner-Detail (partner.html) ══════════ */
.pp { padding-top: var(--space-2); padding-bottom: var(--space-16); }
.pp-back { display: inline-flex; align-items: center; gap: var(--space-2); margin-bottom: var(--space-4); font-size: var(--text-body-sm-size); font-weight: 700; }
.pp-back svg { width: 1rem; height: 1rem; }

/* head card: identity left, actions right */
.pp-hero { display: grid; gap: var(--space-6); margin-bottom: var(--space-8); padding: var(--space-6); border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); background: var(--color-white); box-shadow: var(--shadow-card); }
@media (min-width: 62rem) { .pp-hero { grid-template-columns: minmax(0, 1fr) 25rem; align-items: center; padding: var(--space-8); } }
.pp-hero__id { display: flex; gap: var(--space-5); align-items: flex-start; min-width: 0; }
.pp-hero__logo { display: flex; align-items: center; justify-content: center; width: 6rem; height: 6rem; flex: none; border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); background: var(--color-white); overflow: hidden; }
.pp-hero__logo img { width: 100%; height: 100%; object-fit: contain; padding: var(--space-2); }
.pp-hero__logo b { font-size: var(--text-h1-size); color: var(--color-teal); }
.pp-hero__txt { display: grid; gap: var(--space-2); min-width: 0; }
.pp-hero__txt p { margin: 0; }
.pp-hero__name { margin: 0; font-size: var(--text-h1-size); font-weight: 700; line-height: var(--text-h1-lh); letter-spacing: -0.02em; color: var(--color-digital-black); }
.pp-hero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); font-size: var(--text-body-sm-size); color: var(--color-graphite-700); }
.pp-hero__offer { font-size: var(--text-body-sm-size); color: var(--color-graphite-700); }
.pp-hero__act { display: grid; gap: var(--space-2); }
.pp-hero__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); gap: var(--space-2); }
.pp-hero__row .btn { width: 100%; }
.pp-hero__note { margin: var(--space-1) 0 0; font-size: var(--text-caption-size); line-height: var(--text-caption-lh); text-align: center; color: var(--color-graphite-600); }

/* body: main + sticky sidebar */
.pp-grid { display: grid; gap: var(--space-8); }
@media (min-width: 62rem) { .pp-grid { grid-template-columns: minmax(0, 1fr) 24rem; align-items: start; } .pp-side { position: sticky; top: 6rem; } }
.pp-sec + .pp-sec { margin-top: var(--space-8); padding-top: var(--space-8); border-top: 0.0625rem solid var(--color-graphite-200); }
.pp-h2 { margin: 0 0 var(--space-4); font-size: var(--text-h2-size); font-weight: 700; line-height: var(--text-h2-lh); letter-spacing: -0.015em; color: var(--color-digital-black); }
.pp-h3 { margin: 0 0 var(--space-3); font-size: var(--text-caption-size); font-weight: 700; line-height: var(--text-caption-lh); letter-spacing: 0.15em; text-transform: uppercase; color: var(--color-graphite-600); }
.pp-muted { margin: 0; font-size: var(--text-body-size); line-height: var(--text-body-lh); color: var(--color-graphite-700); }
.pp-note { margin-top: var(--space-3); font-size: var(--text-body-sm-size); }
.pp-sec .read-more__text { font-size: var(--text-body-size); line-height: var(--text-body-lh); color: var(--color-graphite-800); }
.pp-sec .read-more__text p { margin: 0 0 var(--space-3); font-size: inherit; line-height: inherit; }

/* reviews */
.pp-revhead { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-4); }
.pp-revhead .link-primary { font-size: var(--text-body-sm-size); }
.pp-score { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-4); }
.pp-score b { font-size: var(--display-5-size); font-weight: 700; line-height: var(--display-5-lh); letter-spacing: -0.02em; color: var(--color-digital-black); }
.pp-score div { display: grid; gap: 0.125rem; font-size: var(--text-body-sm-size); color: var(--color-graphite-600); }
.pp-score .ps-rating__stars { font-size: 1.125rem; }
.pp-reviews { list-style: none; margin: 0 0 var(--space-5); padding: 0; }
.pp-reviews li { padding: var(--space-5) 0; border-top: 0.0625rem solid var(--color-graphite-100); }
.pp-reviews p { margin: 0; }
.pp-reviews__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-1) var(--space-3); margin-bottom: var(--space-2) !important; font-size: var(--text-body-sm-size); color: var(--color-graphite-600); }
.pp-reviews__meta b { font-size: var(--text-body-size); color: var(--color-digital-black); }
.pp-reviews__text { font-size: var(--text-body-size); line-height: var(--text-body-lh); color: var(--color-graphite-800); }

/* sidebar cards */
.pp-side { display: grid; gap: var(--space-4); }
.pp-card { padding: var(--space-5); border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); background: var(--color-white); }
.pp-map { height: 11rem; margin-bottom: var(--space-4); border-radius: var(--radius); overflow: hidden; background: var(--color-graphite-100); z-index: 0; }
.pp-map .leaflet-tile-pane { filter: saturate(0.25) contrast(0.92) brightness(1.04); }
.pp-info { list-style: none; display: grid; gap: var(--space-3); margin: 0; padding: 0; font-size: var(--text-body-sm-size); line-height: 1.5; color: var(--color-graphite-800); }
.pp-info li { display: grid; grid-template-columns: 1.125rem minmax(0, 1fr); gap: var(--space-3); align-items: start; }
.pp-info svg { width: 1.125rem; height: 1.125rem; margin-top: 0.125rem; color: var(--color-graphite-500); }
.pp-info a { overflow-wrap: anywhere; }
.pp-info .link-arrow { margin-top: var(--space-1); }
.pp-near { list-style: none; margin: 0; padding: 0; }
.pp-near li { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) 0; border-top: 0.0625rem solid var(--color-graphite-100); }
.pp-near li:first-child { border-top: 0; padding-top: 0; }
.pp-near a { display: grid; min-width: 0; text-decoration: none; }
.pp-near__name { font-size: var(--text-body-sm-size); font-weight: 700; color: var(--color-digital-black); }
.pp-near a:hover .pp-near__name { color: var(--color-teal); text-decoration: underline; }
.pp-near__meta { font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-700); }
.pp-near__km { flex: none; font-size: var(--text-body-sm-size); font-weight: 700; color: var(--color-graphite-800); }

/* mobile: actions stay reachable */
.pp-sticky { display: none; }
@media (max-width: 61.99rem) {
  .pp-sticky:not([hidden]) { position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; display: grid; grid-template-columns: 1fr auto; gap: var(--space-2); padding: var(--space-3) var(--space-4); background: var(--color-white); border-top: 0.0625rem solid var(--color-graphite-200); box-shadow: var(--shadow-modal); }
  .pp { padding-bottom: 6rem; }
}
@media (max-width: 39.99rem) {
  .pp-hero { padding: var(--space-5); }
  .pp-hero__id { gap: var(--space-4); }
  .pp-hero__logo { width: 4rem; height: 4rem; }
}
/* opening hours (kit .table) */
.pd__hours { width: 100%; font-size: var(--text-body-sm-size); }
.pd__hours td:last-child { text-align: right; white-space: nowrap; }
.pd__hours tr.is-today td { font-weight: 700; color: var(--color-digital-black); }
.pd__hours .badge { margin-left: var(--space-1); padding: 0.125rem 0.375rem; }
/* phones: contact + hours right after the head, then about + reviews, then nearby partners */
@media (max-width: 61.99rem) {
  .pp-grid { display: flex; flex-direction: column; gap: var(--space-4); }
  .pp-side { display: contents; }
  .pp-card--contact { order: 1; }
  .pp-card--hours { order: 2; }
  .pp-main { order: 3; margin-top: var(--space-4); }
  .pp-card--near { order: 4; margin-top: var(--space-4); }
}

/* ══════════ Variante B (index-b.html) — FAQ-Vorlage ══════════ */
/* 1 · hero band (as FAQ .hub-band) */
/* hero band = kit Kaufberater bar look (light teal gradient, hairline), as the search card in A */
.vb-band { --adv-teal-5: rgba(1,82,83,0.05); --adv-teal-10: rgba(1,82,83,0.10); position: relative; z-index: 600; overflow: visible; border-bottom: 0.0625rem solid var(--adv-teal-10); background: linear-gradient(135deg, var(--adv-teal-5) 0%, var(--color-teal-50) 100%); color: var(--color-graphite-850); }
.vb-crumb .breadcrumb { padding: 1rem 0 0.8rem; }
.vb-crumb .breadcrumb-item a { color: var(--color-graphite-600); }
.vb-crumb .breadcrumb-item a:hover { color: var(--color-teal); }
.vb-crumb .breadcrumb-item.active { color: var(--color-digital-black); }
.vb-hero { max-width: 62rem; margin: 0 auto; padding: var(--space-8) 0 var(--space-16); text-align: center; }
.vb-hero__title { margin: 0 0 var(--space-3); font-size: var(--display-3-size); font-weight: var(--display-3-weight); line-height: var(--display-3-lh); letter-spacing: -0.03em; color: var(--color-digital-black); }
.vb-hero__sub { margin: 0 auto var(--space-8); font-size: var(--text-body-size); line-height: var(--text-body-lh); color: var(--color-graphite-700); }
.vb-search__field { position: relative; display: flex; align-items: center; gap: var(--space-2); height: 3.5rem; padding: 0 0.375rem 0 var(--space-4); background: var(--color-white); border-radius: var(--radius-lg); box-shadow: var(--shadow-modal); text-align: left; }
.vb-search__field:focus-within { box-shadow: var(--shadow-modal), 0 0 0 0.1875rem color-mix(in srgb, var(--color-mint) 45%, transparent); }
.vb-search__icon { width: 1.125rem; height: 1.125rem; flex: none; color: var(--color-graphite-500); }
.vb-search__input { flex: 1 1 auto; min-width: 0; height: 100%; border: 0; outline: none; background: none; font-family: var(--font-family); font-size: 1rem; color: var(--color-graphite-850); }
.vb-search__input::placeholder { color: var(--color-graphite-500); }
.vb-search__btn { flex: none; height: 2.75rem; }
.vb-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2); margin: var(--space-6) 0 0; }
.vb-chips span { display: none; }
.vb-chips button { height: 2.125rem; padding: 0 0.875rem; border: 0.0625rem solid var(--adv-teal-10); border-radius: var(--radius); background: var(--color-white); color: var(--color-graphite-850); font-family: var(--font-family); font-size: var(--text-body-sm-size); font-weight: 700; cursor: pointer; transition: background 0.15s, border-color 0.15s; }
.vb-chips button { font-weight: 400; }
.vb-hero__sub b { color: var(--color-teal); }
.vb-chips button:hover { border-color: var(--color-teal); background: var(--color-white); color: var(--color-teal); }
@media (max-width: 47.99rem) {
  .vb-hero { padding: var(--space-4) 0 var(--space-10); }
  .vb-hero__title { font-size: var(--text-h1-size); }
  .vb-search__loc span { display: none; }
}

/* section heads (as FAQ .hub-sechead) */
.vb-sechead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-4) var(--space-6); margin-bottom: var(--space-6); }
.vb-sechead h2 { margin: 0; font-size: var(--text-h1-size); color: var(--color-digital-black); }
.vb-sechead p { margin: var(--space-2) 0 0; font-size: 1.125rem; line-height: 1.5; color: var(--color-graphite-800); }
.vb-sechead p b { color: var(--color-digital-black); }
.vb .ps-summary .alert { margin-top: var(--space-2); font-size: 1rem; }

/* 2 · split: filter menu left (as FAQ product index), results right */
.vb-res { padding-top: var(--space-10); }
.vb-split { display: grid; gap: var(--space-6); }
@media (min-width: 62rem) { .vb-split { grid-template-columns: 18.5rem minmax(0, 1fr); gap: var(--space-8); align-items: start; } .vb-filter { position: sticky; top: 6rem; } }
.vb-filter { padding: var(--space-4); border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); background: var(--color-white); }
.vb-filter__title { margin: 0 0 var(--space-2); padding: 0 var(--space-1); font-size: var(--text-caption-size); font-weight: 700; line-height: var(--text-caption-lh); letter-spacing: 0.15em; text-transform: uppercase; color: var(--color-graphite-600); }
.vb-filter__title + .seg-tabs, .vb-menu + .vb-filter__title { margin-top: var(--space-5); }
.vb-menu.seg-tabs__bar { display: grid; gap: 0.125rem; padding: 0; border: 0; background: none; overflow: visible; }
.vb-menu .vb-menu__item { display: flex; align-items: center; justify-content: flex-start; gap: var(--space-3); padding: 0.375rem 0.625rem 0.375rem 0.375rem; border-radius: var(--radius); text-align: left; white-space: normal; font-weight: 700; color: var(--color-digital-black); }
.vb-menu .vb-menu__item:hover { background: var(--color-paper); }
.vb-menu .vb-menu__item.is-active { background: var(--color-teal-50); color: var(--color-teal); }
.vb-menu__thumb { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; flex: none; border-radius: var(--radius); background: var(--color-paper); }
.vb-menu__item.is-active .vb-menu__thumb { background: var(--color-white); }
.vb-menu__thumb svg { width: 1.375rem; height: 1.375rem; color: var(--color-teal); }
.vb-menu__txt { display: grid; flex: 1; min-width: 0; line-height: var(--text-body-bold-lh); }
.vb-menu__txt b { font-size: var(--text-body-size); font-weight: 700; }
.vb-menu__txt small { font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); font-weight: 400; color: var(--color-graphite-700); }
.vb-menu__count { display: inline-flex; align-items: center; justify-content: center; min-width: 1.75rem; height: 1.5rem; padding: 0 0.375rem; border-radius: var(--radius-pill); background: var(--color-graphite-100); font-size: 0.75rem; font-weight: 700; color: var(--color-graphite-700); }
.vb-menu__item.is-active .vb-menu__count { background: var(--color-teal); color: var(--color-white); }
.vb-radius.seg-tabs__bar { display: grid; grid-template-columns: 1fr 1fr; gap: 0.25rem; padding: 0.25rem; }
.vb-radius .seg-tabs__tab { padding: 0.5rem; gap: 0.25rem; }
.vb-filter__hint { display: flex; gap: var(--space-2); margin: var(--space-5) 0 0; padding: var(--space-3); border-radius: var(--radius); background: var(--color-paper); font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-700); }
.vb-filter__hint svg { width: 1rem; height: 1rem; flex: none; margin-top: 0.0625rem; color: var(--color-graphite-500); }

/* results: tiles OR map (switch on all widths) */
.vb .ps-switch { display: block; margin: 0; }
.ps-app.vb-app { display: block; height: auto; }
.vb-app[data-view="list"] .ps-mapwrap { display: none; }
.vb-app[data-view="map"] .ps-panel { display: none; }
.vb-app .ps-panel { display: block; }
.vb-app .ps-list { overflow: visible; padding: 0; }
.vb-app .ps-mapwrap { height: 38rem; min-height: 0; }
@media (max-width: 47.99rem) { .vb-app .ps-mapwrap { height: 70vh; } }
.vb-tiles { grid-template-columns: repeat(auto-fill, minmax(min(22rem, 100%), 1fr)); gap: var(--space-4); }
.vb-tiles .ps-card { height: 100%; align-content: start; }
.vb-empty { margin: 0; padding: var(--space-10) var(--space-6); border: 0.0625rem dashed var(--color-graphite-300); border-radius: var(--radius-lg); text-align: center; color: var(--color-graphite-700); }

/* 3 · partner types (as FAQ topic cards) */
.vb-cards { display: grid; gap: var(--space-5); grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr)); }
.vb-card { position: relative; display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); gap: var(--space-4); padding: var(--space-6) var(--space-10) var(--space-6) var(--space-6); border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); background: var(--color-white); text-decoration: none; transition: border-color 0.15s, box-shadow 0.15s; }
.vb-card:hover { border-color: var(--color-teal); box-shadow: var(--shadow-card); }
.vb-card__icon { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: var(--radius); background: var(--color-paper); }
.vb-card__icon img { width: 2.25rem; height: auto; }
.vb-card__icon svg { width: 1.5rem; height: 1.5rem; color: var(--color-teal); }
.vb-card__body { display: grid; gap: var(--space-1); }
.vb-card__body b { font-size: var(--text-h4-size); line-height: var(--text-h4-lh); letter-spacing: -0.005em; color: var(--color-digital-black); }
.vb-card__body span { font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-700); }
.vb-card__arrow { position: absolute; top: var(--space-6); right: var(--space-5); width: 1rem; height: 1rem; color: var(--color-teal); }

/* 4 · contact bar (as FAQ) */
.vb-contact { padding-top: 0; }
.vb-contact__bar { display: grid; gap: var(--space-5); padding: var(--space-6); border-radius: var(--radius-lg); background: var(--color-paper); box-shadow: inset 0.25rem 0 0 var(--color-teal); }
@media (min-width: 62rem) { .vb-contact__bar { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--space-8); padding: var(--space-6) var(--space-8); } }
.vb-contact__title { margin: 0; font-size: var(--text-h3-size); color: var(--color-digital-black); }
.vb-contact__hours { margin: var(--space-1) 0 0; font-size: var(--text-body-sm-size); color: var(--color-graphite-600); }
.vb-contact__list { list-style: none; display: grid; gap: var(--space-3); margin: 0; padding: 0; grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr)); }
.vb-contact__item { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4); border-radius: var(--radius); background: var(--color-white); text-decoration: none; color: var(--color-digital-black); transition: box-shadow 0.15s; }
.vb-contact__item:hover { box-shadow: var(--shadow-card); }
.vb-contact__item svg { width: 1.25rem; height: 1.25rem; flex: none; color: var(--color-teal); }
.vb-contact__item span { display: grid; line-height: var(--text-body-bold-lh); }
.vb-contact__item small { font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-700); }
/* Variante B · phones: compact filter (3 options in one row, radius 4 in one row) */
@media (max-width: 47.99rem) {
  .vb-filter { padding: var(--space-3); }
  .vb-menu.seg-tabs__bar { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.25rem; }
  .vb-menu .vb-menu__item { flex-direction: column; justify-content: center; gap: 0.25rem; padding: var(--space-2) 0.25rem; text-align: center; }
  .vb-menu__thumb { width: 2rem; height: 2rem; }
  .vb-menu__txt b { font-size: var(--text-body-sm-size); }
  .vb-menu__txt small, .vb-filter__hint { display: none; }
  .vb-radius.seg-tabs__bar { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .vb-radius .seg-tabs__tab { flex-direction: column; padding: 0.375rem 0.125rem; font-size: var(--text-body-sm-size); }
  .vb-menu + .vb-filter__title { margin-top: var(--space-3); }
}

/* A + B · „Ihre Auswahl“ stands out: teal tint + teal border, bigger product, H3 name */
.rq-bar { margin-bottom: var(--space-8); padding: var(--space-4) var(--space-10) var(--space-4) var(--space-5); border: 0.0625rem solid var(--color-teal); background: var(--color-teal-100); box-shadow: var(--shadow-card); }
.rq-bar__media { width: 5.5rem; height: 5.5rem; background: var(--color-white); box-shadow: var(--shadow-card); }
.rq-bar__img { width: 4.75rem; height: 4.75rem; }
.rq-bar__name { margin-top: var(--space-1) !important; font-size: var(--text-h3-size); line-height: var(--text-h3-lh); letter-spacing: -0.01em; }
.rq-bar__chips li { height: 2rem; padding: 0 var(--space-3); border: 0.0625rem solid var(--color-teal-100); background: var(--color-white); }
.rq-bar__chips { border-left-color: color-mix(in srgb, var(--color-teal) 25%, transparent); }
.rq-bar__eyebrow { color: var(--color-teal); }
.rq-bar__eyebrow svg { color: var(--color-green); }
@media (max-width: 47.99rem) {
  .rq-bar { grid-template-columns: 4.5rem minmax(0, 1fr); padding: var(--space-4) var(--space-4) var(--space-4) var(--space-5); margin-bottom: var(--space-6); }
  .rq-bar__media { width: 4.5rem; height: 4.5rem; }
  .rq-bar__img { width: 4rem; height: 4rem; }
  .rq-bar__name { font-size: var(--text-h4-size); line-height: var(--text-h4-lh); }
  .rq-bar__chips { grid-column: 1 / -1; }
  .rq-bar__chips li { height: 1.75rem; font-size: var(--text-caption-size); }
}

/* ── Variante B · Ergebnis (11.11.2026): like the FAQ „Finden Sie zuerst Ihr Produkt“ — light menu left, one partner per row ── */
.ps-card__km { display: none; }
body.vb .vb-sechead { align-items: center; }
body.vb .vb-sechead h2 { font-size: var(--text-h2-size); line-height: var(--text-h2-lh); letter-spacing: -0.015em; }
body.vb .vb-sechead p { font-size: var(--text-body-size); line-height: var(--text-body-lh); }

/* filter menu: no box, kit overlines, items like the FAQ category menu */
body.vb .vb-filter { padding: 0; border: 0; background: none; }
body.vb .vb-filter__title { padding: 0; }
body.vb .vb-menu .vb-menu__item { padding: var(--space-2); }
body.vb .vb-menu__thumb { background: var(--color-teal-50); }
body.vb .vb-menu__count { min-width: 0; height: auto; padding: 0; background: none; font-size: var(--text-body-sm-size); font-weight: 400; color: var(--color-graphite-600); }
body.vb .vb-menu__item.is-active .vb-menu__count { background: none; color: var(--color-teal); font-weight: 700; }
body.vb .vb-radius.seg-tabs__bar { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.vb .vb-radius .seg-tabs__tab { flex-direction: column; gap: 0; padding: var(--space-2) 0.25rem; }
body.vb .vb-filter__hint { background: var(--color-teal-50); }
body.vb .vb-filter__hint svg { color: var(--color-teal); }

/* partner rows: logo | who + where | actions */
body.vb .vb-tiles { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
body.vb .vb-tiles .ps-card { grid-template-columns: 4rem minmax(0, 1fr); align-items: center; gap: var(--space-5); height: auto; padding: var(--space-5); border-radius: var(--radius-lg); }
body.vb .vb-tiles .ps-card.is-active { box-shadow: var(--shadow-card); }
body.vb .vb-tiles .ps-card__logo { width: 4rem; height: 4rem; align-self: start; }
body.vb .vb-tiles .ps-card__num, body.vb .vb-tiles .ps-card__dist { display: none; }
body.vb .vb-tiles .ps-card__body { gap: var(--space-2); }
body.vb .ps-card__name a { color: inherit; text-decoration: none; }
body.vb .ps-card__name a:hover { color: var(--color-teal); text-decoration: underline; }
body.vb .ps-card__km { display: inline-flex; align-items: center; gap: 0.25rem; font-weight: 700; color: var(--color-digital-black); }
body.vb .ps-card__km svg { width: 1rem; height: 1rem; color: var(--color-teal); }
body.vb .ps-card__meta { gap: var(--space-1) var(--space-3); }
body.vb .vb-tiles .ps-card__act { gap: var(--space-3); margin: 0; }
body.vb .vb-tiles .ps-card__act .btn { height: 2.625rem; padding: 0 var(--space-5); }
@media (min-width: 75rem) {
  body.vb .vb-tiles .ps-card__body { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "top act" "meta act" "info act"; column-gap: var(--space-6); align-items: center; }
  body.vb .vb-tiles .ps-card__top { grid-area: top; }
  body.vb .vb-tiles .ps-card__meta { grid-area: meta; }
  body.vb .vb-tiles .ps-card__info { grid-area: info; }
  body.vb .vb-tiles .ps-card__act { grid-area: act; flex-wrap: wrap; justify-content: flex-end; max-width: 16rem; }
  body.vb .vb-tiles .ps-card__act .btn { flex: 1 1 0; }
  body.vb .vb-tiles .ps-card__more { flex-basis: 100%; justify-content: flex-end; margin: 0; }
}
@media (max-width: 47.99rem) {
  body.vb .vb-tiles .ps-card { grid-template-columns: 3rem minmax(0, 1fr); gap: var(--space-3) var(--space-4); padding: var(--space-4); }
  body.vb .vb-tiles .ps-card__logo { width: 3rem; height: 3rem; }
  body.vb .vb-tiles .ps-card { align-items: start; row-gap: var(--space-2); }
  body.vb .vb-tiles .ps-card__body { display: contents; }
  body.vb .vb-tiles .ps-card__logo { grid-row: 1 / span 3; }
  body.vb .vb-tiles .ps-card__top, body.vb .vb-tiles .ps-card__meta, body.vb .vb-tiles .ps-card__info { grid-column: 2; }
  body.vb .vb-tiles .ps-card__act { margin-top: var(--space-2); }
  body.vb .vb-tiles .ps-card__act { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; }
  body.vb .vb-tiles .ps-card__act .btn { width: 100%; }
  body.vb .vb-tiles .ps-card__more { grid-column: 1 / -1; justify-content: center; margin: 0; }
  body.vb .vb-filter { padding: 0; }
}
.ps-bar__seg.ps-dd { grid-template-rows: 1fr; row-gap: 0; padding: 0; }
.ps-bar__seg.ps-dd .ps-bar__btn { padding: 0.375rem var(--space-4); }

/* partner types under map + list (as on the live page): heading, two cards side by side */
.ps-tiers { margin-top: var(--space-12, 3rem); }
.ps-tiers__title { margin: 0; font-size: var(--text-h3-size); font-weight: 700; line-height: var(--text-h3-lh); letter-spacing: -0.01em; color: var(--color-digital-black); }
.ps-tiers__sub { margin: var(--space-1) 0 var(--space-5); font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-600); }
.ps-tiers__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
@media (min-width: 48rem) { .ps-tiers__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ps-tier { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: var(--space-5); align-items: center; padding: var(--space-5); border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); background: var(--color-white); }
.ps-tier__img { display: block; width: 4.5rem; height: auto; }
.ps-tier__name { margin: 0 0 var(--space-1); font-size: var(--text-h4-size); font-weight: 700; line-height: var(--text-h4-lh); color: var(--color-teal); }
.ps-tier__text { margin: 0; font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-700); }
@media (max-width: 39.99rem) { .ps-tier { grid-template-columns: 3.5rem minmax(0, 1fr); gap: var(--space-4); padding: var(--space-4); } .ps-tier__img { width: 3.5rem; } }

/* Variante B · same search bar as A in the hero band */
.vb-search .ps-bar { text-align: left; }
.vb-search .ps-dd__menu, .vb-search .ps-suggest { text-align: left; }

/* product strip: pinned under the header while the full „Ihre Auswahl“ bar is out of view (layer: content < strip < header 1050) */
.rq-strip { position: fixed; left: 0; right: 0; z-index: 1000; border-bottom: 0.0625rem solid var(--color-teal); background: var(--color-teal-100); box-shadow: var(--shadow-card); }
.rq-strip[hidden] { display: none; }
.rq-strip__in { display: flex; align-items: center; gap: var(--space-3); min-height: 3.5rem; padding-top: var(--space-2); padding-bottom: var(--space-2); }
.rq-strip__img { flex: none; width: 2.5rem; height: 2.5rem; padding: 0.125rem; border-radius: var(--radius); background: var(--color-white); object-fit: contain; }
.rq-strip__txt { display: grid; min-width: 0; margin: 0; }
.rq-strip__lbl { font-size: var(--text-caption-size); line-height: var(--text-caption-lh); color: var(--color-teal); }
.rq-strip__name { overflow: hidden; font-size: var(--text-body-size); font-weight: 700; line-height: var(--text-body-bold-lh); color: var(--color-digital-black); white-space: nowrap; text-overflow: ellipsis; }
.rq-strip__chips { display: flex; gap: var(--space-2); margin: 0 0 0 var(--space-2); padding: 0; list-style: none; }
.rq-strip__chips li { display: inline-flex; align-items: center; gap: 0.375rem; height: 1.75rem; padding: 0 var(--space-3); border: 0.0625rem solid var(--color-teal-100); border-radius: var(--radius-pill); background: var(--color-white); font-size: var(--text-body-sm-size); color: var(--color-graphite-850); white-space: nowrap; }
.rq-strip__go { flex: none; margin-left: auto; padding: 0; border: 0; background: none; font-family: var(--font-family); font-size: var(--text-body-sm-size); font-weight: 700; color: var(--color-teal); text-decoration: underline; text-underline-offset: 0.1875rem; cursor: pointer; }
@media (max-width: 61.99rem) { .rq-strip__chips li + li { display: none; } }
@media (max-width: 39.99rem) { .rq-strip__chips, .rq-strip__go { display: none; } }

/* product bar without close button; colour picker as swatches in the chip row */
.rq-bar { z-index: 510; overflow: visible; padding-right: var(--space-5); }

/* colour accents (kit teal family): icon tiles, teal labels, light-teal locate button, chips with pin */
.ps-bar__ico { grid-column: 1; grid-row: 1 / span 2; align-self: center; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: var(--radius); background: var(--color-teal-50); color: var(--color-teal); }
.ps-bar__ico svg { width: 1.25rem; height: 1.25rem; }
.ps-bar__btn > .ps-bar__lbl, .ps-bar__btn > .ps-bar__val { grid-column: 2; }
.ps-bar__lbl { color: var(--color-teal); }
/* „Mein Standort“ is an action, not a field icon: white with teal outline (like the kit secondary button) */
.ps-bar .ps-find__loc { border-color: var(--color-teal); background: var(--color-white); color: var(--color-teal); font-weight: 700; }
.ps-bar .ps-find__loc:hover { border-color: var(--color-teal); background: var(--color-teal-50); color: var(--color-teal); }
.ps-bar__go { display: inline-flex; align-items: center; gap: var(--space-2); }
.ps-bar__go svg { width: 1.125rem; height: 1.125rem; }
/* city chips: light-teal fill, teal text — set apart from the white search bar */
.ps-find--bar .ps-find__quick button, .vb-chips button { border-color: transparent; background: var(--color-teal-100); color: var(--color-teal-700); }
.ps-find--bar .ps-find__quick button:hover, .vb-chips button:hover { border-color: var(--color-teal); background: var(--color-teal-100); color: var(--color-teal); }
@media (max-width: 39.99rem) { .ps-bar__ico { width: 2rem; height: 2rem; } .ps-bar__ico svg { width: 1rem; height: 1rem; } .ps-bar__seg--km .ps-bar__ico { display: none; } .ps-bar__seg--km .ps-bar__btn > .ps-bar__lbl, .ps-bar__seg--km .ps-bar__btn > .ps-bar__val { grid-column: 1 / 3; } }

/* request mode: two equal halves, never scrolls sideways */
.rq-mode .seg-tabs__bar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; }
.rq-mode .seg-tabs__tab { justify-content: center; min-width: 0; }
@media (max-width: 29.99rem) { .rq-mode .seg-tabs__tab { padding-left: var(--space-2); padding-right: var(--space-2); } .rq-mode .seg-tabs__label { font-size: var(--text-body-sm-size); } }

/* kit .form-control has no line-height (browser default ~1.2 → 43 px input); the kit floating label is placed for line-height 1.4 (46.8 px) */
.rq-modal input.form-control { line-height: 1.4; }

/* product in the request dialog: scannable like the product bar — name, chips, 3 ticks, Art.-Nr. + links */
.rq-prod { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: var(--space-4); align-items: start; padding: var(--space-4); border: 0.0625rem solid var(--color-teal-100); border-radius: var(--radius-lg); background: var(--color-teal-50); }
.rq-prod__img { width: 5rem; height: 5rem; padding: var(--space-1); object-fit: contain; border-radius: var(--radius); background: var(--color-white); }
.rq-prod__txt { display: grid; gap: var(--space-2); min-width: 0; }
.rq-prod__txt p { margin: 0; }
.rq-prod__eyebrow { font-size: var(--text-caption-size); line-height: var(--text-caption-lh); color: var(--color-teal); }
.rq-prod__name { margin-top: calc(-1 * var(--space-1)) !important; font-size: var(--text-body-size); font-weight: 700; line-height: var(--text-body-bold-lh); color: var(--color-digital-black); }
.rq-prod__chips { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.rq-prod__chips li { display: inline-flex; align-items: center; gap: 0.375rem; height: 1.75rem; padding: 0 var(--space-3); border-radius: var(--radius-pill); background: var(--color-white); font-size: var(--text-body-sm-size); color: var(--color-graphite-850); white-space: nowrap; }
.rq-prod__info { display: grid; gap: 0.125rem; margin: 0; padding: 0; list-style: none; font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-700); }
.rq-prod__info li { display: flex; align-items: center; gap: var(--space-2); }
.rq-prod__info svg { width: 1rem; height: 1rem; flex: none; color: var(--color-green); }
.rq-prod__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-5); padding-top: var(--space-2); border-top: 0.0625rem solid var(--color-teal-100); }
.rq-prod__art { margin-top: -0.375rem !important; font-size: var(--text-caption-size); line-height: var(--text-caption-lh); color: var(--color-graphite-600); }
.rq-prod__link { display: inline-flex; align-items: center; gap: var(--space-1); padding: 0; border: 0; background: none; cursor: pointer; font-family: var(--font-family); font-size: var(--text-body-sm-size); font-weight: 700; color: var(--color-teal); text-decoration: none; }
.rq-prod__link:hover { text-decoration: underline; text-underline-offset: 0.1875rem; }
.rq-prod__link svg { width: 0.875rem; height: 0.875rem; }
@media (max-width: 29.99rem) { .rq-prod { grid-template-columns: 3.5rem minmax(0, 1fr); gap: var(--space-3); padding: var(--space-3); } .rq-prod__img { width: 3.5rem; height: 3.5rem; } .rq-prod__info { display: none; } }

/* Variante A · partner card, cleaner: teal number, distance pill, one info line, actions under a hairline; hover/active = teal border only */
body:not(.vb) .ps-card { grid-template-columns: 3.5rem minmax(0, 1fr); gap: var(--space-4); padding: var(--space-4) var(--space-5); transition: border-color 0.15s, background 0.15s; }
body:not(.vb) .ps-card:hover { border-color: var(--color-teal); box-shadow: none; }
body:not(.vb) .ps-card.is-active { border-color: var(--color-teal); background: var(--color-teal-50); box-shadow: none; }
body:not(.vb) .ps-card__logo { width: 3.5rem; height: 3.5rem; }
body:not(.vb) .ps-card__num { top: -0.4375rem; left: -0.4375rem; min-width: 1.375rem; height: 1.375rem; background: var(--color-teal); box-shadow: 0 0 0 0.125rem var(--color-white); }
body:not(.vb) .ps-card__body { gap: var(--space-2); }
body:not(.vb) .ps-card__top { align-items: center; }
body:not(.vb) .ps-card__name { font-size: var(--text-h4-size); line-height: var(--text-h4-lh); }
body:not(.vb) .ps-card__dist { display: inline-flex; align-items: center; gap: 0.25rem; height: 1.75rem; padding: 0 var(--space-3); border-radius: var(--radius-pill); background: var(--color-teal-50); font-size: var(--text-body-sm-size); font-weight: 700; color: var(--color-teal); }
body:not(.vb) .ps-card__dist svg { width: 0.875rem; height: 0.875rem; }
body:not(.vb) .ps-card.is-active .ps-card__dist { background: var(--color-white); }
body:not(.vb) .ps-card__meta { gap: var(--space-3); }
body:not(.vb) .ps-card__info { gap: var(--space-1) var(--space-4); }
body:not(.vb) .ps-card__act { display: flex; align-items: center; gap: var(--space-2); margin: var(--space-1) 0 0; padding: var(--space-3) 0 0; border-top: 0.0625rem solid var(--color-graphite-100); }
body:not(.vb) .ps-card__act .btn { height: 2.5rem; padding: 0 var(--space-5); }
body:not(.vb) .ps-card__act .btn svg { width: 1rem; height: 1rem; margin-right: var(--space-2); }
body:not(.vb) .ps-card__more { margin-left: auto; color: var(--color-teal); }
@media (max-width: 29.99rem) {
  body:not(.vb) .ps-card { grid-template-columns: 2.75rem minmax(0, 1fr); gap: var(--space-3); padding: var(--space-4); }
  body:not(.vb) .ps-card__logo { width: 2.75rem; height: 2.75rem; }
  body:not(.vb) .ps-card__top { flex-wrap: wrap; }
  body:not(.vb) .ps-card__act { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; }
  body:not(.vb) .ps-card__act .btn { width: 100%; padding: 0 var(--space-3); }
  body:not(.vb) .ps-card__more { grid-column: 1 / -1; justify-self: center; margin: 0; }
}

/* partner page, cleaner: no shadow, services as ticks, actions with icons, sentence-case card titles, teal contact icons, today row highlighted */
.pp-hero { box-shadow: none; }
.pp-hero__offer { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-5); margin: var(--space-1) 0 0; padding: 0; list-style: none; font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-800); }
.pp-hero__offer li { display: inline-flex; align-items: center; gap: var(--space-2); }
.pp-hero__offer svg, .pp-hero__note svg { width: 1rem; height: 1rem; flex: none; color: var(--color-green); }
.pp-hero__row .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); }
.pp-hero__row .btn svg { width: 1.125rem; height: 1.125rem; }
.pp-hero__note { display: flex; align-items: flex-start; justify-content: center; gap: var(--space-2); text-align: left; }
.pp-hero__note svg { margin-top: 0.0625rem; }
.pp-h3 { margin: 0 0 var(--space-4); font-size: var(--text-h4-size); font-weight: 700; line-height: var(--text-h4-lh); letter-spacing: -0.005em; text-transform: none; color: var(--color-digital-black); }
.pp-info li { grid-template-columns: 2rem minmax(0, 1fr); align-items: center; }
.pp-info li:first-child { align-items: start; }
.pp-info > li > svg { box-sizing: content-box; width: 1rem; height: 1rem; margin: 0; padding: 0.5rem; border-radius: var(--radius); background: var(--color-teal-50); color: var(--color-teal); }
.pd__hours tr.is-today td { background: var(--color-teal-50); color: var(--color-teal); }
.pd__today { margin-left: var(--space-2); font-size: var(--text-caption-size); font-weight: 400; color: var(--color-teal); }
.pp-near__km { display: inline-flex; align-items: center; gap: 0.25rem; height: 1.5rem; padding: 0 var(--space-2); border-radius: var(--radius-pill); background: var(--color-teal-50); font-size: var(--text-caption-size); color: var(--color-teal); }
.pp-near__km svg { width: 0.75rem; height: 0.75rem; }
.pp-sticky .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); }
.pp-sticky .btn svg { width: 1.125rem; height: 1.125rem; }

/* contact card, compact: short map with „Route planen“ on it, then three tight rows (address in one line, phone, web) */
.pp-mapbox { position: relative; margin-bottom: var(--space-3); }
.pp-mapbox .pp-map { height: 9rem; margin: 0; }
.pp-route { position: absolute; left: var(--space-2); bottom: var(--space-2); z-index: 500; display: inline-flex; align-items: center; gap: 0.375rem; height: 2rem; padding: 0 var(--space-3); border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius); background: var(--color-white); font-size: var(--text-body-sm-size); font-weight: 700; color: var(--color-teal); text-decoration: none; }
.pp-route:hover { border-color: var(--color-teal); }
.pp-route svg { width: 1rem; height: 1rem; }
.pp-card--contact .pp-info { gap: 0; }
.pp-card--contact .pp-info li { grid-template-columns: 1rem minmax(0, 1fr); gap: var(--space-3); align-items: center; padding: var(--space-2) 0; border-top: 0.0625rem solid var(--color-graphite-100); }
.pp-card--contact .pp-info li:first-child { border-top: 0; align-items: center; }
.pp-card--contact .pp-info > li > svg { box-sizing: border-box; width: 1rem; height: 1rem; padding: 0; background: none; color: var(--color-teal); }

/* nearby partners: logo, name, kit badge + city, distance pill — whole row is the link */
.pp-card--near .pp-near { display: grid; gap: var(--space-1); margin: 0 calc(-1 * var(--space-2)); }
.pp-card--near .pp-near li, .pp-card--near .pp-near li:first-child { display: block; padding: 0; border: 0; }
.pp-card--near .pp-near a { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr) auto; gap: var(--space-3); align-items: center; padding: var(--space-2); border-radius: var(--radius); text-decoration: none; transition: background 0.15s; }
.pp-card--near .pp-near a:hover { background: var(--color-paper); }
.pp-near__logo { display: flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius); background: var(--color-white); }
.pp-near__logo img { width: 100%; height: 100%; object-fit: contain; padding: 0.125rem; border-radius: var(--radius); }
.pp-near__logo b { color: var(--color-teal); }
.pp-near__txt { display: grid; gap: 0.25rem; min-width: 0; }
.pp-card--near .pp-near__name { font-size: var(--text-body-sm-size); font-weight: 700; line-height: 1.3; color: var(--color-digital-black); }
.pp-card--near .pp-near a:hover .pp-near__name { color: var(--color-teal); text-decoration: none; }
.pp-card--near .pp-near__meta { display: flex; align-items: center; gap: var(--space-2); min-width: 0; font-size: var(--text-caption-size); line-height: var(--text-caption-lh); color: var(--color-graphite-600); }
.pp-card--near .pp-near__meta .badge { flex: none; }
.pp-card--near .pp-near__meta > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* partner head · actions: main button + note, then two quiet contact options (icon tile, title, subline) */
.pp-hero__act { display: grid; gap: var(--space-2); }
.pp-hero__note { display: flex; align-items: center; justify-content: center; gap: var(--space-1); margin: 0; font-size: var(--text-caption-size); line-height: var(--text-caption-lh); color: var(--color-graphite-600); }
.pp-hero__more { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); margin-top: var(--space-2); padding-top: var(--space-3); border-top: 0.0625rem solid var(--color-graphite-200); }
.pp-hero__more.is-single { grid-template-columns: minmax(0, 1fr); }
.pp-opt { display: flex; align-items: center; gap: var(--space-3); min-width: 0; padding: var(--space-2); border: 0; border-radius: var(--radius); background: none; font-family: var(--font-family); text-align: left; text-decoration: none; color: inherit; cursor: pointer; transition: background 0.15s; }
.pp-opt:hover { background: var(--color-paper); }
.pp-opt__ico { display: grid; place-items: center; flex: none; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--color-teal-50); color: var(--color-teal); }
.pp-opt__ico svg { width: 1.125rem; height: 1.125rem; }
.pp-opt__txt { display: grid; min-width: 0; }
.pp-opt__txt b { overflow: hidden; font-size: var(--text-body-sm-size); font-weight: 700; line-height: var(--text-body-sm-lh); color: var(--color-teal); text-overflow: ellipsis; white-space: nowrap; }
.pp-opt__txt small { font-size: var(--text-caption-size); line-height: var(--text-caption-lh); color: var(--color-graphite-600); }
/* phones: calling sits in the sticky bar at the bottom */
@media (max-width: 61.99rem) { .pp-opt--tel { display: none; } .pp-hero__more { grid-template-columns: minmax(0, 1fr); } }

/* opening hours: appointment hint, caption for phone/appointment times, call-back hint when nothing is known */
.pp-appt { display: inline-flex; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-3); padding: 0.375rem var(--space-3); border-radius: var(--radius-pill); background: var(--color-teal-50); font-size: var(--text-body-sm-size); font-weight: 700; color: var(--color-teal); }
.pp-appt svg { width: 1rem; height: 1rem; }
.pp-hours__cap { margin: 0 0 var(--space-2); font-size: var(--text-caption-size); line-height: var(--text-caption-lh); color: var(--color-graphite-600); }
.pp-hours__ask { margin: var(--space-3) 0 0; font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-700); }
.pp-card--hours .pp-note { margin-top: var(--space-3); font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); }

/* reviews — same build as the live product page (.rvw): overline, title, lead; list left, summary card right */
.pp-rv__eyebrow { margin: 0 0 var(--space-2); font-size: var(--text-caption-size); font-weight: 700; line-height: var(--text-caption-lh); letter-spacing: 0.15em; text-transform: uppercase; color: var(--color-graphite-600); }
.pp-rv .pp-h2 { margin-bottom: var(--space-2); }
.pp-rv__lead { margin: 0 0 var(--space-6); font-size: var(--text-body-lg-size); line-height: var(--text-body-lg-lh); color: var(--color-graphite-700); }
.pp-rv__lead b { color: var(--color-digital-black); }
.pp-rv__main { display: grid; gap: var(--space-6); }
@media (min-width: 75rem) { .pp-rv__main { grid-template-columns: minmax(0, 1fr) 20rem; gap: var(--space-10); align-items: start; } }
@media (max-width: 74.99rem) { .pp-rv__sum { order: -1; } }
.pp-rv__list { display: grid; gap: var(--space-8); align-content: start; }
.pp-rv__item[hidden] { display: none; }
.pp-rv__stars { display: inline-flex; gap: 0.125rem; line-height: 0; color: var(--color-star); }
.pp-rv__stars svg { width: 1.125rem; height: 1.125rem; }
.pp-rv__stars svg.is-empty { color: var(--color-graphite-200); }
.pp-rv__stars--lg svg { width: 1.375rem; height: 1.375rem; }
.pp-rv__text { margin: var(--space-2) 0 0; font-size: var(--text-body-size); line-height: var(--text-body-lh); color: var(--color-graphite-700); }
.pp-rv__foot { display: flex; align-items: center; gap: var(--space-2); margin: var(--space-3) 0 0; font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-700); }
.pp-rv__foot b { color: var(--color-digital-black); }
.pp-rv__foot span::before { content: ""; display: inline-block; width: 0.0625rem; height: 0.75rem; margin-right: var(--space-2); vertical-align: -0.0625rem; background: var(--color-graphite-300); }
.pp-rv__more { justify-self: start; }
.pp-rv__sum { padding: var(--space-6); border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); background: var(--color-paper); }
.pp-rv__top { display: flex; align-items: center; gap: var(--space-4); margin-bottom: var(--space-5); }
.pp-rv__score { font-size: var(--display-4-size); font-weight: 800; line-height: 1; letter-spacing: -0.02em; color: var(--color-digital-black); }
.pp-rv__meta { display: grid; gap: 0.25rem; font-size: var(--text-caption-size); line-height: var(--text-caption-lh); color: var(--color-graphite-700); }
.pp-rv__dist { display: grid; gap: var(--space-2); margin-bottom: var(--space-5); }
.pp-rv__row { display: grid; grid-template-columns: 3.75rem minmax(0, 1fr) 1.5rem; align-items: center; gap: var(--space-2); font-size: var(--text-caption-size); line-height: var(--text-caption-lh); color: var(--color-graphite-700); }
.pp-rv__row > span:last-child { text-align: right; }
.pp-rv__bar { height: 0.375rem; border-radius: var(--radius-pill); background: var(--color-graphite-200); overflow: hidden; }
.pp-rv__bar i { display: block; height: 100%; border-radius: inherit; background: var(--color-star); }

/* opening hours, compact: kit bordered table, all lines visible (graphite-200), tighter rows */
.pd__hours-wrap { overflow: hidden; }
.pd__hours td { height: auto; padding: 0.5rem 0.75rem; border-color: var(--color-graphite-200); }
.pd__hours tbody tr:last-child td { border-bottom: 0; }
.pp-appt { margin-bottom: var(--space-3); padding: 0.25rem 0.625rem; font-size: var(--text-caption-size); }
.pp-appt svg { width: 0.875rem; height: 0.875rem; }
.pp-card--hours .pp-h3 { margin-bottom: var(--space-3); }

/* reviews: hairline between the reviews (as on the live product page list) */
.pp-rv__list { gap: 0; }
.pp-rv__item { padding: var(--space-5) 0; border-top: 0.0625rem solid var(--color-graphite-200); }
.pp-rv__item:first-child { padding-top: 0; border-top: 0; }
.pp-rv__more { margin-top: var(--space-5); }
.pp-rv__lead { padding-bottom: var(--space-6); margin-bottom: var(--space-6); border-bottom: 0.0625rem solid var(--color-graphite-200); }

/* one sidebar card for contact + opening hours */
.pp-hours { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 0.0625rem solid var(--color-graphite-200); }
.pp-hours__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2); margin-bottom: var(--space-3); }
.pp-hours__title { margin: 0; font-size: var(--text-body-size); font-weight: 700; line-height: var(--text-body-bold-lh); color: var(--color-digital-black); }
.pp-hours .pp-appt { margin: 0; }
.pp-hours .pp-note { margin-top: var(--space-2); }

/* hero rating jumps to the reviews */
.pp-hero__rate { text-decoration: none; }
.pp-hero__rate .ps-rating { transition: color 0.15s; }
/* hover: only the number turns teal + underline; stars stay untouched (inline-block does not inherit the underline) */
.pp-hero__rate .ps-rating__stars { display: inline-block; text-decoration: none; }
.pp-hero__rate:hover .ps-rating { color: var(--color-teal); text-decoration: underline; text-decoration-thickness: 0.0625rem; text-underline-offset: 0.1875rem; }

/* reviews: summary as one bar (score · distribution · button) above a full-width list */
.pp-rv__main { grid-template-columns: minmax(0, 1fr) !important; gap: var(--space-6) !important; }
.pp-rv__sum { order: 0; }
.pp-rv__lead { padding-bottom: 0; border-bottom: 0; }
@media (min-width: 75rem) {
  .pp-rv__sum { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-8); padding: var(--space-5) var(--space-6); }
  .pp-rv__sum .pp-rv__top, .pp-rv__sum .pp-rv__dist { margin: 0; }
  .pp-rv__sum .pp-rv__dist { gap: 0.25rem; max-width: 22rem; }
  .pp-rv__sum .btn { width: auto; padding-left: var(--space-6); padding-right: var(--space-6); }
}
.pp-opt__txt small { white-space: nowrap; }

/* partner page · type card when the partner has no own text */
.pp-type { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: var(--space-5); align-items: center; padding: var(--space-5); border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); }
.pp-type__seal { display: block; width: 4.5rem; height: auto; }
.pp-type__lead { margin: 0 0 var(--space-1); font-size: var(--text-body-size); font-weight: 700; line-height: var(--text-body-bold-lh); color: var(--color-digital-black); }
.pp-type__text { margin: 0; font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-700); }

/* „So läuft Ihre Anfrage“: three numbered steps in a row */
.pp-steps { display: grid; gap: var(--space-3); margin: 0; padding: 0; list-style: none; counter-reset: step; }
@media (min-width: 48rem) { .pp-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pp-steps li { counter-increment: step; display: grid; grid-template-columns: 2rem minmax(0, 1fr); column-gap: var(--space-3); padding: var(--space-4); border-radius: var(--radius-lg); background: var(--color-paper); }
.pp-steps li::before { content: counter(step); grid-row: 1 / span 2; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--color-teal); font-size: var(--text-body-sm-size); font-weight: 700; color: var(--color-white); }
.pp-steps b { font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-digital-black); }
.pp-steps span { font-size: var(--text-caption-size); line-height: var(--text-caption-lh); color: var(--color-graphite-700); }

/* no reviews yet: one compact bar */
.pp-rv__empty { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-4); margin-top: var(--space-4); padding: var(--space-4) var(--space-5); border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); background: var(--color-paper); }
.pp-rv__empty p { display: grid; margin: 0; }
.pp-rv__empty b { font-size: var(--text-body-size); color: var(--color-digital-black); }
.pp-rv__empty span { font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-700); }
@media (max-width: 47.99rem) { .pp-rv__empty { grid-template-columns: minmax(0, 1fr); } }

/* nearby partners at the end of the main column: three cards in a row */
.pp-nearby .pp-near { display: grid; gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
@media (min-width: 48rem) { .pp-nearby .pp-near { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pp-nearby .pp-near li { display: block; padding: 0; border: 0; }
.pp-nearby .pp-near a { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); grid-template-areas: "logo txt" "km km"; gap: var(--space-3); align-items: center; height: 100%; padding: var(--space-4); border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); text-decoration: none; transition: border-color 0.15s; }
.pp-nearby .pp-near a:hover { border-color: var(--color-teal); }
.pp-nearby .pp-near__logo { grid-area: logo; }
.pp-nearby .pp-near__txt { grid-area: txt; display: grid; gap: 0.25rem; min-width: 0; }
.pp-nearby .pp-near__km { grid-area: km; justify-self: start; }
.pp-nearby .pp-near__name { font-size: var(--text-body-sm-size); font-weight: 700; line-height: 1.3; color: var(--color-digital-black); }
.pp-nearby .pp-near__meta { display: flex; align-items: center; gap: var(--space-2); min-width: 0; font-size: var(--text-caption-size); color: var(--color-graphite-600); }
.pp-nearby .pp-near__meta .badge { flex: none; }
.pp-nearby .pp-near__meta > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* product bar · „Farbe ändern“ link on the right, colour list opens below it (same look as the search dropdowns) */
.rq-change { position: relative; grid-column: 2; justify-self: start; }
.rq-change__btn { display: inline-flex; align-items: center; gap: var(--space-2); padding: 0; border: 0; background: none; font-family: var(--font-family); font-size: var(--text-body-sm-size); font-weight: 700; color: var(--color-teal); text-decoration: underline; text-underline-offset: 0.1875rem; cursor: pointer; white-space: nowrap; }
.rq-change__btn:hover { color: var(--color-teal-600); }
.rq-change__btn svg { width: 1rem; height: 1rem; }
.rq-change__menu { position: absolute; top: calc(100% + 0.5rem); left: 0; z-index: 20; display: grid; gap: 0.125rem; width: max-content; min-width: 18rem; max-width: calc(100vw - 2rem); margin: 0; padding: var(--space-2); list-style: none; border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); background: var(--color-white); box-shadow: var(--shadow-modal); }
.rq-change__menu[hidden] { display: none; }
.rq-change__menu li { display: grid; grid-template-columns: 1rem minmax(0, 1fr) auto; align-items: center; gap: var(--space-3); padding: var(--space-2) var(--space-3); border-radius: var(--radius); font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-850); cursor: pointer; outline: none; }
.rq-change__menu li:hover, .rq-change__menu li:focus-visible { background: var(--color-paper); }
.rq-change__menu li.is-active { background: var(--color-teal-50); }
.rq-change__menu li b { font-weight: 400; }
.rq-change__menu li.is-active b { font-weight: 700; color: var(--color-teal); }
.rq-change__menu small { font-size: var(--text-caption-size); color: var(--color-graphite-600); white-space: nowrap; }
.rq-change__menu .rq-bar__sw { width: 1rem; height: 1rem; }
@media (min-width: 80rem) {
  .rq-bar { grid-template-columns: auto minmax(0, 1fr) auto auto; }
  .rq-bar__chips { flex-wrap: nowrap; }
  .rq-change { grid-column: auto; justify-self: end; padding-left: var(--space-4); }
  .rq-change__menu { left: auto; right: 0; }
}
@media (max-width: 47.99rem) { .rq-change { grid-column: 1 / -1; } }

/* Variante A · card actions, quieter: small „Anfragen“ button, „Anrufen“ and „Details“ as text links, no divider */
body:not(.vb) .ps-card__act { gap: var(--space-5); margin-top: var(--space-1); padding-top: 0; border-top: 0; }
body:not(.vb) .ps-card__act .btn { height: 2.25rem; padding: 0 var(--space-4); font-size: var(--text-body-sm-size); }
.ps-card__call { display: inline-flex; align-items: center; gap: 0.375rem; font-size: var(--text-body-sm-size); font-weight: 700; color: var(--color-teal); text-decoration: none; }
.ps-card__call:hover { text-decoration: underline; text-underline-offset: 0.1875rem; }
.ps-card__call svg { width: 1rem; height: 1rem; }
@media (max-width: 29.99rem) {
  body:not(.vb) .ps-card__act { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-3); }
  body:not(.vb) .ps-card__act .btn { padding: 0 var(--space-3); }
  body:not(.vb) .ps-card__act .btn { width: auto; }
  body:not(.vb) .ps-card__more { margin-left: auto; justify-self: auto; }
}

/* reviews · compact head: title + „Partner bewerten“ link, one score line, bars only when ratings differ */
.pp-rv__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-4); }
.pp-rv__head .pp-h2 { margin: 0; }
.pp-rv__score-line { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); margin-top: var(--space-3); }
.pp-rv .pp-rv__score { font-size: var(--text-h2-size); font-weight: 800; line-height: 1; letter-spacing: -0.02em; color: var(--color-digital-black); }
.pp-rv__count { font-size: var(--text-body-sm-size); line-height: var(--text-body-sm-lh); color: var(--color-graphite-700); }
.pp-rv > .pp-rv__dist { display: grid; gap: 0.125rem; max-width: 18rem; margin: var(--space-3) 0 0; }
.pp-rv > .pp-rv__dist .pp-rv__row { grid-template-columns: 2rem minmax(0, 1fr) 1.25rem; }
.pp-rv .pp-rv__main { margin-top: var(--space-5); padding-top: var(--space-5); border-top: 0.0625rem solid var(--color-graphite-200); }

/* inline text link as <button> (e.g. „Rückruf“ in the opening hours): looks like the kit teal link */
.pp-textlink { display: inline; padding: 0; border: 0; background: none; font: inherit; font-weight: 700; color: var(--color-teal); text-decoration: underline; text-underline-offset: 0.1875rem; cursor: pointer; }
.pp-textlink:hover { color: var(--color-teal-600); }

/* „Partner bewerten“ = kit secondary button in the reviews head */
.pp-rv__head { align-items: center; }
.btn.pp-rv__write { height: 2.5rem; padding: 0 var(--space-5); font-size: var(--text-body-sm-size); color: var(--color-teal); text-decoration: none; }
.btn.pp-rv__write:hover { text-decoration: none; }

/* Variante A · partner card v3: info left, right column = distance (top) + phone icon + „Anfragen“ (bottom); card opens details */
body:not(.vb) .ps-card.ps-card--a { grid-template-columns: 3.5rem minmax(0, 1fr) auto; align-items: stretch; gap: var(--space-4); }
body:not(.vb) .ps-card--a .ps-card__logo { align-self: start; }
body:not(.vb) .ps-card--a .ps-card__body { display: grid; align-content: start; gap: var(--space-2); }
body:not(.vb) .ps-card__side { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; gap: var(--space-3); }
body:not(.vb) .ps-card--a .ps-card__act { display: flex; align-items: center; gap: var(--space-2); margin: 0; padding: 0; border: 0; }
body:not(.vb) .ps-card__tel { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--color-teal-50); color: var(--color-teal); transition: background 0.15s; }
body:not(.vb) .ps-card__tel:hover { background: var(--color-teal-100); }
body:not(.vb) .ps-card__tel svg { width: 1rem; height: 1rem; }
body:not(.vb) .btn.ps-card__ask { height: 2.25rem; padding: 0 var(--space-4); font-size: var(--text-body-sm-size); }
@media (max-width: 29.99rem) {
  body:not(.vb) .ps-card.ps-card--a { grid-template-columns: 2.75rem minmax(0, 1fr); }
  body:not(.vb) .ps-card--a .ps-card__side { grid-column: 1 / -1; flex-direction: row; align-items: center; }
}

/* card v3: right column = distance (top) + „Details →“ (bottom); pin tooltip with the partner name */
body:not(.vb) .ps-card--a .ps-card__more { margin: 0; font-size: var(--text-body-sm-size); font-weight: 700; }
.leaflet-tooltip.ps-tip { padding: 0.25rem 0.5rem; border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius); box-shadow: var(--shadow-card); font-family: var(--font-family); font-size: var(--text-caption-size); font-weight: 700; color: var(--color-digital-black); }

/* Variante A · results as one framed module: map | list, count bar on top of the list, partners as rows (not floating cards) */
@media (min-width: 62rem) {
  body:not(.vb) .ps-app { gap: 0; border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); overflow: hidden; background: var(--color-white); }
  body:not(.vb) .ps-map { border-radius: 0; }
  body:not(.vb) .ps-panel { border-left: 0.0625rem solid var(--color-graphite-200); }
  body:not(.vb) .ps-summary { margin: 0; padding: var(--space-3) var(--space-5); border-bottom: 0.0625rem solid var(--color-graphite-200); background: var(--color-paper); }
  body:not(.vb) .ps-list { padding-right: 0; }
  body:not(.vb) .ps-intro { padding: var(--space-5); }
}
body:not(.vb) .ps-list { gap: 0; }
body:not(.vb) .ps-card.ps-card--a { border: 0; border-bottom: 0.0625rem solid var(--color-graphite-200); border-radius: 0; padding: var(--space-4) var(--space-5); box-shadow: none; }
body:not(.vb) .ps-card.ps-card--a:hover { background: var(--color-paper); }
body:not(.vb) .ps-card.ps-card--a.is-active { background: var(--color-teal-50); }
body:not(.vb) .ps-card.ps-card--a.is-active .ps-card__dist { background: var(--color-white); }
@media (min-width: 62rem) { body:not(.vb) .ps-list .ps-card.ps-card--a:last-child { border-bottom: 0; } }
/* phones/tablets: the list gets the same frame */
@media (max-width: 61.99rem) {
  body:not(.vb) .ps-list:not(:empty) { border: 0.0625rem solid var(--color-graphite-200); border-radius: var(--radius-lg); overflow: hidden; }
  body:not(.vb) .ps-list .ps-card.ps-card--a:last-child { border-bottom: 0; }
}
.pp-rv__none { margin: var(--space-3) 0 0; font-size: var(--text-body-size); line-height: var(--text-body-lh); color: var(--color-graphite-700); }
.pp-rv__none b { color: var(--color-digital-black); }

/* results module lower: fits a laptop screen together with the search */
@media (min-width: 62rem) { body:not(.vb) .ps-app { height: clamp(28rem, calc(100vh - 14rem), 36rem); } }
body:not(.vb) .ps-card.ps-card--a { padding-top: var(--space-3); padding-bottom: var(--space-3); }

/* nearby cards, restacked: logo + distance on top, then name, then badge + city (wraps, never cut) */
.pp-nearby .pp-near a { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "logo km" "txt txt"; align-items: start; gap: var(--space-3); }
.pp-nearby .pp-near__km { justify-self: end; }
.pp-nearby .pp-near__txt { gap: var(--space-2); }
.pp-nearby .pp-near__meta { flex-wrap: wrap; gap: var(--space-1) var(--space-2); }
.pp-nearby .pp-near__meta > span:last-child { overflow: visible; white-space: normal; }
.pp-nearby .pp-near a:hover .pp-near__name { color: var(--color-digital-black); text-decoration: none; }

/* contact rows: same optical icon size, strokes never clipped */
.pp-card--contact .pp-info > li > svg { width: 1.125rem; height: 1.125rem; overflow: visible; }
.pp-card--contact .pp-info li { grid-template-columns: 1.125rem minmax(0, 1fr); }
svg { overflow: visible; }

/* ═════ Phones (≤47.99rem): compact Variante A + partner page ═════ */
@media (max-width: 47.99rem) {
  /* search card: no icon tiles, tighter fields, chips in one swipe row */
  .ps-find.ps-find--bar { --pad: var(--space-3); margin-bottom: var(--space-4); }
  .ps-bar__ico { display: none; }
  .ps-bar__seg { padding: 0.375rem var(--space-3); }
  .ps-bar__seg--place { grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--space-2); }
  .ps-bar__seg--place > .ps-bar__lbl, .ps-bar__seg--place > .ps-bar__field { grid-column: 1; }
  .ps-bar .ps-find__loc { grid-column: 2; width: 2rem; height: 2rem; padding: 0; justify-content: center; }
  .ps-bar__seg.ps-dd .ps-bar__btn { grid-template-columns: minmax(0, 1fr) auto; padding: 0.375rem var(--space-3); }
  .ps-bar__btn > .ps-bar__lbl, .ps-bar__btn > .ps-bar__val { grid-column: 1; }
  .ps-bar__btn > svg { grid-column: 2; }
  .ps-bar__go { min-height: 0; height: 2.5rem; }
  .ps-find--bar .ps-find__quick { flex-wrap: nowrap; overflow-x: auto; margin-top: var(--space-3); padding-bottom: 0.125rem; scrollbar-width: none; }
  .ps-find--bar .ps-find__quick::-webkit-scrollbar { display: none; }
  .ps-find--bar .ps-find__quick button { flex: none; height: 1.875rem; padding: 0 0.625rem; }
  /* product bar: smaller picture, chips and spacing */
  .rq-bar { gap: var(--space-2) var(--space-3); margin-bottom: var(--space-4); padding: var(--space-3); grid-template-columns: 3.5rem minmax(0, 1fr); }
  .rq-bar__media { width: 3.5rem; height: 3.5rem; }
  .rq-bar__img { width: 3rem; height: 3rem; }
  .rq-bar__eyebrow { font-size: var(--text-caption-size); }
  .rq-bar__name { margin-top: 0.125rem !important; font-size: var(--text-body-size); line-height: var(--text-body-bold-lh); }
  .rq-bar__chips { gap: 0.375rem; }
  .rq-bar__chips li { height: 1.5rem; padding: 0 var(--space-2); font-size: var(--text-caption-size); }
  .rq-change__btn { font-size: var(--text-caption-size); }
  /* results: smaller summary + Liste/Karte switch, lower map */
  .ps-summary { font-size: var(--text-caption-size); line-height: var(--text-caption-lh); margin-bottom: var(--space-2); }
  .ps-switch { margin-bottom: var(--space-2); }
  .ps-switch .seg-tabs__tab { padding: 0.375rem 0.75rem; font-size: var(--text-body-sm-size); }
  .ps-switch .seg-tabs__icon svg { width: 1rem; height: 1rem; }
  .ps-mapwrap { height: clamp(16rem, 50vh, 24rem); min-height: 0; }
  body:not(.vb) .ps-card.ps-card--a { padding: var(--space-3); }
  /* partner page: less air between sections and inside cards */
  .pp-sec + .pp-sec { margin-top: var(--space-6); padding-top: var(--space-6); }
  .pp-card { padding: var(--space-4); }
  .pp-hero { margin-bottom: var(--space-4); }
  /* nearby partners: one row each — logo | name + badge + city | distance */
  .pp-nearby .pp-near { gap: var(--space-2); }
  .pp-nearby .pp-near a { grid-template-columns: 2.5rem minmax(0, 1fr) auto; grid-template-areas: "logo txt km"; align-items: center; gap: var(--space-3); padding: var(--space-3); }
  .pp-nearby .pp-near__logo { width: 2.5rem; height: 2.5rem; }
  .pp-nearby .pp-near__km { justify-self: end; align-self: start; }
  .pp-nearby .pp-near__txt { gap: 0.25rem; }
}
@media (max-width: 47.99rem) {
  .ps-bar__seg--km .ps-bar__btn > .ps-bar__lbl, .ps-bar__seg--km .ps-bar__btn > .ps-bar__val { grid-column: 1; }
  .ps-mapwrap { height: clamp(14rem, 42vh, 20rem); }
  .ps-steps { padding: var(--space-3) var(--space-3) var(--space-3) var(--space-6); gap: var(--space-1); font-size: var(--text-caption-size); }
}
@media (max-width: 47.99rem) {
  /* partner head on phones: smaller logo + name, so badge and city fit on one line */
  .pp-hero { gap: var(--space-4); padding: var(--space-4); }
  .pp-hero__id { gap: var(--space-3); }
  .pp-hero__logo { width: 3rem; height: 3rem; }
  .pp-hero__name { font-size: var(--text-h3-size); line-height: var(--text-h3-lh); }
  .pp-hero__meta { gap: var(--space-1) var(--space-2); }
  .pp-hero__offer { gap: 0.125rem; }
}
@media (max-width: 61.99rem) {
  /* the sticky bar already shows „Angebot anfragen“ + „Anrufen“ — no second copy in the head */
  .pp-hero__act > .btn-primary { display: none; }
  .pp-hero__more { margin-top: 0; padding-top: var(--space-3); }
}

/* breadcrumb: always one row, swipe sideways on narrow screens (no visible scrollbar) */
.breadcrumb { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.breadcrumb::-webkit-scrollbar { display: none; }
.breadcrumb-item { flex: none; white-space: nowrap; }
@media (max-width: 61.99rem) {
  /* phones/tablets: „Rückruf anfordern“ = full-width kit secondary button (the sticky bar holds Anfragen + Anrufen) */
  .pp-hero__more { margin-top: 0; padding-top: 0; border-top: 0; }
  .pp-opt { justify-content: center; gap: var(--space-2); height: 2.75rem; padding: 0 var(--space-4); border: 0.125rem solid var(--color-teal); border-radius: var(--radius); }
  .pp-opt:hover { background: var(--color-teal-100); }
  .pp-opt__ico { width: auto; height: auto; background: none; }
  .pp-opt__ico svg { width: 1.125rem; height: 1.125rem; }
  .pp-opt__txt small { display: none; }
  .pp-opt__txt b { font-size: var(--text-body-size); line-height: 1; }
}

/* Variante A · phones/tablets: count + compact Liste/Karte toggle in one row; active = teal fill */
@media (max-width: 61.99rem) {
  body:not(.vb) .ps-resbar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-3); }
  body:not(.vb) .ps-resbar .ps-summary { flex: 1 1 auto; min-width: 0; margin: 0; }
  body:not(.vb) .ps-resbar .ps-summary .alert { margin: 0; }
  body:not(.vb) .ps-resbar .ps-switch { flex: none; margin: 0; }
  body:not(.vb) .ps-switch .seg-tabs__bar { width: auto; gap: 0.125rem; padding: 0.1875rem; border-color: var(--color-graphite-200); }
  body:not(.vb) .ps-switch .seg-tabs__tab { flex: none; height: 2rem; gap: 0.375rem; padding: 0 0.75rem; font-size: var(--text-body-sm-size); font-weight: 700; color: var(--color-teal); }
  body:not(.vb) .ps-switch .seg-tabs__tab:hover { background: var(--color-teal-50); color: var(--color-teal); }
  body:not(.vb) .ps-switch .seg-tabs__tab.is-active { background: var(--color-teal); color: var(--color-white); }
  body:not(.vb) .ps-switch .seg-tabs__icon svg { width: 1rem; height: 1rem; color: currentColor; }
}
/* the alert (no partner in range) needs the full width: toggle goes below it */
@media (max-width: 61.99rem) { body:not(.vb) .ps-resbar:has(.alert) { flex-direction: column; align-items: stretch; } body:not(.vb) .ps-resbar:has(.alert) .ps-switch { align-self: flex-end; } }
@media (max-width: 47.99rem) { .rq-ta textarea { overflow: hidden; resize: none; } }

/* callback time („Wann passt es Ihnen?“): never wider than the dialog — 4 equal columns, 2 × 2 on phones */
.rq-when { grid-template-columns: minmax(0, 1fr); }
.rq-when .seg-tabs__bar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.25rem; overflow: visible; }
.rq-when .seg-tabs__tab { min-width: 0; padding: 0.625rem 0.5rem; justify-content: center; }
@media (max-width: 29.99rem) { .rq-when .seg-tabs__bar { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rq-when .seg-tabs__tab { color: var(--color-teal); font-weight: 700; }
.rq-when .seg-tabs__tab:hover { background: var(--color-teal-50); color: var(--color-teal); }
.rq-when .seg-tabs__tab.is-active { background: var(--color-teal); color: var(--color-white); }
@media (max-width: 47.99rem) {
  /* product bar on phones: picture left, text block runs to the right edge (no space kept for the old close button) */
  .rq-bar { padding-right: var(--space-3); }
  .rq-bar__txt { padding-right: 0; }
}
/* long German product names: hyphenate so lines fill to the right edge (needs <html lang="de">) */
.rq-prod__name, .rq-bar__name, .rq-strip__name { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; }
@media (max-width: 47.99rem) {
  .rq-prod { grid-template-columns: 3.5rem minmax(0, 1fr); gap: var(--space-3); padding: var(--space-3); }
  .rq-prod__img { width: 3.5rem; height: 3.5rem; }
}
/* callback time on phones: one compact row of four (2 × 2 only below 22rem) */
@media (max-width: 47.99rem) {
  .rq-when .seg-tabs__bar { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.125rem; padding: 0.1875rem; }
  .rq-when .seg-tabs__tab { height: 2.25rem; padding: 0 0.125rem; font-size: var(--text-caption-size); letter-spacing: 0; }
  .rq-when .ps-filter__lbl { margin-bottom: var(--space-1); }
}
@media (max-width: 21.99rem) { .rq-when .seg-tabs__bar { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* product chips on phones = live category page pills (.pcard__pill): 22px, 12px/700, 2px 9px, pill radius */
@media (max-width: 47.99rem) {
  .rq-bar__chips, .rq-prod__chips { gap: 0.375rem; }
  .rq-bar__chips li, .rq-prod__chips li, .rq-strip__chips li { height: 1.375rem; padding: 0.125rem 0.5625rem; gap: 0.3125rem; border-radius: var(--radius-pill); font-size: var(--text-caption-size); font-weight: 700; line-height: 1.2; }
  .rq-bar__chips .rq-bar__sw, .rq-prod__chips .rq-bar__sw { width: 0.625rem; height: 0.625rem; }
}
@media (max-width: 47.99rem) {
  /* „Mein Standort“ on phones: icon only, no frame */
  .ps-bar .ps-find__loc, .ps-bar .ps-find__loc:hover { border-color: transparent; background: none; }
  .ps-bar .ps-find__loc svg { width: 1.25rem; height: 1.25rem; }
}
@media (max-width: 47.99rem) {
  /* divider lines inset like the content; one line above and one below „Leistung“, none above „Umkreis“ */
  .ps-bar__seg--type, .ps-bar__seg--km { border-top: 0; }
  .ps-bar__seg--type::before, .ps-bar__seg--type::after { content: ""; position: absolute; left: var(--space-3); right: var(--space-3); height: 0.0625rem; background: var(--color-graphite-200); }
  .ps-bar__seg--type::before { top: 0; }
  .ps-bar__seg--type::after { bottom: 0; }
  /* location pin: plain icon on the right, centred, in line with the „Leistung“ arrow (same 1.25rem box, same right inset) */
  .ps-bar .ps-find__loc { align-self: center; width: 1.25rem; height: 1.25rem; margin: 0; padding: 0; }
  .ps-bar__seg--place { padding-right: var(--space-3); }
}
/* phones: request sheet leaves room above (page stays visible, sheet reads as a layer) */
@media (max-width: 47.99rem) {
  .rq-modal .modal-dialog { max-height: calc(100vh - 4rem); max-height: calc(100dvh - 4rem); border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
}
