/* Ergänzungen für die statische Version (ersetzt CMS-Laufzeitverhalten) */
[hidden] { display: none !important; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
section[id] { scroll-margin-top: 90px; }
body.fp-no-scroll { overflow: hidden; }

/* Semantische H1 ohne optische Änderung */
h1.fp-h1, .fp-h { margin: 0; font: inherit; color: inherit; letter-spacing: inherit; line-height: inherit; text-transform: inherit; }
.fp-modal h2 { margin: 0; font: inherit; }

/* Bilder ohne Lazy-Blur */
.con-blur-active img.lazyloaded, img.lazyloaded { filter: none !important; opacity: 1; }

/* Statische Karte (datenschutzfreundlich, ohne Drittanbieter-Aufruf) */
.con-kit-component-map__content { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; }
.fp-map { position: absolute; inset: 0; display: block; }
.fp-map img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fp-map__attr { position: absolute; right: 6px; bottom: 4px; font: 11px/1.4 system-ui, sans-serif; color: #333;
  background: rgba(255,255,255,.8); padding: 1px 6px; border-radius: 3px; }

/* Megamenü */
.fp-megamenu { position: fixed; top: var(--fp-mm-top, 72px); left: 0; right: 0; z-index: 900; display: flex; justify-content: center; pointer-events: none; }
.fp-megamenu > .con-kit-megamenu { pointer-events: auto; position: relative !important; inset: auto !important; transform: none !important;
  width: min(1200px, calc(100vw - 32px)) !important; max-height: calc(100vh - var(--fp-mm-top, 72px) - 16px); max-height: calc(100dvh - var(--fp-mm-top, 72px) - 16px);
  overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  background: #fff; border-radius: 4px; box-shadow: 0 16px 32px rgba(17,17,26,.1), 0 40px 80px rgba(17,17,26,.1);
  --parent-width: min(1200px, calc(100vw - 32px)); --grid-container__width: min(1200px, calc(100vw - 32px)); }
/* Weißer Hintergrund wächst mit dem Inhalt mit (vorher nur so hoch wie das sichtbare Fenster) */
.fp-megamenu .con-kit-organism-background1 { height: auto !important; min-height: 100%; }
.fp-megamenu .con-kit-organism-background { bottom: 0; height: auto !important; }

/* Modal */
.fp-modal .con-kit-component-modal { position: fixed; }
.fp-modal .con-kit-modal { width: min(1100px, calc(100vw - 48px)); }
@media (max-width: 768px) { .fp-modal .con-kit-modal { width: 100%; } }

/* Formulare */
.fp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.fp-form__status { font: 600 15px/1.5 "Instrument Sans", system-ui, sans-serif; margin: 0; }
.fp-form__status:empty { display: none; }
.fp-form__status--ok { color: #0b6b3a; background: #e8f7ee; border-radius: 8px; padding: 12px 16px; margin: 0 0 16px; }
.fp-form__status--error { color: #8a1c0b; background: #fdecea; border-radius: 8px; padding: 12px 16px; margin: 0 0 16px; }
.fp-invalid.one-kit-form-element, .fp-invalid .one-kit-form-element { --color-border: 255,97,57 !important; --alpha-border: 1 !important; }
.fp-invalid .one-kit-form-radio-check { --color-border: 255,97,57 !important; --alpha-border: 1 !important; }
.fp-form input:focus-visible, .fp-form select:focus-visible, .fp-form textarea:focus-visible { outline: 2px solid #389fff; outline-offset: 2px; }

/* Mobile/Desktop-Varianten (Onepage liefert je Gerät eigenes Markup – hier per Media Query) */
@media (min-width: 992px) { .fp-hm { display: none !important; } }
@media (max-width: 991px) { .fp-hd { display: none !important; } }
@media (min-width: 768px) { .fp-m { display: none !important; } }
@media (max-width: 767px) {
  .fp-d { display: none !important; }
  .fp-mq3 .con-kit-component-marquee-grid-item { width: calc(var(--__mfs-cols_with) / 1) !important; min-width: calc(var(--__mfs-cols_with) / 1) !important; }
}
/* Burger-Menü */
.con-kit-component-burger-menu__container { position: relative; }
.con-kit-component-burger-menu__background { height: 100% !important; }
.con-kit-component-burger-menu[hidden] { display: none !important; }
.con-kit-component-burger-menu:not(.con-kit-component-burger-menu--level-2-mounted) [data-burger-level2],
.con-kit-component-burger-menu:not(.con-kit-component-burger-menu--level-2-mounted) .con-kit-component-burger-menu__back { display: none !important; }
.con-kit-component-burger-menu--level-2-mounted .con-kit-component-burger-menu__root { display: none !important; }

/* Sichtbarer Tastaturfokus */
a:focus-visible, button:focus-visible { outline: 2px solid #389fff; outline-offset: 2px; }
.con-kit-component-burger-menu--level-2-mounted .con-kit-component-burger-menu__logo { visibility: hidden; }

/* 404-Seite */
.fp-404 { font-family: "Instrument Sans", system-ui, sans-serif; color: #04151f; max-width: 720px; }
.fp-404 h1 { font: 700 clamp(28px, 4vw, 46px)/1.15 Figtree, system-ui, sans-serif; margin: 0 0 16px; letter-spacing: -.5px; }
.fp-404 p { font-size: 18px; line-height: 1.6; margin: 0 0 12px; }
.fp-404 ul { margin: 0 0 20px; padding-left: 20px; font-size: 18px; line-height: 1.9; }
.fp-404 a { color: #389fff; }

/* ---------- Terminvereinbarung: Auswahl Vor Ort / Online (Schritt 1) ---------- */
.fp-modal [data-fp-step][hidden] { display: none !important; }
.fp-tw { position: relative; width: min(1100px, calc(100vw - 48px)); background: #fff; color: #04151f; border-radius: 8px;
  padding: clamp(28px, 5vw, 64px); font-family: 'Instrument Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; text-align: left; }
@media (max-width: 768px) { .fp-tw { width: 100%; } }
.fp-tw--wahl { max-width: 860px; }
.fp-tw--online { max-width: 860px; padding-top: 72px; }
.fp-modal h2.fp-tw-h { font-family: Figtree, 'Instrument Sans', system-ui, sans-serif; font-weight: 700; font-size: clamp(28px, 4.4vw, 40px);
  line-height: 1.15; letter-spacing: -.5px; margin: 0 0 12px; }
.fp-tw-lead { font-size: 18px; line-height: 1.55; margin: 0 0 28px; }
.fp-tw-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) { .fp-tw-opts { grid-template-columns: 1fr; } }
.fp-tw-opt { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; width: 100%; margin: 0; padding: 24px; text-align: left;
  font: inherit; color: inherit; background: #f9f5ee; border: 1.5px solid #e4ded2; border-radius: 16px; cursor: pointer;
  transition: border-color .15s, box-shadow .15s, transform .15s; }
.fp-tw-opt:hover { border-color: #389fff; box-shadow: 0 12px 32px -18px rgba(4,21,31,.35); transform: translateY(-2px); }
.fp-tw-opt:focus-visible { outline: none; border-color: #389fff; box-shadow: 0 0 0 3px rgba(56,159,255,.3); }
.fp-tw-ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: #389fff; color: #fff; margin-bottom: 6px; }
.fp-tw-ico svg { width: 26px; height: 26px; }
.fp-tw-t { font-family: Figtree, 'Instrument Sans', system-ui, sans-serif; font-weight: 700; font-size: 21px; line-height: 1.25; }
.fp-tw-d { font-size: 16px; line-height: 1.5; color: #3d4b51; flex: 1; }
.fp-tw-go { margin-top: 8px; font-weight: 700; color: #1a7fd9; }
.fp-tw-back { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 16px; padding: 8px 14px; font: 600 15px/1.2 'Instrument Sans', system-ui, sans-serif;
  color: #04151f; background: #f6f2ea; border: 0; border-radius: 999px; cursor: pointer; }
.fp-tw-back:hover { background: #ece5d8; }
.fp-tw-back:focus-visible { outline: 2px solid #389fff; outline-offset: 2px; }
.fp-tw--online .fp-tw-back { position: absolute; top: 24px; left: clamp(28px, 5vw, 64px); }
.fp-tw-back--abs { position: absolute; top: 20px; left: 24px; z-index: 5; }
.fp-modal section[data-fp-step="praxis"] { position: relative; }
/* PaperIn-Modul im Dialog: ohne eigenen Kartenrahmen, der Dialog ist schon die Karte */
#modal-termin #fpr-termin .fpt-card { border: 0; box-shadow: none; padding: 0; border-radius: 0; }
/* Dialog scrollt, wenn ein Schritt höher als das Fenster ist (Online-Formular) */
.fp-modal .con-kit-component-modal { overflow-y: auto; overscroll-behavior: contain; }
@media (min-width: 769px) {
  .fp-modal .con-kit-component-modal { align-items: flex-start; }
  .fp-modal .con-kit-component-modal__content { margin: auto; padding: 24px 0; }
}
@media (max-width: 768px) { /* Bottom-Sheet bleibt unten, wird bei langem Inhalt aber von oben scrollbar */
  .fp-modal .con-kit-component-modal { align-items: flex-start; }
  .fp-modal .con-kit-component-modal__content { margin-top: auto; }
}
@media (max-width: 768px) { .fp-tw-back--abs { top: 14px; left: 16px; } .fp-modal section[data-fp-step="praxis"] h2 { padding-top: 12px; } }
