/*!
 * BB Forms 1.0 – Designsystem „BesserBerater Forms“ auf Gravity Forms 3.2 / Orbital
 *
 * Alles hier wirkt nur unter .gform-theme--orbital.bb-ds_wrapper (Formular-Klasse „bb-ds“)
 * bzw. auf der Bestätigung .gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper). Altformulare im
 * Legacy-Theme (gform-theme--no-framework) bleiben unberührt.
 * Werte: Design/designsystem/project/tokens.css · Klassen-Vertrag: FIELD-CLASSES.md
 * Selektor-Strategie und Avada-Gegenregeln: assets/README.md
 */

/* ===================================================================== 0. Schrift (selbst gehostet, OFL) */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("fonts/manrope-latin-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("fonts/manrope-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ===================================================================== 1. Tokens (nur helles Theme, W7) */
.gform-theme--orbital.bb-ds_wrapper,
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) {
  --surface: #f3f6f3;
  --surface-raised: #ffffff;
  --surface-sunken: #e9efea;
  --ink: #122019;
  --ink-muted: #465a50;
  --ink-subtle: #5f7067;
  --line: #d6dfd9;
  --line-strong: #7d8f85;
  --primary: #0e4a37;
  --primary-hover: #0a3a2b;
  --on-primary: #ffffff;
  --primary-soft: #e2f0e7;
  --brand-lime: #86b02a;
  --lime-soft: #eef5d8;
  --info: #0b5796;
  --info-soft: #e3edf7;
  --warning: #8a5300;
  --warning-soft: #fbf0da;
  --danger: #b3261e;
  --danger-soft: #fcebe9;
  --focus-ring: #0b5796;
  --shadow-card: 0 1px 2px rgba(18,32,25,0.05), 0 12px 32px rgba(18,32,25,0.06);
  --shadow-pop: 0 8px 24px rgba(18,32,25,0.14);
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 20px; --space-6: 24px; --space-8: 32px; --space-12: 48px;
  --radius-sm: 8px; --radius-md: 14px; --radius-lg: 22px; --radius-pill: 999px;
  --control-h: 52px; --control-h-sm: 40px; --form-max: 760px;
  --font-sans: "Manrope", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* Icons (24px, Strich 1.9, aus dem Prototyp) – als Masken, Farbe kommt über background-color */
  --bbf-i-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14m-6-6 6 6-6 6'/%3E%3C/svg%3E");
  --bbf-i-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5m6-6-6 6 6 6'/%3E%3C/svg%3E");
  --bbf-i-chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E");
  --bbf-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E");
  --bbf-i-alert: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5v.01'/%3E%3C/svg%3E");
  --bbf-i-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5.5M12 7.5v.01'/%3E%3C/svg%3E");
  --bbf-i-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z'/%3E%3Cpath d='m8.5 12 2.5 2.5 4.5-5'/%3E%3C/svg%3E");
  --bbf-i-upload: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4m-5 5 5-5 5 5M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3'/%3E%3C/svg%3E");
  --bbf-i-external: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E");
  --bbf-i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
  --bbf-i-edit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9M16.5 3.5a2 2 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5Z'/%3E%3C/svg%3E");
  --bbf-i-file: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z'/%3E%3Cpath d='M14 2v6h6'/%3E%3C/svg%3E");
  --bbf-i-x: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E");
  /* Fehler-Icon für Meldungen (Farbe fest = --danger, weil als Hintergrundbild) */
  --bbf-i-alert-danger: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3261e' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5v.01'/%3E%3C/svg%3E");
  --bbf-i-alert-warning: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a5300' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5v.01'/%3E%3C/svg%3E");
}

/* ===================================================================== 2. Orbital- und Avada-Variablen auf Tokens
 * !important nur hier: GF schreibt pro Formular einen Inline-Block
 * #gform_wrapper_N[data-form-index="0"].gform-theme{--gf-…}, der per ID gewinnt.
 * Die --form_*-Variablen speisen Avadas Formularregel (.gform_wrapper .gfield input:not(…)×6,
 * Spezifität 0,8,1). Statt sie mit !important zu überstimmen, geben wir ihr unsere Werte. */
.gform-theme--orbital.bb-ds_wrapper {
  --gf-color-primary: #0e4a37 !important;
  --gf-color-primary-rgb: 14, 74, 55 !important;
  --gf-color-primary-contrast: #ffffff !important;
  --gf-color-primary-contrast-rgb: 255, 255, 255 !important;
  --gf-color-primary-darker: #0a3a2b !important;
  --gf-color-primary-lighter: #e2f0e7 !important;
  --gf-color-secondary: #ffffff !important;
  --gf-color-secondary-rgb: 255, 255, 255 !important;
  --gf-color-secondary-contrast: #0e4a37 !important;
  --gf-color-secondary-contrast-rgb: 14, 74, 55 !important;
  --gf-color-secondary-darker: #e9efea !important;
  --gf-color-secondary-lighter: #ffffff !important;
  --gf-color-out-ctrl-light: #d6dfd9 !important;
  --gf-color-out-ctrl-light-rgb: 214, 223, 217 !important;
  --gf-color-out-ctrl-light-darker: #d6dfd9 !important;
  --gf-color-out-ctrl-light-lighter: #e9efea !important;
  --gf-color-out-ctrl-dark: #465a50 !important;
  --gf-color-out-ctrl-dark-rgb: 70, 90, 80 !important;
  --gf-color-out-ctrl-dark-darker: #122019 !important;
  --gf-color-out-ctrl-dark-lighter: #5f7067 !important;
  --gf-color-in-ctrl: #ffffff !important;
  --gf-color-in-ctrl-rgb: 255, 255, 255 !important;
  --gf-color-in-ctrl-contrast: #122019 !important;
  --gf-color-in-ctrl-contrast-rgb: 18, 32, 25 !important;
  --gf-color-in-ctrl-darker: #e9efea !important;
  --gf-color-in-ctrl-lighter: #ffffff !important;
  --gf-color-in-ctrl-primary: #0e4a37 !important;
  --gf-color-in-ctrl-primary-rgb: 14, 74, 55 !important;
  --gf-color-in-ctrl-primary-contrast: #ffffff !important;
  --gf-color-in-ctrl-primary-darker: #0a3a2b !important;
  --gf-color-in-ctrl-primary-lighter: #e2f0e7 !important;
  --gf-color-in-ctrl-light: #d6dfd9 !important;
  --gf-color-in-ctrl-light-rgb: 214, 223, 217 !important;
  --gf-color-in-ctrl-light-darker: #d6dfd9 !important;
  --gf-color-in-ctrl-light-lighter: #e9efea !important;
  --gf-color-in-ctrl-dark: #465a50 !important;
  --gf-color-in-ctrl-dark-rgb: 70, 90, 80 !important;
  --gf-color-in-ctrl-dark-darker: #122019 !important;
  --gf-color-in-ctrl-dark-lighter: #7d8f85 !important;
  --gf-color-danger: #b3261e;
  --gf-color-danger-rgb: 179, 38, 30;
  --gf-radius: 8px !important;
  --gf-radius-max-sm: 8px;
  --gf-radius-max-md: 14px;
  --gf-radius-max-lg: 22px;
  --gf-font-family-base: var(--font-sans);
  --gf-font-size-primary: 16px;
  --gf-font-size-secondary: 15px !important;
  --gf-font-size-tertiary: 13px !important;
  --gf-font-weight-primary: 450;
  --gf-font-weight-secondary: 650;
  --gf-padding-x: var(--space-4);
  --gf-form-gap-x: var(--space-4);
  --gf-form-gap-y: var(--space-5);
  --gf-label-space-primary: 0;
  --gf-label-space-y-secondary: 0 !important;
  --gf-ctrl-size: var(--control-h) !important;
  --gf-ctrl-border-width: 1.5px;
  --gf-ctrl-border-color: #7d8f85 !important;
  --gf-ctrl-border-color-hover: var(--ink-muted);
  --gf-ctrl-border-color-focus: var(--primary);
  --gf-ctrl-shadow: none;
  --gf-ctrl-outline-color-focus: var(--primary-soft);
  --gf-ctrl-outline-width-focus: 3px;
  --gf-ctrl-outline-offset: 0;
  --gf-ctrl-placeholder-color: var(--ink-subtle);
  --gf-ctrl-label-color-primary: #122019 !important;
  --gf-ctrl-label-color-secondary: #122019 !important;
  --gf-ctrl-label-font-weight-secondary: 600;
  --gf-ctrl-desc-color: var(--ink-muted);
  --gf-ctrl-desc-font-size: 14px;
  --gf-ctrl-choice-size: 22px !important;
  --gf-ctrl-checkbox-check-radius: 6px;
  --gf-ctrl-radio-check-size: 10px !important;
  --gf-ctrl-btn-font-size: 15px !important;
  --gf-ctrl-btn-font-weight: 700;
  --gf-ctrl-btn-radius: var(--radius-md);
  --gf-ctrl-btn-size: var(--control-h) !important;
  --gf-ctrl-btn-padding-x: var(--space-6) !important;
  --gf-ctrl-btn-border-color-secondary: #7d8f85 !important;
  --gf-field-repeater-separator-color: transparent;
  --gf-field-repeater-gap-y: var(--space-2);
  --gf-icon-ctrl-number: none !important; /* keine Pfeile in Zahlenfeldern (Datum TT/MM/JJJJ) */

  --form_input_height: var(--control-h);
  --form_bg_color: var(--surface-raised);
  --form_text_size: 16px;
  --form_text_color: var(--ink);
  --form_border_width: 1.5px;
  --form_border_width-top: 1.5px;
  --form_border_width-right: 1.5px;
  --form_border_width-bottom: 1.5px;
  --form_border_width-left: 1.5px;
  --form_border_color: var(--line-strong);
  --form_focus_border_color: var(--primary);
  --form_border_radius: var(--radius-sm);
  --body_typography-font-family: var(--font-sans);
  --body_typography-color: var(--ink);
}

/* ===================================================================== 3. Formularkarte (FormShell) */
.gform-theme--orbital.bb-ds_wrapper,
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--form-max);
  margin-inline: auto;
  padding: var(--space-8);
  background: var(--surface-raised);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 24px;
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  font-variant-numeric: tabular-nums;
  font-variant-ligatures: no-common-ligatures no-contextual; /* Manrope macht sonst aus „(c)“ ein „©“ */
}
.gform-theme--orbital.bb-ds_wrapper *,
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) * { box-sizing: border-box; }
@media (max-width: 600px) {
  .gform-theme--orbital.bb-ds_wrapper,
  .gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) { padding: var(--space-6) var(--space-4); border-radius: var(--radius-md); }
}
.gform-theme--orbital.bb-ds_wrapper :focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.gform-theme--orbital.bb-ds_wrapper .screen-reader-text,
.gform-theme--orbital.bb-ds_wrapper .gf_progressbar_title,
.gform-theme--orbital.bb-ds_wrapper .bbf-sr {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.gform-theme--orbital.bb-ds_wrapper .bbf-mobile-only { display: none; }
@media (max-width: 600px) {
  .gform-theme--orbital.bb-ds_wrapper .bbf-desktop-only { display: none; }
  .gform-theme--orbital.bb-ds_wrapper .bbf-mobile-only { display: inline; }
}

/* ===================================================================== 4. Fortschritt (ersetzt gf_progressbar optisch)
 * Drei Bereiche per Maske über die eine GF-Leiste, jedes Segment als Pille mit runden Enden:
 * je Segment 3 Maskenlagen (Mitte + 2 Kappen), Segmentbreite (100% - 2×6px) / 3, Lage 0 % / 50 % / 100 %.
 * Die Füllung ist GFs Prozentwert;
 * die genaue Zuordnung Seite → Bereich liefert bei Bedarf das Plugin (README, offene Punkte). */
.gform-theme--orbital.bb-ds_wrapper .gf_progressbar_wrapper { margin: 0 0 var(--space-8); padding: 0; border: 0; }
.gform-theme--orbital.bb-ds_wrapper .gf_progressbar {
  height: 8px; padding: 0; margin: 0; overflow: hidden;
  border-radius: var(--radius-pill); background: var(--surface-sunken); box-shadow: none;
  --bbf-progress-mask:
    linear-gradient(90deg, transparent 4px, #000 4px calc(100% - 4px), transparent 0) 0% 0 / calc((100% - 12px) / 3) 100% no-repeat, radial-gradient(circle 4px at 4px 50%, #000 98%, transparent) 0% 0 / calc((100% - 12px) / 3) 100% no-repeat, radial-gradient(circle 4px at calc(100% - 4px) 50%, #000 98%, transparent) 0% 0 / calc((100% - 12px) / 3) 100% no-repeat,
    linear-gradient(90deg, transparent 4px, #000 4px calc(100% - 4px), transparent 0) 50% 0 / calc((100% - 12px) / 3) 100% no-repeat, radial-gradient(circle 4px at 4px 50%, #000 98%, transparent) 50% 0 / calc((100% - 12px) / 3) 100% no-repeat, radial-gradient(circle 4px at calc(100% - 4px) 50%, #000 98%, transparent) 50% 0 / calc((100% - 12px) / 3) 100% no-repeat,
    linear-gradient(90deg, transparent 4px, #000 4px calc(100% - 4px), transparent 0) 100% 0 / calc((100% - 12px) / 3) 100% no-repeat, radial-gradient(circle 4px at 4px 50%, #000 98%, transparent) 100% 0 / calc((100% - 12px) / 3) 100% no-repeat, radial-gradient(circle 4px at calc(100% - 4px) 50%, #000 98%, transparent) 100% 0 / calc((100% - 12px) / 3) 100% no-repeat;
  -webkit-mask: var(--bbf-progress-mask);
          mask: var(--bbf-progress-mask);
}
.gform-theme--orbital.bb-ds_wrapper .gf_progressbar_percentage {
  height: 100%; border-radius: inherit; background: var(--primary); transition: width .3s ease;
}
.gform-theme--orbital.bb-ds_wrapper .gf_progressbar_percentage span { display: none; }
/* Intro „In 3 einfachen Schritten · max. 3 Min.“ (Markup vom Plugin im Fortschritts-Wrapper), nur auf dem ersten Bildschirm */
.gform-theme--orbital.bb-ds_wrapper .bbf-progress__intro { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); margin: 0 0 var(--space-3); font: 650 14px/20px var(--font-sans); color: var(--ink-muted); }
.gform-theme--orbital.bb-ds_wrapper .bbf-progress__time { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.gform-theme--orbital.bb-ds_wrapper .bbf-progress__time::before {
  content: ""; width: 16px; height: 16px; background: var(--primary);
  -webkit-mask: var(--bbf-i-clock) center / contain no-repeat; mask: var(--bbf-i-clock) center / contain no-repeat;
}
.gform-theme--orbital.bb-ds_wrapper[data-bbf-active-step]:not([data-bbf-active-step="1"]) .bbf-progress__intro { display: none; }

/* ===================================================================== 5. Feldraster, Labels, Hinweise */
.gform-theme--orbital.bb-ds_wrapper .gform_fields { row-gap: var(--space-5); column-gap: var(--space-4); }
.gform-theme--orbital.bb-ds_wrapper .gfield { margin: 0; min-width: 0; }
/* GF setzt hinter halbbreite Felder ein leeres div.spacer.gfield. Blendet die Conditional Logic das Feld davor aus,
   belegt der Spacer allein eine Rasterzeile (+20 px Lücke je Spacer). Dann mit ausblenden (1.2.0, Seite „Angaben“). */
.gform-theme--orbital.bb-ds_wrapper .gfield:is([style*="display: none"], [style*="display:none"]) + .spacer.gfield { display: none; }
.gform-theme--orbital.bb-ds_wrapper .gfield_label,
.gform-theme--orbital.bb-ds_wrapper .gform-field-label--type-sub {
  display: block; margin: 0; padding: 0 0 var(--space-2);
  font: 650 15px/20px var(--font-sans); color: var(--ink);
}
/* Pflicht: rotes Mini-Sternchen (Nutzerentscheidung 24.10.2026, 1.2.0). Das Plugin setzt span.bbf-req („*“, aria-hidden) ans Ende
   von Label/Legend jedes Pflichtfelds; GFs eigene Markierung bleibt aus. Fragen im Titelstil ohne Sternchen.
   Name mit verstecktem Gruppen-Label (hidden_label): Sternchen an den Teilfeldern. */
.gform-theme--orbital.bb-ds_wrapper .gfield_required { display: none; }
.gform-theme--orbital.bb-ds_wrapper .bbf-req { margin-left: 3px; font: 700 14px/1 var(--font-sans); color: var(--danger); vertical-align: top; }
.gform-theme--orbital.bb-ds_wrapper .bbf-req[hidden] { display: none; }
.gform-theme--orbital.bb-ds_wrapper :is(.bbf-question, .bbf-choice-cards[class*="bbf-step-"], .bbf-check-tiles) > .gfield_label .bbf-req { display: none; }
.gform-theme--orbital.bb-ds_wrapper .gfield_contains_required.hidden_label .ginput_complex .gform-field-label--type-sub::after {
  content: "*"; margin-left: 3px; font: 700 14px/1 var(--font-sans); color: var(--danger); vertical-align: top;
}
/* „(optional)“ steht nur noch bei der Mobilnummer */
.gform-theme--orbital.bb-ds_wrapper .gfield:not(.gfield--type-phone):not(.bbf-upload-compact) .bbf-opt { display: none; }
.gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact .bbf-opt { font: 500 13px/20px var(--font-sans); color: var(--ink-subtle); white-space: nowrap; }
.gform-theme--orbital.bb-ds_wrapper .gfield_description:not(.validation_message) {
  margin: 0; padding: 0; font: 450 14px/20px var(--font-sans); color: var(--ink-muted);
}
.gform-theme--orbital.bb-ds_wrapper .field_description_above > .gfield_description:not(.validation_message) { margin-bottom: var(--space-2); }
.gform-theme--orbital.bb-ds_wrapper .field_description_below .gfield_description:not(.validation_message):not(.gfield_repeater_max_message) { margin-top: var(--space-2); }
.gform-theme--orbital.bb-ds_wrapper .gfield_description.gform_fileupload_rules,
.gform-theme--orbital.bb-ds_wrapper .gfield_repeater_max_message { font: 550 13px/18px var(--font-sans); color: var(--ink-subtle); }

/* Schritt-Frage: Klasse bbf-question am ersten Feld der Seite. Programmatischer Fokus (tabindex=-1) ohne Ring */
.gform-theme--orbital.bb-ds_wrapper [tabindex="-1"]:focus:not(:focus-visible), .gform-theme--orbital.bb-ds_wrapper .gfield_label[tabindex="-1"]:focus, .gform-theme--orbital.bb-ds_wrapper h2[tabindex="-1"]:focus { outline: none; }
.gform-theme--orbital.bb-ds_wrapper :is(.bbf-question, .bbf-choice-cards[class*="bbf-step-"]) > .gfield_label,
.gform-theme--orbital.bb-ds_wrapper .gfield--type-html h2 {
  margin: 0; padding: 0 0 var(--space-6);
  font: 750 32px/38px var(--font-sans) !important; letter-spacing: -0.02em; text-wrap: balance; color: var(--ink);
}
.gform-theme--orbital.bb-ds_wrapper .bbf-question > .gfield_description:not(.validation_message) { margin: calc(var(--space-4) * -1) 0 var(--space-6); font-size: 16px; line-height: 24px; max-width: 60ch; }
/* HTML-Frage (h2 + optional p): Abstand zum ersten Feld kommt allein aus dem Feldraster (B9) */
.gform-theme--orbital.bb-ds_wrapper .gfield--type-html.bbf-question h2 { padding-bottom: var(--space-1); }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-html.bbf-question p { margin: 0; color: var(--ink-muted); font-size: 16px; line-height: 24px; max-width: 60ch; }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-html.bbf-question { margin-bottom: var(--space-1); }
@media (max-width: 600px) {
  .gform-theme--orbital.bb-ds_wrapper :is(.bbf-question, .bbf-choice-cards[class*="bbf-step-"]) > .gfield_label,
  .gform-theme--orbital.bb-ds_wrapper .gfield--type-html h2 { font-size: 24px !important; line-height: 30px !important; letter-spacing: -0.015em; }
  .gform-theme--orbital.bb-ds_wrapper :is(.bbf-question, .bbf-choice-cards[class*="bbf-step-"]) > .gfield_label { padding-bottom: var(--space-4); }
  .gform-theme--orbital.bb-ds_wrapper .bbf-question > .gfield_description:not(.validation_message) { margin: calc(var(--space-2) * -1) 0 var(--space-4); }
  .gform-theme--orbital.bb-ds_wrapper .gfield--type-html.bbf-question { margin-bottom: 0; }
}
/* Auswahlgruppen ohne bbf-question: Gruppen-Titel im heading-Stil */
.gform-theme--orbital.bb-ds_wrapper :is(.bbf-choice-cards, .bbf-check-tiles):not(.bbf-question):not([class*="bbf-step-"]) > .gfield_label { font-size: 18px; line-height: 24px; font-weight: 700; padding-bottom: var(--space-3); }

/* ===================================================================== 6. Eingabefelder (TextField, Select, Textarea) */
.gform-theme--orbital.bb-ds_wrapper .gfield :is(input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]):not([type=hidden]), select, textarea) {
  width: 100%;
  min-height: var(--control-h);
  font: 450 16px/24px var(--font-sans);
  color: var(--ink);
  background-color: var(--surface-raised);
  border: 1.5px solid var(--form_border_color);
  border-radius: var(--radius-sm);
  box-shadow: none;
  outline: 0;
  transition: border-color .15s, box-shadow .15s;
  padding-inline: var(--space-4) !important; /* Avada: padding 8px 15px literal (0,8,1) */
}
.gform-theme--orbital.bb-ds_wrapper .gfield :is(input, textarea)::placeholder { color: var(--ink-subtle); opacity: 1; }
.gform-theme--orbital.bb-ds_wrapper .gfield :is(input, select, textarea):hover { --form_border_color: var(--ink-muted); }
.gform-theme--orbital.bb-ds_wrapper .gfield :is(input, select, textarea):focus {
  --form_border_color: var(--primary);
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--primary-soft);
  outline: 0;
}
.gform-theme--orbital.bb-ds_wrapper .gfield :is(input, select, textarea):focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.gform-theme--orbital.bb-ds_wrapper .gfield textarea {
  min-height: 120px; height: 160px; resize: vertical;
  padding-block: 13px !important; /* Avada: padding 8px 15px literal */
}
.gform-theme--orbital.bb-ds_wrapper .select-arrow { display: none !important; } /* Avada, Test 3/T8 */
.gform-theme--orbital.bb-ds_wrapper .gfield select { padding-inline-end: 44px !important; padding-block: 12px !important; height: auto; }
.gform-theme--orbital.bb-ds_wrapper .gfield input[type=number] { -moz-appearance: textfield; }
.gform-theme--orbital.bb-ds_wrapper .gfield input[type=number]::-webkit-inner-spin-button,
.gform-theme--orbital.bb-ds_wrapper .gfield input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.gform-theme--orbital.bb-ds_wrapper .bbf-iban input { text-transform: uppercase; letter-spacing: .04em; }
/* Betrag in ganzen Euro (bbf-euro): „€“ als Suffix im Feld, Ziffern rechtsbündig (Schadenhöhe, 1.2.0) */
.gform-theme--orbital.bb-ds_wrapper .bbf-euro .ginput_container { position: relative; } /* volle Spaltenbreite wie das Datum daneben (Test 4/U3) */
.gform-theme--orbital.bb-ds_wrapper .bbf-euro .ginput_container::after {
  content: "€"; position: absolute; right: 1.5px; top: 1.5px; bottom: 1.5px; width: 48px; display: grid; place-items: center;
  border-left: 1px solid var(--line); border-radius: 0 calc(var(--radius-sm) - 1.5px) calc(var(--radius-sm) - 1.5px) 0;
  background: var(--surface-sunken); font: 650 15px/20px var(--font-sans); color: var(--ink-muted); pointer-events: none;
}
/* Hinweis („Eine Schätzung genügt.“) unter das Feld, damit es mit dem Schadendatum daneben auf einer Linie steht */
.gform-theme--orbital.bb-ds_wrapper .gfield.bbf-euro { display: flex; flex-direction: column; }
.gform-theme--orbital.bb-ds_wrapper .bbf-euro > .gfield_description:not(.validation_message) { order: 5; margin: var(--space-2) 0 0 !important; }
.gform-theme--orbital.bb-ds_wrapper .bbf-euro > .validation_message { order: 10; }
.gform-theme--orbital.bb-ds_wrapper .gfield.bbf-euro input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]):not([type=hidden]) {
  padding-right: 60px !important; text-align: left; font-variant-numeric: tabular-nums; /* Wert links, nie unter dem €-Feld (Test 4/U3) */
}

/* Komplexe Felder: Name, Adresse, Datum (Dreifachfeld) */
.gform-theme--orbital.bb-ds_wrapper .ginput_complex.gform-grid-row { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: var(--space-4); margin: 0; }
.gform-theme--orbital.bb-ds_wrapper .ginput_complex.gform-grid-row > .gform-grid-col { width: auto; max-width: none; flex: none; padding: 0; margin: 0; }
.gform-theme--orbital.bb-ds_wrapper .ginput_complex.gform-grid-row > :is(.gf_clear, input[type=hidden]) { display: none; }
@media (max-width: 600px) { .gform-theme--orbital.bb-ds_wrapper .ginput_container--name.gform-grid-row { grid-auto-flow: row; } }
.gform-theme--orbital.bb-ds_wrapper .ginput_complex .gform-field-label--type-sub { padding-bottom: var(--space-2); }
/* AddressField: Gruppenüberschrift (Legend, Test 2/B5), Straße über die volle Breite, PLZ : Ort = 1 : 2 auch mobil */
.gform-theme--orbital.bb-ds_wrapper .bbf-address > .gfield_label { padding-bottom: var(--space-3); font-size: 18px; line-height: 24px; font-weight: 700; }
.gform-theme--orbital.bb-ds_wrapper .ginput_complex.ginput_container_address {
  display: grid; grid-auto-flow: row; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--space-4); margin: 0;
}
.gform-theme--orbital.bb-ds_wrapper .ginput_container_address > span { width: auto; max-width: none; flex: none; padding: 0; margin: 0; }
.gform-theme--orbital.bb-ds_wrapper .ginput_container_address :is(.address_line_1, .address_line_2, .address_country, .address_state) { grid-column: 1 / -1; }
.gform-theme--orbital.bb-ds_wrapper .ginput_container_address .gf_clear { display: none; }
/* Datum: verbindlich ist bbf-date (ein Textfeld, Maske TT.MM.JJJJ per JS). Falls doch das GF-Dreifachfeld (datefield)
 * genutzt wird: TT | MM | JJJJ in einer Zeile, ohne Pfeile, mit Auto-Sprung */
.gform-theme--orbital.bb-ds_wrapper .gfield--input-type-datefield .ginput_complex.ginput_complex {
  display: grid; grid-auto-flow: row; grid-template-columns: 4.75em 4.75em 6.5em; gap: var(--space-2); margin: 0;
}
.gform-theme--orbital.bb-ds_wrapper .gfield--input-type-datefield .ginput_complex > .gform-grid-col { width: auto; max-width: none; padding: 0; margin: 0; }
.gform-theme--orbital.bb-ds_wrapper .gfield--input-type-datefield input { background-image: none !important; text-align: center; padding-inline: var(--space-2) !important; }
/* Datepicker-Feld: kein Kalender-Icon (TextField-README) */
.gform-theme--orbital.bb-ds_wrapper .gfield--input-type-datepicker .gform-datepicker-toggle,
.gform-theme--orbital.bb-ds_wrapper .gfield--input-type-datepicker img.ui-datepicker-trigger,
.gform-theme--orbital.bb-ds_wrapper .gfield--input-type-datepicker .ginput_container_date::before,
.gform-theme--orbital.bb-ds_wrapper .gfield--input-type-datepicker .ginput_container_date::after { display: none; }

/* PhoneField: Vorwahl + Nummer als ein Verbund (bbf-affix) */
.gform-theme--orbital.bb-ds_wrapper .gform-phone__input-wrapper {
  display: flex; align-items: stretch; border: 1.5px solid var(--line-strong); border-radius: var(--radius-sm); background: var(--surface-raised);
  transition: border-color .15s, box-shadow .15s;
}
.gform-theme--orbital.bb-ds_wrapper .gform-phone__input-wrapper:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft); }
.gform-theme--orbital.bb-ds_wrapper .gform-phone__input-wrapper .gform-phone__input { border: 0 !important; box-shadow: none !important; outline: 0; min-height: calc(var(--control-h) - 3px); }
.gform-theme--orbital.bb-ds_wrapper .gform-phone__country-selector {
  min-height: calc(var(--control-h) - 3px); padding: 0 var(--space-3); border: 0; border-right: 1px solid var(--line); border-radius: var(--radius-sm) 0 0 var(--radius-sm);
  background: transparent; color: var(--ink); font: 650 15px/20px var(--font-sans);
}
/* Länder-Knopf: Flagge ohne Vorwahl (weicht nach Nutzerwunsch vom PhoneField-README ab) */
.gform-theme--orbital.bb-ds_wrapper .gform-phone__country-selector .gform-phone__dial-code { display: none !important; } /* Nutzerwunsch: im Knopf nur Flagge + Pfeil, keine „+49“ (GF-Foundation zeigt sie mit 0,4,0 an); das Menü zeigt Vorwahlen weiter */
/* Orbital zeichnet den Länder-Knopf als eigenes Feld (Rahmen, Fläche) – im Verbund nur ein Trennstrich (Test 2/B6) */
.gform-theme--orbital.bb-ds_wrapper .gfield--type-phone button.gform-phone__country-selector.gform-theme-button {
  display: inline-flex !important; align-items: center; gap: var(--space-1); height: 100% !important;
  min-height: calc(var(--control-h) - 3px) !important; min-block-size: calc(var(--control-h) - 3px) !important; padding: 0 var(--space-3) !important;
  border: 0 !important; border-right: 1px solid var(--line) !important; border-radius: var(--radius-sm) 0 0 var(--radius-sm) !important;
  background: transparent !important; box-shadow: none !important; color: var(--ink) !important; font: 650 15px/20px var(--font-sans) !important;
}
.gform-theme--orbital.bb-ds_wrapper .gfield--type-phone .ginput_country-selector_container { display: flex; }
.gform-theme--orbital.bb-ds_wrapper .gform-phone__input-wrapper .gform-field-label--type-sub { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); padding: 0; }
.gform-theme--orbital.bb-ds_wrapper .ginput_phone_container { flex: 1; min-width: 0; }

/* Abschnitt (GF section, z. B. „Vollmacht und Unterschrift“) als Gruppenüberschrift im heading-Stil (Test 3/T11) */
.gform-theme--orbital.bb-ds_wrapper .gfield--type-section { margin-top: var(--space-3); padding: 0; border: 0 !important; }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-section .gsection_title { margin: 0; padding: 0; font: 700 18px/24px var(--font-sans) !important; letter-spacing: 0; color: var(--ink); }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-section .gsection_description { margin: var(--space-1) 0 0; padding: 0; font: 450 14px/20px var(--font-sans); color: var(--ink-muted); }

/* ===================================================================== 7. Auswahl: gemeinsame Basis
 * Orbital legt .gchoice als inline-grid an. Wir machen das Label zur Klickfläche/Karte. */
.gform-theme--orbital.bb-ds_wrapper .gfield--type-choice .gform-field-label--type-inline {
  font: 600 15px/22px var(--font-sans); color: var(--ink);
}
.gform-theme--orbital.bb-ds_wrapper .gfield--type-choice :is(.gfield_radio, .gfield_checkbox) { display: grid; gap: var(--space-2); }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-choice input.gfield-choice-input { margin: 0; }
/* Checkbox-Box selbst zeichnen (Orbital nutzt ein Icon-Font-Glyph): gewählt = gefüllt primary, Haken on-primary */
.gform-theme--orbital.bb-ds_wrapper .gfield input[type=checkbox] {
  appearance: none; -webkit-appearance: none; display: grid; place-items: center; flex: none;
  width: 22px; height: 22px; margin: 0; padding: 0;
  border: 1.5px solid var(--line-strong); border-radius: 6px; background: var(--surface-raised); cursor: pointer;
  transition: background-color .15s, border-color .15s;
}
.gform-theme--orbital.bb-ds_wrapper .gfield input[type=checkbox]::before {
  content: "" !important; position: static; inset: auto; width: 14px; height: 14px; font-size: 0; opacity: 1; transform: none;
  background: transparent; -webkit-mask: var(--bbf-i-check) center / contain no-repeat; mask: var(--bbf-i-check) center / contain no-repeat;
}
.gform-theme--orbital.bb-ds_wrapper .gfield input[type=checkbox]:checked { background: var(--primary); border-color: var(--primary); }
.gform-theme--orbital.bb-ds_wrapper .gfield input[type=checkbox]:checked::before { background: var(--on-primary); }
.gform-theme--orbital.bb-ds_wrapper .gfield input[type=checkbox]:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-choice .gform-field-label--type-inline .bbf-desc {
  display: block; margin-top: 2px; font: 450 14px/20px var(--font-sans); color: var(--ink-muted);
}

/* ----- ChoiceCard (bbf-choice-cards): große Radio-Karte mit Chevron, optional Icon-Kachel */
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gfield_radio,
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gfield_checkbox {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--space-3);
}
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice { display: flex; position: relative; }
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice > label { flex: 1; } /* gleiche Höhe je Reihe (Test 2/B11) */
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice > input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; margin: 0; pointer-events: none; }
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice > label {
  display: flex; flex-direction: column; justify-content: center;
  min-height: 72px; margin: 0; padding: var(--space-4) 48px var(--space-4) var(--space-4);
  border: 1.5px solid var(--line); border-radius: var(--radius-md); background: var(--surface-raised);
  font: 700 15px/20px var(--font-sans); color: var(--ink); cursor: pointer;
  transition: border-color .15s, background-color .15s;
}
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice > label::after {
  content: ""; position: absolute; right: var(--space-4); top: 50%; width: 20px; height: 20px; margin-top: -10px;
  background: var(--ink-subtle); -webkit-mask: var(--bbf-i-chev) center / contain no-repeat; mask: var(--bbf-i-chev) center / contain no-repeat;
}
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice:has(> input:is([data-bbf-redirect], .bbf-redirect input[value=adresse], .bbf-redirect input[value=bank])) > label::after { -webkit-mask-image: var(--bbf-i-external); mask-image: var(--bbf-i-external); }
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice > label:hover { border-color: var(--line-strong); }
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice:has(> input:checked) > label { border-color: var(--primary); background: var(--primary-soft); }
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice:has(> input:focus-visible) > label { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice > label .bbf-desc { font-weight: 450; }
/* Icon-Kachel 44px nur für Werte mit Icon (Themen); die Liste der Werte steht hier einmal */
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice:has(> input:is([value=aendern], [value=unterlagen], [value=zahlung], [value=kontakt], [value=schaden], [value=ende])) > label { min-height: 84px; padding-left: calc(var(--space-4) * 2 + 44px); }
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice:has(> input:is([value=aendern], [value=unterlagen], [value=zahlung], [value=kontakt], [value=schaden], [value=ende]))::before {
  content: ""; position: absolute; z-index: 1; left: var(--space-4); top: 50%; width: 44px; height: 44px; margin-top: -22px;
  border-radius: 12px; background: var(--primary-soft); pointer-events: none; transition: background-color .15s;
}
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice > input:is([value=aendern], [value=unterlagen], [value=zahlung], [value=kontakt], [value=schaden], [value=ende]) + label::before {
  content: ""; position: absolute; z-index: 2; left: calc(var(--space-4) + 11px); top: 50%; width: 22px; height: 22px; margin-top: -11px;
  background: var(--primary); -webkit-mask: var(--bbf-icon) center / contain no-repeat; mask: var(--bbf-icon) center / contain no-repeat; pointer-events: none;
}
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice:has(> input:checked)::before { background: var(--primary); }
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards .gchoice > input:checked + label::before { background: var(--on-primary); }
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards input[value=aendern] + label { --bbf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9M16.5 3.5a2 2 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5Z'/%3E%3C/svg%3E"); }
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards input[value=unterlagen] + label { --bbf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h5'/%3E%3C/svg%3E"); }
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards input[value=zahlung] + label { --bbf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='15' rx='2'/%3E%3Cpath d='M3 9h18M16 15h2'/%3E%3C/svg%3E"); }
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards input[value=kontakt] + label { --bbf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.5 8.5 0 1 1-4.6-7.5M8 10h9M8 14h6'/%3E%3C/svg%3E"); }
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards input[value=schaden] + label { --bbf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z'/%3E%3Cpath d='M12 8v8M8 12h8'/%3E%3C/svg%3E"); }
.gform-theme--orbital.bb-ds_wrapper .bbf-choice-cards input[value=ende] + label { --bbf-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z'/%3E%3Cpath d='M14 2v6h6M9 13l6 6M15 13l-6 6'/%3E%3C/svg%3E"); }

/* ----- CheckTile (bbf-check-tiles): Kachel mit eigener Box-Spalte rechts; Beschriftung vertikal mittig, läuft nie unter die Box.
 *       (Nutzerentscheidung nach 1.2.1, ersetzt „Box oben rechts, Text darunter“.) Höchstens 2 Zeilen: lange Labels kürzt der Katalog. */
.gform-theme--orbital.bb-ds_wrapper .bbf-check-tiles .gfield_checkbox { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: var(--space-2); }
.gform-theme--orbital.bb-ds_wrapper .bbf-check-tiles .gchoice { display: flex; position: relative; }
.gform-theme--orbital.bb-ds_wrapper .bbf-check-tiles .gchoice > label {
  display: flex; align-items: center; flex: 1; min-width: 0; min-height: var(--control-h); margin: 0;
  padding: 10px 48px 10px var(--space-4); /* rechts: Box 22 + Abstand 10 + Rand 16 */
  border: 1.5px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-raised);
  font: 650 15px/20px var(--font-sans); color: var(--ink); cursor: pointer; transition: border-color .15s, background-color .15s;
  overflow-wrap: anywhere; -webkit-hyphens: auto; hyphens: auto; /* weiche Trennstriche (U+00AD) aus dem Katalog, sonst Trennung nach Sprache, als Notlösung Umbruch */
}
.gform-theme--orbital.bb-ds_wrapper .bbf-check-tiles .gchoice > input { position: absolute; top: 50%; right: var(--space-4); margin: -11px 0 0; z-index: 1; }
/* E15 (bewusste Abweichung vom Designsystem): mobil zwei Spalten, auch bei 320–375 px */
@media (max-width: 600px) {
  .gform-theme--orbital.bb-ds_wrapper .bbf-check-tiles .gfield_checkbox { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gform-theme--orbital.bb-ds_wrapper .bbf-check-tiles .gchoice > label { padding: 8px 40px 8px var(--space-3); font-size: 14px; line-height: 19px; } /* rechts: 22 + 6 + 12 */
  .gform-theme--orbital.bb-ds_wrapper .bbf-check-tiles .gchoice > input { right: var(--space-3); }
}
.gform-theme--orbital.bb-ds_wrapper .bbf-check-tiles .gchoice > label:hover { border-color: var(--line-strong); }
.gform-theme--orbital.bb-ds_wrapper .bbf-check-tiles .gchoice:has(> input:checked) > label { border-color: var(--primary); background: var(--primary-soft); }
.gform-theme--orbital.bb-ds_wrapper .bbf-check-tiles .gchoice:has(> input:focus-visible) > label { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
/* Gruppenüberschrift, vom PHP zwischen die Choices gesetzt (gform_field_choice_markup_pre_render) */
.gform-theme--orbital.bb-ds_wrapper .bbf-check-tiles .bbf-group-label {
  grid-column: 1 / -1; margin: var(--space-4) 0 var(--space-1); padding: 0;
  font: 700 12px/16px var(--font-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-muted);
}
.gform-theme--orbital.bb-ds_wrapper .bbf-check-tiles .bbf-group-label:first-child { margin-top: 0; }

/* ----- Segmented (bbf-segmented): 2–3 gleich breite Segmente, exakt control-h hoch */
.gform-theme--orbital.bb-ds_wrapper .bbf-segmented .gfield_radio {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 4px;
  height: var(--control-h); padding: 4px; background: var(--surface-sunken); border-radius: var(--radius-sm);
}
.gform-theme--orbital.bb-ds_wrapper .bbf-segmented .gchoice { display: block; position: relative; min-width: 0; }
.gform-theme--orbital.bb-ds_wrapper .bbf-segmented .gchoice > input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; margin: 0; pointer-events: none; }
.gform-theme--orbital.bb-ds_wrapper .bbf-segmented .gchoice > label {
  position: relative; display: grid; place-items: center; height: 100%; margin: 0; padding: 6px 4px; border-radius: 6px;
  font: 650 15px/20px var(--font-sans); color: var(--ink-muted); text-align: center; white-space: nowrap; cursor: pointer;
}
.gform-theme--orbital.bb-ds_wrapper .bbf-segmented .gchoice + .gchoice > label::before {
  content: ""; position: absolute; left: -2.5px; top: 30%; bottom: 30%; width: 1px; background: var(--line-strong); opacity: .45;
}
.gform-theme--orbital.bb-ds_wrapper .bbf-segmented .gchoice:has(> input:checked) > label::before,
.gform-theme--orbital.bb-ds_wrapper .bbf-segmented .gchoice:has(> input:checked) + .gchoice > label::before { opacity: 0; }
.gform-theme--orbital.bb-ds_wrapper .bbf-segmented .gchoice:has(> input:checked) > label { background: var(--surface-raised); color: var(--ink); box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.gform-theme--orbital.bb-ds_wrapper .bbf-segmented .gchoice:has(> input:focus-visible) > label { outline: 2px solid var(--focus-ring); outline-offset: 1px; }
@media (max-width: 600px) { .gform-theme--orbital.bb-ds_wrapper .bbf-segmented .gchoice > label { font-size: 13px; padding: 6px 2px; } }

/* ----- RadioList (bbf-radio-list): Zeilen mit sichtbarem Orbital-Radio */
.gform-theme--orbital.bb-ds_wrapper .bbf-radio-list .gchoice {
  position: relative; display: grid; grid-template-columns: 22px 1fr; align-items: center; gap: var(--space-3);
  padding: 14px var(--space-4); border: 1.5px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-raised);
  transition: border-color .15s, background-color .15s;
}
.gform-theme--orbital.bb-ds_wrapper .bbf-radio-list .gchoice > label { margin: 0; cursor: pointer; }
.gform-theme--orbital.bb-ds_wrapper .bbf-radio-list .gchoice > label::after { content: ""; position: absolute; inset: 0; }
.gform-theme--orbital.bb-ds_wrapper .bbf-radio-list .gchoice:hover { border-color: var(--line-strong); }
.gform-theme--orbital.bb-ds_wrapper .bbf-radio-list .gchoice:has(> input:checked) { border-color: var(--primary); background: var(--primary-soft); }
.gform-theme--orbital.bb-ds_wrapper .bbf-radio-list .gchoice:has(> input:focus-visible) { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-choice .gform-field-label--type-inline .bbf-radio__sub { display: block; margin-top: 2px; color: var(--ink-muted); }
.gform-theme--orbital.bb-ds_wrapper .bbf-radio-list .gchoice > label :is(.bbf-desc, .bbf-radio__sub) { font-size: 13px; line-height: 18px; font-weight: 500; margin-top: 0; }

/* ----- Checkbox als Karte (bbf-check-card) – auch für das Consent-Feld */
.gform-theme--orbital.bb-ds_wrapper .bbf-check-card :is(.gchoice, .ginput_container_consent) {
  position: relative; display: grid; grid-template-columns: 22px 1fr; align-items: start; gap: var(--space-3);
  padding: var(--space-4); border: 1.5px solid var(--line); border-radius: var(--radius-md); background: var(--surface-raised);
  transition: border-color .15s, background-color .15s;
}
.gform-theme--orbital.bb-ds_wrapper .bbf-check-card :is(.gchoice, .ginput_container_consent) > label { margin: 0; font-weight: 500; line-height: 22px; cursor: pointer; }
.gform-theme--orbital.bb-ds_wrapper .bbf-check-card :is(.gchoice, .ginput_container_consent) > label::after { content: ""; position: absolute; inset: 0; }
.gform-theme--orbital.bb-ds_wrapper .bbf-check-card :is(.gchoice, .ginput_container_consent) > label a { position: relative; z-index: 1; }
.gform-theme--orbital.bb-ds_wrapper .bbf-check-card :is(.gchoice, .ginput_container_consent):has(> input:checked) { border-color: var(--primary); background: var(--primary-soft); }
.gform-theme--orbital.bb-ds_wrapper .bbf-check-card :is(.gchoice, .ginput_container_consent):has(> input:focus-visible) { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.gform-theme--orbital.bb-ds_wrapper .bbf-check-card input { margin-top: 0; }
/* Consent-Beschreibung (Rechtstext) nicht als Scrollkasten */
.gform-theme--orbital.bb-ds_wrapper .gfield--type-consent .gfield_consent_description { max-height: none; overflow: visible; border: 0; padding: var(--space-2) 0 0; font-size: 13px; line-height: 18px; color: var(--ink-muted); }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-choice a,
.gform-theme--orbital.bb-ds_wrapper .gfield--type-consent a,
.gform-theme--orbital.bb-ds_wrapper .gfield--type-html a { color: var(--primary); font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }

/* ----- Checkbox schlicht (bbf-check-plain) */
.gform-theme--orbital.bb-ds_wrapper .bbf-check-plain .gchoice { display: grid; grid-template-columns: 22px 1fr; align-items: start; gap: var(--space-3); }
.gform-theme--orbital.bb-ds_wrapper .bbf-check-plain .gchoice > label { margin: 0; font-weight: 500; line-height: 22px; cursor: pointer; }
.gform-theme--orbital.bb-ds_wrapper .bbf-check-plain > .gfield_label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; padding: 0; }

/* ===================================================================== 8. Repeater */
.gform-theme--orbital.bb-ds_wrapper .gfield_repeater_wrapper { margin: 0; }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-repeater .gfield_repeater_items { display: grid; gap: var(--space-3); padding: 0; border: 0; border-radius: 0; }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-repeater .gfield_repeater_item { margin: 0; padding: 0; border: 0; }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-repeater .gfield_repeater_buttons .gform-theme-button.gform-theme-button {
  min-height: var(--control-h-sm); padding: 0 var(--space-2); border: 0; border-radius: var(--radius-sm);
  background: transparent; color: var(--primary); box-shadow: none; font: 700 14px/20px var(--font-sans); cursor: pointer;
}
.gform-theme--orbital.bb-ds_wrapper .gfield--type-repeater .gfield_repeater_buttons .gform-theme-button.gform-theme-button:hover { text-decoration: underline; text-underline-offset: 3px; background: transparent; }
.gform-theme--orbital.bb-ds_wrapper .gfield_repeater_buttons .remove_repeater_item { color: var(--ink-muted); }

/* ----- Repeater-Zeile Nummern (bbf-repeater-numbers), verbindlich: TextField (control-h) + „Entfernen“ = bbf-btn--link rechts,
 *       „+ weitere Nummer“ = bbf-btn--link unter der letzten Zeile; Zeilenlabel nur für Screenreader */
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-numbers .gfield_repeater_item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: var(--space-1); row-gap: 0; }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-numbers .gfield_repeater_item > .gfield { grid-column: 1; grid-row: 1; }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-numbers .gfield_repeater_item > .gfield > .gfield_label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; padding: 0; }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-numbers .gfield_repeater_buttons { display: contents; }
/* „Entfernen“ als × rechts neben dem Feld (Test 5/V2: mobil überlagerte es „+ weitere Nummer“); Text bleibt für Screenreader */
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-numbers .remove_repeater_item.remove_repeater_item { grid-column: 2; grid-row: 1; align-self: start; position: relative; width: 32px !important; min-width: 0 !important; height: var(--control-h) !important; padding: 0 !important; margin: var(--space-2) calc(var(--space-2) * -1) 0 0 !important; font-size: 0 !important; color: transparent !important; overflow: hidden; }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-numbers .remove_repeater_item.remove_repeater_item::before { content: "" !important; position: absolute; inset: 0; margin: auto; width: 18px; height: 18px; background: var(--ink-muted); -webkit-mask: var(--bbf-i-x) center / contain no-repeat; mask: var(--bbf-i-x) center / contain no-repeat; }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-numbers .remove_repeater_item.remove_repeater_item:hover::before { background: var(--danger); }
/* nur eine Zeile: GF blendet „Entfernen“ aus (visibility) – dann gar nicht zeigen */
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-numbers .remove_repeater_item[style*="hidden"],
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-numbers .gfield_repeater_item:only-child .remove_repeater_item { display: none; }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-numbers .add_repeater_item { grid-column: 1 / -1; grid-row: 2; justify-self: start; white-space: nowrap; text-align: left; margin-left: calc(var(--space-2) * -1); }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-numbers .gfield_repeater_item:not(:last-child) .add_repeater_item { display: none; }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-numbers .gfield_repeater_max_message { display: none; }

/* Nummern je Sparte halb breit (Nutzerwunsch nach Test 3): zwei Sparten nebeneinander, auch mobil; unter 360 px untereinander.
   Orbital setzt mobil jedes Feld auf die volle Zeile, daher die höhere Spezifität. */
.gform-theme--orbital.bb-ds_wrapper .gform_fields > .gfield.bbf-repeater-numbers { grid-column: span 6; }
@media (max-width: 359px) { .gform-theme--orbital.bb-ds_wrapper .gform_fields > .gfield.bbf-repeater-numbers { grid-column: 1 / -1; } }

/* ----- Personen-Karte (bbf-repeater-persons), verbindlich: Karte wie bbf-check--card, Kopf „Person n“ (heading),
 *       „Entfernen“ = bbf-btn--link oben rechts, „+ weitere Person“ = bbf-btn--secondary unter der letzten Karte */
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-persons .gfield_repeater_items { gap: var(--space-4); }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-persons .gfield_repeater_item {
  position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-4);
  padding: var(--space-4); border: 1.5px solid var(--line); border-radius: var(--radius-md); background: var(--surface-raised);
}
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-persons .gfield_repeater_item > .gform-repeat-label {
  position: static !important; width: auto; height: auto; clip: auto; margin: 0; overflow: visible;
  float: left; width: 100%; top: 0; padding: 0 0 var(--space-1); font: 700 18px/24px var(--font-sans); color: var(--ink);
}
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-persons .gfield_repeater_item > .gfield { grid-column: 1 / -1; }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-persons .gfield_repeater_item > .gfield--width-half { grid-column: span 6; }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-persons .gfield_repeater_buttons { display: contents; }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-persons .remove_repeater_item { position: absolute; top: var(--space-3); right: var(--space-3); }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-persons .gfield_repeater_item:not(:last-child) .add_repeater_item { display: none; }
/* Hinzufügen sitzt im DOM in der letzten Karte; optisch darunter (kein DOM-Umbau) */
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-persons .gfield_repeater_item:last-child:has(.add_repeater_item:not([style*="none"]):not([disabled])) { margin-bottom: calc(var(--control-h) + var(--space-4)); }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-persons .gfield_repeater_buttons .add_repeater_item.gform-theme-button.gform-theme-button {
  position: absolute; left: -1.5px; top: calc(100% + 1.5px + var(--space-4));
  min-height: var(--control-h); padding: 0 var(--space-6); border: 1.5px solid var(--line-strong); border-radius: var(--radius-md);
  background: var(--surface-raised); color: var(--primary); font: 700 15px/20px var(--font-sans); text-decoration: none;
}
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-persons .gfield_repeater_buttons .add_repeater_item.gform-theme-button.gform-theme-button:hover { border-color: var(--primary); text-decoration: none; }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-persons .gfield_repeater_buttons .add_repeater_item[disabled] { display: none; }
.gform-theme--orbital.bb-ds_wrapper .bbf-repeater-persons .gfield_repeater_max_message { margin-bottom: var(--space-3); }
@media (max-width: 600px) { .gform-theme--orbital.bb-ds_wrapper .bbf-repeater-persons .gfield_repeater_item > .gfield--width-half { grid-column: 1 / -1; } }

/* ===================================================================== 9. Upload (bbf-upload, bbf-upload-compact) */
.gform-theme--orbital.bb-ds_wrapper .gform_drop_area {
  display: grid; justify-items: center; gap: var(--space-2); min-height: 0; height: auto;
  padding: calc(var(--space-6) + 56px) var(--space-4) var(--space-6);
  position: relative; text-align: center; cursor: pointer;
  border: 1.5px dashed var(--line-strong); border-radius: var(--radius-md); background: var(--surface-sunken);
  transition: border-color .15s, background-color .15s;
}
.gform-theme--orbital.bb-ds_wrapper .gform_drop_area:hover,
.gform-theme--orbital.bb-ds_wrapper .gform_drop_area.hover { border-color: var(--primary); background: var(--primary-soft); }
.gform-theme--orbital.bb-ds_wrapper .gform_drop_area::before {
  content: ""; position: absolute; top: var(--space-6); left: 50%; width: 44px; height: 44px; margin-left: -22px;
  border-radius: 12px; background: var(--surface-raised); font-size: 0;
}
.gform-theme--orbital.bb-ds_wrapper .gform_drop_area::after {
  content: ""; position: absolute; top: calc(var(--space-6) + 11px); left: 50%; width: 22px; height: 22px; margin-left: -11px;
  background: var(--primary); -webkit-mask: var(--bbf-i-upload) center / contain no-repeat; mask: var(--bbf-i-upload) center / contain no-repeat;
}
.gform-theme--orbital.bb-ds_wrapper .gform_drop_instructions { font: 700 15px/20px var(--font-sans); color: var(--ink); }
/* „PDF, JPG oder PNG“: erlaubte Dateitypen sichtbar, auch mobil (Nutzerwunsch Test 4) */
.gform-theme--orbital.bb-ds_wrapper .gform_drop_instructions[data-bbf-types]::after { content: attr(data-bbf-types); display: block; font: 500 13px/18px var(--font-sans); color: var(--ink-subtle); }
.gform-theme--orbital.bb-ds_wrapper .gform_drop_area .gform_button_select_files.gform-theme-button.gform-theme-button {
  min-height: var(--control-h-sm); padding: 0 var(--space-4); border: 1.5px solid var(--line-strong); border-radius: var(--radius-md);
  background: var(--surface-raised); color: var(--primary); box-shadow: none; font: 700 14px/20px var(--font-sans);
}
.gform-theme--orbital.bb-ds_wrapper .gform_drop_area .gform_button_select_files:hover { border-color: var(--primary); }
.gform-theme--orbital.bb-ds_wrapper .gform_fileupload_rules { display: none; } /* Nutzerwunsch nach Test 3: Grenzen nur als Fehlermeldung bei falscher Datei */
/* einfache Dateiauswahl (ohne Mehrfach-Upload) */
.gform-theme--orbital.bb-ds_wrapper .gfield input[type=file] { font: 450 14px/20px var(--font-sans); color: var(--ink-muted); }
.gform-theme--orbital.bb-ds_wrapper .gfield input[type=file]::file-selector-button {
  min-height: var(--control-h-sm); margin-right: var(--space-3); padding: 0 var(--space-4); border: 1.5px solid var(--line-strong); border-radius: var(--radius-md);
  background: var(--surface-raised); color: var(--primary); font: 700 14px/20px var(--font-sans); cursor: pointer;
}
/* Dateiliste */
.gform-theme--orbital.bb-ds_wrapper .ginput_preview_list { display: grid; gap: var(--space-2); margin-top: var(--space-2); }
.gform-theme--orbital.bb-ds_wrapper .ginput_preview {
  display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: var(--space-3);
  margin: 0; padding: 10px var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-sm); font: 450 14px/20px var(--font-sans);
}
.gform-theme--orbital.bb-ds_wrapper .gfield_fileupload_filename { font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gform-theme--orbital.bb-ds_wrapper .gfield_fileupload_filesize { color: var(--ink-subtle); font-size: 13px; }
.gform-theme--orbital.bb-ds_wrapper .ginput_preview .gform_delete_file { color: var(--primary); background: transparent; border: 0; min-height: 32px; }
.gform-theme--orbital.bb-ds_wrapper .gfield_fileupload_progressbar_progress { background: var(--primary); }
/* kompakt neben der Nachricht wie im Prototyp (bbf-split 3 : 1), mobil gestapelt (Orbital) */
@media (min-width: 641px) {
  .gform-theme--orbital.bb-ds_wrapper .gform_fields > .gfield:has(+ .gfield.bbf-upload-compact) { grid-column: span 9; }
  .gform-theme--orbital.bb-ds_wrapper .gform_fields > .gfield.bbf-upload-compact { grid-column: span 3; display: flex; flex-direction: column; }
  .gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact :is(.ginput_container_fileupload, .gform_fileupload_multifile, .gform_drop_area) { flex: 1; }
  .gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact .ginput_container_fileupload { display: flex; flex-direction: column; }
  .gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact .gform_fileupload_multifile { display: flex; }
  .gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact .gform_drop_area { align-content: center; }
  /* gleiche Oberkante: beide Labels einzeilig; gleiche Höhe: Ablagefläche so hoch wie die Nachricht (160 px) */
  .gform-theme--orbital.bb-ds_wrapper .gform_fields > .gfield:has(+ .gfield.bbf-upload-compact) > .gfield_label,
  .gform-theme--orbital.bb-ds_wrapper .gform_fields > .gfield.bbf-upload-compact > .gfield_label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .gform-theme--orbital.bb-ds_wrapper .gform_fields > .gfield.bbf-upload-compact { align-self: start; }
  .gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact .gform_drop_area { flex: none; height: 160px; min-height: 0; }
  .gform-theme--orbital.bb-ds_wrapper .gform_fields > .gfield:has(+ .gfield.bbf-upload-compact) textarea { height: 160px; }
}
/* kompakt (neben der Nachricht) */
.gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact .gform_drop_area { padding: calc(var(--space-3) + 44px) var(--space-3) var(--space-3); gap: var(--space-1); }
.gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact .gform_drop_area::before { top: var(--space-3); width: 36px; height: 36px; margin-left: -18px; border-radius: 10px; }
.gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact .gform_drop_area::after { top: calc(var(--space-3) + 8px); width: 20px; height: 20px; margin-left: -10px; }
.gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact .gform_drop_instructions { font-size: 13px; line-height: 18px; font-weight: 650; }
.gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact .gform_drop_area .gform_button_select_files.gform-theme-button.gform-theme-button { padding: 6px 10px; font-size: 13px; line-height: 17px; white-space: normal; }
.gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact .gform_fileupload_rules { font-size: 12px; line-height: 16px; }
@media (max-width: 600px) {
  .gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact .gform_drop_area { justify-items: start; text-align: left; padding: var(--space-3) var(--space-3) var(--space-3) calc(var(--space-3) * 2 + 36px); min-height: 60px; align-content: center; }
  .gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact .gform_drop_area::before { top: 50%; left: var(--space-3); margin: -18px 0 0; }
  .gform-theme--orbital.bb-ds_wrapper .bbf-upload-compact .gform_drop_area::after { top: 50%; left: calc(var(--space-3) + 8px); margin: -10px 0 0; }
}

/* ===================================================================== 10. Unterschrift (bbf-signature)
 * Breite/Seitenverhältnis des Canvas regelt auf dem Desktop der Avada-Custom-Code, bis 600 px bb-forms.js (sizeSignatures). */
.gform-theme--orbital.bb-ds_wrapper .gfield--type-signature .gfield_signature_container {
  position: relative; overflow: hidden; border: 0 !important; border-radius: var(--radius-md);
  box-shadow: inset 0 0 0 1.5px var(--line-strong); /* Rahmen ohne Platzbedarf: Canvas bleibt so breit wie berechnet (T12) */
  background: var(--surface-raised); touch-action: none;
}
.gform-theme--orbital.bb-ds_wrapper .gfield--type-signature .gfield_signature_container canvas {
  display: block; border: 0 !important; /* GF setzt einen gestrichelten Inline-Rahmen */
  background-color: transparent !important; cursor: crosshair !important;
}
.gform-theme--orbital.bb-ds_wrapper .gfield--type-signature .gfield_signature_container::after {
  content: ""; position: absolute; left: var(--space-6); right: var(--space-6); bottom: 28px; /* tief unten, Schreibraum oben (1.2.0, tiefer nach Test 4) */
  border-bottom: 1px dashed var(--line-strong); pointer-events: none;
}
/* Platzhalter unter der Grundlinie; Text setzt bb-forms.js als data-bbf-placeholder (übersetzbar über bbFormsConfig.i18n),
 * ausgeblendet, sobald unterschrieben ist (data-bbf-signed) */
.gform-theme--orbital.bb-ds_wrapper .gfield--type-signature .gfield_signature_container[data-bbf-placeholder]::before {
  content: attr(data-bbf-placeholder); position: absolute; left: var(--space-6); bottom: 8px;
  font: 450 13px/18px var(--font-sans); color: var(--ink-subtle); pointer-events: none;
}
.gform-theme--orbital.bb-ds_wrapper .gfield--type-signature .gfield_signature_container[data-bbf-signed]::before { content: none; }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-signature .gfield_signature_ui_container { position: relative; max-width: 600px !important; } /* so breit wie das Feld (Avada: max. 600 px), damit „Löschen“ im Feld sitzt */
/* „Löschen“ wie im Prototyp oben rechts im Feld (Toolbar trägt GF-Inline-Styles) */
.gform-theme--orbital.bb-ds_wrapper .gfield--type-signature .gfield_signature_toolbar {
  position: absolute !important; top: var(--space-2); right: var(--space-2); z-index: 2;
  width: auto !important; height: auto !important; margin: 0 !important; justify-content: flex-end;
}
.gform-theme--orbital.bb-ds_wrapper .gfield--type-signature .gfield_signature_reset_button {
  display: inline-flex !important; align-items: center; gap: var(--space-1); min-height: 32px; padding: 0 var(--space-2) !important;
  color: var(--primary); font: 700 14px/20px var(--font-sans) !important;
}
.gform-theme--orbital.bb-ds_wrapper .gfield--type-signature .gfield_signature_reset_button::before { display: none; }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-signature .gfield_signature_reset_button[data-bbf-label]::after { content: attr(data-bbf-label); } /* Text setzt bb-forms.js (Standard „Löschen“) */
.gform-theme--orbital.bb-ds_wrapper .gfield--type-signature .gfield_description:not(.validation_message) { font-size: 13px; line-height: 18px; font-variant-ligatures: none; }

/* ===================================================================== 11. Hinweise, Kontextzeile, Zusammenfassung (HTML-Felder) */
.gform-theme--orbital.bb-ds_wrapper .gfield--type-html { font: 450 15px/22px var(--font-sans); color: var(--ink); }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-html p { margin: 0 0 var(--space-2); }
.gform-theme--orbital.bb-ds_wrapper .gfield--type-html > :last-child { margin-bottom: 0; }
/* Notice am Feld: bbf-notice-info / -warning / -success / -highlight (+ -danger) */
.gform-theme--orbital.bb-ds_wrapper .gfield:is(.bbf-notice-info, .bbf-notice-warning, .bbf-notice-success, .bbf-notice-highlight, .bbf-notice-danger),
.gform-theme--orbital.bb-ds_wrapper .bbf-notice,
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .bbf-notice {
  position: relative; padding: var(--space-4) var(--space-4) var(--space-4) calc(var(--space-4) + 20px + var(--space-3));
  border-radius: var(--radius-md); background: var(--info-soft); color: var(--ink); font: 450 14px/21px var(--font-sans);
  --bbf-tone: var(--info);
}
.gform-theme--orbital.bb-ds_wrapper .gfield:is(.bbf-notice-info, .bbf-notice-warning, .bbf-notice-success, .bbf-notice-highlight, .bbf-notice-danger)::before,
.gform-theme--orbital.bb-ds_wrapper .bbf-notice::before,
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .bbf-notice::before {
  content: ""; position: absolute; left: var(--space-4); top: calc(var(--space-4) + 1px); width: 20px; height: 20px;
  background: var(--bbf-tone); -webkit-mask: var(--bbf-i-info) center / contain no-repeat; mask: var(--bbf-i-info) center / contain no-repeat;
}
.gform-theme--orbital.bb-ds_wrapper :is(.bbf-notice-warning, .bbf-notice.bbf-notice--warning) { background: var(--warning-soft); --bbf-tone: var(--warning); }
.gform-theme--orbital.bb-ds_wrapper :is(.bbf-notice-danger, .bbf-notice.bbf-notice--danger) { background: var(--danger-soft); --bbf-tone: var(--danger); }
.gform-theme--orbital.bb-ds_wrapper :is(.bbf-notice-success, .bbf-notice.bbf-notice--success) { background: var(--primary-soft); --bbf-tone: var(--primary); }
.gform-theme--orbital.bb-ds_wrapper :is(.bbf-notice-highlight, .bbf-notice.bbf-notice--highlight) { background: var(--lime-soft); --bbf-tone: var(--primary); }
.gform-theme--orbital.bb-ds_wrapper :is(.bbf-notice-warning, .bbf-notice.bbf-notice--warning, .bbf-notice-danger, .bbf-notice.bbf-notice--danger)::before { -webkit-mask-image: var(--bbf-i-alert); mask-image: var(--bbf-i-alert); }
.gform-theme--orbital.bb-ds_wrapper :is(.bbf-notice-success, .bbf-notice.bbf-notice--success, .bbf-notice-highlight, .bbf-notice.bbf-notice--highlight)::before { -webkit-mask-image: var(--bbf-i-shield); mask-image: var(--bbf-i-shield); }
.gform-theme--orbital.bb-ds_wrapper :is(.gfield[class*="bbf-notice-"], .bbf-notice) strong { display: block; margin-bottom: 2px; font-size: 15px; line-height: 21px; font-weight: 700; }
.gform-theme--orbital.bb-ds_wrapper :is(.gfield[class*="bbf-notice-"], .bbf-notice) p { margin: 0; }

/* SelectionSummary / Kontextzeile (bbf-selection, Inhalt vom PHP) */
.gform-theme--orbital.bb-ds_wrapper :is(p, div).bbf-context { display: flex; /* p: Plugin-Markup, schlägt .gfield--type-html p */ align-items: center; gap: var(--space-2); margin: 0 0 var(--space-4); font: 700 16px/22px var(--font-sans); color: var(--ink); }
.gform-theme--orbital.bb-ds_wrapper .bbf-context__mark { width: 10px; height: 10px; border-radius: var(--radius-pill); background: var(--brand-lime); flex: none; }
.gform-theme--orbital.bb-ds_wrapper .bbf-crumbs { display: grid; gap: var(--space-3); padding-bottom: var(--space-4); border-bottom: 1px solid var(--line); }
.gform-theme--orbital.bb-ds_wrapper .bbf-crumbs__row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.gform-theme--orbital.bb-ds_wrapper .bbf-crumbs__path { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 0; margin: 0; padding: 0; list-style: none; min-width: 0; font: 600 14px/20px var(--font-sans); color: var(--ink-muted); }
.gform-theme--orbital.bb-ds_wrapper .bbf-crumbs__path li { display: inline-flex; align-items: center; margin: 0; }
.gform-theme--orbital.bb-ds_wrapper .bbf-crumbs__path li:not(:last-child)::after { content: ""; width: 6px; height: 6px; margin: 0 12px 0 8px; border-top: 1.5px solid var(--ink-subtle); border-right: 1.5px solid var(--ink-subtle); transform: rotate(45deg); flex: none; }
.gform-theme--orbital.bb-ds_wrapper .bbf-crumbs__path li[aria-current] { color: var(--ink); font-weight: 700; }
.gform-theme--orbital.bb-ds_wrapper .bbf-crumbs__pills { display: flex; flex-wrap: wrap; gap: 6px; }
/* Platzhalter der Auswahlleiste (data-bbf-src) schaltet das JS über hidden; display der Chips/Glieder darf das nicht aufheben */
.gform-theme--orbital.bb-ds_wrapper .bbf-crumbs [hidden] { display: none !important; }
.gform-theme--orbital.bb-ds_wrapper .bbf-crumbs__pills:not(:has(.bbf-chip:not([hidden]))) { display: none; }
.gform-theme--orbital.bb-ds_wrapper .bbf-chip { display: inline-flex; align-items: center; gap: var(--space-1); padding: 4px 12px; border-radius: var(--radius-pill); background: var(--primary-soft); font: 650 13px/18px var(--font-sans); color: var(--ink); }
@media (max-width: 600px) { .gform-theme--orbital.bb-ds_wrapper .bbf-crumbs__path { font-size: 13px; line-height: 18px; } .gform-theme--orbital.bb-ds_wrapper .bbf-crumbs__row { align-items: flex-start; } }
/* Link-Button (Ändern, Bearbeiten) */
/* Orbital gestaltet jedes <button> im Formular als Primary-Button (über --gf-local-*, nicht per Spezifität schlagbar),
   daher tragen die Kern-Eigenschaften des Link-Buttons !important (Test 2/B1) */
.gform-theme--orbital.bb-ds_wrapper :is(.bbf-btn--link, button.bbf-btn--link),
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .bbf-btn--link {
  display: inline-flex !important; align-items: center; gap: var(--space-1); flex: none;
  width: auto !important; height: auto !important; min-height: 32px !important; min-block-size: 32px !important; min-width: 0 !important;
  margin: 0 calc(var(--space-2) * -1) 0 0 !important; padding: 0 var(--space-2) !important;
  border: 0 !important; border-radius: var(--radius-sm) !important; box-shadow: none !important;
  background: transparent !important; color: var(--primary) !important; opacity: 1 !important;
  font: 700 14px/20px var(--font-sans) !important; text-decoration: none; cursor: pointer;
}
.gform-theme--orbital.bb-ds_wrapper :is(.bbf-btn--link, button.bbf-btn--link):hover { text-decoration: underline !important; text-underline-offset: 3px; }
.gform-theme--orbital.bb-ds_wrapper :is(.bbf-crumbs, .bbf-review) .bbf-btn--link::before {
  content: "" !important; display: block !important; flex: none; width: 16px; height: 16px; color: inherit !important; background: currentColor !important;
  -webkit-mask: var(--bbf-i-edit) center / contain no-repeat !important; mask: var(--bbf-i-edit) center / contain no-repeat !important;
}

/* Review (bbf-review, Inhalt vom PHP) */
.gform-theme--orbital.bb-ds_wrapper .bbf-review { display: grid; gap: var(--space-3); padding: var(--space-4); background: var(--surface-sunken); border-radius: var(--radius-md); }
.gform-theme--orbital.bb-ds_wrapper .bbf-review__head { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); }
.gform-theme--orbital.bb-ds_wrapper .bbf-review__head h3 { margin: 0; font: 700 15px/20px var(--font-sans); color: var(--ink); }
.gform-theme--orbital.bb-ds_wrapper .bbf-review dl { margin: 0; display: grid; grid-template-columns: minmax(120px, 34%) 1fr; gap: 6px var(--space-4); font-size: 14px; line-height: 20px; }
.gform-theme--orbital.bb-ds_wrapper .bbf-review dt { color: var(--ink-muted); font-weight: 450; }
.gform-theme--orbital.bb-ds_wrapper .bbf-review dd { margin: 0; font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.gform-theme--orbital.bb-ds_wrapper .bbf-review + .bbf-review { margin-top: var(--space-3); }
@media (max-width: 600px) { .gform-theme--orbital.bb-ds_wrapper .bbf-review dl { grid-template-columns: 1fr; } .gform-theme--orbital.bb-ds_wrapper .bbf-review dd { margin-bottom: var(--space-2); } }
/* 1.2.8: Zusammenfassung aufklappbar (details); am Desktop immer offen, mobil eingeklappt mit „Alle Angaben ansehen“ */
.gform-theme--orbital.bb-ds_wrapper .bbf-review__fold[open] { display: grid; gap: var(--space-3); }
.gform-theme--orbital.bb-ds_wrapper .bbf-review__toggle {
  display: flex; align-items: center; gap: var(--space-2); min-height: 44px; margin: calc(-1 * var(--space-2)) 0; cursor: pointer; list-style: none;
  font: 700 14px/20px var(--font-sans); color: var(--primary);
}
.gform-theme--orbital.bb-ds_wrapper .bbf-review__toggle::-webkit-details-marker { display: none; }
.gform-theme--orbital.bb-ds_wrapper .bbf-review__toggle::after {
  content: ""; width: 8px; height: 8px; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-2px) rotate(45deg); transition: transform .15s;
}
.gform-theme--orbital.bb-ds_wrapper .bbf-review__fold[open] > .bbf-review__toggle::after { transform: translateY(2px) rotate(-135deg); }
@media (min-width: 601px) { .gform-theme--orbital.bb-ds_wrapper .bbf-review__toggle { display: none; } }

/* ===================================================================== 12. Fehler: Feldmeldung und Zusammenfassung (ErrorSummary) */
/* Fehlermeldung unter das Feld, auch wenn das Formular „validation_above“ eingestellt hat */
.gform-theme--orbital.bb-ds_wrapper .gfield.field_validation_above:not(.gfield--type-html) { display: flex; flex-direction: column; }
.gform-theme--orbital.bb-ds_wrapper .gfield.field_validation_above > .validation_message { order: 10; }
.gform-theme--orbital.bb-ds_wrapper .gfield_validation_message,
.gform-theme--orbital.bb-ds_wrapper .gfield.is-invalid[data-bbf-msg]::after {
  display: block; text-align: left; margin: var(--space-2) 0 0; padding: 0 0 0 26px; border: 0; background: var(--bbf-i-alert-danger) 0 1px / 18px 18px no-repeat;
  font: 550 14px/20px var(--font-sans); color: var(--danger);
}
.gform-theme--orbital.bb-ds_wrapper .gfield.is-invalid[data-bbf-msg]::after { content: attr(data-bbf-msg); order: 11; }
.gform-theme--orbital.bb-ds_wrapper .gfield.is-invalid.bbf-msg-warning[data-bbf-msg]::after { color: var(--warning); background-image: var(--bbf-i-alert-warning); }
/* Avada färbt Labels im Fehlerfall rot (.gform_wrapper .gfield_error label) – Labels bleiben ink */
.gform-theme--orbital.bb-ds_wrapper .gfield_error label,
.gform-theme--orbital.bb-ds_wrapper .gfield_error legend { color: var(--ink); }
/* Rahmen: serverseitig (gfield_error) oder vom JS beim Verlassen (is-invalid); is-fixed hebt auf */
.gform-theme--orbital.bb-ds_wrapper .gfield:is(.gfield_error, .is-invalid):not(.is-fixed) :is(input, select, textarea) { --form_border_color: var(--danger); border-color: var(--danger); }
.gform-theme--orbital.bb-ds_wrapper .gfield:is(.gfield_error, .is-invalid):not(.is-fixed) .gform-phone__input-wrapper { border-color: var(--danger); }
.gform-theme--orbital.bb-ds_wrapper .gfield:is(.gfield_error, .is-invalid):not(.is-fixed) .gfield_signature_container { box-shadow: inset 0 0 0 1.5px var(--danger); }
.gform-theme--orbital.bb-ds_wrapper .gfield:is(.gfield_error, .is-invalid):not(.is-fixed) :is(.bbf-choice-cards, .bbf-check-tiles, .bbf-radio-list, .bbf-check-card) .gchoice > label,
.gform-theme--orbital.bb-ds_wrapper .gfield:is(.gfield_error, .is-invalid):not(.is-fixed):is(.bbf-choice-cards, .bbf-check-tiles) .gchoice > label,
.gform-theme--orbital.bb-ds_wrapper .gfield:is(.gfield_error, .is-invalid):not(.is-fixed):is(.bbf-radio-list) .gchoice,
.gform-theme--orbital.bb-ds_wrapper .gfield:is(.gfield_error, .is-invalid):not(.is-fixed):is(.bbf-check-card) :is(.gchoice, .ginput_container_consent) { border-color: var(--danger); }
.gform-theme--orbital.bb-ds_wrapper .gfield:is(.gfield_error, .is-invalid):not(.is-fixed).bbf-segmented .gfield_radio { box-shadow: inset 0 0 0 1.5px var(--danger); }
.gform-theme--orbital.bb-ds_wrapper .gfield:is(.gfield_error, .is-invalid):not(.is-fixed) .gform_drop_area { border-color: var(--danger); }
.gform-theme--orbital.bb-ds_wrapper .gfield.is-fixed .gfield_validation_message { display: none; }
.gform-theme--orbital.bb-ds_wrapper .gfield.is-valid :is(input, select, textarea):not(:focus) { --form_border_color: var(--primary); border-color: var(--primary); }

/* GF-Validierungsbox → ErrorSummary */
.gform-theme--orbital.bb-ds_wrapper .gform_validation_errors {
  display: grid; gap: var(--space-2); margin: 0 0 var(--space-6); padding: var(--space-4); text-align: left;
  border: 1.5px solid var(--danger); border-radius: var(--radius-md); background: var(--danger-soft); box-shadow: none;
  scroll-margin-top: 120px; /* Platz für Avadas klebenden Seitenkopf */
}
.gform-theme--orbital.bb-ds_wrapper .gform_validation_errors:focus { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.gform-theme--orbital.bb-ds_wrapper .gform_validation_errors > .gform_submission_error {
  display: flex; flex-direction: row; justify-content: flex-start; align-items: center; gap: var(--space-2); margin: 0; padding: 0; text-align: left;
  font: 700 15px/21px var(--font-sans); color: var(--danger);
}
.gform-theme--orbital.bb-ds_wrapper .gform_validation_errors > .gform_submission_error .gform-icon { display: none; }
.gform-theme--orbital.bb-ds_wrapper .gform_validation_errors > .gform_submission_error::before {
  content: ""; flex: none; width: 20px; height: 20px; background: var(--danger);
  -webkit-mask: var(--bbf-i-alert) center / contain no-repeat; mask: var(--bbf-i-alert) center / contain no-repeat;
}
.gform-theme--orbital.bb-ds_wrapper .gform_validation_errors ol { display: grid; gap: 2px; margin: 0; padding: 0 0 0 30px; list-style: disc; text-align: left; font: 450 14px/21px var(--font-sans); color: var(--ink); }
.gform-theme--orbital.bb-ds_wrapper .gform_validation_errors li { margin: 0; color: var(--ink); list-style: disc; }
.gform-theme--orbital.bb-ds_wrapper .gform_validation_errors li[hidden] { display: none; }
.gform-theme--orbital.bb-ds_wrapper .gform_validation_errors a { color: var(--ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.gform-theme--orbital.bb-ds_wrapper .gform_validation_errors.is-fixed { display: none; }

/* ===================================================================== 13. Navigation (FormNav) und Buttons
 * Avada-Gegenregeln mit !important: .gform_next_button{width:3rem!important;height:3rem!important;float:right!important}
 * aus dem Custom CSS und .gform_wrapper button[type=submit]:not(.gform_image_button){…!important} (Absenden grün). */
.gform-theme--orbital.bb-ds_wrapper .gform_page_footer,
.gform-theme--orbital.bb-ds_wrapper .gform_footer {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-3);
  margin: var(--space-8) 0 0; padding: var(--space-6) 0 0; border-top: 1px solid var(--line);
}
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) :is(.gform_next_button, .gform_button, .gform_previous_button) {
  display: inline-flex !important; align-items: center; justify-content: center; gap: var(--space-2);
  width: auto !important; height: auto !important; min-height: var(--control-h) !important; float: none !important;
  margin: 0; border: 1.5px solid transparent !important; border-radius: var(--radius-md) !important; box-shadow: none !important; text-shadow: none !important;
  font: 700 15px/20px var(--font-sans) !important; letter-spacing: 0; text-transform: none; text-decoration: none; cursor: pointer !important;
  transition: background-color .15s, border-color .15s, color .15s, opacity .15s;
}
/* Primary: Weiter / Absenden */
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) :is(.gform_next_button, .gform_button) {
  margin-inline-start: auto !important; padding: 0 var(--space-6) !important;
  background: var(--primary) !important; color: var(--on-primary) !important;
}
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) :is(.gform_next_button, .gform_button):hover { background: var(--primary-hover) !important; color: var(--on-primary) !important; }
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) .gform_next_button::after {
  content: "" !important; /* Orbital setzt content:none an Buttons */ flex: none; width: 18px; height: 18px; background: currentColor;
  -webkit-mask: var(--bbf-i-right) center / contain no-repeat; mask: var(--bbf-i-right) center / contain no-repeat;
}
/* Ghost: Zurück */
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) .gform_previous_button {
  padding: 0 var(--space-3) !important; background: transparent !important; color: var(--ink-muted) !important;
}
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) .gform_previous_button:hover { background: var(--surface-sunken) !important; color: var(--ink) !important; }
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) .gform_previous_button::before {
  content: "" !important; flex: none; width: 18px; height: 18px; background: currentColor;
  -webkit-mask: var(--bbf-i-left) center / contain no-repeat; mask: var(--bbf-i-left) center / contain no-repeat;
}
/* Auswahl-Seiten (Frage-Feld mit bbf-autonext): kein sichtbarer Weiter-Button. Der GF-Button bleibt im Layout und wird
 * nur visuell versteckt (bbf-sr-Muster), weil GF 3.2 beim Absenden einen Button mit display != none verlangt
 * (scripts-theme.min.js: „Active button not found“). visibility:hidden nimmt ihn aus Tab-Reihenfolge und
 * Accessibility-Baum, ohne tabindex; GF prüft nur display und disabled. bb-forms.js löst ihn per click() aus.
 * Ohne Zurück-Button wird die ganze Leiste auf dieselbe Weise versteckt (nie display:none). */
.gform-theme--orbital.bb-ds_wrapper .gform_page:has(.gfield.bbf-autonext):not(:has(.gfield[class*="bbf-step-"])) .gform_page_footer .gform_next_button,
.gform-theme--orbital.bb-ds_wrapper .gform_page:has(.gfield.bbf-autonext):not(:has(.gfield[class*="bbf-step-"])) .gform_page_footer:not(:has(.gform_previous_button)) {
  position: absolute !important; width: 1px !important; height: 1px !important; min-height: 0 !important; margin: -1px !important; padding: 0 !important;
  overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; border: 0 !important;
  opacity: 0 !important; visibility: hidden !important;
}
/* blass, aber klickbar (aria-disabled) / wirklich gesperrt (disabled) */
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) .is-disabled { opacity: .45; }
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) :is(.gform_next_button, .gform_button).is-disabled:hover { background: var(--primary) !important; }
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) [disabled] { opacity: .45; cursor: not-allowed !important; }
/* Ladezustand beim AJAX-Seitenwechsel (verbindlich): Breite bleibt, Text transparent, 20-px-Ring in der Textfarbe ersetzt den Pfeil */
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) .is-loading { position: relative; pointer-events: none; color: transparent !important; }
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) .is-loading::before { opacity: 0; }
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) .is-loading::after {
  content: "" !important; position: absolute; left: 50%; top: 50%; width: 20px; height: 20px; margin: -10px 0 0 -10px;
  border: 2.5px solid currentColor; border-radius: 50%; border-right-color: transparent;
  color: var(--on-primary); background: none; -webkit-mask: none; mask: none;
  animation: bbf-spin .7s linear infinite;
}
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) .gform_previous_button.is-loading::after { color: var(--ink-muted); }
@keyframes bbf-spin { to { transform: rotate(360deg); } }
/* GF-eigener Spinner neben dem Button entfällt, der Button zeigt den Zustand */
.gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) :is(.gform-loader, .gform_ajax_spinner) { display: none !important; }

@media (max-width: 600px) {
  .gform-theme--orbital.bb-ds_wrapper .gform_page_footer,
  .gform-theme--orbital.bb-ds_wrapper .gform_footer {
    position: sticky; bottom: 0; z-index: 3;
    margin: var(--space-6) calc(var(--space-4) * -1) calc(var(--space-6) * -1);
    padding: var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
    background: var(--surface-raised); border-radius: 0 0 var(--radius-md) var(--radius-md);
  }
  .gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) :is(.gform_next_button, .gform_button) { flex: 1; padding: 0 var(--space-4) !important; white-space: nowrap; }
  .gform-theme--orbital.bb-ds_wrapper :is(.gform_page_footer, .gform_footer) .gform_previous_button { flex: none; width: auto !important; padding: 0 var(--space-2) !important; }
  /* Feld nicht hinter der klebenden Leiste verstecken; Höhe misst bb-forms.js */
  .gform-theme--orbital.bb-ds_wrapper .gfield { scroll-margin-bottom: calc(var(--bbf-nav-h, 76px) + var(--space-4)); }
}

/* ===================================================================== 14. Bestätigung (Success) */
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .gform_confirmation_message { font: 450 15px/22px var(--font-sans); color: var(--ink); }
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .bbf-success { display: grid; justify-items: start; gap: var(--space-4); }
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .bbf-success__badge { position: relative; width: 56px; height: 56px; border-radius: 16px; background: var(--primary-soft); }
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .bbf-success__badge::after {
  content: ""; position: absolute; inset: 15px; background: var(--primary);
  -webkit-mask: var(--bbf-i-check) center / contain no-repeat; mask: var(--bbf-i-check) center / contain no-repeat;
}
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .bbf-success h2 { margin: 0; font: 750 24px/30px var(--font-sans); letter-spacing: -0.015em; color: var(--ink); }
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .bbf-success p { margin: 0; color: var(--ink-muted); }
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .bbf-success strong { color: var(--ink); }
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .bbf-steps-list { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--space-3); counter-reset: s; }
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .bbf-steps-list li { display: grid; grid-template-columns: 28px 1fr; gap: var(--space-3); margin: 0; font-size: 15px; line-height: 22px; counter-increment: s; }
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .bbf-steps-list li::before { content: counter(s); width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-sunken); font-size: 13px; font-weight: 700; color: var(--primary); }
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .bbf-btn--secondary {
  display: inline-flex; align-items: center; justify-content: center; min-height: var(--control-h); padding: 0 var(--space-6);
  border: 1.5px solid var(--line-strong); border-radius: var(--radius-md); background: var(--surface-raised);
  color: var(--primary); font: 700 15px/20px var(--font-sans); text-decoration: none;
}
.gform_confirmation_wrapper:is(.bb-ds, .bb-ds_wrapper) .bbf-btn--secondary:hover { border-color: var(--primary); }

/* ===================================================================== 15. Browser-Schritte (E14) und Seitenwechsel */
/* Nur der aktive Schritt ist sichtbar; bb-forms.js setzt data-bbf-step-hidden an Feldern und an der GF-Navigation */
.gform-theme--orbital.bb-ds_wrapper [data-bbf-step-hidden] { display: none !important; }
/* T5: Hat der letzte Schritt eine eigene Navigation mit „Weiter“, löst die den GF-Button aus (bb-forms.js);
   die GF-Leiste wird dann nur visuell versteckt (nie display:none, sonst bricht GF ab) */
.gform-theme--orbital.bb-ds_wrapper .gform_page_footer[data-bbf-footer-proxy] {
  position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important;
  overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; border: 0 !important; opacity: 0 !important; visibility: hidden !important;
}
/* T5-Rückfall: Hat der letzte Schritt keinen eigenen „Weiter“, ist die GF-Leiste sichtbar und klebt mobil unten.
   Dann klebt die Schritt-Navigation (nur „Zurück“) nicht zusätzlich, sonst verdeckt die eine die andere. */
@media (max-width: 600px) {
  .gform-theme--orbital.bb-ds_wrapper .gform_page:has(> .gform_page_footer:not([data-bbf-step-hidden]):not([data-bbf-footer-proxy])) .gfield.bbf-step-nav {
    position: static; margin: var(--space-3) 0 0; padding: var(--space-4) 0 0; border-radius: 0; background: transparent;
  }
}
/* Kurzes Einblenden eines neuen Schritts (≤ 200 ms), nur Bewegung, nie leer */
.gform-theme--orbital.bb-ds_wrapper [data-bbf-enter] { animation: bbf-step-in .18s ease-out both; }
@keyframes bbf-step-in { from { transform: translateY(6px); opacity: .6; } to { transform: none; opacity: 1; } }
/* Schritt-Navigation im HTML-Feld (bbf-step-nav): Zurück als Ghost, Weiter als Primary – wie die GF-Leiste */
.gform-theme--orbital.bb-ds_wrapper .gfield.bbf-step-nav { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-top: var(--space-3); padding-top: var(--space-6); border-top: 1px solid var(--line); }
.gform-theme--orbital.bb-ds_wrapper .gfield.bbf-step-nav button[data-bbf-step] {
  display: inline-flex !important; align-items: center; justify-content: center; gap: var(--space-2); width: auto !important; height: auto !important;
  min-height: var(--control-h) !important; min-block-size: var(--control-h) !important; margin: 0 !important;
  border: 1.5px solid transparent !important; border-radius: var(--radius-md) !important; box-shadow: none !important; font: 700 15px/20px var(--font-sans) !important; cursor: pointer;
  transition: background-color .15s, color .15s, opacity .15s;
}
.gform-theme--orbital.bb-ds_wrapper .gfield.bbf-step-nav button[data-bbf-step="next"] { margin-left: auto !important; padding: 0 var(--space-6) !important; background: var(--primary) !important; color: var(--on-primary) !important; }
.gform-theme--orbital.bb-ds_wrapper .gfield.bbf-step-nav button[data-bbf-step="next"]:hover { background: var(--primary-hover) !important; }
.gform-theme--orbital.bb-ds_wrapper .gfield.bbf-step-nav button[data-bbf-step="back"] { padding: 0 var(--space-3) !important; background: transparent !important; color: var(--ink-muted) !important; }
.gform-theme--orbital.bb-ds_wrapper .gfield.bbf-step-nav button[data-bbf-step="back"]:hover { background: var(--surface-sunken) !important; color: var(--ink) !important; }
.gform-theme--orbital.bb-ds_wrapper .gfield.bbf-step-nav button[data-bbf-step="next"]::after,
.gform-theme--orbital.bb-ds_wrapper .gfield.bbf-step-nav button[data-bbf-step="back"]::before {
  content: "" !important; display: block !important; flex: none; width: 18px; height: 18px; color: inherit !important; background: currentColor !important;
  -webkit-mask: var(--bbf-i-right) center / contain no-repeat !important; mask: var(--bbf-i-right) center / contain no-repeat !important;
}
.gform-theme--orbital.bb-ds_wrapper .gfield.bbf-step-nav button[data-bbf-step="back"]::before { -webkit-mask-image: var(--bbf-i-left) !important; mask-image: var(--bbf-i-left) !important; }
.gform-theme--orbital.bb-ds_wrapper .gfield.bbf-step-nav button.is-disabled { opacity: .45 !important; }
.gform-theme--orbital.bb-ds_wrapper .gfield.bbf-step-nav button.is-disabled:hover { background: var(--primary) !important; }
@media (max-width: 600px) {
  .gform-theme--orbital.bb-ds_wrapper .gfield.bbf-step-nav {
    position: sticky; bottom: 0; z-index: 3;
    margin: var(--space-3) calc(var(--space-4) * -1) calc(var(--space-6) * -1);
    padding: var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
    background: var(--surface-raised); border-radius: 0 0 var(--radius-md) var(--radius-md);
  }
  .gform-theme--orbital.bb-ds_wrapper .gfield.bbf-step-nav button[data-bbf-step="next"] { flex: 1; padding: 0 var(--space-4) !important; }
}
/* Formularanfang beim Hochscrollen nicht an den Bildschirmrand kleben */
.gform-theme--orbital.bb-ds_wrapper { scroll-margin-top: var(--space-4); }
/* A3: GF setzt nach dem AJAX-Seitenwechsel opacity:0 an <form>, bis die Conditional Logic initialisiert ist
   (sonst blitzen alle bedingten Felder auf). Statt einer leeren Karte: Fortschritt bleibt sichtbar, die Felder
   bleiben verborgen, ein Ladekreis steht in der Karte. GF entfernt das opacity danach selbst. */
.gform-theme--orbital.bb-ds_wrapper > form:is([style*="opacity: 0"], [style*="opacity:0"]) { opacity: 1 !important; }
.gform-theme--orbital.bb-ds_wrapper > form:is([style*="opacity: 0"], [style*="opacity:0"]) .gform_body { visibility: hidden; }
.gform-theme--orbital.bb-ds_wrapper:has(> form:is([style*="opacity: 0"], [style*="opacity:0"])) { position: relative; min-height: 280px; }
.gform-theme--orbital.bb-ds_wrapper:has(> form:is([style*="opacity: 0"], [style*="opacity:0"]))::after {
  content: ""; position: absolute; left: 50%; top: 140px; width: 28px; height: 28px; margin-left: -14px;
  border: 3px solid var(--primary); border-right-color: transparent; border-radius: 50%; animation: bbf-spin .7s linear infinite;
}
/* B12: CookieYes-Symbol (fixiert unten links) mobil über die klebende Navigation heben – nur auf Seiten mit bb-ds-Formular */
@media (max-width: 600px) {
  body:has(.gform-theme--orbital.bb-ds_wrapper) .cky-btn-revisit-wrapper { top: auto !important; bottom: 88px !important; } /* über der klebenden Leiste (52 + 2×12 + 12) */
}

/* ===================================================================== 16. Bewegung */
@media (prefers-reduced-motion: reduce) {
  .gform-theme--orbital.bb-ds_wrapper *, .gform-theme--orbital.bb-ds_wrapper *::before, .gform-theme--orbital.bb-ds_wrapper *::after { transition: none !important; }
  .gform-theme--orbital.bb-ds_wrapper [data-bbf-enter] { animation: none; }
  .gform-theme--orbital.bb-ds_wrapper .is-loading::after { animation-duration: 2s; }
}

/* ===================================================================== 1.4.0 */
/* Errechnete Versicherungssumme (Feld 314, Inhalt vom Plugin): nur die Summe, groß */
.gform-theme--orbital.bb-ds_wrapper .bbf-sum { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px var(--space-3); }
.gform-theme--orbital.bb-ds_wrapper .bbf-sum__label { font: 500 14px/20px var(--font-sans); color: var(--ink-muted); }
.gform-theme--orbital.bb-ds_wrapper .bbf-sum__value { font: 750 22px/28px var(--font-sans); color: var(--ink); font-variant-numeric: tabular-nums; }
/* Halbbreite Felder nebeneinander: Eingabefelder unten bündig, auch wenn nur eines eine Beschreibung hat */
@media (min-width: 641px) {
  .gform-theme--orbital.bb-ds_wrapper .gfield--width-half:is(.gfield--type-select, .gfield--type-text, .gfield--type-number, .gfield--type-email, .gfield--type-phone, .gfield--input-type-datefield) { display: flex; flex-direction: column; }
  .gform-theme--orbital.bb-ds_wrapper .gfield--width-half:is(.gfield--type-select, .gfield--type-text, .gfield--type-number, .gfield--type-email, .gfield--type-phone, .gfield--input-type-datefield) > .ginput_container { margin-top: auto; }
}
