/* =========================================================
   Gastroenterologie Bottrop · Basis
   Farben laut Brandguide (Palette Option 2, gemessene Werte)
========================================================= */
:root {
  --gb-sky: #3E5C76;
  --gb-sky-dark: #2A4459;
  --gb-sky-light: #6D8CA7;
  --gb-azure: #ACDEEE;
  --gb-grey: #F3F5F7;
  /* Nur Brandguide-Farben: dunkle Flächen = Charcoal, helle Flächen = Light Grey (frühere Navy-/Mist-/Azure-soft-Töne entfallen) */
  --gb-navy: var(--gb-charcoal);
  --gb-navy-2: var(--gb-charcoal);
  --gb-navy-deep: var(--gb-charcoal);
  --gb-mist: var(--gb-grey);
  --gb-grey-2: var(--gb-grey);
  --gb-charcoal: #232629;
  --gb-charcoal-light: #454545;
  --gb-muted: #59636E;
  --gb-line: #DCE5EB;
  --gb-line-2: #C9D6DF;
  --gb-white: #FFFFFF;

  --gb-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  /* Klinische Typografie: Überschriften in Inter (--gb-serif bleibt als Name, damit alle Regeln greifen).
     Lora nur noch für die großen Aussagen (--gb-lora). */
  --gb-serif: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --gb-lora: "Lora", Georgia, "Times New Roman", serif;

  --gb-radius: 4px;
  --gb-radius-lg: 6px;
  --gb-radius-pill: 999px;
  --gb-shadow: 0 16px 40px -28px rgba(35, 38, 41, .32);
  --gb-shadow-sm: 0 8px 22px -16px rgba(35, 38, 41, .3);
  --gb-sec-pad: clamp(44px, 5vw, 72px);
  --gb-header-h: 202px;
  --gb-ease: cubic-bezier(.22, .61, .36, 1);
}

html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body.gb {
  font-family: var(--gb-sans);
  color: var(--gb-charcoal);
  background: #fff;
  font-size: 15px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "ss01" 0, "cv11" 1;
}
.gb :where(h1, h2, h3, h4, p, figure, blockquote, dl, dd) { margin: 0; }
:where(.gb) a { color: var(--gb-sky); text-decoration: none; }
/* WordPress zet via global styles een onderstreping op alle links (:root :where(a)); hier weer uit. Links in lopende tekst (.gb-prose) houden hun eigen onderstreping. */
.gb a { text-decoration: none; }
.gb a:hover { color: var(--gb-sky-dark); }
.gb img { max-width: 100%; height: auto; display: block; }
.gb :where(ul, ol) { margin: 0; padding: 0; list-style: none; }
.gb :focus-visible { outline: 2px solid var(--gb-sky); outline-offset: 3px; border-radius: 2px; }
.gb .gb-sec--navy :focus-visible, .gb .gb-hero :focus-visible, .gb .gb-phero :focus-visible, .gb .gb-cta :focus-visible { outline-color: var(--gb-azure); }
.gb .container { --bs-gutter-x: 48px; }
@media (max-width: 575.98px) { .gb .container { --bs-gutter-x: 32px; } }

/* ---------- Typografie ---------- */
.gb-ico { width: 1em; height: 1em; flex: 0 0 auto; display: inline-block; vertical-align: -.125em; }

.gb-kicker {
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gb-sky);
  margin-bottom: 16px;
}
.gb-kicker--sm { font-size: 10px; letter-spacing: .16em; margin-bottom: 8px; }
.gb-kicker--lg { font-size: 13px; letter-spacing: .12em; }
.gb-kicker--light { color: rgba(255, 255, 255, .9); }
.gb-kicker--azure { color: var(--gb-azure); }
.gb-kicker--line { display: flex; align-items: center; gap: 16px; }
.gb-kicker--line::before { content: none; }

.gb-serif { font-family: var(--gb-serif); font-style: normal; font-weight: 400; }
/* Keine fetten Schnitte: Überschriften, strong/b, dt und th normal; nur Hervorhebungen im Fließtext (.gb-prose strong) bleiben */
.gb :where(h1, h2, h3, h4, h5, h6, strong, b, dt, th) { font-weight: 400; }
.gb-title { color: var(--gb-charcoal); font-family: var(--gb-serif); letter-spacing: -.01em; }
/* Überschriften und Kartentitel in Lora (Brandguide: Serif für Überschriften); Größen unverändert. Navigation, Buttons, Kicker, Formulare und FAQ-Akkordeon bleiben Inter. */
.gb-h3, .gb-prose h2, .gb-prose h3,
.gb-mega__title, .gb-tcard__title, .gb-timeline__label, .gb-extra__title, .gb-doc__name,
.gb-related__name, .gb-card__title, .gb-qcard__q, .gb-infobox__title, .gb-tile__title, .gb-job__title,
.gb-pcard__title, .gb-focus__title, .gb-person__name, .gb-gallery__title, .gb-steps__title, .gb-cta__name { font-family: var(--gb-serif); }
.gb-title .gb-serif {
  color: var(--gb-sky);
  font-family: var(--gb-serif);
  font-style: normal;
  font-weight: 400;
  letter-spacing: -.01em;
}
.gb-display, .gb-h1, .gb-h2 { text-wrap: balance; }
.gb-display {
  font-family: var(--gb-serif);
  font-weight: 400;
  letter-spacing: -.02em;
  font-size: clamp(34px, 3.6vw, 52px);
  line-height: 1.19;
  color: #fff;
}
.gb-display .gb-serif { color: var(--gb-azure); letter-spacing: -.02em; }
/* Kopgrößen laut Brandguide (Typografie web): H1 52/62, H2 40/50, H3 28/38, responsiv skaliert */
.gb-h1 { font-size: clamp(32px, 3.6vw, 52px); line-height: 1.19; }
.gb-h2 { font-size: clamp(28px, 2.8vw, 40px); line-height: 1.25; }
.gb-h3 { font-size: clamp(21px, 1.95vw, 28px); line-height: 1.36; letter-spacing: -.015em; color: var(--gb-charcoal); }
.gb-h2 .gb-serif, .gb-h1 .gb-serif { display: inline; }

.gb-on-dark, .gb-sec--navy .gb-title, .gb-phero:not(.gb-phero--light) .gb-title, .gb-cta .gb-title { color: #fff; }
.gb-on-dark .gb-serif, .gb-sec--navy .gb-title .gb-serif, .gb-phero:not(.gb-phero--light) .gb-title .gb-serif, .gb-cta .gb-title .gb-serif { color: var(--gb-azure); }

.gb-lead { font-size: 15px; line-height: 1.7; color: var(--gb-charcoal); }
.gb-muted { color: var(--gb-muted); }
.gb :where(p + p) { margin-top: 1em; }
.gb-plus {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid currentColor; flex: 0 0 auto;
  font-size: 13px;
}

/* ---------- Buttons & Links ---------- */
.gb-btn {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 22px;
  min-height: 44px; padding: 0 18px 0 20px;
  border-radius: var(--gb-radius-pill); border: 0;
  background: var(--gb-azure); color: var(--gb-charcoal) !important;
  font-size: 15px; line-height: 1.2; letter-spacing: 0;
  transition: background .25s var(--gb-ease), transform .25s var(--gb-ease), color .25s;
  cursor: pointer; white-space: nowrap;
}
.gb-btn .gb-ico { font-size: 15px; transition: transform .25s var(--gb-ease); }
.gb-btn:hover { background: #c3e8f3; color: var(--gb-charcoal) !important; }
.gb-btn:hover .gb-ico { transform: translateX(3px); }
.gb-btn--lg { min-height: 48px; padding: 0 20px 0 22px; gap: 32px; font-size: 15px; }
.gb-btn--sm { min-height: 38px; padding: 0 16px; gap: 14px; font-size: 14px; }
.gb-btn--sky { background: var(--gb-sky); color: #fff !important; }
.gb-btn--sky:hover { background: var(--gb-sky-dark); color: #fff !important; }
.gb-btn--block { width: 100%; justify-content: center; }

.gb-textlink {
  display: inline-flex; align-items: center; gap: 22px;
  padding: 6px 0 10px; border-bottom: 1.5px solid currentColor;
  color: var(--gb-charcoal) !important; font-size: 14.5px; line-height: 1.3;
  transition: gap .25s var(--gb-ease), color .2s;
}
.gb-textlink .gb-ico { font-size: 16px; }
.gb-textlink:hover { gap: 28px; color: var(--gb-sky) !important; }
.gb-textlink--light { color: #fff !important; }
.gb-textlink--light:hover { color: var(--gb-azure) !important; }
.gb-textlink--sm { font-size: 13.5px; gap: 14px; padding-bottom: 6px; }

.gb-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 28px; }

.gb-circle {
  width: 42px; height: 42px; border-radius: 50%; border: 1.5px solid var(--gb-sky);
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; color: var(--gb-sky); cursor: pointer; transition: background .2s, color .2s;
}
.gb-circle .gb-ico { font-size: 18px; }
.gb-circle:hover { background: var(--gb-sky); color: #fff; }

.gb-roundlink {
  position: absolute; right: 24px; bottom: 24px;
  width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, .85);
  display: inline-flex; align-items: center; justify-content: center; color: #fff;
  transition: background .2s, color .2s;
}
.gb-roundlink--dark { border-color: var(--gb-line-2); color: var(--gb-sky); }

.gb-checklist { display: grid; gap: 12px; }
.gb-checklist li { display: flex; gap: 12px; align-items: flex-start; line-height: 1.55; }
.gb-checklist .gb-ico { color: var(--gb-sky); font-size: 17px; margin-top: 3px; }
.gb-checklist--sm { gap: 9px; font-size: 14.5px; }

/* ---------- Abschnitte ---------- */
.gb-sec { padding: var(--gb-sec-pad) 0; position: relative; }
.gb-sec--white { background: #fff; }
.gb-sec--grey { background: var(--gb-grey-2); }
.gb-sec--navy { background: var(--gb-navy-2); color: rgba(255, 255, 255, .86); }
.gb-sec--navy .gb-kicker { color: rgba(255, 255, 255, .78); }
.gb-sec--navy .gb-muted { color: rgba(255, 255, 255, .82); }

.gb-head { margin-bottom: clamp(22px, 2.4vw, 32px); }
.gb-head--split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 360px); gap: 40px 80px; align-items: end; }
.gb-head__aside { font-size: 15px; line-height: 1.75; }
.gb-head__aside .gb-textlink, .gb-head__aside .gb-btn { margin-top: 18px; }
@media (max-width: 991.98px) { .gb-head--split { grid-template-columns: 1fr; gap: 20px; } }

.gb-figure { position: relative; border-radius: var(--gb-radius); overflow: hidden; background: var(--gb-mist); }
.gb-figure img { width: 100%; height: 100%; object-fit: cover; }
.gb-figure figcaption { position: absolute; }

.gb-empty { padding: 28px 32px; background: var(--gb-grey); border-radius: var(--gb-radius); color: var(--gb-muted); }

/* Fließtext aus dem Editor */
.gb-prose { color: var(--gb-muted); font-size: 15px; line-height: 1.75; }
.gb-prose > * + * { margin-top: 1em; }
.gb-prose h2 { font-size: clamp(21px, 1.95vw, 28px); line-height: 1.36; color: var(--gb-charcoal); letter-spacing: -.015em; margin-top: 1.7em; }
.gb-prose h3 { font-size: clamp(18px, 1.45vw, 21px); line-height: 1.35; color: var(--gb-charcoal); letter-spacing: -.015em; margin-top: 1.6em; }
.gb-prose h4 { font-size: 15px; color: var(--gb-charcoal); margin-top: 1.4em; }
.gb-prose > :first-child { margin-top: 0; }
.gb-prose strong { color: var(--gb-charcoal); font-weight: 600; }
.gb-prose a { color: var(--gb-sky); text-decoration: underline; text-decoration-color: var(--gb-azure); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.gb-prose a:hover { text-decoration-color: var(--gb-sky); }
.gb-prose ul { display: grid; gap: 8px; padding-left: 0; }
.gb-prose ul li { position: relative; padding-left: 26px; }
.gb-prose ul li::before { content: ""; position: absolute; left: 6px; top: .72em; width: 6px; height: 6px; border-radius: 50%; background: var(--gb-sky); }
.gb-prose ol { list-style: decimal; padding-left: 1.3em; display: grid; gap: 8px; }
.gb-prose--article { font-size: 15px; }

.visually-hidden-focusable:focus { position: fixed !important; top: 10px; left: 10px; z-index: 2000; background: #fff; padding: 10px 16px; border-radius: var(--gb-radius); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .gb *, .gb *::before, .gb *::after { transition: none !important; animation: none !important; }
}
.gb-head:not(.gb-head--split) .gb-head__aside { margin-top: 18px; max-width: 720px; }
/* Fotos in Rahmen mit festem Seitenverhältnis füllen den Rahmen ohne die Höhe zu beeinflussen */
.gb-gallery__big > img, .gb-gallery__small > img, .gb-person__photo > img, .gb-card__img > img, .gb-split__img > img, .gb-media-steps__img > img, .gb-doc__photo > img { position: absolute; inset: 0; }
.gb-intro__img img { height: auto; }

/* ---------- Buttons statt Textlinks auf Unterseiten ---------- */
.gb-btn--ghost {
  background: transparent; color: var(--gb-sky) !important;
  box-shadow: inset 0 0 0 1.5px var(--gb-sky);
}
.gb-btn--ghost:hover { background: var(--gb-sky); color: #fff !important; }
.gb-btn--ghost-light { color: #fff !important; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .7); }
.gb-btn--ghost-light:hover { background: #fff; color: var(--gb-sky) !important; }
.gb-main .gb-btn--ghost, .gb-cta__card .gb-btn--ghost { margin-top: 22px; }
.gb-main .gb-actions .gb-btn--ghost, .gb-cta .gb-actions .gb-btn--ghost { margin-top: 0; }
.gb-cta__card .gb-btn--ghost { margin-top: 4px; }

/* ---------- Dachzeilen über Abschnitten nur auf der Startseite (umschaltbar unter Praxis > Darstellung) ---------- */
body.gb:not(.home):not(.gb-kickers-on) .gb-kicker--sec { display: none; }

/* ---------- Einfache Aufzählung ---------- */
.gb-dotlist { display: grid; gap: 8px; font-size: 15px; line-height: 1.55; }
.gb-dotlist li { position: relative; padding-left: 18px; }
.gb-dotlist li::before { content: ""; position: absolute; left: 2px; top: .6em; width: 6px; height: 6px; border-radius: 50%; background: var(--gb-sky); }

/* Foto's in een vast kader: uitsnede iets boven het midden, zodat hoofden in beeld blijven */
.gb :where(img) { object-position: 50% 22%; }

/* ---------- Breedtes: vol, breed (container), middel, smal ---------- */
/* Niet elke sectie tegen dezelfde rand: middel en smal geven rust en wisselen het ritme af. */
@media (min-width: 992px) {
  .gb .container.gb-w-narrow { max-width: calc(760px + var(--bs-gutter-x)); }
}
@media (min-width: 1200px) {
  .gb .container.gb-w-mid { max-width: calc(1000px + var(--bs-gutter-x)); }
}
