/* Beraterseite, Kurzprofil, Verzeichnis, Startseite und Formulare. Die Schrift kommt vom Theme. */
.gbs {
  --gbs-navy: #1A2334; --gbs-akzent: #F5B41E; --gbs-akzent-hell: #FFF4D6; --gbs-grund: #FAF8F2; --gbs-linie: #E4DFD2;
  --gbs-text: #1E293B; --gbs-leise: #4B566E; --gbs-gruen: #1F7A4D; --gbs-radius: 16px;
  --gbs-schatten: 0 1px 2px rgba(26, 35, 52, .06), 0 8px 24px rgba(26, 35, 52, .07);
  color: var(--gbs-text); line-height: 1.6; font-size: 1.0625rem;
}
.gbs *, .gbs *::before, .gbs *::after { box-sizing: border-box; }
.gbs h1, .gbs-titel { font-size: clamp(2rem, 5.2vw, 3.1rem); line-height: 1.08; letter-spacing: -.02em; font-weight: 800; margin: 0 0 .35em; color: #1A2334; text-wrap: balance; }
.gbs h2 { font-size: clamp(1.5rem, 3.4vw, 2rem); line-height: 1.15; letter-spacing: -.015em; font-weight: 800; margin: 0 0 .5em; color: var(--gbs-navy); text-wrap: balance; }
.gbs h3 { font-size: 1.15rem; font-weight: 700; margin: 0 0 .5em; color: var(--gbs-navy); }
.gbs p { margin: 0 0 1em; }
.gbs a { color: var(--gbs-navy); text-underline-offset: .18em; }
.gbs :focus-visible { outline: 3px solid var(--gbs-navy); outline-offset: 3px; border-radius: 4px; }
.gbs small, .gbs-klein { font-size: .875rem; color: var(--gbs-leise); }
.gbs small { display: block; margin-top: 3px; }
.gbs ul, .gbs ol { margin: 0; padding: 0; list-style: none; }
.gbs-abschnitt { padding: clamp(36px, 7vw, 72px) 0 0; scroll-margin-top: 24px; }
.gbs-einleitung { font-size: 1.125rem; color: var(--gbs-leise); max-width: 62ch; }
.gbs-ueber { font-size: .8125rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--gbs-leise); margin: 0 0 .7em; }

/* Knöpfe */
.gbs-knopf { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font: inherit; font-weight: 700; line-height: 1.2; color: var(--gbs-navy);
  background: var(--gbs-akzent); border: 2px solid var(--gbs-akzent); border-radius: 999px; padding: 14px 26px; min-height: 52px; text-decoration: none; cursor: pointer;
  box-shadow: 0 2px 0 rgba(26, 35, 52, .18); transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.gbs-knopf:hover { background: #FFC43D; border-color: #FFC43D; transform: translateY(-1px); box-shadow: 0 4px 0 rgba(26, 35, 52, .18); }
.gbs-knopf:active { transform: translateY(1px); box-shadow: none; }
.gbs-knopf-zweit { background: transparent; border-color: var(--gbs-navy); box-shadow: none; }
.gbs-knopf-zweit:hover { background: var(--gbs-navy); border-color: var(--gbs-navy); color: #fff; box-shadow: none; }
.gbs-aktionen { display: flex; flex-wrap: wrap; gap: 12px; margin: 1.4em 0 .7em; }

/* Kopfbereich */
.gbs-hero { display: grid; gap: 24px; background: var(--gbs-grund); border: 1px solid var(--gbs-linie); border-radius: 28px; padding: clamp(24px, 5vw, 56px); position: relative; overflow: hidden; }
.gbs-hero::after { content: ""; position: absolute; right: -90px; top: -90px; width: 280px; height: 280px; border-radius: 50%; background: var(--gbs-akzent); opacity: .22; pointer-events: none; }
.gbs-hero > * { position: relative; z-index: 1; }
.gbs-versprechen { font-size: clamp(1.15rem, 2.4vw, 1.4rem); line-height: 1.4; color: var(--gbs-text); max-width: 46ch; }
.gbs-bild { width: 132px; height: 132px; border-radius: 50%; overflow: hidden; flex: none; border: 4px solid #fff; box-shadow: var(--gbs-schatten); background: var(--gbs-navy); }
.gbs-bild img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gbs-initialen { display: grid; place-items: center; color: var(--gbs-akzent); font-weight: 800; font-size: 2.6rem; letter-spacing: .02em; }
.gbs-belege { display: grid; gap: 8px; margin: 0 0 .4em; }
.gbs-belege li { position: relative; padding-left: 32px; }
.gbs-belege li::before { content: ""; position: absolute; left: 0; top: .2em; width: 22px; height: 22px; border-radius: 50%; background: var(--gbs-gruen)
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 14px no-repeat; }

/* Rechnerauswahl */
.gbs-wahl { display: grid; gap: 12px; margin: 24px 0; }
.gbs-wahl a { display: block; height: 100%; text-decoration: none; background: #fff; border: 1px solid var(--gbs-linie); border-radius: var(--gbs-radius); padding: 18px 20px 18px 22px;
  box-shadow: var(--gbs-schatten); border-left: 6px solid var(--gbs-akzent); transition: transform .15s ease, border-color .15s ease; }
.gbs-wahl a:hover { transform: translateY(-2px); border-color: var(--gbs-navy); border-left-color: var(--gbs-navy); }
.gbs-wahl strong { display: block; font-size: 1.1rem; color: var(--gbs-navy); margin-bottom: 2px; }
.gbs-wahl span { color: var(--gbs-leise); font-size: .95rem; line-height: 1.45; display: block; }
.gbs-panel { border: 1px solid var(--gbs-linie); border-radius: var(--gbs-radius); background: #fff; margin: 0 0 12px; scroll-margin-top: 16px; overflow: hidden; }
.gbs-panel > summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 22px; min-height: 56px; font-weight: 700; font-size: 1.1rem; color: var(--gbs-navy); }
.gbs-panel > summary::-webkit-details-marker { display: none; }
.gbs-panel > summary::after { content: ""; flex: none; width: 12px; height: 12px; border-right: 3px solid var(--gbs-navy); border-bottom: 3px solid var(--gbs-navy); transform: rotate(45deg); margin-right: 6px; transition: transform .2s ease; }
.gbs-panel[open] > summary::after { transform: rotate(-135deg); }
.gbs-panel[open] > summary { border-bottom: 1px solid var(--gbs-linie); background: var(--gbs-grund); }
.gbs-panel .grodt-rechner { padding: 16px; display: flex; justify-content: center; }
.gbs-panel .grodt-rechner > * { width: 100%; }

/* Ablauf */
.gbs-schritte { counter-reset: schritt; display: grid; gap: 16px; }
.gbs-schritte li { counter-increment: schritt; position: relative; background: var(--gbs-grund); border: 1px solid var(--gbs-linie); border-radius: var(--gbs-radius); padding: 22px 22px 22px 76px; }
.gbs-schritte li::before { content: counter(schritt); position: absolute; left: 20px; top: 20px; width: 40px; height: 40px; border-radius: 50%; background: var(--gbs-navy); color: var(--gbs-akzent);
  display: grid; place-items: center; font-weight: 800; font-size: 1.1rem; }
.gbs-schritte strong { display: block; font-size: 1.1rem; color: var(--gbs-navy); }
.gbs-schritte span { color: var(--gbs-leise); }

/* Person, Leistungen, Kontakt */
.gbs-spalten { display: grid; gap: 28px; align-items: start; }
.gbs-kasten { background: #fff; border: 1px solid var(--gbs-linie); border-radius: var(--gbs-radius); padding: 22px; box-shadow: var(--gbs-schatten); }
.gbs-daten { margin: 0; }
.gbs-daten div { padding: 12px 0; border-top: 1px solid var(--gbs-linie); }
.gbs-daten div:first-child { border-top: 0; padding-top: 0; }
.gbs-daten dt { font-size: .8125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gbs-leise); }
.gbs-daten dd { margin: 2px 0 0; }
.gbs-kacheln { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
.gbs-kacheln li { background: #fff; border: 1px solid var(--gbs-linie); border-radius: var(--gbs-radius); padding: 20px; font-weight: 700; color: var(--gbs-navy); box-shadow: var(--gbs-schatten); }
.gbs-kacheln li::before { content: ""; display: block; width: 28px; height: 5px; border-radius: 3px; background: var(--gbs-akzent); margin-bottom: 12px; }
.gbs-kontakt { display: grid; gap: 10px; font-size: 1.15rem; font-weight: 600; }
.gbs-kontakt span[aria-hidden] { display: none; }
.gbs-kontaktteil { background: var(--gbs-grund); border: 1px solid var(--gbs-linie); border-radius: 28px; padding: clamp(24px, 5vw, 48px); margin-top: clamp(36px, 7vw, 72px); }
.gbs-fuss { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--gbs-linie); font-size: .9rem; color: var(--gbs-leise); }
.gbs-hinweis { background: var(--gbs-grund); border: 1px solid var(--gbs-linie); border-radius: var(--gbs-radius); padding: 18px 20px; margin: 28px 0; }
.gbs-hinweis p:last-child { margin: 0; }
.gbs-rolle { font-weight: 600; color: var(--gbs-leise); margin: 0 0 .6em; }
.gbs-kurz, .gbs-recht { max-width: 760px; }
.gbs-recht h1 { font-size: clamp(1.8rem, 4.5vw, 2.4rem); }
.gbs-recht h2 { font-size: 1.3rem; margin-top: 1.6em; }
.gbs-recht ul { list-style: disc; padding-left: 1.2em; margin: 0 0 1em; }
.gbs-recht li { margin-bottom: .4em; }

/* Leiste auf dem Handy */
.gbs-leiste { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .96);
  border-top: 1px solid var(--gbs-linie); box-shadow: 0 -6px 20px rgba(26, 35, 52, .1); transform: translateY(110%); transition: transform .25s ease; }
.gbs-leiste .gbs-knopf { width: 100%; }
.gbs-leiste-an { transform: none; }

/* Suche und Verzeichnis */
.gbs-suche { display: grid; gap: 12px; background: #fff; border: 1px solid var(--gbs-linie); border-radius: 20px; padding: 18px; box-shadow: var(--gbs-schatten); }
.gbs label, .gbs legend { display: block; font-weight: 600; font-size: .9375rem; margin-bottom: 5px; padding: 0; }
.gbs input[type=text], .gbs input[type=email], .gbs input[type=tel], .gbs input[type=url], .gbs select, .gbs textarea {
  width: 100%; font: inherit; color: inherit; background: #fff; border: 1.5px solid #9AA3B5; border-radius: 10px; padding: 12px 14px; min-height: 50px; }
.gbs input:hover, .gbs select:hover, .gbs textarea:hover { border-color: var(--gbs-navy); }
.gbs-suche-knopf { align-self: end; }
.gbs-suche-knopf .gbs-knopf { width: 100%; }
.gbs-anzahl { margin: 22px 0 14px; color: var(--gbs-leise); }
.gbs-karten { display: grid; gap: 16px; }
.gbs-karte { position: relative; display: flex; gap: 16px; align-items: flex-start; background: #fff; border: 1px solid var(--gbs-linie); border-radius: var(--gbs-radius); padding: 20px;
  box-shadow: var(--gbs-schatten); transition: transform .15s ease, border-color .15s ease; }
.gbs-karte:hover, .gbs-karte:focus-within { transform: translateY(-2px); border-color: var(--gbs-navy); }
.gbs-karte .gbs-bild { width: 60px; height: 60px; border-width: 0; box-shadow: none; }
.gbs-karte .gbs-initialen { font-size: 1.2rem; }
.gbs-karte-text { min-width: 0; flex: 1; }
.gbs-karte h3 { margin: 0 0 2px; font-size: 1.2rem; }
.gbs-karte h3 a { text-decoration: none; }
.gbs-karte h3 a::after { content: ""; position: absolute; inset: 0; border-radius: var(--gbs-radius); }
.gbs-karte p { margin: 0 0 .5em; }
.gbs-karte .gbs-rolle { font-size: .95rem; }
.gbs-marken { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 .7em; }
.gbs-marken li { font-size: .8125rem; font-weight: 600; background: var(--gbs-grund); border: 1px solid var(--gbs-linie); border-radius: 999px; padding: 3px 11px; }
.gbs-marken li:last-child:not(:only-child) { background: var(--gbs-akzent-hell); border-color: #F1D27A; }
.gbs-karte-fuss { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 0 !important; }
.gbs-pfeil { font-weight: 700; color: var(--gbs-navy); white-space: nowrap; }
.gbs-pfeil::after { content: " \2192"; }
.gbs-leer { text-align: center; background: var(--gbs-grund); border: 1px dashed #B9B2A0; border-radius: var(--gbs-radius); padding: 36px 20px; }
.gbs-seiten ul { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 20px; }
.gbs-seiten a { display: inline-grid; place-items: center; min-width: 46px; min-height: 46px; border: 1px solid var(--gbs-linie); border-radius: 10px; text-decoration: none; font-weight: 600; background: #fff; }
.gbs-seiten a[aria-current] { background: var(--gbs-navy); border-color: var(--gbs-navy); color: #fff; }

/* Startseite */
.gbs-hero-start { display: block; }
.gbs-hero-start .gbs-suche { margin-top: 28px; }
.gbs-vorteile { display: grid; gap: 16px; }
.gbs-vorteile li { padding: 22px; border-radius: var(--gbs-radius); border: 1px solid var(--gbs-linie); background: #fff; }
.gbs-vorteile strong { display: block; font-size: 1.15rem; color: var(--gbs-navy); margin-bottom: 4px; }
.gbs-vorteile strong::before { content: ""; display: block; width: 28px; height: 5px; border-radius: 3px; background: var(--gbs-akzent); margin-bottom: 12px; }
.gbs-vorteile span { color: var(--gbs-leise); }
.gbs-angebot { display: grid; gap: 24px; background: var(--gbs-navy); color: #fff; border-radius: 28px; padding: clamp(24px, 5vw, 48px); }
.gbs-angebot .gbs-versprechen { color: #fff; font-weight: 700; }
.gbs-angebot .gbs-belege li::before { background-color: var(--gbs-akzent); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A2334' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E"); }
.gbs-preis { background: #fff; color: var(--gbs-text); border-radius: 20px; padding: 24px; text-align: center; align-self: center; }
.gbs-preis p { margin: 0 0 .6em; }
.gbs-preis strong { font-size: 2.4rem; font-weight: 800; color: var(--gbs-navy); letter-spacing: -.02em; display: block; line-height: 1.1; }
.gbs-preis .gbs-knopf { width: 100%; margin-top: 6px; }
.gbs-fuer-berater > h2 { margin-bottom: .8em; }

/* Formulare */
.gbs-form { background: #fff; border: 1px solid var(--gbs-linie); border-radius: 20px; padding: clamp(18px, 4vw, 36px); box-shadow: var(--gbs-schatten); max-width: 820px; }
.gbs-form h3 { margin-top: 1.8em; padding-top: 1.2em; border-top: 1px solid var(--gbs-linie); }
.gbs-form fieldset { border: 0; margin: 0 0 18px; padding: 0; min-width: 0; }
.gbs-form p { margin: 0 0 16px; }
.gbs-haken { display: flex !important; gap: 12px; align-items: flex-start; font-weight: 400 !important; font-size: 1rem !important; padding: 7px 0; margin: 0 !important; cursor: pointer; }
.gbs-haken input { width: 22px; height: 22px; flex: none; margin: 2px 0 0; accent-color: var(--gbs-navy); }
.gbs-zustimmung { background: var(--gbs-grund); border: 1px solid var(--gbs-linie); border-radius: 12px; padding: 14px !important; margin: 20px 0 !important; }
.gbs-falle { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gbs-meldung { padding: 14px 16px; border-radius: 12px; border-left: 6px solid #B42318; background: var(--gbs-grund); font-weight: 600; max-width: 820px; }
.gbs-ok { border-left-color: var(--gbs-gruen); }

/* Abstände, die über den Grundregeln für Listen und Absätze stehen müssen */
.gbs .gbs-belege { margin: 0 0 1.3em; }
.gbs .gbs-aktionen { margin: 0 0 .8em; }
.gbs .gbs-wahl { margin: 24px 0; }
.gbs .gbs-marken { margin: 0 0 .7em; }
.gbs .gbs-recht ul { margin: 0 0 1em; padding-left: 1.2em; list-style: disc; }
.gbs-aktionen .gbs-knopf { flex: 1 1 100%; }

@media (min-width: 640px) {
  .gbs-aktionen .gbs-knopf { flex: 0 0 auto; }
  .gbs-hero { grid-template-columns: auto 1fr; align-items: center; gap: 36px; }
  .gbs-hero-start { display: block; }
  .gbs-bild { width: 168px; height: 168px; }
  .gbs-wahl { grid-template-columns: repeat(2, 1fr); }
  .gbs-schritte, .gbs-vorteile { grid-template-columns: repeat(3, 1fr); }
  .gbs-schritte li { padding: 76px 22px 22px; }
  .gbs-suche { grid-template-columns: repeat(2, 1fr); }
  .gbs-suche-knopf { grid-column: 1 / -1; }
  .gbs-karten { grid-template-columns: repeat(2, 1fr); }
  .gbs-zwei { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
  .gbs-leiste { display: none; }
}
@media (min-width: 900px) {
  .gbs-spalten { grid-template-columns: 1.15fr 1fr; gap: 44px; }
  .gbs-angebot { grid-template-columns: 1.5fr 1fr; align-items: center; }
  .gbs-wahl { grid-template-columns: repeat(3, 1fr); }
  .gbs-suche { grid-template-columns: 1.3fr .9fr 1.3fr 1.2fr auto; align-items: end; }
  .gbs-suche-knopf { grid-column: auto; }
  .gbs-verzeichnis .gbs-karten { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 639px) { .gbs-seite { padding-bottom: 84px; } }
@media (prefers-reduced-motion: reduce) { .gbs *, .gbs *::after { transition: none !important; } }

/* ============ Startseite 0.5 ============ */
.gbs-start { --gbs-blau: #24365C; overflow-x: clip; }
.gbs-start .gbs-abschnitt > h2 { font-size: clamp(1.7rem, 4vw, 2.5rem); max-width: 22ch; }
.gbs-symbol { width: 1.25em; height: 1.25em; flex: none; vertical-align: -.25em; }
.gbs-pille { display: inline-flex; align-items: center; gap: 8px; font-size: .875rem; font-weight: 700; color: var(--gbs-navy); background: #fff; border: 1px solid var(--gbs-linie);
  border-radius: 999px; padding: 7px 14px 7px 10px; margin: 0 0 1.2em; box-shadow: 0 2px 8px rgba(26, 35, 52, .06); }
.gbs-pille .gbs-symbol { color: var(--gbs-gruen); }
.gbs-pille-dunkel { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .18); color: #fff; box-shadow: none; }
.gbs-pille-dunkel .gbs-symbol { color: var(--gbs-akzent); }
.gbs mark { background: none; color: inherit; position: relative; white-space: nowrap; z-index: 0; }
.gbs mark::after { content: ""; position: absolute; left: -2%; right: -2%; bottom: .06em; height: .38em; background: var(--gbs-akzent); border-radius: 4px; z-index: -1; transform: rotate(-1deg); }
.gbs .gbs-mitte { text-align: center; margin: 48px 0 0; }

/* Platzhalter, solange kein Foto hinterlegt ist */
.gbs-platzhalter { display: block; width: 100%; height: 100%; min-height: 160px; background-color: #24365C;
  background-image: radial-gradient(circle at 20% 25%, rgba(245, 180, 30, .55), transparent 42%), radial-gradient(circle at 85% 80%, rgba(255, 255, 255, .22), transparent 40%),
  radial-gradient(circle at 70% 15%, rgba(31, 122, 77, .45), transparent 38%), linear-gradient(135deg, #1A2334, #2C4470); }
.gbs-ph-krankenkasse { background-image: radial-gradient(circle at 25% 30%, rgba(245, 180, 30, .6), transparent 45%), linear-gradient(140deg, #2C4470, #1F7A4D); }
.gbs-ph-vorsorge { background-image: radial-gradient(circle at 70% 25%, rgba(255, 196, 61, .65), transparent 45%), linear-gradient(140deg, #1A2334, #6B4E16); }
.gbs-ph-eigenheim { background-image: radial-gradient(circle at 30% 70%, rgba(255, 255, 255, .3), transparent 40%), linear-gradient(140deg, #F5B41E, #C7581E); }
.gbs-ph-kmu { background-image: radial-gradient(circle at 75% 70%, rgba(245, 180, 30, .45), transparent 45%), linear-gradient(140deg, #24365C, #0F1626); }
.gbs-ph-schweiz { background-image: radial-gradient(ellipse at 50% 110%, rgba(255, 196, 61, .7), transparent 55%), linear-gradient(180deg, #2C4470, #1A2334); }

/* 1. Hero */
.gbs-held { display: grid; gap: 40px; align-items: center; padding: clamp(16px, 3vw, 40px) 0 0; position: relative; }
.gbs-held::before { content: ""; position: absolute; inset: -40px -50vw auto; height: calc(100% + 80px); z-index: -1;
  background: radial-gradient(ellipse at 15% 20%, #FFF4D6 0, transparent 50%), radial-gradient(ellipse at 90% 60%, #EEF2F8 0, transparent 55%), var(--gbs-grund); }
.gbs-held::after { content: ""; position: absolute; inset: -40px -50vw auto; height: calc(100% + 80px); z-index: -1; opacity: .5;
  background-image: radial-gradient(rgba(26, 35, 52, .12) 1px, transparent 1px); background-size: 22px 22px; mask-image: linear-gradient(90deg, transparent, #000 60%, transparent); }
.gbs-held h1 { font-size: clamp(2.3rem, 6vw, 4rem); line-height: 1.04; letter-spacing: -.03em; max-width: 14ch; }
.gbs-schnellsuche { display: grid; gap: 8px; background: #fff; border-radius: 22px; padding: 10px; margin: 28px 0 18px;
  box-shadow: 0 2px 4px rgba(26, 35, 52, .05), 0 20px 50px -12px rgba(26, 35, 52, .25); border: 1px solid var(--gbs-linie); max-width: 640px; }
.gbs-schnellsuche label { position: relative; display: block; margin: 0; padding: 8px 14px; border-radius: 14px; background: var(--gbs-grund); font-weight: 400; }
.gbs-schnellsuche label > span { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gbs-leise); }
.gbs-schnellsuche label .gbs-symbol { position: absolute; left: 14px; bottom: 13px; color: var(--gbs-navy); }
.gbs-schnellsuche input, .gbs-schnellsuche select { border: 0 !important; background: transparent !important; padding: 2px 0 !important; min-height: 32px !important; font-weight: 600; font-size: 1.05rem; }
.gbs-feld-ort input { padding-left: 28px !important; }
.gbs-schnellsuche input:focus, .gbs-schnellsuche select:focus { outline: none; }
.gbs-schnellsuche label:focus-within { outline: 3px solid var(--gbs-navy); outline-offset: 0; }
.gbs-schnellsuche .gbs-knopf { border-radius: 14px; min-height: 60px; font-size: 1.05rem; }
.gbs-belege-zeile { display: flex; flex-wrap: wrap; gap: 8px 20px; color: var(--gbs-leise); font-size: .95rem; font-weight: 600; }
.gbs-belege-zeile li { display: inline-flex; align-items: center; gap: 6px; }
.gbs-belege-zeile .gbs-symbol { color: var(--gbs-gruen); stroke-width: 2.6; }
.gbs-held-bild { position: relative; aspect-ratio: 5 / 4.6; max-width: 600px; justify-self: center; width: 100%; }
.gbs-held-foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 46% 54% 38% 62% / 55% 40% 60% 45%;
  box-shadow: 0 30px 80px -20px rgba(26, 35, 52, .45); border: 6px solid #fff; animation: gbs-form 18s ease-in-out infinite alternate; }
.gbs-held-bild::before { content: ""; position: absolute; width: 46%; aspect-ratio: 1; right: -4%; top: -6%; border-radius: 50%; background: var(--gbs-akzent); opacity: .9; z-index: -1; }
.gbs-held-bild::after { content: ""; position: absolute; width: 30%; aspect-ratio: 1; left: -5%; bottom: -4%; border-radius: 50%; border: 3px dashed rgba(26, 35, 52, .25); z-index: -1; }
.gbs-schwebe { position: absolute; display: flex; align-items: center; gap: 10px; background: #fff; border-radius: 16px; padding: 10px 14px; box-shadow: 0 12px 32px -8px rgba(26, 35, 52, .3);
  font-size: .85rem; line-height: 1.3; animation: gbs-schweben 6s ease-in-out infinite; }
.gbs-schwebe { text-decoration: none; color: inherit; }
.gbs-schwebe .gbs-mini-avatar .gbs-symbol { width: 20px; height: 20px; }
.gbs-schwebe strong { display: block; color: var(--gbs-navy); font-size: .9rem; }
.gbs-schwebe span { color: var(--gbs-leise); }
.gbs-schwebe > .gbs-symbol { width: 34px; height: 34px; padding: 7px; border-radius: 10px; background: #E7F4EC; color: var(--gbs-gruen); }
.gbs-schwebe-1 { left: -6%; top: 14%; }
.gbs-schwebe-2 { right: -4%; top: 48%; animation-delay: -2s; }
.gbs-schwebe-3 { left: 6%; bottom: 2%; animation-delay: -4s; }
.gbs-schwebe-3 > .gbs-symbol { background: #FFF4D6; color: #8A5A00; }
.gbs-mini-avatar { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--gbs-navy); color: var(--gbs-akzent); font-weight: 800; font-size: .85rem; flex: none; }
@keyframes gbs-schweben { 50% { transform: translateY(-8px); } }
@keyframes gbs-form { to { border-radius: 58% 42% 55% 45% / 45% 58% 42% 55%; } }

/* 2. Fakten */
.gbs-fakten { display: grid; gap: 1px; background: var(--gbs-linie); border: 1px solid var(--gbs-linie); border-radius: 20px; overflow: hidden; margin-top: clamp(40px, 7vw, 72px); }
.gbs-fakten li { background: #fff; padding: 20px 22px; display: grid; grid-template-columns: auto 1fr; gap: 2px 14px; align-items: center; }
.gbs-fakten .gbs-symbol { grid-row: span 2; width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: var(--gbs-grund); color: var(--gbs-navy); }
.gbs-fakten strong { color: var(--gbs-navy); }
.gbs-fakten span { color: var(--gbs-leise); font-size: .9rem; }

/* 3. Themen */
.gbs-themen { display: grid; gap: 16px; margin-top: 8px; }
.gbs-themen a { position: relative; display: block; aspect-ratio: 4 / 5; border-radius: 22px; overflow: hidden; text-decoration: none; color: #fff; isolation: isolate; box-shadow: var(--gbs-schatten); }
.gbs-thema-bild { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); z-index: -2; }
.gbs-themen a::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15, 22, 38, 0) 30%, rgba(15, 22, 38, .88) 100%); }
.gbs-themen a:hover .gbs-thema-bild, .gbs-themen a:focus-visible .gbs-thema-bild { transform: scale(1.06); }
.gbs-thema-text { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px; display: grid; gap: 4px; }
.gbs-thema-text > .gbs-symbol { width: 42px; height: 42px; padding: 9px; border-radius: 12px; background: var(--gbs-akzent); color: var(--gbs-navy); margin-bottom: 8px; }
.gbs-thema-text strong { font-size: 1.35rem; font-weight: 800; letter-spacing: -.01em; }
.gbs-thema-text > span { color: rgba(255, 255, 255, .85); font-size: .95rem; line-height: 1.4; }
.gbs-thema-text em { font-style: normal; font-weight: 700; color: var(--gbs-akzent); margin-top: 6px; display: inline-flex; align-items: center; gap: 6px; }
.gbs-themen a:hover em .gbs-symbol { transform: translateX(4px); }
.gbs-thema-text em .gbs-symbol { transition: transform .2s ease; }

/* 4. Kantonskarte */
.gbs-karte-rahmen { display: grid; gap: 28px; align-items: center; background: var(--gbs-grund); border: 1px solid var(--gbs-linie); border-radius: 28px; padding: clamp(20px, 4vw, 44px); }
.gbs-karte-ch { display: grid; grid-template-columns: repeat(9, 1fr); grid-template-rows: repeat(6, auto); gap: 6px; }
.gbs-karte-ch a { position: relative; display: grid; place-items: center; aspect-ratio: 1; border-radius: 12px; background: #fff; border: 1px solid var(--gbs-linie); text-decoration: none;
  color: var(--gbs-navy); font-size: clamp(.7rem, 1.6vw, .95rem); transition: transform .15s ease, background-color .15s ease, color .15s ease; }
.gbs-karte-ch a.hat { background: var(--gbs-navy); color: #fff; border-color: var(--gbs-navy); }
.gbs-karte-ch a:hover, .gbs-karte-ch a:focus-visible { transform: translateY(-3px) scale(1.06); background: var(--gbs-akzent); color: var(--gbs-navy); border-color: var(--gbs-akzent); z-index: 1; }
.gbs-karte-ch strong { font-weight: 800; }
.gbs-karte-ch span { position: absolute; top: -7px; right: -7px; min-width: 22px; height: 22px; border-radius: 11px; background: var(--gbs-akzent); color: var(--gbs-navy); font-size: .72rem; font-weight: 800;
  display: grid; place-items: center; padding: 0 5px; border: 2px solid #fff; }

/* 5. Ablauf */
.gbs-ablauf-raster { display: grid; gap: 32px; align-items: center; }
.gbs-schritte-gross li { background: #fff; box-shadow: var(--gbs-schatten); }
.gbs-ablauf-bild { position: relative; aspect-ratio: 4 / 3.2; }
.gbs-foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 28px; }
.gbs-wege { position: absolute; left: 50%; bottom: -22px; transform: translateX(-50%); display: flex; gap: 6px; background: #fff; padding: 8px; border-radius: 999px;
  box-shadow: 0 14px 34px -10px rgba(26, 35, 52, .35); white-space: nowrap; }
.gbs-wege li { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .9rem; color: var(--gbs-navy); padding: 8px 14px; border-radius: 999px; background: var(--gbs-grund); }
.gbs-wege li:last-child { background: var(--gbs-akzent); }

/* 7. Für Berater, dunkel */
.gbs-dunkel { position: relative; color: #fff; margin-top: clamp(48px, 8vw, 96px); padding: clamp(36px, 6vw, 72px) clamp(20px, 5vw, 64px); border-radius: 32px; overflow: hidden; isolation: isolate;
  background: radial-gradient(ellipse at 85% 10%, rgba(245, 180, 30, .28), transparent 50%), radial-gradient(ellipse at 0% 100%, rgba(44, 68, 112, .9), transparent 60%), #141C2C; }
.gbs-dunkel::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .35; background-image: linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px),
  linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px); background-size: 40px 40px; mask-image: radial-gradient(ellipse at 70% 40%, #000, transparent 75%); }
.gbs-dunkel h2 { color: #fff; font-size: clamp(1.8rem, 4.2vw, 2.7rem); }
.gbs-dunkel .gbs-versprechen { color: rgba(255, 255, 255, .82); }
.gbs-dunkel .gbs-belege li::before { background-color: var(--gbs-akzent); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A2334' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E"); }
.gbs-dunkel .gbs-klein, .gbs-dunkel .gbs-klein a { color: rgba(255, 255, 255, .7); }
.gbs-angebot-raster { display: grid; gap: 40px; align-items: center; }
.gbs-preis-zeile { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin: 26px 0 10px; padding: 18px 20px; border-radius: 20px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); }
.gbs-preis-zeile { display: grid; gap: 14px; align-items: stretch; }
.gbs-preise { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.gbs-preis-kachel { padding: 14px 16px; border-radius: 14px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); }
.gbs-preis-kachel small { display: block; color: rgba(255, 255, 255, .85); font-size: .85rem; font-weight: 600; margin-bottom: 8px; }
.gbs-preis-plus { border-color: var(--gbs-akzent); }
.gbs-preis-zeile strong { display: block; font-size: 2rem; font-weight: 800; letter-spacing: -.02em; color: var(--gbs-akzent); line-height: 1; white-space: nowrap; }
.gbs-preis-zeile span { color: rgba(255, 255, 255, .75); font-size: .9rem; }
.gbs .gbs-preis-bedingung { margin: 0; color: rgba(255, 255, 255, .75); font-size: .9rem; }
.gbs-preis-zeile > .gbs-knopf { justify-self: start; }
.gbs-geraet { position: relative; background: #fff; border-radius: 18px; box-shadow: 0 40px 90px -20px rgba(0, 0, 0, .6); color: var(--gbs-text); transform: perspective(1400px) rotateY(-9deg) rotateX(4deg);
  transition: transform .6s cubic-bezier(.2, .7, .2, 1); max-width: 520px; margin: 0 auto; }
.gbs-geraet:hover { transform: perspective(1400px) rotateY(0) rotateX(0); }
.gbs-geraet-leiste { display: flex; align-items: center; gap: 6px; padding: 12px 14px; border-bottom: 1px solid var(--gbs-linie); }
.gbs-geraet-leiste i { width: 10px; height: 10px; border-radius: 50%; background: #E4DFD2; }
.gbs-geraet-leiste i:first-child { background: #FF6159; } .gbs-geraet-leiste i:nth-child(2) { background: #FFBD2E; } .gbs-geraet-leiste i:nth-child(3) { background: #28C941; }
.gbs-geraet-leiste span { margin-left: 10px; font-size: .75rem; color: var(--gbs-leise); background: var(--gbs-grund); border-radius: 6px; padding: 4px 10px; flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.gbs-geraet-inhalt { padding: 20px; }
.gbs-m-kopf { display: flex; align-items: center; gap: 12px; background: var(--gbs-grund); border-radius: 14px; padding: 14px; }
.gbs-m-kopf b { display: block; color: var(--gbs-navy); }
.gbs-m-kopf small, .gbs-m-raster small, .gbs-meldung-schwebe small { display: block; color: var(--gbs-leise); font-size: .75rem; margin: 0; }
.gbs-m-raster { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.gbs-m-raster div { border: 1px solid var(--gbs-linie); border-left: 4px solid var(--gbs-akzent); border-radius: 10px; padding: 10px 12px; font-size: .9rem; }
.gbs-m-raster b { color: var(--gbs-navy); }
.gbs-m-knopf { text-align: center; font-weight: 700; color: var(--gbs-navy); background: var(--gbs-akzent); border-radius: 999px; padding: 10px; font-size: .9rem; }
.gbs-meldung-schwebe { position: absolute; right: -18px; bottom: -22px; display: flex; gap: 10px; align-items: center; background: #fff; border-radius: 14px; padding: 12px 14px;
  box-shadow: 0 18px 40px -12px rgba(0, 0, 0, .45); animation: gbs-schweben 5s ease-in-out infinite; }
.gbs-meldung-schwebe b { color: var(--gbs-navy); font-size: .9rem; }
.gbs-meldung-schwebe .gbs-symbol { width: 36px; height: 36px; padding: 8px; border-radius: 10px; background: #E7F4EC; color: var(--gbs-gruen); }

/* 8. Fragen */
.gbs-faq { display: grid; gap: 10px; max-width: 860px; }
.gbs-faq details { background: #fff; border: 1px solid var(--gbs-linie); border-radius: 16px; transition: box-shadow .2s ease; }
.gbs-faq details[open] { box-shadow: var(--gbs-schatten); }
.gbs-faq summary { cursor: pointer; list-style: none; padding: 18px 56px 18px 22px; font-weight: 700; color: var(--gbs-navy); position: relative; font-size: 1.05rem; }
.gbs-faq summary::-webkit-details-marker { display: none; }
.gbs-faq summary::after { content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; background: var(--gbs-grund);
  display: grid; place-items: center; font-size: 1.2rem; line-height: 1; transition: transform .2s ease, background-color .2s ease; }
.gbs-faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); background: var(--gbs-akzent); }
.gbs-faq p { padding: 0 22px 18px; margin: 0; color: var(--gbs-leise); }

/* 9. Abschluss */
.gbs-schluss { position: relative; margin-top: clamp(48px, 8vw, 96px); border-radius: 32px; overflow: hidden; min-height: 380px; display: grid; align-items: end; isolation: isolate; }
.gbs-schluss-bild { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.gbs-schluss::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(15, 22, 38, .88) 0%, rgba(15, 22, 38, .55) 55%, rgba(15, 22, 38, .15) 100%); }
.gbs-schluss-text { padding: clamp(28px, 6vw, 64px); color: #fff; max-width: 640px; }
.gbs-schluss h2 { color: #fff; font-size: clamp(1.8rem, 4.4vw, 2.8rem); }
.gbs-schluss p { color: rgba(255, 255, 255, .85); font-size: 1.1rem; }
.gbs-knopf-hell { background: transparent; border-color: #fff; color: #fff; box-shadow: none; }
.gbs-knopf-hell:hover { background: #fff; border-color: #fff; color: var(--gbs-navy); }

/* Einblenden beim Scrollen (nur mit JavaScript, nur ohne Wunsch nach weniger Bewegung) */
.gbs-js .gbs-zeige { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1); }
.gbs-js .gbs-zeige.ist-sichtbar { opacity: 1; transform: none; }

/* Kopf- und Fusszeile der Website */
header.wp-block-template-part { position: sticky; top: 0; z-index: 60; background: rgba(255, 255, 255, .86); -webkit-backdrop-filter: saturate(1.4) blur(12px); backdrop-filter: saturate(1.4) blur(12px);
  border-bottom: 1px solid transparent; transition: border-color .2s ease, box-shadow .2s ease; }
.gbs-gescrollt header.wp-block-template-part { border-bottom-color: #E4DFD2; box-shadow: 0 6px 24px -14px rgba(26, 35, 52, .35); }
header.wp-block-template-part .wp-block-site-title a { font-weight: 800; letter-spacing: -.02em; color: #1A2334; text-decoration: none; }
header.wp-block-template-part .wp-block-site-title a::before { content: ""; display: inline-block; width: 26px; height: 26px; margin-right: 10px; vertical-align: -6px; border-radius: 8px;
  background: #1A2334 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F5B41E' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4l6 2.6v5c0 3.6-2.4 6.2-6 7.4-3.6-1.2-6-3.8-6-7.4v-5L12 4z'/%3E%3C/svg%3E") center / 18px no-repeat; }
header.wp-block-template-part .wp-block-navigation-item:last-child > a { background: #F5B41E; color: #1A2334; font-weight: 700; padding: 10px 18px; border-radius: 999px; text-decoration: none; }
header.wp-block-template-part .wp-block-navigation-item:last-child > a:hover { background: #FFC43D; }
footer.wp-block-template-part { background: #141C2C; color: rgba(255, 255, 255, .78); margin-top: clamp(48px, 8vw, 96px); }
footer.wp-block-template-part a { color: #fff; }
footer.wp-block-template-part strong { color: #F5B41E; }

@media (min-width: 640px) {
  .gbs-schnellsuche { grid-template-columns: 1.3fr 1fr auto; align-items: stretch; }
  .gbs-fakten { grid-template-columns: repeat(2, 1fr); }
  .gbs-themen { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 960px) {
  .gbs-held { grid-template-columns: 1.08fr 1fr; gap: 56px; }
  .gbs-fakten { grid-template-columns: repeat(4, 1fr); }
  .gbs-themen { grid-template-columns: repeat(4, 1fr); }
  .gbs-karte-rahmen { grid-template-columns: .8fr 1.2fr; }
  .gbs-ablauf-raster { grid-template-columns: 1fr 1fr; gap: 56px; }
  .gbs-schritte-gross { grid-template-columns: 1fr; }
  .gbs-schritte-gross li { padding: 22px 22px 22px 76px; }
  .gbs-angebot-raster { grid-template-columns: 1.05fr 1fr; gap: 56px; }
}
@media (max-width: 639px) {
  .gbs-schwebe { font-size: .75rem; padding: 8px 10px; }
  .gbs-schwebe-1 { left: 0; top: 4%; } .gbs-schwebe-2 { right: 0; } .gbs-schwebe-3 { display: none; }
  .gbs-themen a { aspect-ratio: 16 / 10; }
  .gbs-meldung-schwebe { right: 8px; }
  .gbs-geraet { transform: none; }
  .gbs-wege li { padding: 6px 10px; font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .gbs-schwebe, .gbs-meldung-schwebe, .gbs-held-foto { animation: none !important; }
  .gbs-js .gbs-zeige { opacity: 1; transform: none; }
}

/* Feinschliff 0.5.1 */
.gbs .gbs-knopf-hell { color: #fff; }
.gbs .gbs-knopf-hell:hover { color: var(--gbs-navy); }
.gbs-held h1 { font-size: clamp(2.2rem, 5.2vw, 3.5rem); max-width: 16ch; }
.gbs-meldung-schwebe { right: auto; left: -26px; bottom: 54px; }
.gbs-schwebe-1 { left: -2%; }
.gbs-schwebe-2 { right: 0; }
@media (min-width: 960px) { .gbs-held { grid-template-columns: 1fr 1fr; } }
@media (max-width: 639px) { .gbs-meldung-schwebe { left: 8px; bottom: 58px; } }
.gbs-held > *, .gbs-angebot-raster > *, .gbs-ablauf-raster > *, .gbs-karte-rahmen > * { min-width: 0; }
.gbs h1, .gbs h2 { overflow-wrap: break-word; hyphens: auto; }
.gbs-geraet { max-width: min(520px, 100%); }
@media (max-width: 639px) {
  .gbs-held h1 { font-size: clamp(1.85rem, 8.6vw, 2.4rem); }
  .gbs-dunkel { padding-left: 18px; padding-right: 18px; }
  .gbs-preis-zeile .gbs-knopf { width: 100%; }
}

/* ============ Beraterseite, Kurzprofil, Verzeichnis 0.6 ============ */
.gbs-held-berater h1 { font-size: clamp(2.3rem, 6vw, 4rem); }
.gbs-portraet { aspect-ratio: 1 / 1; max-width: 520px; }
.gbs-initialen-gross { display: grid; place-items: center; font-size: clamp(4rem, 12vw, 8rem); font-weight: 800; letter-spacing: -.03em; color: var(--gbs-akzent);
  background: radial-gradient(circle at 30% 25%, #2C4470, #1A2334 70%); }
.gbs-marken-gross { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 1.4em; }
.gbs-marken-gross li { display: inline-flex; align-items: center; gap: 7px; font-size: .9rem; font-weight: 600; padding: 8px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--gbs-linie); color: var(--gbs-navy); }
.gbs-marken-gross .gbs-symbol { color: var(--gbs-leise); }
.gbs-marke-gruen { background: #E7F4EC !important; border-color: #BFE3CD !important; color: #155C39 !important; }
.gbs-marke-gruen .gbs-symbol { color: #1F7A4D !important; }
.gbs-marke-blau { background: #EAF0FA !important; border-color: #C9D6EE !important; color: #24365C !important; }
.gbs .gbs-aktionen .gbs-symbol { width: 1.15em; height: 1.15em; }

/* Sprungleiste, bleibt unter der Kopfzeile stehen */
.gbs-sprungleiste { position: sticky; top: 72px; z-index: 40; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: clamp(28px, 5vw, 48px) 0 0;
  padding: 8px 8px 8px 12px; border-radius: 999px; background: rgba(255, 255, 255, .9); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border: 1px solid var(--gbs-linie); box-shadow: 0 10px 30px -18px rgba(26, 35, 52, .45); }
.gbs-sprungleiste ul { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.gbs-sprungleiste ul::-webkit-scrollbar { display: none; }
.gbs-sprungleiste a:not(.gbs-knopf) { display: block; white-space: nowrap; padding: 10px 14px; border-radius: 999px; font-weight: 600; font-size: .95rem; text-decoration: none; color: var(--gbs-navy); }
.gbs-sprungleiste a:not(.gbs-knopf):hover, .gbs-sprungleiste a.ist-aktiv { background: var(--gbs-grund); }
.gbs-sprungleiste a.ist-aktiv { box-shadow: inset 0 -3px 0 var(--gbs-akzent); }
.gbs-sprungleiste .gbs-knopf { flex: none; }
.gbs-seite .gbs-abschnitt { scroll-margin-top: 150px; }

/* Rechnerkarten mit Symbol */
.gbs-wahl-bunt a { border-left: 1px solid var(--gbs-linie); padding: 22px; display: flex; flex-direction: column; gap: 6px; }
.gbs-wahl-bunt a > .gbs-symbol { width: 48px; height: 48px; padding: 11px; border-radius: 14px; background: var(--gbs-akzent-hell); color: #8A5A00; margin-bottom: 8px; transition: transform .2s ease; }
.gbs-wahl-bunt li:nth-child(3n+2) a > .gbs-symbol { background: #E7F4EC; color: var(--gbs-gruen); }
.gbs-wahl-bunt li:nth-child(3n+3) a > .gbs-symbol { background: #EAF0FA; color: #24365C; }
.gbs-wahl-bunt a:hover > .gbs-symbol { transform: rotate(-6deg) scale(1.06); }
.gbs-wahl-bunt em { margin-top: auto; padding-top: 8px; font-style: normal; font-weight: 700; color: var(--gbs-navy); display: inline-flex; align-items: center; gap: 6px; }
.gbs-wahl-bunt a:hover em .gbs-symbol { transform: translateX(4px); }
.gbs-wahl-bunt em .gbs-symbol { transition: transform .2s ease; }
.gbs-panel > summary { justify-content: flex-start; }
.gbs-panel > summary > .gbs-symbol { width: 34px; height: 34px; padding: 7px; border-radius: 10px; background: var(--gbs-grund); color: var(--gbs-navy); }
.gbs-panel > summary > span { flex: 1; }

/* Über mich und Leistungen */
.gbs-ueber-text p { font-size: 1.1rem; }
.gbs-kasten-dunkel { background: #141C2C; border-color: #141C2C; color: rgba(255, 255, 255, .85); }
.gbs-kasten-dunkel h3 { color: #fff; display: flex; align-items: center; gap: 10px; }
.gbs-kasten-dunkel h3 .gbs-symbol { color: var(--gbs-akzent); }
.gbs-kasten-dunkel .gbs-daten div { border-top-color: rgba(255, 255, 255, .12); }
.gbs-kasten-dunkel .gbs-daten dt { color: rgba(255, 255, 255, .6); }
.gbs-kasten-dunkel .gbs-daten dd, .gbs-kasten-dunkel a { color: #fff; }
.gbs-kasten-dunkel small { color: rgba(255, 255, 255, .6); }
.gbs-leistungen { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.gbs-leistungen li { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--gbs-linie); border-radius: 18px; padding: 18px; box-shadow: var(--gbs-schatten); transition: transform .15s ease; }
.gbs-leistungen li:hover { transform: translateY(-2px); }
.gbs-leistungen .gbs-symbol { width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: var(--gbs-navy); color: var(--gbs-akzent); }
.gbs-leistungen strong { color: var(--gbs-navy); font-size: 1.05rem; }

/* Kontakt, dunkel */
.gbs-kontakt-dunkel { scroll-margin-top: 150px; }
.gbs-wege-liste { display: grid; gap: 10px; margin-top: 22px; }
.gbs-weg { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 16px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14);
  text-decoration: none; color: #fff !important; font-weight: 700; transition: background-color .15s ease; }
.gbs-weg:hover { background: rgba(255, 255, 255, .14); }
.gbs-weg .gbs-symbol { width: 42px; height: 42px; padding: 10px; border-radius: 12px; background: var(--gbs-akzent); color: var(--gbs-navy); }
.gbs-weg small { display: block; color: rgba(255, 255, 255, .6); font-weight: 600; font-size: .8rem; margin: 0; }
.gbs-formular-karte { background: #fff; border-radius: 24px; padding: 8px; box-shadow: 0 30px 70px -20px rgba(0, 0, 0, .55); }
.gbs-seite .gbs-fuss { margin-top: 28px; }

/* Kurzprofil */
.gbs-brotkrumen a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; text-decoration: none; }
.gbs-brotkrumen .gbs-symbol { transform: rotate(180deg); }
.gbs-profilkopf { display: grid; gap: 24px; align-items: center; background: var(--gbs-grund); border: 1px solid var(--gbs-linie); border-radius: 28px; padding: clamp(22px, 5vw, 44px); margin: 12px 0 32px; }
.gbs-profilkopf .gbs-bild { width: 120px; height: 120px; }
.gbs-profilkopf h1 { font-size: clamp(2rem, 5vw, 3rem); }
.gbs-cta-kasten h3 { font-size: 1.3rem; }
.gbs-cta-kasten .gbs-knopf { width: 100%; }

/* Karten im Verzeichnis */
.gbs-karte { flex-direction: column; gap: 10px; padding: 22px; overflow: hidden; }
.gbs-karte-kopf { display: flex; gap: 14px; align-items: center; }
.gbs-karte-kopf .gbs-bild { width: 58px; height: 58px; }
.gbs-ort-zeile { display: flex; align-items: center; gap: 5px; color: var(--gbs-leise); font-size: .9rem; margin: 0 !important; }
.gbs-ort-zeile .gbs-symbol { width: 1em; height: 1em; }
.gbs-marke { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; font-weight: 700; padding: 4px 11px; border-radius: 999px; border: 1px solid; margin: 0 !important; }
.gbs-marke .gbs-symbol { width: 1em; height: 1em; }
.gbs-karte-satz { color: var(--gbs-text); }
.gbs-karte-fuss { margin-top: auto !important; padding-top: 12px; border-top: 1px solid var(--gbs-linie); width: 100%; }
.gbs-pfeil-knopf { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--gbs-grund); color: var(--gbs-navy); transition: background-color .15s ease, transform .15s ease; }
.gbs-karte:hover .gbs-pfeil-knopf { background: var(--gbs-akzent); transform: translateX(3px); }
.gbs-karte-plus { border-color: #F1D27A; }
.gbs-band { position: absolute; top: 14px; right: -34px; transform: rotate(35deg); background: var(--gbs-akzent); color: var(--gbs-navy); font-size: .72rem; font-weight: 800;
  padding: 5px 40px; display: inline-flex; align-items: center; gap: 5px; box-shadow: 0 4px 10px -4px rgba(26, 35, 52, .35); }
.gbs-band .gbs-symbol { width: 1em; height: 1em; }

/* Verzeichnis */
.gbs-verz-kopf { position: relative; padding: clamp(12px, 3vw, 32px) 0 8px; }
.gbs-verz-kopf::before { content: ""; position: absolute; inset: -40px -50vw -10px; z-index: -1;
  background: radial-gradient(ellipse at 10% 10%, #FFF4D6 0, transparent 45%), radial-gradient(ellipse at 90% 80%, #EEF2F8 0, transparent 50%), var(--gbs-grund); }
.gbs-verz-kopf h1 { font-size: clamp(2.1rem, 5.4vw, 3.4rem); }
.gbs-verz-kopf .gbs-suche { margin-top: 24px; }
.gbs-ergebnisleiste { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px; margin: 32px 0 16px; }
.gbs-ergebnisleiste p { margin: 0; color: var(--gbs-leise); }
.gbs-filter { display: flex; flex-wrap: wrap; gap: 8px; }
.gbs-filter a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; background: var(--gbs-navy); color: #fff !important; font-weight: 600; font-size: .9rem; text-decoration: none; }
.gbs-filter a span { font-size: 1.1rem; line-height: 1; opacity: .8; }
.gbs-filter a.gbs-filter-alle { background: transparent; color: var(--gbs-navy) !important; text-decoration: underline; }
.gbs-leer .gbs-symbol { width: 56px; height: 56px; padding: 13px; border-radius: 50%; background: #fff; color: var(--gbs-navy); margin-bottom: 10px; box-shadow: var(--gbs-schatten); }
.gbs-band-berater { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 28px; padding: 22px 26px; border-radius: 22px; background: #141C2C; color: #fff; }
.gbs-band-berater > div { display: flex; align-items: center; gap: 14px; flex: 1 1 380px; }
.gbs-band-berater p { margin: 0; color: rgba(255, 255, 255, .85); }
.gbs-band-berater strong { color: #fff; }
.gbs-band-berater .gbs-symbol { width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: var(--gbs-akzent); color: var(--gbs-navy); }
.gbs-verzeichnis .gbs-karte-rahmen h2 { margin-bottom: .3em; }

@media (min-width: 640px) {
  .gbs-profilkopf { grid-template-columns: auto 1fr; }
  .gbs-profilkopf .gbs-bild { width: 150px; height: 150px; }
  .gbs-wege-liste { grid-template-columns: 1fr; }
}
@media (min-width: 900px) {
  .gbs-wahl-bunt { grid-template-columns: repeat(3, 1fr); }
  .gbs-kurz-neu .gbs-spalten { grid-template-columns: 1.4fr 1fr; }
}
@media (max-width: 639px) {
  .gbs-sprungleiste { top: 64px; border-radius: 16px; }
  .gbs-sprungleiste .gbs-knopf { display: none; }
  .gbs-held-berater .gbs-held-bild { max-width: 300px; }
  .gbs-formular-karte { padding: 0; }
}
.gbs-kontakt-dunkel .gbs-angebot-raster { align-items: start; }
@media (min-width: 900px) { .gbs-wahl-bunt { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); } }

.gbs-mehr-knopf { display: none; }
@media (max-width: 639px) {
  .gbs-js-basis .gbs-suche:not(.ist-offen) .gbs-feld-mehr { display: none; }
  .gbs-js-basis .gbs-mehr-knopf { display: block; font: inherit; font-weight: 600; color: var(--gbs-navy); background: var(--gbs-grund); border: 1px dashed #9AA3B5; border-radius: 10px; padding: 10px; min-height: 46px; cursor: pointer; }
  .gbs-js-basis .gbs-suche.ist-offen .gbs-mehr-knopf { display: none; }
}

/* ============ Feinschliff 0.7 ============ */
html, body { overflow-x: clip; }
.gbs-start { overflow-x: visible; }
.gbs strong, .gbs b, .gbs h3 { font-weight: 700; }
.gbs-schwebe strong, .gbs-fakten strong { font-weight: 700; }
.gbs h1, .gbs h2 { hyphens: manual; }
/* Kopf- und Fusszeile auf dieselbe Breite wie der Inhalt */
header.wp-block-template-part .alignwide, footer.wp-block-template-part .alignwide { max-width: 1120px; margin-left: auto !important; margin-right: auto !important; }
/* Hero: Hintergrund über die ganze Breite, mehr Luft unten, Text etwas breiter */
.gbs-held { padding-bottom: clamp(40px, 6vw, 72px); }
.gbs-held::before, .gbs-held::after { inset: -48px -50vw 0; height: auto; }
.gbs-held h1 { font-size: clamp(2.3rem, 5.4vw, 4.1rem); max-width: 13ch; }
.gbs-held-foto { object-position: 62% center; }
.gbs-schwebe-1 { left: 0; }
.gbs-schwebe-2 { right: 3%; }
.gbs-schwebe-3 { left: 8%; bottom: 4%; }
/* Faktenleiste als schwebende Karte auf der Hero-Kante */
.gbs-fakten { position: relative; z-index: 2; margin-top: -32px; box-shadow: 0 18px 50px -24px rgba(26, 35, 52, .35); }
.gbs-fakten li { align-items: center; padding: 22px; }
.gbs-fakten span { line-height: 1.4; }
/* Verzeichnis- und Beraterkopf ebenfalls vollflächig */
.gbs-verz-kopf { padding-bottom: 40px; }
.gbs-verz-kopf::before { inset: -48px -50vw 0; }
@media (min-width: 960px) {
  .gbs-held { grid-template-columns: 1.1fr .9fr; }
}
@media (max-width: 959px) {
  .gbs-fakten { margin-top: 24px; }
}

/* Platzhalter ohne Foto: klare Fläche mit Punktraster und grossem Linien-Symbol */
.gbs-ph-krankenkasse { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' opacity='.22'%3E%3Cpath d='M12 20s-7-4.4-7-10a4 4 0 017-2.6A4 4 0 0119 10c0 5.6-7 10-7 10z'/%3E%3C/svg%3E"), radial-gradient(rgba(255,255,255,.13) 1.2px, transparent 1.4px), linear-gradient(150deg,#1F7A4D,#145238); background-size: 62% auto, 18px 18px, auto; background-position: 115% -18%, 0 0, 0 0; background-repeat: no-repeat, repeat, no-repeat; }
.gbs-ph-vorsorge { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' opacity='.22'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='M12 8v4l3 2'/%3E%3C/svg%3E"), radial-gradient(rgba(255,255,255,.13) 1.2px, transparent 1.4px), linear-gradient(150deg,#2C4470,#1A2334); background-size: 62% auto, 18px 18px, auto; background-position: 115% -18%, 0 0, 0 0; background-repeat: no-repeat, repeat, no-repeat; }
.gbs-ph-eigenheim { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' opacity='.22'%3E%3Cpath d='M4 11l8-7 8 7v9H4v-9z'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3C/svg%3E"), radial-gradient(rgba(255,255,255,.13) 1.2px, transparent 1.4px), linear-gradient(150deg,#E8A317,#B9651A); background-size: 62% auto, 18px 18px, auto; background-position: 115% -18%, 0 0, 0 0; background-repeat: no-repeat, repeat, no-repeat; }
.gbs-ph-kmu { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' opacity='.22'%3E%3Cpath d='M4 20V6l8-3v17M12 9h8v11'/%3E%3Cpath d='M7 9h2M7 13h2M15 13h2M15 16h2'/%3E%3C/svg%3E"), radial-gradient(rgba(255,255,255,.13) 1.2px, transparent 1.4px), linear-gradient(150deg,#24365C,#0F1626); background-size: 62% auto, 18px 18px, auto; background-position: 115% -18%, 0 0, 0 0; background-repeat: no-repeat, repeat, no-repeat; }
.gbs-ph-video { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' opacity='.22'%3E%3Crect x='3' y='6' width='13' height='12' rx='2.5'/%3E%3Cpath d='M16 10.5l5-3v9l-5-3'/%3E%3C/svg%3E"), radial-gradient(rgba(255,255,255,.13) 1.2px, transparent 1.4px), linear-gradient(150deg,#2C4470,#1A2334); background-size: 62% auto, 18px 18px, auto; background-position: 115% -18%, 0 0, 0 0; background-repeat: no-repeat, repeat, no-repeat; }
.gbs-ph-hero { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' opacity='.22'%3E%3Cpath d='M12 3l7 3v6c0 4.5-3 7.8-7 9-4-1.2-7-4.5-7-9V6l7-3z'/%3E%3C/svg%3E"), radial-gradient(rgba(255,255,255,.13) 1.2px, transparent 1.4px), linear-gradient(150deg,#2C4470,#1A2334); background-size: 62% auto, 18px 18px, auto; background-position: 115% -18%, 0 0, 0 0; background-repeat: no-repeat, repeat, no-repeat; }
.gbs-ph-schweiz { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round' opacity='.22'%3E%3Cpath d='M2 18l6-8 4 5 3-3 7 6'/%3E%3C/svg%3E"), radial-gradient(rgba(255,255,255,.13) 1.2px, transparent 1.4px), linear-gradient(180deg,#2C4470,#141C2C); background-size: 62% auto, 18px 18px, auto; background-position: 115% -18%, 0 0, 0 0; background-repeat: no-repeat, repeat, no-repeat; }

/* Rechnerkarten: bei 3, 6 oder 9 Rechnern drei Spalten, damit keine einzelne Karte übrig bleibt */
@media (min-width: 900px) { .gbs-wahl-bunt:has(> li:nth-child(3n):last-child) { grid-template-columns: repeat(3, 1fr); } }

/* ============ 0.8 ============ */
/* Sprungleiste unter der tatsächlichen Höhe der Kopfzeile (per Skript gemessen) */
.gbs-sprungleiste { top: calc(var(--gbs-kopf, 84px) + 10px); }
.gbs-seite .gbs-abschnitt, .gbs-kontakt-dunkel { scroll-margin-top: calc(var(--gbs-kopf, 84px) + 96px); }
/* Leistungen: lange Wörter umbrechen statt über den Rahmen laufen */
.gbs-leistungen { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.gbs-leistungen li { min-width: 0; }
.gbs-leistungen strong { min-width: 0; overflow-wrap: anywhere; hyphens: auto; }
/* Kontakt: Formular unter der Überschrift, über die ganze Breite */
.gbs-kontakt-kopf { max-width: 760px; margin: 0 auto 28px; text-align: center; }
.gbs-kontakt-kopf .gbs-versprechen { margin-left: auto; margin-right: auto; }
.gbs-kontakt-kopf .gbs-wege-liste { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); text-align: left; }
.gbs-kontakt-dunkel .gbs-formular-karte { max-width: 760px; margin: 0 auto; padding: clamp(16px, 3vw, 32px); }
/* Rechner direkt im aufgeklappten Feld, ohne inneren Rahmen */
.gbs-panel .grodt-rechner { padding: 4px 22px 22px; }

/* Beraterseite: Karten weg vom Gesicht, an den unteren Rand; Abstand zwischen Marken und Knöpfen */
.gbs .gbs-marken-gross { margin: 0 0 28px; }
.gbs-portraet .gbs-schwebe-2 { top: auto; bottom: 14%; right: -8%; left: auto; }
.gbs-portraet .gbs-schwebe-3 { top: auto; bottom: -3%; left: -6%; right: auto; display: flex; }
.gbs-portraet .gbs-held-foto { object-position: center 30%; }
@media (max-width: 639px) {
  .gbs-portraet .gbs-schwebe-2 { right: 0; bottom: 12%; }
  .gbs-portraet .gbs-schwebe-3 { left: 0; bottom: -2%; }
}
@media (max-width: 639px) { .gbs-portraet .gbs-schwebe-3 { display: none; } .gbs-portraet .gbs-schwebe-2 { bottom: 4%; right: 0; } }

/* Kantonskarte mit ausgegrautem Landesumriss dahinter */
.gbs-karte-flaeche { position: relative; padding: 4%; }
.gbs-karte-umriss { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
.gbs-karte-umriss path { fill: #E4DFD2; stroke: #CFC8B6; stroke-width: 3; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.gbs-karte-flaeche .gbs-karte-ch { position: relative; z-index: 1; }
.gbs-karte-ch a { box-shadow: 0 2px 6px rgba(26, 35, 52, .08); }

/* Onboarding: Abo-Hinweis und Foto-Upload */
.gbs-haken-zusatz { display: block; margin: -2px 0 6px 34px; color: var(--gbs-leise); font-size: .9rem; }
.gbs-foto-feld { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.gbs-foto-feld input[type=file] { font: inherit; max-width: 100%; }
.gbs-foto-vorschau { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; border: 1px solid var(--gbs-linie); background: var(--gbs-grund); }
.gbs-foto-vorschau[hidden] { display: none; }
.gbs-foto-feld input[type=file]::file-selector-button { font: inherit; font-weight: 700; color: var(--gbs-navy); background: var(--gbs-akzent-hell); border: 1px solid var(--gbs-akzent); border-radius: 999px; padding: 9px 18px; margin-right: 12px; cursor: pointer; }
.gbs-foto-feld input[type=file]::file-selector-button:hover { background: var(--gbs-akzent); }
/* Onboarding: Kantone, in denen beraten wird */
.gbs-kantone-raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 2px 10px; margin: 4px 0 8px; }
.gbs-kantone-raster .gbs-haken { padding: 5px 0; }
.gbs .gbs-kantone-knoepfe { margin: 0 0 6px; display: flex; gap: 16px; }
.gbs-link { font: inherit; font-size: .9rem; font-weight: 600; color: var(--gbs-navy); background: none; border: 0; padding: 0; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.gbs-kantone-wahl > small { color: var(--gbs-leise); font-size: .9rem; }

/* Abnahme 2026-10-16: Kontrast, Tippflächen und Schriftgrössen auf dem Handy */
.gbs-ph-eigenheim ~ .gbs-thema-text em { color: #fff; text-decoration: underline; text-decoration-color: var(--gbs-akzent); text-underline-offset: 4px; }
@media (max-width: 599px) {
  header.wp-block-template-part .wp-block-navigation__responsive-container-open,
  header.wp-block-template-part .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; justify-content: center; align-items: center; }
}
footer.wp-block-template-part a { display: inline-block; padding-block: 12px; }
@media (max-width: 767px) {
  /* Kantonskarte: auf dem Handy als Raster mit fingergrossen Feldern statt Landkarte */
  .gbs-karte-flaeche .gbs-karte-umriss { display: none; }
  .gbs-karte-ch { grid-template-columns: repeat(auto-fill, minmax(52px, 1fr)); grid-template-rows: none; gap: 8px; }
  .gbs-karte-ch li { grid-column: auto !important; grid-row: auto !important; }
  .gbs-karte-ch a { min-height: 48px; }
  .gbs .gbs-schnellsuche label > span { font-size: .875rem; letter-spacing: .03em; }
  .gbs .gbs-band { font-size: .8rem; }
  .gbs small, .gbs .gbs-schwebe, .gbs .gbs-schwebe small { font-size: .875rem; }
  .gbs .gbs-wege li, .gbs .gbs-marke, .gbs .gbs-marken li { font-size: .875rem; }
  .gbs .gbs-band { font-size: .8125rem; }
  .gbs .gbs-klein a, .gbs .gbs-karte-kopf h3 a { display: inline-block; padding-block: 10px; }
}

/* Kontaktkacheln: Breite nach Inhalt, lange Adressen umbrechen statt überlaufen */
.gbs-kontakt-kopf .gbs-wege-liste { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.gbs-kontakt-kopf .gbs-weg { flex: 1 1 auto; min-width: min(100%, 220px); max-width: 100%; }
.gbs-weg > span { min-width: 0; overflow-wrap: anywhere; line-height: 1.3; }
.gbs-weg .gbs-symbol { flex: none; }
@media (min-width: 900px) { .gbs-kontakt-kopf:has(.gbs-wege-liste) { max-width: 980px; } .gbs-kontakt-kopf .gbs-versprechen { max-width: 620px; } }

/* Verzeichnissuche: Felder gleich hoch, Auswahl nie abgeschnitten */
.gbs-suche > div { min-width: 0; }
.gbs-suche input[type=text], .gbs-suche select { box-sizing: border-box; height: 52px; min-height: 52px; }
.gbs-suche select { text-overflow: ellipsis; padding-right: 34px; }
@media (min-width: 1024px) { .gbs-suche { grid-template-columns: 1.25fr 1fr 1.2fr 1.1fr auto; } }
/* Schnellsuche Startseite: dreispaltig erst, wenn Platz ist; sonst Knopf unter den Feldern */
.gbs-schnellsuche > * { min-width: 0; }
.gbs-schnellsuche select { text-overflow: ellipsis; }
@media (min-width: 640px) and (max-width: 1199px) {
  .gbs-schnellsuche { grid-template-columns: 1fr 1fr; }
  .gbs-schnellsuche .gbs-knopf { grid-column: 1 / -1; min-height: 52px; }
}
@media (min-width: 1024px) and (max-width: 1199px) {
  .gbs-suche { grid-template-columns: repeat(4, 1fr); }
  .gbs-suche .gbs-suche-knopf { grid-column: 1 / -1; }
}

/* Senior-Review 2026-10-16: Startseite */
img.gbs-mini-foto { object-fit: cover; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--gbs-linie); }
.gbs .gbs-ablauf-cta { margin: 22px 0 0; }
.gbs-faq-raster { display: grid; gap: 20px; align-items: start; }
.gbs-faq-raster .gbs-faq { max-width: none; }
.gbs-faq-karte { background: var(--gbs-navy); color: rgba(255, 255, 255, .85); border-radius: 20px; padding: 26px; }
.gbs-faq-karte > .gbs-symbol { width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: var(--gbs-akzent); color: var(--gbs-navy); }
.gbs-faq-karte h3 { color: #fff; margin: 14px 0 8px; font-size: 1.25rem; }
.gbs-faq-karte p { margin: 0 0 14px; }
.gbs-faq-karte .gbs-klein a { color: #fff; }
@media (min-width: 900px) { .gbs-faq-raster { grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); } .gbs-faq-karte { position: sticky; top: 110px; } }
/* Beraterseite mobil: Porträt klein über dem Namen statt unter den Knöpfen */
@media (max-width: 767px) {
  .gbs-held-berater { display: flex; flex-direction: column; }
  .gbs-held-berater .gbs-portraet { order: -1; width: 168px; max-width: 168px; margin: 0 auto 4px; }
  .gbs-held-berater .gbs-portraet .gbs-schwebe { display: none; }
  .gbs-held-berater .gbs-portraet::before, .gbs-held-berater .gbs-portraet::after { transform: scale(.45); }
}

/* Abo-Felder im Formular und Firmenlogo auf der Beraterseite */
.gbs-nur-abo[hidden] { display: none; }
.gbs-logo-vorschau { border-radius: 10px; object-fit: contain; background: #fff; }
.gbs-logo-flaeche { background: #fff; border-radius: 14px; padding: 14px; margin-bottom: 18px; display: grid; place-items: center; }
.gbs-firmenlogo { max-height: 70px; width: auto; max-width: 100%; object-fit: contain; }
.gbs-seite-kostenlos .gbs-brotkrumen { margin-bottom: 8px; }
.gbs .gbs-hinweis-klein { margin: 6px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--gbs-akzent-hell); font-size: .9rem; }
.gbs-hinweis-klein[hidden], .gbs-kantone-knoepfe[hidden] { display: none !important; }
/* Berater werden: Einstieg mit Bild */
.gbs-werden-kopf { display: grid; gap: 20px; align-items: center; margin: 0 0 28px; max-width: 820px; }
.gbs-werden-kopf .gbs-werden-bild { display: block; position: static; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 20px; box-shadow: var(--gbs-schatten); }
@media (min-width: 760px) { .gbs-werden-kopf { grid-template-columns: 1fr 1fr; } }
/* Bildausschnitt der Themenkacheln: Motiv im oberen, nicht überdeckten Teil */
.gbs-themen img[src*="vh-krankenkasse"] { object-position: 28% 15%; }
.gbs-themen img[src*="vh-eigenheim"] { object-position: 21% 30%; }
.gbs-themen img[src*="vh-vorsorge"] { object-position: 50% 25%; }
/* Verzeichnissuche mit Sprache: zwei Reihen à drei Feldern; Umgebung unter den Treffern */
@media (min-width: 1024px) {
  .gbs-suche { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gbs-suche .gbs-suche-knopf { grid-column: auto; }
}
.gbs-umgebung { margin-top: 36px; }
.gbs-umgebung h2 { margin-bottom: .3em; }
/* ============================================================
   UI/UX-Korrekturen mobil, 01.11.2026
   Gemessen auf /berater/ronny-schuerch/ bei 390 px.
   Angehaengt an berater.css, damit ein Rueckweg moeglich bleibt:
   diesen Block entfernen stellt den alten Zustand her.
   ============================================================ */

/* 1) SPRUNGLEISTE UMBRECHEN STATT WISCHEN
   Befund: Die Leiste ist technisch wischbar (overflow-x:auto, Scrolltest
   0 -> 167 px erfolgreich), aber es gibt keinen sichtbaren Hinweis darauf.
   Die Scrollbar ist per scrollbar-width:none ausgeblendet, und der letzte
   sichtbare Eintrag endet bei 321 px ohne angeschnittenes Element, das
   Weiterscrollen andeuten wuerde.
   Gemessen bei 390 px: 3 von 5 Eintraegen sichtbar, Summe 466 px.
   "Leistungen" und "Kontakt" sind damit praktisch unsichtbar - genau die
   beiden, die am naechsten an einer Anfrage liegen.
   Loesung: umbrechen. Skaliert auf beliebig viele Eintraege, also auch
   auf kuenftige Berater mit mehr Abschnitten (Stephan hat heute 2).

   Breakpoint 559 px, nicht 860: gemessen passen die 5 Eintraege ab 560 px
   ohne Umbruch in eine Zeile (ul 475 px). Die Leiste ist sticky, der Umbruch
   kostet 47 px Hoehe - das soll nur zahlen, wer es braucht. Bei 768 px waere
   es eine Verschlechterung gewesen (62 -> 121 px bei vorher schon 5/5). */
@media (max-width: 559px) {
  .gbs-sprungleiste {
    flex-wrap: wrap;
    row-gap: 8px;
    align-items: flex-start;
  }
  .gbs-sprungleiste ul {
    flex-wrap: wrap;
    row-gap: 6px;
    overflow-x: visible;      /* Wischen nicht mehr noetig */
    flex: 1 1 100%;
  }
  /* Polster NICHT verkleinern: der erste Entwurf setzte 9px und drueckte
     die Links damit von 49 auf 42 px Hoehe - unter die 44-px-Grenze.
     Durch den Umbruch ist der Platz ohnehin kein Problem mehr. */
  .gbs-sprungleiste a:not(.gbs-knopf) {
    min-height: 44px;
    display: flex;
    align-items: center;
  }
  .gbs-sprungleiste .gbs-knopf {
    width: 100%;
    text-align: center;
  }
}

/* 2) SCHWEBENDE LEISTE ERST NACH DEM HERO
   Befund: "Beratung anfragen" erschien zweimal innerhalb von 144 px
   (Hero-Knopf bei 718 px, schwebende Leiste bei 862 px). Zwei identische
   Knoepfe so nah beieinander wirken nicht wie Nachdruck, sondern wie ein
   Fehler.
   Die Leiste bleibt - sie hilft beim Scrollen durch 10'385 px - wird aber
   erst eingeblendet, wenn der Hero aus dem Bild ist. Das uebernimmt das
   bestehende JS ueber .gbs-leiste-an; hier wird nur der Startzustand
   deutlicher gesetzt. */
.gbs-leiste-spaet:not(.gbs-leiste-an) {
  transform: translateY(110%);
  pointer-events: none;
}

/* 3) ANFRAGE DIREKT NACH DEM ERSTEN RECHNER
   Befund: Der erste Kontaktpunkt lag bei 8181 px, rund zehn Bildschirme
   tief, und es gab kein Formular auf der Seite - jeder Weg fuehrte in eine
   andere App (Telefon, Mail, meet.optivaris.ch). Auf grodt.ch zeigt dieselbe
   Struktur 74 Terminklicks im Oktober ohne eine einzige Buchung.
   Der Moment nach dem Rechnen ist der einzige, in dem der Besucher ein
   konkretes Anliegen vor Augen hat. */
.gbs-anfrage-frueh {
  margin-top: 18px;
  border: 1px solid var(--gbs-rand, rgba(0, 0, 0, .12));
  border-radius: 16px;
  padding: 18px 16px;
  background: var(--gbs-grund, #fff);
}
.gbs-anfrage-frueh > h3 {
  margin: 0 0 4px;
  font-size: 1.15rem;
  line-height: 1.25;
}
.gbs-anfrage-frueh > .gbs-klein {
  margin: 0 0 14px;
}

/* 4) KUNDENSTIMMEN
   Befund: Keine Bewertung, keine Kundenstimme auf der Seite - in einem
   Vertrauensgeschaeft die groesste Luecke. Der Abschnitt wird nur
   ausgeliefert, wenn im Beraterprofil (Feld gb_stimmen) Zeilen eingetragen
   sind, damit keine leere Huelse entsteht. */
.gbs-stimmen {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 14px;
}
.gbs-stimmen > li {
  border-left: 3px solid var(--gbs-akzent, #e8b33a);
  padding: 2px 0 2px 14px;
}
.gbs-stimmen blockquote {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.5;
}
.gbs-stimmen cite {
  display: block;
  margin-top: 6px;
  font-style: normal;
  font-size: .9rem;
  opacity: .75;
}
@media (min-width: 861px) {
  .gbs-stimmen {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  }
}

/* 5) FINMA-LINK ALS RICHTIGES TIPPZIEL
   Befund: Das staerkste objektive Vertrauenssignal der Seite - der Link ins
   FINMA-Register - war 19 px hoch. Google und Apple verlangen 44 px.
   Der erste Entwurf traf ihn nicht: der Link liegt nicht in .gbs-person,
   sondern frei im Qualifikationstext. Darum per Attribut-Selektor direkt
   auf die Ziel-URL (finma.ch), unabhaengig von der Umgebung. */
@media (max-width: 860px) {
  a[href*="finma.ch"] {
    display: inline-block;
    min-height: 44px;
    line-height: 44px;
    padding: 0 2px;
  }
}

/* 6) COOKIE-BANNER: BEWUSST NICHT ANGEFASST
   Befund: Das Banner verdeckt 411 von 844 px, also 49 % des ersten
   Bildschirms (cmplz-buttons 152 px, cmplz-body 149 px).

   Entschieden am 01.11.2026, die Regel wieder zu entfernen. Grund: Jede
   Verkleinerung geht auf Kosten der Tippziele. Gemessen:
     - white-space:normal auf die Knoepfe  -> 411 auf 429 px (Knoepfe
       brechen um und werden zweizeilig)
     - min-height:44px fuer die Tippziele  -> 411 auf 436 px (drei Knoepfe
       a 44 px ergeben allein 164 px)
   Die drei Knoepfe (Akzeptieren, Ablehnen, Einstellungen ansehen) brauchen
   zusammen mehr Platz, als sich durch Abstaende einsparen laesst. Der
   wirksame Hebel waere, den dritten Knopf in die Fusszeile zu verschieben -
   das ist eine inhaltliche Entscheidung, keine CSS-Frage, und greift in die
   Complianz-Darstellung ein.
   Darum bleibt das Banner wie es ist. */
