/* Template-System v3 – Block-Styles (Phase 0b). Werte kommen aus Site-Design-Tokens (--pb-*), Fallbacks = BHKW. */
.pb-page {
  --_primary: var(--pb-color-primary, #0b3fbf);
  --_primary-contrast: var(--pb-color-primary-contrast, #ffffff);
  --_heading: var(--pb-color-heading, #0f1f3d);
  --_text: var(--pb-color-text, #3a4660);
  --_surface: var(--pb-color-surface, #f4f6fa);
  --_border: var(--pb-color-border, #dde3ee);
  --_radius: var(--pb-radius-card, 12px);
  --_container: var(--pb-container-max, 1320px);
  --_font-heading: var(--pb-font-heading, inherit);
  color: var(--_text);
}

.pb-container { max-width: var(--_container); margin: 0 auto; padding: 0 1rem; }
.pb-section { padding: 3rem 0; }
.pb-section__title { color: var(--_heading); font-family: var(--_font-heading); font-size: clamp(1.4rem, 2.5vw, 2rem); font-weight: 700; margin: 0 0 .5rem; }
.pb-section__subtitle { margin: 0 0 1.5rem; }
.pb-empty { padding: 1rem; border: 1px dashed var(--_border); border-radius: var(--_radius); }
.pb-button { display: inline-block; padding: .8rem 1.4rem; border-radius: 999px; background: var(--_primary); color: var(--_primary-contrast); font-weight: 600; text-decoration: none; }
.pb-button:hover { filter: brightness(1.08); color: var(--_primary-contrast); }
.pb-icon { width: 1.75rem; height: 1.75rem; flex: none; }
.pb-icon--img { display: block; object-fit: contain; }
/* Bild-Zoom/Ausschnitt aus dem Builder (jedes Bildfeld, ImageFx): --pb-img-zoom (Faktor), --pb-img-pos (Fokuspunkt x% y%) */
img[style*="--pb-img-"] { transform: scale(var(--pb-img-zoom, 1)); transform-origin: var(--pb-img-pos, 50% 50%); object-position: var(--pb-img-pos, 50% 50%); }
/* Verkleinert: ganzes Bild zeigen statt beschnittenem Ausschnitt */
img[style*="--pb-img-fit: contain"] { object-fit: contain !important; }
.pb-topic__link, .pb-hero__media, .pb-header__logo, .pb-tcard__crop { overflow: hidden; }
.pb-tcard__crop { position: absolute; inset: 0; display: block; }

/* Preview */
.pb-preview-banner { position: relative; z-index: 1000; padding: .3rem 1rem; background: #ffb400; color: #1d1d1d; font-size: .8rem; font-weight: 600; line-height: 1.3; text-align: center; }

/* Hero */
.pb-hero { padding: 0; background: var(--_surface); }
.pb-hero__grid { display: grid; gap: 2rem; align-items: center; padding-top: 3rem; padding-bottom: 3rem; }
@media (min-width: 992px) { .pb-hero__grid { grid-template-columns: 1fr 1fr; min-height: 420px; } }
.pb-hero__eyebrow { margin: 0 0 .75rem; color: var(--_primary); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: .85rem; }
.pb-hero__kicker { margin: -.35rem 0 .4rem; color: var(--_heading); font-weight: 800; text-transform: uppercase; font-size: clamp(1.05rem, 2vw, 1.45rem); line-height: 1.15; }
.pb-hero__accent { display: block; width: 64px; height: 4px; margin: 0 0 1rem; background: var(--_primary); border-radius: 2px; }
.pb-hero__headline { margin: 0 0 1rem; color: var(--_heading); font-family: var(--_font-heading); font-size: clamp(2rem, 4.5vw, 3.4rem); line-height: 1.1; font-weight: 800; }
.pb-hero__text { margin: 0 0 1.5rem; font-size: 1.1rem; max-width: 40ch; }
.pb-hero__media { position: relative; }
.pb-hero__image { display: block; width: 100%; height: auto; border-radius: var(--_radius); object-fit: cover; aspect-ratio: 4 / 3; }
.pb-hero__placeholder { aspect-ratio: 4 / 3; border-radius: var(--_radius); background: linear-gradient(135deg, var(--_primary), var(--_heading)); opacity: .85; }
.pb-hero--background { position: relative; overflow: hidden; min-height: 420px; display: flex; align-items: center; background: var(--_heading); }
.pb-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .45; }
.pb-hero__overlay { position: relative; width: 100%; padding-top: 4rem; padding-bottom: 4rem; }
.pb-hero--background .pb-hero__headline, .pb-hero--background .pb-hero__text { color: #fff; }

/* Grid helper */
.pb-grid { display: grid; gap: 1.25rem; margin: 0; padding: 0; list-style: none; }
.pb-grid--xs-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.pb-grid--xs-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pb-grid--xs-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (min-width: 576px) {
  .pb-grid--sm-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .pb-grid--sm-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pb-grid--sm-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pb-grid--sm-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 768px) {
  .pb-grid--md-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pb-grid--md-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pb-grid--md-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pb-grid--md-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .pb-grid--md-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
  .pb-grid--lg-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pb-grid--lg-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pb-grid--lg-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pb-grid--lg-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .pb-grid--lg-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

/* Category grid – card_arrow */
.pb-card { margin: 0; }
.pb-card__link { display: flex; flex-direction: column; height: 100%; overflow: hidden; border: 1px solid var(--_border); border-radius: var(--_radius); background: #fff; color: var(--_heading); text-decoration: none; transition: box-shadow .2s ease, transform .2s ease; }
.pb-card__link:hover { box-shadow: 0 10px 24px rgba(15, 31, 61, .12); transform: translateY(-2px); color: var(--_heading); }
.pb-card__media { display: block; aspect-ratio: 4 / 3; background: var(--_surface); overflow: hidden; }
.pb-card__media img { display: block; width: 100%; height: 100%; object-fit: var(--pb-img-fit, cover); }
.pb-card__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--_surface), var(--_border)); }
.pb-card__body { display: flex; flex: 1 1 auto; align-items: center; justify-content: space-between; gap: .75rem; padding: 1rem 1.1rem; }
.pb-card__title { flex: 1 1 auto; min-width: 0; font-weight: 700; overflow-wrap: anywhere; hyphens: auto; }
/* Pfeil-Kreis bleibt bei langen Titeln rund (nicht zusammendrücken) */
.pb-card__arrow { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--_primary); color: var(--_primary-contrast); }
.pb-card__arrow .pb-icon { width: 1.1rem; height: 1.1rem; }
/* Kategorie-Kacheln: Hover-Effekt wählbar (wie Themen-Kacheln) – .pb-categories--hover-{lift|zoom|tint|none} */
.pb-categories .pb-card__link { position: relative; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
/* 2-px-Hover-Rand als eigene Ebene ÜBER Bild und Inhalt (ein inset-Schatten am Link würde vom Bild verdeckt) – gleiche Optik wie Vorteile-Leiste */
.pb-categories .pb-card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; box-shadow: inset 0 0 0 2px var(--_primary); opacity: 0; transition: opacity .25s ease; pointer-events: none; }
.pb-categories .pb-card__media img { transition: transform .4s ease; }
.pb-categories .pb-card__arrow { transition: transform .25s ease, background-color .25s ease; }
.pb-categories--hover-lift .pb-card__link:hover, .pb-categories--hover-zoom .pb-card__link:hover,
.pb-categories--hover-lift .pb-card__link:focus-visible, .pb-categories--hover-zoom .pb-card__link:focus-visible { transform: translateY(-6px); border-color: var(--_primary); box-shadow: 0 18px 40px rgba(15, 31, 61, .25), 0 4px 12px rgba(15, 31, 61, .15); }
.pb-categories:not(.pb-categories--hover-none) .pb-card__link:hover::after, .pb-categories:not(.pb-categories--hover-none) .pb-card__link:focus-visible::after { opacity: 1; }
.pb-categories--hover-lift .pb-card__link:hover .pb-card__media img { transform: scale(calc(var(--pb-img-zoom, 1) * 1.03)); }
.pb-categories--hover-zoom .pb-card__link:hover .pb-card__media img { transform: scale(calc(var(--pb-img-zoom, 1) * 1.08)); }
.pb-categories--hover-tint .pb-card__link:hover, .pb-categories--hover-tint .pb-card__link:focus-visible { transform: none; border-color: var(--_primary); box-shadow: 0 10px 24px rgba(15, 31, 61, .12); }
.pb-categories:not(.pb-categories--hover-none) .pb-card__link:hover .pb-card__arrow { transform: translateX(4px) scale(1.08); }
.pb-categories--hover-none .pb-card__link:hover { transform: none; box-shadow: none; }
@media (prefers-reduced-motion: reduce) { .pb-categories .pb-card__link, .pb-categories .pb-card__media img, .pb-categories .pb-card__arrow { transition: none; } }

/* Category grid – numbered */
.pb-numbered__link { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem; border-radius: var(--_radius); background: var(--_primary); color: var(--_primary-contrast); text-decoration: none; min-height: 84px; }
.pb-numbered__link:hover { filter: brightness(1.08); color: var(--_primary-contrast); }
.pb-numbered__index { font-size: 1.6rem; font-weight: 800; opacity: .6; }
.pb-numbered__title { flex: 1; font-weight: 700; }
.pb-numbered__image { width: 56px; height: 56px; object-fit: cover; border-radius: 8px; background: #fff; }

/* USP bar */
.pb-usp { padding: 2rem 0; background: var(--_surface); }
.pb-usp__list { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.pb-usp__item { display: flex; align-items: center; gap: .9rem; }
.pb-usp--divided .pb-usp__item + .pb-usp__item { border-left: 1px solid var(--_border); padding-left: 1rem; }
@media (max-width: 767.98px) { .pb-usp--divided .pb-usp__item + .pb-usp__item { border-left: 0; padding-left: 0; } }
.pb-usp__icon { display: inline-flex; color: var(--_primary); }
.pb-usp__text { display: flex; flex-direction: column; }
.pb-usp__title { color: var(--_heading); }
.pb-usp__subtitle { font-size: .9rem; }
.pb-usp__item--boxed { flex-direction: column; align-items: flex-start; gap: .5rem; padding: 1.25rem; border: 1px solid var(--_border); border-radius: var(--_radius); background: #fff; }
/* Vorteile-Leiste (divided/boxed/with_cta) – Builder-Optionen (usp_bar/_design.html.twig):
   Icon-Größe --pb-usp-icon-set, .pb-usp--icon-{plain|circle|square}, .pb-usp--hover-{lift|tint|none}, Hover-Feinschliff, .pb-usp--no-dividers */
.pb-usp { --pb-usp-icon: var(--pb-usp-icon-set, 1.75rem); --pb-usp-h-shadow-a: var(--pb-usp-h-shadow, .25); --pb-usp-h-border-w: var(--pb-usp-h-border, 2px); --pb-usp-h-border-c: var(--pb-usp-h-border-color, var(--_primary)); --pb-usp-h-lift-y: var(--pb-usp-h-lift, 6px); }
.pb-usp--divided .pb-usp__item, .pb-usp--with-cta .pb-usp__item { padding: .75rem 1rem; border-radius: var(--_radius); }
.pb-usp__item { transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease; }
.pb-usp__icon { align-items: center; justify-content: center; flex: none; overflow: hidden; transition: background-color .2s ease, color .2s ease; }
.pb-usp__icon .pb-icon { width: var(--pb-usp-icon); height: var(--pb-usp-icon); }
.pb-usp--icon-circle .pb-usp__icon, .pb-usp--icon-square .pb-usp__icon { width: calc(var(--pb-usp-icon) * 1.75); height: calc(var(--pb-usp-icon) * 1.75); background: #fff; box-shadow: 0 2px 8px rgba(15, 31, 61, .08); }
.pb-usp--boxed.pb-usp--icon-circle .pb-usp__icon, .pb-usp--boxed.pb-usp--icon-square .pb-usp__icon { background: var(--_surface); box-shadow: none; }
.pb-usp--icon-circle .pb-usp__icon { border-radius: 50%; }
.pb-usp--icon-square .pb-usp__icon { border-radius: var(--_radius); }
.pb-usp--no-dividers .pb-usp__item + .pb-usp__item { border-left-color: transparent; }
.pb-usp--hover-lift .pb-usp__item:hover { transform: translateY(calc(var(--pb-usp-h-lift-y) * -1)); background: #fff;
  box-shadow: inset 0 0 0 var(--pb-usp-h-border-w) var(--pb-usp-h-border-c), 0 18px 40px rgba(15, 31, 61, var(--pb-usp-h-shadow-a)), 0 4px 12px rgba(15, 31, 61, calc(var(--pb-usp-h-shadow-a) * .6)); }
.pb-usp--hover-tint .pb-usp__item:hover { background: var(--_primary); border-color: var(--_primary); }
.pb-usp--hover-tint .pb-usp__item:hover .pb-usp__title, .pb-usp--hover-tint .pb-usp__item:hover .pb-usp__subtitle, .pb-usp--hover-tint .pb-usp__item:hover .pb-usp__icon { color: var(--_primary-contrast, #fff); }
.pb-usp--hover-tint.pb-usp--icon-plain .pb-usp__item:hover .pb-icon--img { filter: brightness(0) invert(1); }
.pb-usp--hover-tint.pb-usp--icon-circle .pb-usp__item:hover .pb-usp__icon, .pb-usp--hover-tint.pb-usp--icon-square .pb-usp__item:hover .pb-usp__icon { color: var(--_primary); }
@media (prefers-reduced-motion: reduce) { .pb-usp__item { transition: none; } .pb-usp--hover-lift .pb-usp__item:hover { transform: none; } }

/* Rich text */
.pb-richtext--narrow .pb-richtext__inner { max-width: 820px; }
.pb-richtext__inner p { margin: 0 0 1rem; line-height: 1.7; }

/* ===== Phase 1 – Regionen, Header, Navigation, Teilefinder, Footer ===== */
.pb-region { color: var(--_text); }

/* Header */
.pb-header { background: #fff; border-bottom: 1px solid var(--_border); }
.pb-header__topbar { background: var(--_surface); border-bottom: 1px solid var(--_border); font-size: .85rem; }
.pb-header__topbar-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.5rem; padding-top: .4rem; padding-bottom: .4rem; }
.pb-header__tagline { color: var(--_heading); font-weight: 600; }
.pb-header__contact { display: inline-flex; flex-wrap: wrap; gap: 1.25rem; }
.pb-header__contact a { display: inline-flex; align-items: center; gap: .35rem; color: var(--_text); text-decoration: none; }
.pb-header__contact a:hover { color: var(--_primary); }
.pb-header__contact .pb-icon { width: 1rem; height: 1rem; }
@media (max-width: 575.98px) {
    .pb-header__topbar-inner { flex-wrap: wrap; gap: .3rem 1rem; }
    .pb-header__tagline { display: block; flex: 1 1 100%; min-width: 0; overflow: hidden; white-space: nowrap; }
    .pb-header__tagline-text { display: inline-block; white-space: nowrap; }
    .pb-header__tagline.is-marquee { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 .6rem, #000 calc(100% - .6rem), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 .6rem, #000 calc(100% - .6rem), transparent 100%); }
    .pb-header__tagline.is-marquee .pb-header__tagline-text { padding: 0 .6rem; animation: pb-tagline-marquee var(--pb-marquee-duration, 10s) ease-in-out infinite alternate; }
    .pb-header__contact { flex: 1 1 100%; justify-content: space-between; gap: .5rem; }
}
@keyframes pb-tagline-marquee { 0%, 15% { transform: translateX(0); } 85%, 100% { transform: translateX(var(--pb-marquee-shift, 0)); } }
@media (prefers-reduced-motion: reduce) { .pb-header__tagline.is-marquee .pb-header__tagline-text { animation: none; white-space: normal; } .pb-header__tagline.is-marquee { white-space: normal; -webkit-mask-image: none; mask-image: none; } }
.pb-header__main { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem 1.5rem; padding-top: .9rem; padding-bottom: .9rem; }
.pb-header__logo { display: inline-flex; align-items: center; text-decoration: none; color: var(--_heading); }
.pb-header__logo img { display: block; max-height: 56px; width: auto; }
.pb-header__logo-text { font-weight: 800; font-size: 1.25rem; }
.pb-header__search { display: flex; max-width: 640px; width: 100%; justify-self: center; }
.pb-header__search-input { flex: 1; min-width: 0; padding: .65rem .9rem; border: 1px solid var(--_border); border-right: 0; border-radius: 999px 0 0 999px; font: inherit; }
.pb-header__search-input:focus { outline: none; border-color: var(--_primary); box-shadow: 0 0 0 .18rem color-mix(in srgb, var(--_primary) 20%, transparent); }
.pb-header__search-button { display: inline-flex; align-items: center; justify-content: center; padding: 0 1.1rem; border: 0; border-radius: 0 999px 999px 0; background: var(--_primary); color: var(--_primary-contrast); }
.pb-header__actions { display: flex; align-items: center; gap: .6rem; }
.pb-header__action-wrap { display: inline-flex; }
.pb-header__action { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 1px solid var(--_border); border-radius: 10px; background: #fff; color: var(--_heading); text-decoration: none; }
.pb-header__action:hover { border-color: var(--_primary); color: var(--_primary); }
.pb-header__action--whatsapp { color: #25d366; border-color: #25d366; }
.pb-header__action--whatsapp:hover { background: #25d366; color: #fff; }
/* Sprachauswahl (HeaderBlock::LOCALES_MARKER) */
.pb-header__locale { position: relative; display: inline-flex; }
.pb-header__locale-toggle { width: auto; min-width: 42px; padding: 0 .6rem; gap: .35rem; cursor: pointer; font-weight: 600; font-size: .85rem; }
.pb-header__locale-toggle svg { width: 1.1rem; height: 1.1rem; }
.pb-header__locale-menu { position: absolute; top: calc(100% + .35rem); right: 0; z-index: 1100; min-width: 13rem; max-height: min(70vh, 26rem); overflow-y: auto; margin: 0; padding: .35rem; list-style: none; background: #fff; border: 1px solid var(--_border); border-radius: 10px; box-shadow: 0 12px 26px rgba(15, 23, 42, .15); }
.pb-header__locale-item { display: flex; align-items: center; gap: .6rem; padding: .5rem .65rem; border-radius: 8px; color: var(--_heading); text-decoration: none; white-space: nowrap; }
.pb-header__locale-item:hover { background: #eef4ff; color: var(--_primary); }
.pb-header__locale-item.is-active { background: #e8efff; font-weight: 600; }
.pb-header__locale-item-code { display: inline-flex; min-width: 1.9rem; justify-content: center; padding: .1rem .3rem; border: 1px solid var(--_border); border-radius: 6px; font-size: .75rem; font-weight: 700; }
@media (max-width: 575.98px) {
    .pb-header__locale-toggle .pb-header__locale-code { display: none; }
    .pb-header__locale-toggle { padding: 0; width: 42px; }
    .pb-header__actions { position: relative; }
    .pb-header__locale { position: static; }
    .pb-header__locale-menu { right: 0; max-width: calc(100vw - 1rem); }
    .pb-header__main { grid-template-columns: minmax(0, 1fr) auto; gap: .75rem; }
    .pb-header__logo { min-width: 0; max-width: 100%; justify-self: start; }
    .pb-header__logo img { max-width: 100%; height: auto; object-fit: contain; object-position: left center; }
    .pb-header__actions { gap: .4rem; }
    .pb-header__action { width: 40px; height: 40px; }
    .pb-header__locale-toggle { width: 40px; min-width: 40px; }
}
.pb-header__action svg { width: 22px; height: 22px; }
@media (max-width: 767.98px) {
  .pb-header__main { grid-template-columns: 1fr auto; }
  .pb-header__search { grid-column: 1 / -1; grid-row: 2; max-width: none; }
}

/* Hauptnavigation */
.pb-mainnav { background: var(--_primary); }
.pb-mainnav__list { display: flex; flex-wrap: wrap; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.pb-mainnav__link { display: block; padding: .8rem 1rem; color: var(--_primary-contrast); font-weight: 600; text-decoration: none; border-bottom: 3px solid transparent; }
.pb-mainnav__link:hover, .pb-mainnav__link.is-active { color: var(--_primary-contrast); border-bottom-color: var(--_primary-contrast); background: rgba(255, 255, 255, .08); }
@media (max-width: 767.98px) { .pb-mainnav__list { flex-wrap: nowrap; overflow-x: auto; } .pb-mainnav__link { white-space: nowrap; } }

/* Hero mit überlappendem Teilefinder */
.pb-hero--finder-overlap .pb-hero__grid, .pb-hero--finder-overlap .pb-hero__overlay { padding-bottom: 7rem; }

/* Teilefinder */
.pb-finder { padding: 2rem 0; }
.pb-finder--overlap { position: relative; z-index: 2; margin-top: -6rem; padding-top: 0; }
.pb-finder__box { padding: 1.5rem; border: 1px solid var(--_border); border-radius: var(--_radius); background: #fff; }
.pb-finder__box--raised { box-shadow: 0 18px 40px rgba(15, 31, 61, .16); border-color: transparent; }
.pb-finder__title { margin: 0 0 .25rem; color: var(--_heading); font-family: var(--_font-heading); font-size: clamp(1.2rem, 2vw, 1.6rem); font-weight: 700; }
.pb-finder__subtitle { margin: 0 0 1rem; }
.pb-finder__form { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); align-items: end; }
.pb-finder__field { display: flex; flex-direction: column; gap: .35rem; }
.pb-finder__label { font-size: .85rem; font-weight: 600; color: var(--_heading); }
.pb-finder__control { width: 100%; min-height: 46px; padding: .55rem .8rem; border: 1px solid var(--_border); border-radius: 10px; background: #fff; font: inherit; color: var(--_text); }
.pb-finder__control:focus { outline: none; border-color: var(--_primary); box-shadow: 0 0 0 .18rem color-mix(in srgb, var(--_primary) 20%, transparent); }
.pb-finder__control:disabled { opacity: .6; }
.pb-finder__submit { width: 100%; min-height: 46px; border: 0; cursor: pointer; }
.pb-finder__chips { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin-top: 1rem; }
.pb-finder__chips-label { font-size: .85rem; font-weight: 600; color: var(--_heading); }
.pb-finder__chip-list { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.pb-finder__chip { display: inline-block; padding: .3rem .8rem; border: 1px solid var(--_border); border-radius: 999px; background: var(--_surface); color: var(--_heading); font-size: .85rem; text-decoration: none; }
.pb-finder__chip:hover { border-color: var(--_primary); color: var(--_primary); }
/* Teilefinder Box-Stil „primary“: Box in Akzentfarbe, weiße Schrift, weiße Felder, dunkler Button, Outline-Chips */
.pb-finder__box--primary { background: var(--_primary); border-color: transparent; border-radius: calc(var(--_radius) * 1.5); padding: 1.75rem 2rem; color: #fff; box-shadow: 0 18px 40px rgba(15, 31, 61, .2); }
.pb-finder__box--primary .pb-finder__title, .pb-finder__box--primary .pb-finder__subtitle, .pb-finder__box--primary .pb-finder__label, .pb-finder__box--primary .pb-finder__chips-label { color: #fff; }
.pb-finder__box--primary .pb-finder__control { border-color: transparent; }
.pb-finder__box--primary .pb-finder__control:focus { border-color: #fff; box-shadow: 0 0 0 .2rem rgba(255, 255, 255, .45); }
.pb-finder__box--primary .pb-finder__submit { background: #0f1b2d; color: #fff; }
.pb-finder__box--primary .pb-finder__submit:hover { background: #1b2a42; }
.pb-finder__box--primary .pb-finder__chips { flex-direction: column; align-items: flex-start; }
.pb-finder__box--primary .pb-finder__chip { min-width: 7.5rem; padding: .45rem 1.1rem; border-color: rgba(255, 255, 255, .7); border-radius: 6px; background: transparent; color: #fff; text-align: center; font-weight: 600; }
.pb-finder__box--primary .pb-finder__chip:hover { background: #fff; border-color: #fff; color: var(--_primary); }

/* USP mit CTA */
.pb-usp__cta-grid { display: grid; gap: 1.5rem; align-items: center; }
@media (min-width: 992px) { .pb-usp__cta-grid { grid-template-columns: 1fr auto; } }
.pb-usp__cta { display: flex; flex-direction: column; align-items: flex-start; gap: .6rem; }
.pb-usp__cta-title { color: var(--_heading); }

/* Footer */
.pb-footer { margin-top: 3rem; background: var(--_heading); color: rgba(255, 255, 255, .78); }
.pb-footer__grid { display: grid; gap: 2rem; padding-top: 3rem; padding-bottom: 2rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.pb-footer__brand { display: block; margin-bottom: .6rem; color: #fff; font-size: 1.1rem; }
.pb-footer__about, .pb-footer__address, .pb-footer__line { margin: 0 0 .5rem; font-size: .9rem; line-height: 1.6; }
.pb-footer__title { margin: 0 0 .8rem; color: #fff; font-size: .9rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.pb-footer__links { margin: 0; padding: 0; list-style: none; }
.pb-footer__links li + li { margin-top: .45rem; }
.pb-footer__link { color: rgba(255, 255, 255, .78); font-size: .9rem; text-decoration: none; }
.pb-footer__link:hover { color: #fff; text-decoration: underline; }
.pb-footer__bottom { padding: 1rem 0; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .85rem; }

/* ===== Phase 2 – Portal: Vorteile mit Icons, Themen-Kacheln ===== */
.pb-features { padding: 2.5rem 0; }
.pb-feature { display: flex; gap: .9rem; align-items: flex-start; margin: 0; }
.pb-feature__icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 3rem; height: 3rem; border-radius: 50%; background: color-mix(in srgb, var(--_primary) 10%, #fff); color: var(--_primary); }
.pb-feature__body { display: flex; flex-direction: column; gap: .2rem; }
.pb-feature__title { color: var(--_heading); }
.pb-feature__text { font-size: .92rem; line-height: 1.5; }
.pb-features--centered .pb-feature { flex-direction: column; align-items: center; text-align: center; padding: 1.25rem; border: 1px solid var(--_border); border-radius: var(--_radius); background: #fff; }
.pb-features--centered .pb-feature__icon { width: 3.5rem; height: 3.5rem; }

.pb-topic { margin: 0; }
.pb-topic__link { position: relative; display: block; overflow: hidden; height: 100%; min-height: 260px; border-radius: var(--_radius); background: var(--_heading); color: #fff; text-decoration: none; isolation: isolate; }
a.pb-topic__link:hover { color: #fff; }
.pb-topic__image, .pb-topic__placeholder { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .35s ease; }
.pb-topic__placeholder { background: linear-gradient(135deg, var(--_primary), var(--_heading)); }
.pb-topic__link::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15, 31, 61, .05) 20%, rgba(15, 31, 61, .85) 100%); }
a.pb-topic__link:hover .pb-topic__image, a.pb-topic__link:hover .pb-topic__placeholder { transform: scale(calc(var(--pb-img-zoom, 1) * 1.05)); }
.pb-topic__overlay { position: absolute; inset: auto 0 0 0; display: flex; flex-direction: column; gap: .35rem; padding: 1.25rem; }
.pb-topic__icon { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; margin-bottom: .25rem; border-radius: 10px; background: rgba(255, 255, 255, .16); backdrop-filter: blur(4px); }
.pb-topic__title { font-size: 1.25rem; font-weight: 800; }
.pb-topic__text { font-size: .92rem; line-height: 1.45; color: rgba(255, 255, 255, .85); }
.pb-topic__cta { display: inline-flex; align-items: center; gap: .35rem; margin-top: .35rem; font-weight: 700; }
.pb-topic__cta .pb-icon { width: 1.1rem; height: 1.1rem; transition: transform .2s ease; }
a.pb-topic__link:hover .pb-topic__cta .pb-icon { transform: translateX(3px); }
.pb-topic__badge { align-self: flex-start; margin-top: .35rem; padding: .2rem .65rem; border-radius: 999px; background: rgba(255, 255, 255, .2); font-size: .8rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.pb-topic--soon .pb-topic__link { cursor: default; }
.pb-topic--soon .pb-topic__image, .pb-topic--soon .pb-topic__placeholder { filter: grayscale(.85); opacity: .7; }

/* ===== Phase 3 – Editor-Vorschau (nur im Editor-iframe, Klasse von page-builder-preview.js) ===== */
.pb-in-editor [data-pb-edit-section] { cursor: pointer; }
.pb-in-editor [data-pb-edit-section]:hover { outline: 2px dashed rgba(11, 63, 191, .55); outline-offset: -2px; }
.pb-in-editor [data-pb-edit-section].pb-edit-selected { outline: 3px solid #0b3fbf; outline-offset: -3px; }

/* ===== Vorlage „PS Startseite“: hero/showcase, usp_bar/icon_columns, topic_tiles/cards ===== */
/* Hero showcase */
.pb-showcase { position: relative; isolation: isolate; padding: 0; overflow: hidden; background: #fff; }
/* Hintergrundbild als eigene Ebene (hero/_background.html.twig): --pb-bg-zoom (50–250 %), --pb-bg-pos (x% y%), --pb-bg-size (cover | contain bei Zoom < 100 %), --pb-bg-opacity */
.pb-showcase__bg { position: absolute; inset: 0; z-index: -1; background-repeat: no-repeat; background-size: var(--pb-bg-size, cover); background-position: var(--pb-bg-pos, 50% 50%); transform: scale(var(--pb-bg-zoom, 1)); transform-origin: var(--pb-bg-pos, 50% 50%); opacity: var(--pb-bg-opacity, 1); pointer-events: none; }
.pb-showcase::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255, 255, 255, .92) 0%, rgba(255, 255, 255, .7) 45%, rgba(255, 255, 255, 0) 75%); pointer-events: none; }
/* Hero „split_image_right“ mit optionalem Hintergrundbild (nutzt .pb-showcase__bg) */
.pb-hero--has-bg { position: relative; isolation: isolate; overflow: hidden; }
.pb-hero--has-bg .pb-hero__grid { position: relative; }
/* Hero: Akzentzeile der Überschrift (z. B. „ERSATZTEILE“) + Häkchen-Liste */
.pb-headline-accent { color: var(--_primary); }
.pb-checklist { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: .6rem; }
.pb-checklist__item { display: flex; align-items: center; gap: .65rem; font-weight: 600; line-height: 1.35; color: var(--_heading); }
.pb-checklist__icon { flex: none; color: var(--_primary); }
.pb-hero--background .pb-checklist__item { color: #fff; }
/* Hero „split_image_right“: Bildgröße 20–160 % (--pb-hero-img-scale); größer als die Spalte darf überstehen */
.pb-hero--img-scaled .pb-hero__media { display: flex; justify-content: center; overflow: visible; }
.pb-hero--img-scaled .pb-hero__image { flex: none; width: calc(var(--pb-hero-img-scale, 1) * 100%); max-width: none; }
@media (max-width: 991.98px) { .pb-hero--img-scaled .pb-hero__image { max-width: 100%; } }
.pb-showcase__grid { position: relative; display: grid; gap: 1.5rem; align-items: center; padding-top: 2.5rem; padding-bottom: 2rem; }
.pb-showcase__eyebrow { margin: 0 0 .6rem; color: var(--_primary); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: .8rem; }
.pb-showcase__kicker { margin: -.2rem 0 .35rem; color: var(--_heading); font-family: var(--_font-heading); font-weight: 800; text-transform: uppercase; letter-spacing: .01em; font-size: clamp(1.1rem, 2.2vw, 1.6rem); line-height: 1.15; }
.pb-showcase__headline { margin: 0 0 1rem; color: var(--_heading); font-family: var(--_font-heading); font-size: clamp(1.9rem, 5vw, 3.6rem); line-height: 1.05; font-weight: 800; text-transform: uppercase; letter-spacing: -.01em; }
.pb-showcase__text { margin: 0 0 1.25rem; font-size: 1.05rem; line-height: 1.55; max-width: 42ch; }
.pb-showcase__accent { display: block; width: 72px; height: 4px; margin: 0 0 1.5rem; background: var(--_primary); border-radius: 2px; }
.pb-showcase__media { position: relative; display: flex; justify-content: center; }
/* Freigestellte PNGs haben oft einen eingebackenen, halbtransparenten Bodenschatten bis an den Bildrand → harte Rechteck-Kante
   auf hellem Hintergrund. Ränder daher weich ausblenden; kein drop-shadow (würde die Schattenfläche als Kasten nachzeichnen). */
.pb-showcase__image { display: block; flex: none; width: calc(var(--pb-showcase-img-scale, 1) * 100%); max-width: calc(var(--pb-showcase-img-scale, 1) * 680px); height: auto; object-fit: contain;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 5%, #000 95%, transparent 100%), linear-gradient(to bottom, #000 0, #000 86%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(to right, transparent 0, #000 5%, #000 95%, transparent 100%), linear-gradient(to bottom, #000 0, #000 86%, transparent 100%);
  mask-composite: intersect; }
.pb-showcase__placeholder { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 16 / 10; border: 2px dashed var(--_border); border-radius: var(--_radius); color: var(--_text); background: rgba(255, 255, 255, .6); }
@media (min-width: 768px) {
  .pb-showcase__grid { grid-template-columns: 5fr 6fr; min-height: var(--pb-showcase-min-h, 0); padding-top: var(--pb-showcase-pad, 2.25rem); padding-bottom: var(--pb-showcase-pad, 2.25rem); }
}
/* Höhe richtet sich nach dem Inhalt; Mindesthöhe/Innenabstand optional aus dem Builder (--pb-showcase-min-h, --pb-showcase-pad) */
.pb-showcase__copy > :last-child { margin-bottom: 0; }
@media (max-width: 767.98px) {
  .pb-showcase::before { background: linear-gradient(180deg, rgba(255, 255, 255, .9) 0%, rgba(255, 255, 255, .55) 60%, rgba(255, 255, 255, .2) 100%); }
  .pb-showcase__copy { text-align: left; }
}

/* USP icon_columns: Desktop Icon/Titel/Untertitel mittig + Trennlinien, Handy nur Icon-Kreise + Popup.
   Builder-Optionen: --pb-uspc-icon (px), .pb-uspc--icon-{plain|circle|square}, .pb-uspc--hover-{lift|tint|none}, .pb-uspc--no-dividers */
.pb-uspc { --pb-uspc-icon: var(--pb-uspc-icon-set, 42px); padding: 1.25rem 0; background: linear-gradient(180deg, rgba(255, 255, 255, .92), var(--_surface)); border-bottom: 1px solid var(--_border); }
/* Hover-Feinschliff aus dem Builder (Standard kräftig): Schatten-Deckkraft, Randbreite/-farbe (Inset-Ring, kein Verspringen), Anheben */
.pb-uspc { --pb-uspc-h-shadow-a: var(--pb-uspc-h-shadow, .25); --pb-uspc-h-border-w: var(--pb-uspc-h-border, 2px); --pb-uspc-h-border-c: var(--pb-uspc-h-border-color, var(--_primary)); --pb-uspc-h-lift-y: var(--pb-uspc-h-lift, 6px); }
.pb-uspc__list { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: .5rem; margin: 0; padding: 0; list-style: none; }
.pb-uspc__item { position: relative; display: flex; justify-content: center; min-width: 0; }
.pb-uspc__item + .pb-uspc__item::before { content: ""; position: absolute; left: -.25rem; top: 12%; bottom: 12%; border-left: 1px solid rgba(15, 31, 61, .12); transition: opacity .2s ease; }
.pb-uspc--no-dividers .pb-uspc__item + .pb-uspc__item::before { display: none; }
/* Die ganze Kachel ist die Schaltfläche → Hover wirkt auf die ganze Kachel */
.pb-uspc__trigger { display: flex; flex-direction: column; align-items: center; gap: .8rem; width: 100%; height: 100%; padding: 1rem 1.25rem; border: 1px solid transparent; border-radius: var(--_radius); background: transparent; color: inherit; font: inherit; text-align: center; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease; }
.pb-uspc__trigger:focus-visible { outline: 2px solid var(--_primary); outline-offset: 2px; }
.pb-uspc--hover-lift .pb-uspc__trigger:hover, .pb-uspc--hover-lift .pb-uspc__trigger:focus-visible { transform: translateY(calc(var(--pb-uspc-h-lift-y) * -1)); background: #fff; border-color: transparent;
  box-shadow: inset 0 0 0 var(--pb-uspc-h-border-w) var(--pb-uspc-h-border-c), 0 18px 40px rgba(15, 31, 61, var(--pb-uspc-h-shadow-a)), 0 4px 12px rgba(15, 31, 61, calc(var(--pb-uspc-h-shadow-a) * .6)); }
.pb-uspc--hover-tint .pb-uspc__trigger:hover, .pb-uspc--hover-tint .pb-uspc__trigger:focus-visible { background: var(--_primary); border-color: var(--_primary); }
.pb-uspc--hover-tint .pb-uspc__trigger:hover *, .pb-uspc--hover-tint .pb-uspc__trigger:focus-visible * { color: var(--_primary-contrast); }
.pb-uspc--hover-tint .pb-uspc__trigger:hover .pb-icon--img, .pb-uspc--hover-tint .pb-uspc__trigger:focus-visible .pb-icon--img { filter: brightness(0) invert(1); }
/* Trennlinien neben einer gehoverten Kachel ausblenden */
.pb-uspc:not(.pb-uspc--hover-none) .pb-uspc__item:hover::before, .pb-uspc:not(.pb-uspc--hover-none) .pb-uspc__item:hover + .pb-uspc__item::before { opacity: 0; }
/* Icon: frei (Standard), im Kreis oder im Quadrat; Größe über --pb-uspc-icon */
.pb-uspc__icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: calc(var(--pb-uspc-icon) * 1.25); height: calc(var(--pb-uspc-icon) * 1.25); color: var(--_primary); transition: background-color .2s ease, color .2s ease; }
.pb-uspc__icon .pb-icon { width: var(--pb-uspc-icon); height: var(--pb-uspc-icon); stroke-width: 1.75; }
.pb-uspc__icon .pb-icon--img { object-fit: contain; }
.pb-uspc--icon-circle .pb-uspc__icon, .pb-uspc--icon-square .pb-uspc__icon { width: calc(var(--pb-uspc-icon) * 1.75); height: calc(var(--pb-uspc-icon) * 1.75); background: var(--_surface); }
.pb-uspc--icon-circle .pb-uspc__icon { border-radius: 50%; }
.pb-uspc--icon-square .pb-uspc__icon { border-radius: var(--_radius); }
.pb-uspc__label { display: flex; flex-direction: column; align-items: center; gap: .55rem; min-width: 0; }
.pb-uspc__title { color: var(--_primary); font-weight: 800; font-size: .9rem; line-height: 1.25; letter-spacing: .02em; text-transform: uppercase; }
.pb-uspc__subtitle { color: var(--_primary); font-size: .85rem; line-height: 1.5; }
@media (max-width: 991.98px) {
  .pb-uspc { --pb-uspc-icon: 34px; }
  .pb-uspc__trigger { gap: .5rem; padding: .6rem .5rem; }
  .pb-uspc__subtitle { display: none; }
  .pb-uspc__title { font-size: .8rem; }
}
/* Handy: nur runde Icons, Antippen öffnet das Fenster */
@media (max-width: 575.98px) {
  .pb-uspc { --pb-uspc-icon: 26px; padding: 1rem 0; }
  .pb-uspc__item + .pb-uspc__item::before { display: none; }
  .pb-uspc__trigger { padding: .25rem; transform: none !important; box-shadow: none !important; background: transparent !important; border-color: transparent !important; }
  .pb-uspc__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .pb-uspc .pb-uspc__icon { width: 3.25rem; height: 3.25rem; border-radius: 50%; background: #fff; border: 1px solid var(--_border); box-shadow: 0 4px 10px rgba(15, 31, 61, .08); }
  .pb-uspc__trigger:active .pb-uspc__icon { background: var(--_primary); color: var(--_primary-contrast); }
}
.pb-uspc__modal { position: fixed; inset: auto 0 0 0; width: 100%; max-width: 480px; max-height: 85vh; overflow-y: auto; margin: 0 auto; padding: 2rem 1.5rem 1.75rem; border: 0; border-radius: 18px 18px 0 0; background: #fff; color: var(--_text); text-align: center; box-shadow: 0 -10px 40px rgba(15, 31, 61, .25); }
@media (min-width: 576px) { .pb-uspc__modal { inset: 0; margin: auto; height: fit-content; border-radius: 18px; } }
.pb-uspc__modal::backdrop { background: rgba(15, 31, 61, .45); }
.pb-uspc__close { position: absolute; top: .5rem; right: .75rem; width: 2.25rem; height: 2.25rem; border: 0; border-radius: 50%; background: var(--_surface); color: var(--_heading); font-size: 1.4rem; line-height: 1; cursor: pointer; }
.pb-uspc__modal-icon { display: inline-flex; align-items: center; justify-content: center; width: 4rem; height: 4rem; margin-bottom: .75rem; border-radius: 50%; background: var(--_primary); color: var(--_primary-contrast); }
.pb-uspc__modal-icon .pb-icon { width: 2rem; height: 2rem; }
.pb-uspc__modal-icon:has(.pb-icon--img) { background: var(--_surface); }
.pb-uspc__modal-icon .pb-icon--img { width: 2.5rem; height: 2.5rem; object-fit: contain; }
.pb-uspc__modal-title { display: block; color: var(--_heading); font-size: 1.2rem; font-weight: 800; }
.pb-uspc__modal-subtitle { margin: .25rem 0 0; color: var(--_primary); font-weight: 600; }
.pb-uspc__modal-text { margin: .85rem 0 0; line-height: 1.55; }
/* Topic tiles cards */
.pb-cards { background: var(--_surface); }
.pb-cards .pb-section__title { text-align: center; text-transform: uppercase; letter-spacing: .02em; }
.pb-cards .pb-section__subtitle { text-align: center; }
.pb-cards__grid { gap: 1rem; }
.pb-tcard { margin: 0; }
.pb-tcard__link { position: relative; display: flex; flex-direction: column; height: 100%; overflow: hidden; border: 1px solid var(--_border); border-radius: var(--_radius); background: #fff; color: inherit; text-decoration: none; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.pb-tcard__icon { transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .25s ease; }
.pb-tcard__title { transition: color .25s ease; }
/* Hover der ganzen Kachel (Builder: „Hover-Effekt“) – auch für „Demnächst“-Kacheln.
   Deutlich sichtbar: anheben + Schatten + Rahmen in Primärfarbe + Icon-Kreis gefüllt (Bilder mit weißem Hintergrund zeigen sonst kaum Wirkung). */
.pb-cards--hover-lift .pb-tcard__link:hover, .pb-cards--hover-zoom .pb-tcard__link:hover,
.pb-cards--hover-lift .pb-tcard__link:focus-visible, .pb-cards--hover-zoom .pb-tcard__link:focus-visible { color: inherit; transform: translateY(-6px); border-color: var(--_primary); box-shadow: 0 18px 36px rgba(15, 31, 61, .18); }
.pb-cards--hover-lift .pb-tcard__link:hover .pb-tcard__icon, .pb-cards--hover-zoom .pb-tcard__link:hover .pb-tcard__icon,
.pb-cards--hover-lift .pb-tcard__link:focus-visible .pb-tcard__icon, .pb-cards--hover-zoom .pb-tcard__link:focus-visible .pb-tcard__icon { background: var(--_primary); border-color: var(--_primary); color: var(--_primary-contrast); transform: translate(-50%, 50%) scale(1.08); }
.pb-cards--hover-lift .pb-tcard__link:hover .pb-tcard__image { transform: scale(calc(var(--pb-img-zoom, 1) * 1.03)); }
@media (prefers-reduced-motion: reduce) { .pb-tcard__link, .pb-tcard__icon, .pb-tcard__image { transition: none; } }
.pb-tcard__image { transition: transform .35s ease; }
.pb-cards--hover-zoom .pb-tcard__link:hover .pb-tcard__image { transform: scale(calc(var(--pb-img-zoom, 1) * 1.06)); }
.pb-cards--hover-tint .pb-tcard__link:hover { color: inherit; border-color: var(--_primary); box-shadow: 0 0 0 2px var(--_primary) inset, 0 10px 24px rgba(15, 31, 61, .1); }
.pb-cards--hover-tint .pb-tcard__link:hover .pb-tcard__icon { background: var(--_primary); border-color: var(--_primary); color: var(--_primary-contrast); }
.pb-tcard__media { position: relative; display: block; aspect-ratio: 4 / 3; background: linear-gradient(180deg, #fff, var(--_surface)); }
.pb-tcard__image { display: block; width: 100%; height: 100%; object-fit: cover; }
.pb-tcard__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--_surface), var(--_border)); }
.pb-tcard__icon { position: absolute; left: 50%; bottom: 0; transform: translate(-50%, 50%); display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border: 2px solid var(--_border); border-radius: 50%; background: #fff; color: var(--_primary); box-shadow: 0 4px 12px rgba(15, 31, 61, .12); }
.pb-tcard__icon .pb-icon { width: 1.5rem; height: 1.5rem; }
.pb-tcard__badge { position: absolute; top: .5rem; left: .5rem; padding: .15rem .55rem; border-radius: 999px; background: var(--_heading); color: #fff; font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.pb-tcard__body { display: flex; flex-direction: column; gap: .35rem; padding: 2rem .9rem 1.1rem; text-align: center; }
.pb-tcard__title { color: var(--_primary); font-size: .95rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.pb-tcard__text { font-size: .85rem; line-height: 1.45; }
.pb-tcard--soon .pb-tcard__link { cursor: default; }
.pb-tcard--soon .pb-tcard__image { filter: grayscale(.8); opacity: .75; }
@media (max-width: 575.98px) {
  .pb-tcard__text { display: none; }
  .pb-tcard__body { padding: 1.75rem .5rem .85rem; }
  .pb-tcard__title { font-size: .85rem; }
  .pb-tcard__icon { width: 2.5rem; height: 2.5rem; }
}
/* brand_slider (Hersteller-Slider): Bild fuer Bild, sichtbare Anzahl je Breite ueber --pb-brands-vis-* */
.pb-brands { background: var(--_surface); }
.pb-brands .pb-section__title, .pb-brands .pb-section__subtitle { text-align: center; }
.pb-brands__slider { --pb-brands-gap: 1rem; position: relative; display: flex; align-items: center; gap: .5rem; }
.pb-brands__viewport { flex: 1; min-width: 0; overflow: hidden; }
.pb-brands__track { --pb-brands-vis: var(--pb-brands-vis-xs, 2); display: flex; gap: var(--pb-brands-gap); margin: 0; padding: .35rem 0; list-style: none; transition: transform .5s ease; will-change: transform; }
@media (min-width: 576px) { .pb-brands__track { --pb-brands-vis: var(--pb-brands-vis-sm, 3); } }
@media (min-width: 768px) { .pb-brands__track { --pb-brands-vis: var(--pb-brands-vis-md, 5); } }
@media (min-width: 992px) { .pb-brands__track { --pb-brands-vis: var(--pb-brands-vis-lg, 8); } }
.pb-brands__item { flex: 0 0 calc((100% - (var(--pb-brands-vis) - 1) * var(--pb-brands-gap)) / var(--pb-brands-vis)); min-width: min(var(--pb-brands-minw, 0px), 100%); }
.pb-brands__tile { display: flex; align-items: center; justify-content: center; height: calc(var(--pb-brands-h, 80px) + 1.5rem); padding: .75rem; overflow: hidden; color: var(--_heading); text-decoration: none; text-align: center; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.pb-brands--card .pb-brands__tile { border: 1px solid var(--_border); border-radius: var(--_radius); background: #fff; }
a.pb-brands__tile:hover, a.pb-brands__tile:focus-visible { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(15, 31, 61, .1); border-color: var(--_primary); color: var(--_primary); }
/* Logo füllt die Fläche der Kachel (Breite × Logo-Höhe) und wird dabei auch vergrößert; Seitenverhältnis bleibt (contain).
   multiply: helle/weiße Hintergründe in Logo-Dateien (JPG, „fast weiß“) verschwinden auf der Kachel → keine grauen Kästen */
.pb-brands__logo { display: block; width: 100%; height: var(--pb-brands-h, 80px); max-width: 100%; object-fit: contain; mix-blend-mode: multiply; }
.pb-brands__name { font-weight: 800; font-size: clamp(.85rem, 1.4vw, 1.05rem); line-height: 1.2; letter-spacing: .02em; text-transform: uppercase; overflow-wrap: anywhere; }
.pb-brands--gray .pb-brands__logo { filter: grayscale(1); opacity: .7; transition: filter .2s ease, opacity .2s ease; }
.pb-brands--gray .pb-brands__tile:hover .pb-brands__logo { filter: none; opacity: 1; }
.pb-brands__arrow { flex: none; width: 2.25rem; height: 2.25rem; border: 1px solid var(--_border); border-radius: 50%; background: #fff; color: var(--_heading); font-size: 1.5rem; line-height: 1; cursor: pointer; transition: background-color .2s ease, color .2s ease; }
.pb-brands__arrow:hover, .pb-brands__arrow:focus-visible { background: var(--_primary); border-color: var(--_primary); color: var(--_primary-contrast); }
.pb-brands__slider.is-static .pb-brands__arrow { visibility: hidden; }
.pb-brands__slider.is-static .pb-brands__track { justify-content: center; }
.pb-brands__slider:not(.is-ready) .pb-brands__viewport { overflow-x: auto; }
.pb-brands__empty { text-align: center; color: var(--_text); opacity: .7; }
@media (max-width: 575.98px) { .pb-brands__arrow { display: none; } }
@media (prefers-reduced-motion: reduce) { .pb-brands__track { transition: none; } }
/* Kategorie-Templates: Kategorie-Kopf (category_intro) und Produktliste (category_listing).
   Im Shop werden die Slots durch den echten Inhalt ersetzt; .pb-slot-placeholder sieht man nur in Vorschau/Builder. */
.pb-catintro { padding: 2rem 0 0.5rem; }
.pb-catintro--center { text-align: center; }
.pb-catintro__eyebrow { margin: 0 0 .35rem; font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--_primary); }
.pb-catintro__body { display: flex; gap: 2rem; align-items: center; justify-content: space-between; }
.pb-catintro--center .pb-catintro__body { flex-direction: column; }
.pb-catintro__title { margin: 0 0 .5rem; font-family: var(--_font-heading); color: var(--_heading); font-size: clamp(1.6rem, 2.5vw, 2.4rem); }
.pb-catintro__desc { color: var(--_text); max-width: 70ch; }
.pb-catintro--center .pb-catintro__desc { margin: 0 auto; }
.pb-catintro__media { flex: 0 0 auto; max-width: 320px; }
.pb-catintro__media img { display: block; width: 100%; height: auto; border-radius: var(--_radius); }
.pb-catintro--no-desc .pb-catintro__desc, .pb-catintro--no-image .pb-catintro__media { display: none; }
@media (max-width: 767px) { .pb-catintro__body { flex-direction: column; align-items: flex-start; } }
.pb-catlisting--filters-none .row.mt-2 > .col-lg-3 { display: none; }
.pb-catlisting--filters-none .row.mt-2 > .col-lg-9 { flex: 0 0 100%; max-width: 100%; }
@media (min-width: 992px) { .pb-catlisting--filters-right .row.mt-2 > .col-lg-3 { order: 2; } }
.pb-catlisting--no-sorting .row.mt-2 > .col-lg-9 > .row:first-child { display: none; }
.pb-catlisting--no-breadcrumbs .breadcrumb { display: none; }
.pb-slot-placeholder { border: 2px dashed var(--_border); border-radius: var(--_radius); padding: 1rem; background: rgba(255,255,255,.6); }
.pb-catlisting .pb-slot-placeholder { margin: 1.5rem auto; }
.pb-catlisting__mock { display: flex; gap: 1rem; }
.pb-catlisting--filters-right .pb-catlisting__mock { flex-direction: row-reverse; }
.pb-catlisting__mock-filters { flex: 0 0 22%; min-height: 220px; background: var(--_surface); border-radius: 8px; padding: .75rem; font-weight: 600; color: var(--_heading); }
.pb-catlisting__mock-main { flex: 1; }
.pb-catlisting__mock-sort { text-align: right; font-size: .85rem; color: var(--_text); margin-bottom: .5rem; }
.pb-catlisting__mock-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.pb-catlisting__mock-card { height: 90px; background: var(--_surface); border-radius: 8px; display: flex; align-items: center; justify-content: center; color: var(--_text); font-size: .85rem; }
.pb-catlisting__mock-note { margin: .75rem 0 0; font-size: .85rem; color: var(--_text); text-align: center; }
