/*
 * NABU Regionalverband Calau e.V. – modernes öffentliches Event-Design
 * Für CiviCRM Standalone 6.18.x
 * Custom CSS URL: /public/media/branding/nabu-event.css
 */

:root {
  --nabu-blue: #0072b8;
  --nabu-blue-dark: #004f7f;
  --nabu-blue-soft: #eaf5fb;
  --nabu-green: #5f7f35;
  --nabu-ink: #18313d;
  --nabu-muted: #5f7079;
  --nabu-line: #dce5e9;
  --nabu-surface: #ffffff;
  --nabu-page: #f3f7f8;
  --nabu-radius: 18px;
  --nabu-shadow: 0 16px 42px rgba(24, 49, 61, 0.10);
}

body.nabu-public-event-page {
  background: var(--nabu-page) !important;
  color: var(--nabu-ink);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

body.nabu-public-event-page *,
body.nabu-public-event-page *::before,
body.nabu-public-event-page *::after {
  box-sizing: border-box;
}

body.nabu-public-event-page .nabu-hide-native-title,
body.nabu-public-event-page .nabu-hide-native-branding,
body.nabu-public-event-page .crm-logo,
body.nabu-public-event-page .crm-version {
  display: none !important;
}

body.nabu-public-event-page #crm-container,
body.nabu-public-event-page #crm-main-content-wrapper {
  background: transparent !important;
}

/* Gesamtrahmen */
.nabu-event-page {
  width: min(1040px, calc(100% - 32px));
  margin: 28px auto 48px;
}

/* Kopfbereich mit NABU-Logo */
.nabu-event-header {
  position: relative;
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 26px 30px;
  margin-bottom: 18px;
  background: var(--nabu-surface);
  border: 1px solid var(--nabu-line);
  border-radius: var(--nabu-radius);
  box-shadow: var(--nabu-shadow);
  overflow: hidden;
}

.nabu-event-header::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 5px;
  background: linear-gradient(90deg, var(--nabu-blue), var(--nabu-green));
}

.nabu-event-brand {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  text-decoration: none !important;
}

.nabu-event-brand img {
  display: block;
  width: 188px;
  max-width: 100%;
  height: auto;
  border: 0;
}

.nabu-event-heading {
  min-width: 0;
  flex: 1 1 auto;
}

.nabu-event-kicker {
  margin-bottom: 5px;
  color: var(--nabu-blue-dark);
  font-size: 0.82rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.nabu-event-title {
  margin: 0 !important;
  color: var(--nabu-ink) !important;
  font-size: clamp(1.9rem, 4vw, 3rem) !important;
  line-height: 1.15 !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  font-kerning: normal;
  font-variant-ligatures: common-ligatures;
  text-rendering: optimizeLegibility;
}

.nabu-event-subtitle {
  margin-top: 8px;
  color: var(--nabu-muted);
  font-size: 1rem;
}

/* Event-Karte */
body.nabu-public-event-page .crm-event-info-form-block {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.nabu-public-event-page .crm-event-info-form-block .event-info {
  padding: clamp(22px, 4vw, 38px);
  background: var(--nabu-surface);
  border: 1px solid var(--nabu-line);
  border-radius: var(--nabu-radius);
  box-shadow: var(--nabu-shadow);
}

/* Beschreibung */
body.nabu-public-event-page .event_summary-section {
  margin: 0 0 18px !important;
  padding: 0 !important;
  color: var(--nabu-ink);
  font-size: 1.12rem;
  line-height: 1.7;
  font-weight: 600;
}

body.nabu-public-event-page .event_description-section {
  margin: 0 0 28px !important;
  padding: 0 !important;
  color: #334a55;
  font-size: 1.03rem;
  line-height: 1.75;
}

body.nabu-public-event-page .event_description-section p:first-child,
body.nabu-public-event-page .event_summary-section p:first-child {
  margin-top: 0;
}

body.nabu-public-event-page .event_description-section p:last-child,
body.nabu-public-event-page .event_summary-section p:last-child {
  margin-bottom: 0;
}

/* Info-Blöcke: Datum, Ort, Kontakt, Gebühren */
body.nabu-public-event-page .event_date_time-section,
body.nabu-public-event-page .event_address-section,
body.nabu-public-event-page .event_contact-section,
body.nabu-public-event-page .event_fees-section {
  display: grid !important;
  grid-template-columns: minmax(105px, 145px) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  margin: 12px 0 !important;
  padding: 18px 20px !important;
  background: #f7fafb;
  border: 1px solid var(--nabu-line);
  border-radius: 14px;
}

body.nabu-public-event-page .event_date_time-section > .label,
body.nabu-public-event-page .event_address-section > .label,
body.nabu-public-event-page .event_contact-section > .label,
body.nabu-public-event-page .event_fees-section > .label {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--nabu-blue-dark) !important;
  font-size: 0.78rem !important;
  line-height: 1.5;
  font-weight: 800 !important;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

body.nabu-public-event-page .event_date_time-section > .content,
body.nabu-public-event-page .event_address-section > .content,
body.nabu-public-event-page .event_contact-section > .content,
body.nabu-public-event-page .event_fees-section > .content {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--nabu-ink);
  font-size: 1rem;
  line-height: 1.6;
}

/* Karte */
body.nabu-public-event-page .event_map-section {
  margin: 18px 0 26px !important;
  padding: 0 !important;
}

body.nabu-public-event-page .event_map-section > .content {
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.nabu-public-event-page .event_map-section .olMap,
body.nabu-public-event-page .event_map-section [id*="map"] {
  max-width: 100%;
  border-radius: 14px;
  overflow: hidden;
}

body.nabu-public-event-page .event_map-section a {
  display: inline-block;
  margin-top: 10px;
}

/* Links */
body.nabu-public-event-page .event-info a:not(.crm-register-button),
.event-legal-footer a {
  color: var(--nabu-blue-dark) !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

body.nabu-public-event-page .event-info a:not(.crm-register-button):hover,
.event-legal-footer a:hover {
  color: var(--nabu-blue) !important;
}

/* Anmeldebutton */
body.nabu-public-event-page .register_link-section {
  margin: 0 !important;
  padding: 0 !important;
}

body.nabu-public-event-page .crm-actionlinks-top {
  margin: 0 0 26px !important;
}

body.nabu-public-event-page .crm-actionlinks-bottom {
  margin: 30px 0 0 !important;
}

body.nabu-public-event-page a.crm-register-button,
body.nabu-public-event-page a.crm-register-button.button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 22px !important;
  color: #fff !important;
  background: linear-gradient(135deg, var(--nabu-blue), var(--nabu-blue-dark)) !important;
  border: 0 !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 22px rgba(0, 79, 127, 0.22) !important;
  text-decoration: none !important;
  font-size: 1rem !important;
  font-weight: 750 !important;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

body.nabu-public-event-page a.crm-register-button:hover,
body.nabu-public-event-page a.crm-register-button:focus {
  color: #fff !important;
  filter: brightness(1.04);
  transform: translateY(-1px);
  box-shadow: 0 11px 28px rgba(0, 79, 127, 0.28) !important;
}

body.nabu-public-event-page a.crm-register-button:focus-visible {
  outline: 3px solid rgba(0, 114, 184, .28) !important;
  outline-offset: 3px;
}

body.nabu-public-event-page a.crm-register-button span {
  color: inherit !important;
  background: none !important;
  padding: 0 !important;
}

/* Gebühren-Tabelle */
body.nabu-public-event-page .fee_block-table {
  width: 100%;
  border-collapse: collapse;
}

body.nabu-public-event-page .fee_block-table td {
  padding: 7px 8px;
  border-bottom: 1px solid var(--nabu-line);
}

body.nabu-public-event-page .fee_block-table tr:last-child td {
  border-bottom: 0;
}

/* Kalender-/Share-Bereich */
body.nabu-public-event-page .iCal_links-section {
  margin-top: 22px;
}

/* CiviCRM-Sharebox in das NABU-Design integrieren */
body.nabu-public-event-page .nabu-share-card {
  margin-top: 24px;
}

body.nabu-public-event-page .nabu-share-card > *,
body.nabu-public-event-page .nabu-share-card .crm-social-network,
body.nabu-public-event-page .nabu-share-card .crm-socialnetwork,
body.nabu-public-event-page .nabu-share-card [class*="social-network"] {
  margin: 0 !important;
  padding: 20px 22px !important;
  color: var(--nabu-ink) !important;
  background: linear-gradient(135deg, #f7fafb, #edf5f7) !important;
  border: 1px solid var(--nabu-line) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

body.nabu-public-event-page .nabu-share-card h1,
body.nabu-public-event-page .nabu-share-card h2,
body.nabu-public-event-page .nabu-share-card h3,
body.nabu-public-event-page .nabu-share-card .title {
  margin-top: 0 !important;
  color: var(--nabu-ink) !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

body.nabu-public-event-page .nabu-share-card p,
body.nabu-public-event-page .nabu-share-card label {
  color: #405762 !important;
}

body.nabu-public-event-page .nabu-share-card input[type="text"],
body.nabu-public-event-page .nabu-share-card input[type="email"] {
  min-height: 42px;
  padding: 9px 11px !important;
  background: #fff !important;
  border: 1px solid #c9d8df !important;
  border-radius: 9px !important;
}

/* Eigener rechtlicher Fußbereich */
.event-legal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 18px;
  padding: 22px 26px;
  color: var(--nabu-muted);
  background: #edf4f6;
  border: 1px solid var(--nabu-line);
  border-radius: 14px;
  font-size: 0.92rem;
}

.event-legal-footer__brand {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.event-legal-footer__brand strong {
  color: var(--nabu-ink);
  font-size: 0.95rem;
}

.event-legal-footer__brand span {
  font-size: 0.84rem;
}

.event-legal-footer__links {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.event-legal-footer__links a {
  font-weight: 700;
  text-decoration: none;
}

.event-legal-footer__links a:hover {
  text-decoration: underline;
}

.event-legal-separator {
  color: #92a2aa;
}

/* Statusmeldungen */
body.nabu-public-event-page .messages.status,
body.nabu-public-event-page .messages.help {
  width: min(1040px, calc(100% - 32px));
  margin: 18px auto !important;
  border-radius: 12px !important;
}

/* Nur Verwaltungsleiste für eingeloggte Mitarbeitende etwas ruhiger */
body.nabu-public-event-page .crm-event-manage-tab-actions-ribbon {
  width: min(1040px, calc(100% - 32px));
  margin: 12px auto !important;
  border-radius: 10px;
}

/* Responsive */
@media (max-width: 720px) {
  .nabu-event-page {
    width: min(100% - 20px, 1040px);
    margin-top: 12px;
    margin-bottom: 28px;
  }

  .nabu-event-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
    padding: 22px;
  }

  .nabu-event-brand img {
    width: 160px;
  }

  .nabu-event-title {
    font-size: clamp(1.75rem, 9vw, 2.45rem) !important;
  }

  body.nabu-public-event-page .crm-event-info-form-block .event-info {
    padding: 20px 18px;
  }

  body.nabu-public-event-page .event_date_time-section,
  body.nabu-public-event-page .event_address-section,
  body.nabu-public-event-page .event_contact-section,
  body.nabu-public-event-page .event_fees-section {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 16px !important;
  }

  body.nabu-public-event-page a.crm-register-button,
  body.nabu-public-event-page a.crm-register-button.button {
    width: 100%;
  }

  .event-legal-footer {
    align-items: flex-start;
    flex-direction: column;
    padding: 20px;
  }

  .event-legal-footer__links {
    justify-content: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.nabu-public-event-page a.crm-register-button {
    transition: none;
  }
}

/* ================================================================
   Öffentliche Registrierungsseiten
   Wird durch CRM/Event/Form/Registration/Register.extra.tpl aktiviert.
   ================================================================ */
body.nabu-public-registration-page {
  background: var(--nabu-page) !important;
  color: var(--nabu-ink);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

body.nabu-public-registration-page *,
body.nabu-public-registration-page *::before,
body.nabu-public-registration-page *::after {
  box-sizing: border-box;
}

body.nabu-public-registration-page #crm-container,
body.nabu-public-registration-page #crm-main-content-wrapper {
  background: transparent !important;
}

/* CiviCRM-Branding auf den öffentlichen Event-/Anmeldeseiten ausblenden. */
body.nabu-public-event-page .nabu-hide-native-branding,
body.nabu-public-registration-page .nabu-hide-native-branding,
body.nabu-public-event-page a[href*="civicrm.org"],
body.nabu-public-registration-page a[href*="civicrm.org"],
body.nabu-public-event-page a[href*="civicrm.com"],
body.nabu-public-registration-page a[href*="civicrm.com"],
body.nabu-public-registration-page .crm-logo,
body.nabu-public-registration-page .crm-version,
body.nabu-public-registration-page .civicrm-logo,
body.nabu-public-registration-page .powered-by-civicrm,
body.nabu-public-event-page .civicrm-logo,
body.nabu-public-event-page .powered-by-civicrm {
  display: none !important;
}

.nabu-registration-shell,
body.nabu-public-registration-page .crm-event-register-form-block,
body.nabu-public-registration-page .crm-event-confirm-form-block,
body.nabu-public-registration-page .crm-event-thankyou-form-block,
body.nabu-public-registration-page .event-legal-footer {
  width: min(1040px, calc(100% - 32px));
  margin-left: auto !important;
  margin-right: auto !important;
}

.nabu-registration-shell {
  margin-top: 28px;
  margin-bottom: 18px;
}

.nabu-registration-shell .nabu-event-header {
  margin-bottom: 0;
}

/* Formular als ruhige, moderne Karte */
body.nabu-public-registration-page .crm-event-register-form-block,
body.nabu-public-registration-page .crm-event-confirm-form-block,
body.nabu-public-registration-page .crm-event-thankyou-form-block {
  margin-top: 0 !important;
  margin-bottom: 18px !important;
  padding: clamp(22px, 4vw, 38px) !important;
  color: var(--nabu-ink) !important;
  background: var(--nabu-surface) !important;
  border: 1px solid var(--nabu-line) !important;
  border-radius: var(--nabu-radius) !important;
  box-shadow: var(--nabu-shadow) !important;
}

body.nabu-public-registration-page .crm-event-register-form-block h1,
body.nabu-public-registration-page .crm-event-register-form-block h2,
body.nabu-public-registration-page .crm-event-register-form-block h3,
body.nabu-public-registration-page .crm-event-confirm-form-block h1,
body.nabu-public-registration-page .crm-event-confirm-form-block h2,
body.nabu-public-registration-page .crm-event-confirm-form-block h3 {
  color: var(--nabu-ink) !important;
  letter-spacing: 0 !important;
}

body.nabu-public-registration-page .crm-section {
  max-width: 100%;
}

body.nabu-public-registration-page .crm-section > .label,
body.nabu-public-registration-page label {
  color: #27424f !important;
  font-weight: 650 !important;
}

body.nabu-public-registration-page input[type="text"],
body.nabu-public-registration-page input[type="email"],
body.nabu-public-registration-page input[type="tel"],
body.nabu-public-registration-page input[type="number"],
body.nabu-public-registration-page input[type="date"],
body.nabu-public-registration-page select,
body.nabu-public-registration-page textarea {
  min-height: 44px;
  max-width: 100%;
  padding: 9px 11px !important;
  color: var(--nabu-ink) !important;
  background: #fff !important;
  border: 1px solid #c7d6dd !important;
  border-radius: 9px !important;
  box-shadow: none !important;
}

body.nabu-public-registration-page textarea {
  min-height: 110px;
}

body.nabu-public-registration-page input:focus,
body.nabu-public-registration-page select:focus,
body.nabu-public-registration-page textarea:focus {
  border-color: var(--nabu-blue) !important;
  outline: 3px solid rgba(0, 114, 184, .14) !important;
  outline-offset: 1px;
}

body.nabu-public-registration-page .crm-button,
body.nabu-public-registration-page button[type="submit"],
body.nabu-public-registration-page input[type="submit"] {
  min-height: 46px;
  padding: 11px 20px !important;
  color: #fff !important;
  background: linear-gradient(135deg, var(--nabu-blue), var(--nabu-blue-dark)) !important;
  border: 0 !important;
  border-radius: 11px !important;
  box-shadow: 0 8px 22px rgba(0, 79, 127, .20) !important;
  font-weight: 700 !important;
}

body.nabu-public-registration-page .messages,
body.nabu-public-registration-page .help {
  border-radius: 11px !important;
}

body.nabu-public-registration-page .event-legal-footer {
  margin-top: 18px !important;
  margin-bottom: 40px !important;
}

/* Von CiviCRM zusätzlich ausgegebene identische Event-Titel unterdrücken. */
body.nabu-public-registration-page .nabu-hide-native-title {
  display: none !important;
}

@media (max-width: 720px) {
  .nabu-registration-shell,
  body.nabu-public-registration-page .crm-event-register-form-block,
  body.nabu-public-registration-page .crm-event-confirm-form-block,
  body.nabu-public-registration-page .crm-event-thankyou-form-block,
  body.nabu-public-registration-page .event-legal-footer {
    width: min(100% - 20px, 1040px);
  }

  .nabu-registration-shell {
    margin-top: 12px;
  }

  body.nabu-public-registration-page .crm-event-register-form-block,
  body.nabu-public-registration-page .crm-event-confirm-form-block,
  body.nabu-public-registration-page .crm-event-thankyou-form-block {
    padding: 20px 18px !important;
  }
}

/* ================================================================
   V4 – Korrekturen für anonyme Eventseite und Anmeldeformular
   ================================================================ */

/*
 * CiviCRM/Standalone kann für anonyme Besucher eine helle Schriftfarbe
 * an untergeordnete <p>/<span>-Elemente vererben. Deshalb setzen wir
 * die Farben nicht nur am Container, sondern explizit an allen typischen
 * Textelementen. So bleibt die Beschreibung immer lesbar.
 */
body.nabu-public-event-page .event_summary-section,
body.nabu-public-event-page .event_summary-section p,
body.nabu-public-event-page .event_summary-section span,
body.nabu-public-event-page .event_summary-section div,
body.nabu-public-event-page .event_summary-section strong,
body.nabu-public-event-page .event_summary-section em {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}

body.nabu-public-event-page .event_description-section,
body.nabu-public-event-page .event_description-section p,
body.nabu-public-event-page .event_description-section span,
body.nabu-public-event-page .event_description-section div,
body.nabu-public-event-page .event_description-section strong,
body.nabu-public-event-page .event_description-section em,
body.nabu-public-event-page .event_description-section li {
  color: #46565f !important;
  -webkit-text-fill-color: currentColor !important;
}

body.nabu-public-event-page .event_description-section a,
body.nabu-public-event-page .event_summary-section a {
  color: var(--nabu-blue-dark) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* ---------- Anmeldeformular: dunkle CiviCRM-Flächen vollständig neutralisieren ---------- */
body.nabu-public-registration-page .crm-event-register-form-block,
body.nabu-public-registration-page .crm-event-confirm-form-block,
body.nabu-public-registration-page .crm-event-thankyou-form-block {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Standalone/Dark-Theme setzt teilweise Hintergründe direkt auf Form-Container,
   Tabellen und Feldgruppen. Diese Werte werden hier bewusst zurückgesetzt. */
body.nabu-public-registration-page .crm-event-register-form-block div,
body.nabu-public-registration-page .crm-event-register-form-block fieldset,
body.nabu-public-registration-page .crm-event-register-form-block legend,
body.nabu-public-registration-page .crm-event-register-form-block table,
body.nabu-public-registration-page .crm-event-register-form-block tbody,
body.nabu-public-registration-page .crm-event-register-form-block tr,
body.nabu-public-registration-page .crm-event-register-form-block td,
body.nabu-public-registration-page .crm-event-register-form-block th {
  background-color: transparent !important;
  background-image: none !important;
}

/* Lesbare Schrift – auch wenn das anonyme Standalone-Theme Weiß erzwingt. */
body.nabu-public-registration-page .crm-event-register-form-block p,
body.nabu-public-registration-page .crm-event-register-form-block div,
body.nabu-public-registration-page .crm-event-register-form-block span,
body.nabu-public-registration-page .crm-event-register-form-block td,
body.nabu-public-registration-page .crm-event-register-form-block th,
body.nabu-public-registration-page .crm-event-register-form-block label,
body.nabu-public-registration-page .crm-event-register-form-block legend,
body.nabu-public-registration-page .crm-event-register-form-block strong,
body.nabu-public-registration-page .crm-event-register-form-block em {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Links bleiben als Links erkennbar. */
body.nabu-public-registration-page .crm-event-register-form-block a {
  color: var(--nabu-blue-dark) !important;
  -webkit-text-fill-color: currentColor !important;
  text-underline-offset: 3px;
}

body.nabu-public-registration-page .crm-event-register-form-block a:hover,
body.nabu-public-registration-page .crm-event-register-form-block a:focus {
  color: var(--nabu-blue) !important;
}

/* Profil-/Feldgruppen als helle Karten. Mehrere Selektoren sind absichtlich
   enthalten, weil CiviCRM je nach Profil und Erweiterung leicht andere
   Wrapper-Klassen ausgibt. */
body.nabu-public-registration-page .crm-event-register-form-block fieldset,
body.nabu-public-registration-page .crm-event-register-form-block .crm-profile,
body.nabu-public-registration-page .crm-event-register-form-block [class*="crm-profile-name-"],
body.nabu-public-registration-page .crm-event-register-form-block [class*="crm-profile-id-"],
body.nabu-public-registration-page .crm-event-register-form-block .crm-group {
  margin: 0 0 18px !important;
  padding: 20px 22px !important;
  background: #f8fbfc !important;
  border: 1px solid var(--nabu-line) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

/* Keine doppelten Rahmen bei verschachtelten Profil-Wrappern. */
body.nabu-public-registration-page .crm-event-register-form-block fieldset fieldset,
body.nabu-public-registration-page .crm-event-register-form-block .crm-profile .crm-profile,
body.nabu-public-registration-page .crm-event-register-form-block [class*="crm-profile-name-"] [class*="crm-profile-name-"] {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
}

/* Überschriften von Profilen/Feldgruppen */
body.nabu-public-registration-page .crm-event-register-form-block fieldset > legend,
body.nabu-public-registration-page .crm-event-register-form-block .crm-profile-name,
body.nabu-public-registration-page .crm-event-register-form-block .crm-group-title,
body.nabu-public-registration-page .crm-event-register-form-block .crm-accordion-header {
  width: auto !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  color: var(--nabu-ink) !important;
  background: transparent !important;
  border: 0 !important;
  font-size: 1.08rem !important;
  line-height: 1.35 !important;
  font-weight: 750 !important;
  letter-spacing: 0 !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Feldzeilen sauber ausrichten. */
body.nabu-public-registration-page .crm-event-register-form-block .crm-section {
  margin: 0 !important;
  padding: 7px 0 !important;
  color: var(--nabu-ink) !important;
  background: transparent !important;
  border: 0 !important;
}

body.nabu-public-registration-page .crm-event-register-form-block .crm-section > .label {
  color: #38515d !important;
  -webkit-text-fill-color: currentColor !important;
  font-weight: 650 !important;
  line-height: 1.4 !important;
}

body.nabu-public-registration-page .crm-event-register-form-block .crm-section > .content {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Eingabefelder – einheitlich, hell, deutlich lesbar */
body.nabu-public-registration-page .crm-event-register-form-block input[type="text"],
body.nabu-public-registration-page .crm-event-register-form-block input[type="email"],
body.nabu-public-registration-page .crm-event-register-form-block input[type="tel"],
body.nabu-public-registration-page .crm-event-register-form-block input[type="number"],
body.nabu-public-registration-page .crm-event-register-form-block input[type="date"],
body.nabu-public-registration-page .crm-event-register-form-block input[type="url"],
body.nabu-public-registration-page .crm-event-register-form-block select,
body.nabu-public-registration-page .crm-event-register-form-block textarea {
  min-height: 44px !important;
  padding: 9px 12px !important;
  color: #203640 !important;
  -webkit-text-fill-color: #203640 !important;
  background: #fff !important;
  border: 1px solid #bfcfd7 !important;
  border-radius: 9px !important;
  box-shadow: 0 1px 2px rgba(24, 49, 61, .04) !important;
  font: inherit !important;
}

body.nabu-public-registration-page .crm-event-register-form-block input[type="text"],
body.nabu-public-registration-page .crm-event-register-form-block input[type="email"],
body.nabu-public-registration-page .crm-event-register-form-block input[type="tel"],
body.nabu-public-registration-page .crm-event-register-form-block input[type="url"],
body.nabu-public-registration-page .crm-event-register-form-block textarea {
  width: min(100%, 520px) !important;
}

body.nabu-public-registration-page .crm-event-register-form-block select {
  width: min(100%, 360px) !important;
}

body.nabu-public-registration-page .crm-event-register-form-block input:focus,
body.nabu-public-registration-page .crm-event-register-form-block select:focus,
body.nabu-public-registration-page .crm-event-register-form-block textarea:focus {
  border-color: var(--nabu-blue) !important;
  outline: 3px solid rgba(0, 114, 184, .14) !important;
  outline-offset: 1px !important;
  box-shadow: none !important;
}

/* Checkboxen/Radio-Buttons in NABU-Blau; Text bleibt dunkel. */
body.nabu-public-registration-page .crm-event-register-form-block input[type="checkbox"],
body.nabu-public-registration-page .crm-event-register-form-block input[type="radio"] {
  accent-color: var(--nabu-blue);
}

/* DSGVO / Terms & Conditions als eigene, ruhige Infokarte. */
body.nabu-public-registration-page .crm-event-register-form-block [class*="terms" i],
body.nabu-public-registration-page .crm-event-register-form-block [class*="gdpr" i],
body.nabu-public-registration-page .crm-event-register-form-block [id*="terms" i],
body.nabu-public-registration-page .crm-event-register-form-block [id*="gdpr" i] {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Pflichtstern weiterhin rot statt durch die globale Textfarbe überschrieben. */
body.nabu-public-registration-page .crm-event-register-form-block .crm-marker,
body.nabu-public-registration-page .crm-event-register-form-block .required,
body.nabu-public-registration-page .crm-event-register-form-block span.crm-marker {
  color: #b42318 !important;
  -webkit-text-fill-color: #b42318 !important;
}

/* Submit-Bereich: keine dunkle Leiste, Button im NABU-Stil. */
body.nabu-public-registration-page .crm-event-register-form-block .crm-submit-buttons,
body.nabu-public-registration-page .crm-event-register-form-block .crm-form-submit,
body.nabu-public-registration-page .crm-event-register-form-block .crm-button-type-next,
body.nabu-public-registration-page .crm-event-register-form-block .crm-button-type-submit {
  background: transparent !important;
  border: 0 !important;
}

body.nabu-public-registration-page .crm-event-register-form-block .crm-button,
body.nabu-public-registration-page .crm-event-register-form-block button[type="submit"],
body.nabu-public-registration-page .crm-event-register-form-block input[type="submit"] {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: linear-gradient(135deg, var(--nabu-blue), var(--nabu-blue-dark)) !important;
}

body.nabu-public-registration-page .crm-event-register-form-block .crm-button *,
body.nabu-public-registration-page .crm-event-register-form-block button[type="submit"] * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

/* Etwas weniger ungenutzter Leerraum am Anfang des Formulars. */
body.nabu-public-registration-page .crm-event-register-form-block > :first-child {
  margin-top: 0 !important;
}

/* Tabellen in Profilen dürfen nicht das alte Dark-Theme mitbringen. */
body.nabu-public-registration-page .crm-event-register-form-block table,
body.nabu-public-registration-page .crm-event-register-form-block td,
body.nabu-public-registration-page .crm-event-register-form-block th {
  border-color: var(--nabu-line) !important;
}

@media (max-width: 720px) {
  body.nabu-public-registration-page .crm-event-register-form-block fieldset,
  body.nabu-public-registration-page .crm-event-register-form-block .crm-profile,
  body.nabu-public-registration-page .crm-event-register-form-block [class*="crm-profile-name-"],
  body.nabu-public-registration-page .crm-event-register-form-block [class*="crm-profile-id-"],
  body.nabu-public-registration-page .crm-event-register-form-block .crm-group {
    padding: 16px !important;
  }

  body.nabu-public-registration-page .crm-event-register-form-block .crm-section > .label,
  body.nabu-public-registration-page .crm-event-register-form-block .crm-section > .content {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: left !important;
  }

  body.nabu-public-registration-page .crm-event-register-form-block .crm-section > .label {
    margin-bottom: 5px !important;
  }

  body.nabu-public-registration-page .crm-event-register-form-block input[type="text"],
  body.nabu-public-registration-page .crm-event-register-form-block input[type="email"],
  body.nabu-public-registration-page .crm-event-register-form-block input[type="tel"],
  body.nabu-public-registration-page .crm-event-register-form-block input[type="url"],
  body.nabu-public-registration-page .crm-event-register-form-block select,
  body.nabu-public-registration-page .crm-event-register-form-block textarea {
    width: 100% !important;
  }
}

/* ================================================================
   Rechtliche Seiten: Datenschutz + Impressum
   ================================================================ */
body.nabu-legal-page {
  margin: 0;
  min-height: 100vh;
  background: var(--nabu-page) !important;
  color: var(--nabu-ink) !important;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  line-height: 1.7;
}

body.nabu-legal-page *,
body.nabu-legal-page *::before,
body.nabu-legal-page *::after {
  box-sizing: border-box;
}

.nabu-legal-wrap {
  width: min(1100px, calc(100% - 32px));
  margin: 28px auto 48px;
}

.nabu-legal-page .nabu-event-header {
  margin-bottom: 22px;
}

.nabu-legal-grid {
  display: grid;
  grid-template-columns: minmax(220px, 270px) minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

.nabu-legal-toc,
.nabu-legal-content,
.nabu-legal-card {
  background: var(--nabu-surface);
  border: 1px solid var(--nabu-line);
  border-radius: var(--nabu-radius);
  box-shadow: var(--nabu-shadow);
}

.nabu-legal-toc {
  position: sticky;
  top: 18px;
  padding: 20px;
}

.nabu-legal-toc__title {
  margin: 0 0 10px;
  color: var(--nabu-blue-dark);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.nabu-legal-toc a {
  display: block;
  padding: 7px 0;
  color: var(--nabu-ink) !important;
  font-size: .93rem;
  line-height: 1.35;
  text-decoration: none;
  border-bottom: 1px solid #edf2f4;
}

.nabu-legal-toc a:last-child {
  border-bottom: 0;
}

.nabu-legal-toc a:hover,
.nabu-legal-toc a:focus {
  color: var(--nabu-blue-dark) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.nabu-legal-content {
  padding: clamp(24px, 4vw, 42px);
}

.nabu-legal-content section {
  scroll-margin-top: 24px;
  padding: 0 0 30px;
  margin: 0 0 30px;
  border-bottom: 1px solid var(--nabu-line);
}

.nabu-legal-content section:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.nabu-legal-content h2 {
  margin: 0 0 14px;
  color: var(--nabu-ink) !important;
  font-size: clamp(1.3rem, 2.6vw, 1.75rem);
  line-height: 1.25;
  letter-spacing: 0;
}

.nabu-legal-content h3 {
  margin: 24px 0 9px;
  color: var(--nabu-blue-dark) !important;
  font-size: 1.08rem;
  line-height: 1.35;
}

.nabu-legal-content p {
  margin: 0 0 13px;
  color: #3d505a !important;
}

.nabu-legal-content a {
  color: var(--nabu-blue-dark) !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}

.nabu-legal-content address {
  margin: 12px 0 18px;
  padding: 16px 18px;
  background: #f7fafb;
  border: 1px solid var(--nabu-line);
  border-left: 4px solid var(--nabu-blue);
  border-radius: 12px;
  color: #334a55;
  font-style: normal;
}

.nabu-legal-meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 18px;
  padding: 7px 11px;
  background: var(--nabu-blue-soft);
  border-radius: 999px;
  color: var(--nabu-blue-dark);
  font-size: .86rem;
  font-weight: 700;
}

.nabu-legal-callout {
  margin: 18px 0;
  padding: 16px 18px;
  background: #f7fafb;
  border: 1px solid var(--nabu-line);
  border-radius: 12px;
}

.nabu-legal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

.nabu-legal-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 16px;
  border-radius: 10px;
  background: var(--nabu-blue-dark);
  color: #fff !important;
  font-weight: 700;
  text-decoration: none !important;
  box-shadow: 0 8px 18px rgba(0,79,127,.18);
}

.nabu-legal-button--secondary {
  background: #eef4f6;
  color: var(--nabu-ink) !important;
  box-shadow: none;
  border: 1px solid var(--nabu-line);
}

.nabu-legal-source-note {
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid var(--nabu-line);
  color: var(--nabu-muted) !important;
  font-size: .9rem;
}

.nabu-legal-page .event-legal-footer {
  margin-top: 22px;
}

@media (max-width: 820px) {
  .nabu-legal-grid {
    grid-template-columns: 1fr;
  }
  .nabu-legal-toc {
    position: static;
  }
  .nabu-legal-toc nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 14px;
  }
}

@media (max-width: 560px) {
  .nabu-legal-wrap {
    width: min(100% - 18px, 1100px);
    margin-top: 10px;
  }
  .nabu-legal-toc nav {
    grid-template-columns: 1fr;
  }
  .nabu-legal-content {
    padding: 20px 17px;
  }
}


/* ================================================================
   V6 – Select2/Chosen-Felder + rechtliche Seiten
   ================================================================ */

/*
 * CiviCRM rendert Land/Bundesland nicht als normales <select>, sondern
 * häufig über Select2 (je nach Build v3/v4) oder Chosen. Darum reichen
 * die normalen select-Regeln nicht aus. Diese Regeln gleichen die
 * sichtbaren Widget-Container an die übrigen Eingabefelder an.
 */
body.nabu-public-registration-page .crm-event-register-form-block .select2-container,
body.nabu-public-registration-page .crm-event-register-form-block .chosen-container {
  width: min(100%, 360px) !important;
  max-width: 100% !important;
  min-height: 44px !important;
  color: #203640 !important;
  -webkit-text-fill-color: #203640 !important;
  font: inherit !important;
}

/* Select2 3.x */
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-choice,
/* Select2 4.x */
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-selection--single,
/* Chosen */
body.nabu-public-registration-page .crm-event-register-form-block .chosen-container-single .chosen-single {
  display: block !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 42px 0 12px !important;
  color: #203640 !important;
  -webkit-text-fill-color: #203640 !important;
  background: #fff !important;
  background-image: none !important;
  border: 1px solid #bfcfd7 !important;
  border-radius: 9px !important;
  box-shadow: 0 1px 2px rgba(24, 49, 61, .04) !important;
  line-height: 42px !important;
  text-decoration: none !important;
}

body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-choice .select2-chosen,
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-selection__rendered,
body.nabu-public-registration-page .crm-event-register-form-block .chosen-container-single .chosen-single span {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #203640 !important;
  -webkit-text-fill-color: #203640 !important;
  line-height: 42px !important;
  background: transparent !important;
}

/* Pfeilbereich hell und dezent statt Dark-Theme. */
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-choice .select2-arrow,
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-selection__arrow,
body.nabu-public-registration-page .crm-event-register-form-block .chosen-container-single .chosen-single div {
  width: 36px !important;
  height: 42px !important;
  right: 0 !important;
  top: 0 !important;
  background: #f7fafb !important;
  background-image: none !important;
  border: 0 !important;
  border-left: 1px solid #d6e0e5 !important;
  border-radius: 0 8px 8px 0 !important;
}

/* Select2 3.x: altes Sprite für den Pfeil entfernen und eigenen Pfeil zeichnen. */
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-choice .select2-arrow b {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  background: none !important;
}

body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-choice .select2-arrow b::after {
  content: "";
  position: absolute;
  top: 18px;
  left: 13px;
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid #526872;
}

/* Select2 4.x Pfeil */
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-selection__arrow b {
  border-color: #526872 transparent transparent transparent !important;
  border-style: solid !important;
  border-width: 6px 5px 0 5px !important;
  margin-left: -5px !important;
  margin-top: -3px !important;
}

/* Chosen-Pfeil */
body.nabu-public-registration-page .crm-event-register-form-block .chosen-container-single .chosen-single div b {
  background: none !important;
  position: relative !important;
}

body.nabu-public-registration-page .crm-event-register-form-block .chosen-container-single .chosen-single div b::after {
  content: "";
  position: absolute;
  top: 18px;
  left: 13px;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid #526872;
}

/* Clear-X nicht auf dunklem Sprite darstellen. */
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-search-choice-close,
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-selection__clear {
  color: #71848d !important;
  -webkit-text-fill-color: #71848d !important;
  opacity: .8;
}

body.nabu-public-registration-page .crm-event-register-form-block .select2-container-active .select2-choice,
body.nabu-public-registration-page .crm-event-register-form-block .select2-container--focus .select2-selection--single,
body.nabu-public-registration-page .crm-event-register-form-block .select2-container--open .select2-selection--single,
body.nabu-public-registration-page .crm-event-register-form-block .chosen-container-active .chosen-single {
  border-color: var(--nabu-blue) !important;
  outline: 3px solid rgba(0, 114, 184, .14) !important;
  outline-offset: 1px !important;
  box-shadow: none !important;
}

/* Dropdowns werden von Select2 oft direkt an <body> angehängt. */
body.nabu-public-registration-page .select2-drop,
body.nabu-public-registration-page .select2-dropdown,
body.nabu-public-registration-page .chosen-container .chosen-drop {
  color: #203640 !important;
  -webkit-text-fill-color: #203640 !important;
  background: #fff !important;
  border: 1px solid #bfcfd7 !important;
  border-radius: 9px !important;
  box-shadow: 0 12px 30px rgba(24, 49, 61, .14) !important;
}

body.nabu-public-registration-page .select2-results li,
body.nabu-public-registration-page .select2-results__option,
body.nabu-public-registration-page .chosen-container .chosen-results li {
  color: #203640 !important;
  -webkit-text-fill-color: #203640 !important;
  background: #fff !important;
}

body.nabu-public-registration-page .select2-results .select2-highlighted,
body.nabu-public-registration-page .select2-results__option--highlighted,
body.nabu-public-registration-page .select2-results__option[aria-selected="true"],
body.nabu-public-registration-page .chosen-container .chosen-results li.highlighted {
  color: var(--nabu-blue-dark) !important;
  -webkit-text-fill-color: var(--nabu-blue-dark) !important;
  background: var(--nabu-blue-soft) !important;
}

body.nabu-public-registration-page .select2-search input,
body.nabu-public-registration-page .select2-search__field,
body.nabu-public-registration-page .chosen-search input {
  color: #203640 !important;
  -webkit-text-fill-color: #203640 !important;
  background: #fff !important;
  border: 1px solid #bfcfd7 !important;
  border-radius: 7px !important;
  box-shadow: none !important;
}

/* Rechtliche Seiten: Button-Links müssen die allgemeine Linkfarbe überschreiben. */
body.nabu-legal-page .nabu-legal-content a.nabu-legal-button,
body.nabu-legal-page a.nabu-legal-button {
  min-width: 0 !important;
  width: auto !important;
  padding: 11px 18px !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: linear-gradient(135deg, var(--nabu-blue), var(--nabu-blue-dark)) !important;
  border: 1px solid transparent !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 18px rgba(0, 79, 127, .18) !important;
  line-height: 1.25 !important;
  text-decoration: none !important;
}

body.nabu-legal-page .nabu-legal-content a.nabu-legal-button:hover,
body.nabu-legal-page .nabu-legal-content a.nabu-legal-button:focus,
body.nabu-legal-page a.nabu-legal-button:hover,
body.nabu-legal-page a.nabu-legal-button:focus {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  filter: brightness(1.04);
  transform: translateY(-1px);
  text-decoration: none !important;
}

body.nabu-legal-page .nabu-legal-content a.nabu-legal-button--secondary,
body.nabu-legal-page a.nabu-legal-button--secondary {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: var(--nabu-ink) !important;
  background: #eef4f6 !important;
  border-color: #ccdbe2 !important;
  box-shadow: none !important;
}

body.nabu-legal-page .nabu-legal-content a.nabu-legal-button--secondary:hover,
body.nabu-legal-page .nabu-legal-content a.nabu-legal-button--secondary:focus {
  color: var(--nabu-blue-dark) !important;
  -webkit-text-fill-color: var(--nabu-blue-dark) !important;
  background: #e4eff3 !important;
}

/* Mehrere Kontaktadressen im Impressum sauber nebeneinander. */
.nabu-legal-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.nabu-legal-contact-grid address {
  margin: 0 !important;
}

@media (max-width: 720px) {
  body.nabu-public-registration-page .crm-event-register-form-block .select2-container,
  body.nabu-public-registration-page .crm-event-register-form-block .chosen-container {
    width: 100% !important;
  }

  .nabu-legal-contact-grid {
    grid-template-columns: 1fr;
  }
}

/* ================================================================
   V7 – Select-Pfeile + Scrollbar-Feinschliff
   ================================================================ */

/*
 * Die Pfeile der Land-/Bundesland-Auswahl etwas vom rechten Rand
 * abrücken. Select2 3.x, Select2 4.x und Chosen werden berücksichtigt.
 */
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-choice .select2-arrow,
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-selection__arrow,
body.nabu-public-registration-page .crm-event-register-form-block .chosen-container-single .chosen-single div {
  right: 8px !important;
  width: 28px !important;
  height: 40px !important;
  top: 1px !important;
  background: transparent !important;
  border-left: 0 !important;
  border-radius: 7px !important;
}

/* Select2 3.x – Pfeil exakt mittig im eingerückten Bereich. */
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-choice .select2-arrow b::after {
  top: 17px !important;
  left: 9px !important;
  border-left-width: 5px !important;
  border-right-width: 5px !important;
  border-top: 6px solid #4e6874 !important;
}

/* Select2 4.x – der interne Pfeil wird sonst erneut an den Rand gesetzt. */
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-selection__arrow b {
  left: 50% !important;
  margin-left: -5px !important;
  border-color: #4e6874 transparent transparent transparent !important;
}

/* Chosen – ebenfalls mittig im eingerückten Pfeilbereich. */
body.nabu-public-registration-page .crm-event-register-form-block .chosen-container-single .chosen-single div b::after {
  top: 17px !important;
  left: 9px !important;
  border-top-color: #4e6874 !important;
}

/* Rechts etwas Luft, damit Text und Pfeil sich nie berühren. */
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-choice,
body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-selection--single,
body.nabu-public-registration-page .crm-event-register-form-block .chosen-container-single .chosen-single {
  padding-right: 48px !important;
}

/*
 * Scrolllisten der Auswahlfelder im NABU-Stil.
 * Firefox nutzt scrollbar-color/width, Chromium/Safari die WebKit-Regeln.
 */
body.nabu-public-registration-page .select2-results,
body.nabu-public-registration-page .select2-results__options,
body.nabu-public-registration-page .chosen-container .chosen-results {
  scrollbar-width: thin;
  scrollbar-color: #5f8798 #edf3f6;
}

body.nabu-public-registration-page .select2-results::-webkit-scrollbar,
body.nabu-public-registration-page .select2-results__options::-webkit-scrollbar,
body.nabu-public-registration-page .chosen-container .chosen-results::-webkit-scrollbar {
  width: 10px;
}

body.nabu-public-registration-page .select2-results::-webkit-scrollbar-track,
body.nabu-public-registration-page .select2-results__options::-webkit-scrollbar-track,
body.nabu-public-registration-page .chosen-container .chosen-results::-webkit-scrollbar-track {
  background: #edf3f6;
  border-radius: 999px;
}

body.nabu-public-registration-page .select2-results::-webkit-scrollbar-thumb,
body.nabu-public-registration-page .select2-results__options::-webkit-scrollbar-thumb,
body.nabu-public-registration-page .chosen-container .chosen-results::-webkit-scrollbar-thumb {
  background: #5f8798;
  border: 2px solid #edf3f6;
  border-radius: 999px;
}

body.nabu-public-registration-page .select2-results::-webkit-scrollbar-thumb:hover,
body.nabu-public-registration-page .select2-results__options::-webkit-scrollbar-thumb:hover,
body.nabu-public-registration-page .chosen-container .chosen-results::-webkit-scrollbar-thumb:hover {
  background: #0072b8;
}

/* Alte Scrollbar-Pfeilbuttons aus Chromium/WebKit ausblenden. */
body.nabu-public-registration-page .select2-results::-webkit-scrollbar-button,
body.nabu-public-registration-page .select2-results__options::-webkit-scrollbar-button,
body.nabu-public-registration-page .chosen-container .chosen-results::-webkit-scrollbar-button {
  display: none;
  width: 0;
  height: 0;
}

/* ================================================================
   V8 – Bestätigungs- und Danke-Seite im gleichen NABU-Design
   ================================================================ */

/* Beide Folgeseiten bekommen dieselbe ruhige Seitenfläche wie das Formular. */
body.nabu-public-registration-page .crm-event-confirm-form-block,
body.nabu-public-registration-page .crm-event-thankyou-form-block {
  overflow: hidden;
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Das alte Standalone/Dark-Theme vollständig aus den Inhaltsblöcken entfernen. */
body.nabu-public-registration-page .crm-event-confirm-form-block div,
body.nabu-public-registration-page .crm-event-confirm-form-block section,
body.nabu-public-registration-page .crm-event-confirm-form-block fieldset,
body.nabu-public-registration-page .crm-event-confirm-form-block legend,
body.nabu-public-registration-page .crm-event-confirm-form-block table,
body.nabu-public-registration-page .crm-event-confirm-form-block tbody,
body.nabu-public-registration-page .crm-event-confirm-form-block tr,
body.nabu-public-registration-page .crm-event-confirm-form-block td,
body.nabu-public-registration-page .crm-event-confirm-form-block th,
body.nabu-public-registration-page .crm-event-thankyou-form-block div,
body.nabu-public-registration-page .crm-event-thankyou-form-block section,
body.nabu-public-registration-page .crm-event-thankyou-form-block fieldset,
body.nabu-public-registration-page .crm-event-thankyou-form-block legend,
body.nabu-public-registration-page .crm-event-thankyou-form-block table,
body.nabu-public-registration-page .crm-event-thankyou-form-block tbody,
body.nabu-public-registration-page .crm-event-thankyou-form-block tr,
body.nabu-public-registration-page .crm-event-thankyou-form-block td,
body.nabu-public-registration-page .crm-event-thankyou-form-block th {
  background-color: transparent !important;
  background-image: none !important;
}

/* Schrift unabhängig vom Standalone-Theme immer lesbar halten. */
body.nabu-public-registration-page .crm-event-confirm-form-block p,
body.nabu-public-registration-page .crm-event-confirm-form-block div,
body.nabu-public-registration-page .crm-event-confirm-form-block span,
body.nabu-public-registration-page .crm-event-confirm-form-block td,
body.nabu-public-registration-page .crm-event-confirm-form-block th,
body.nabu-public-registration-page .crm-event-confirm-form-block label,
body.nabu-public-registration-page .crm-event-confirm-form-block legend,
body.nabu-public-registration-page .crm-event-confirm-form-block strong,
body.nabu-public-registration-page .crm-event-thankyou-form-block p,
body.nabu-public-registration-page .crm-event-thankyou-form-block div,
body.nabu-public-registration-page .crm-event-thankyou-form-block span,
body.nabu-public-registration-page .crm-event-thankyou-form-block td,
body.nabu-public-registration-page .crm-event-thankyou-form-block th,
body.nabu-public-registration-page .crm-event-thankyou-form-block label,
body.nabu-public-registration-page .crm-event-thankyou-form-block legend,
body.nabu-public-registration-page .crm-event-thankyou-form-block strong {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Hauptüberschriften innerhalb der Karte. */
body.nabu-public-registration-page .crm-event-confirm-form-block > h1:first-child,
body.nabu-public-registration-page .crm-event-thankyou-form-block > h1:first-child,
body.nabu-public-registration-page .crm-event-confirm-form-block h1.crm-title,
body.nabu-public-registration-page .crm-event-thankyou-form-block h1.crm-title {
  margin: 0 0 18px !important;
  color: var(--nabu-ink) !important;
  font-size: clamp(1.55rem, 3vw, 2.1rem) !important;
  line-height: 1.2 !important;
  font-weight: 750 !important;
  letter-spacing: 0 !important;
}

/* CiviCRM-Sektionsüberschriften statt blaugrauer Leisten als klare Kartenüberschrift. */
body.nabu-public-registration-page .crm-event-confirm-form-block .crm-group .header-dark,
body.nabu-public-registration-page .crm-event-confirm-form-block .header-dark,
body.nabu-public-registration-page .crm-event-confirm-form-block .crm-accordion-header,
body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-group .header-dark,
body.nabu-public-registration-page .crm-event-thankyou-form-block .header-dark,
body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-accordion-header,
body.nabu-public-registration-page .nabu-followup-section-title {
  margin: 24px 0 12px !important;
  padding: 0 0 9px !important;
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 2px solid var(--nabu-blue-soft) !important;
  border-radius: 0 !important;
  font-size: 1.05rem !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
}

/* Profil-/Teilnehmerbereiche auf Confirm und Thank-you als helle Karten. */
body.nabu-public-registration-page .crm-event-confirm-form-block fieldset,
body.nabu-public-registration-page .crm-event-confirm-form-block .crm-profile,
body.nabu-public-registration-page .crm-event-confirm-form-block .crm-group,
body.nabu-public-registration-page .crm-event-thankyou-form-block fieldset,
body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-profile,
body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-group,
body.nabu-public-registration-page .nabu-followup-card {
  margin: 0 0 18px !important;
  padding: 18px 20px !important;
  background: #f8fbfc !important;
  border: 1px solid var(--nabu-line) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

/* Verschachtelte Container nicht doppelt einrahmen. */
body.nabu-public-registration-page .crm-event-confirm-form-block fieldset fieldset,
body.nabu-public-registration-page .crm-event-thankyou-form-block fieldset fieldset,
body.nabu-public-registration-page .crm-event-confirm-form-block .crm-group .crm-group,
body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-group .crm-group {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
}

/* Tabellen auf den Folge-Seiten werden zu einer modernen Infotabelle. */
body.nabu-public-registration-page .crm-event-confirm-form-block table,
body.nabu-public-registration-page .crm-event-thankyou-form-block table {
  width: 100% !important;
  margin: 10px 0 20px !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  overflow: hidden;
  background: #f8fbfc !important;
  border: 1px solid var(--nabu-line) !important;
  border-radius: 14px !important;
}

body.nabu-public-registration-page .crm-event-confirm-form-block table td,
body.nabu-public-registration-page .crm-event-confirm-form-block table th,
body.nabu-public-registration-page .crm-event-thankyou-form-block table td,
body.nabu-public-registration-page .crm-event-thankyou-form-block table th {
  padding: 12px 14px !important;
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
  border: 0 !important;
  border-bottom: 1px solid var(--nabu-line) !important;
  vertical-align: top !important;
  line-height: 1.55 !important;
}

body.nabu-public-registration-page .crm-event-confirm-form-block table tr:last-child td,
body.nabu-public-registration-page .crm-event-confirm-form-block table tr:last-child th,
body.nabu-public-registration-page .crm-event-thankyou-form-block table tr:last-child td,
body.nabu-public-registration-page .crm-event-thankyou-form-block table tr:last-child th {
  border-bottom: 0 !important;
}

body.nabu-public-registration-page .crm-event-confirm-form-block table th,
body.nabu-public-registration-page .crm-event-confirm-form-block table td.label,
body.nabu-public-registration-page .crm-event-thankyou-form-block table th,
body.nabu-public-registration-page .crm-event-thankyou-form-block table td.label {
  width: 150px;
  color: var(--nabu-blue-dark) !important;
  -webkit-text-fill-color: currentColor !important;
  font-weight: 750 !important;
}

/* Feldzeilen mit Label/Wert ebenfalls ordentlich ausrichten. */
body.nabu-public-registration-page .crm-event-confirm-form-block .crm-section,
body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-section {
  margin: 0 !important;
  padding: 6px 0 !important;
  border: 0 !important;
}

body.nabu-public-registration-page .crm-event-confirm-form-block .crm-section > .label,
body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-section > .label {
  color: #38515d !important;
  -webkit-text-fill-color: currentColor !important;
  font-weight: 700 !important;
}

body.nabu-public-registration-page .crm-event-confirm-form-block .crm-section > .content,
body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-section > .content {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Status-/Hinweisboxen: keine dunkelgrünen Vollflächen mehr. */
body.nabu-public-registration-page .crm-event-confirm-form-block .messages,
body.nabu-public-registration-page .crm-event-confirm-form-block .help,
body.nabu-public-registration-page .crm-event-thankyou-form-block .messages,
body.nabu-public-registration-page .crm-event-thankyou-form-block .help {
  margin: 12px 0 18px !important;
  padding: 13px 15px !important;
  color: #284735 !important;
  -webkit-text-fill-color: currentColor !important;
  background: #eef7f0 !important;
  border: 1px solid #cfe3d3 !important;
  border-left: 4px solid var(--nabu-green) !important;
  border-radius: 11px !important;
  box-shadow: none !important;
}

body.nabu-public-registration-page .crm-event-confirm-form-block .messages *,
body.nabu-public-registration-page .crm-event-confirm-form-block .help *,
body.nabu-public-registration-page .crm-event-thankyou-form-block .messages *,
body.nabu-public-registration-page .crm-event-thankyou-form-block .help * {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Links und Kartenlinks. */
body.nabu-public-registration-page .crm-event-confirm-form-block a,
body.nabu-public-registration-page .crm-event-thankyou-form-block a {
  color: var(--nabu-blue-dark) !important;
  -webkit-text-fill-color: currentColor !important;
  text-underline-offset: 3px;
}

body.nabu-public-registration-page .crm-event-confirm-form-block a:hover,
body.nabu-public-registration-page .crm-event-thankyou-form-block a:hover {
  color: var(--nabu-blue) !important;
}

/* Submit-Leisten und Buttons. */
body.nabu-public-registration-page .crm-event-confirm-form-block .crm-submit-buttons,
body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-submit-buttons {
  display: flex !important;
  flex-wrap: wrap;
  gap: 10px;
  margin: 18px 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

body.nabu-public-registration-page .crm-event-confirm-form-block .crm-button,
body.nabu-public-registration-page .crm-event-confirm-form-block button,
body.nabu-public-registration-page .crm-event-confirm-form-block input[type="submit"],
body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-button,
body.nabu-public-registration-page .crm-event-thankyou-form-block button,
body.nabu-public-registration-page .crm-event-thankyou-form-block input[type="submit"] {
  min-height: 44px !important;
  padding: 10px 18px !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: linear-gradient(135deg, var(--nabu-blue), var(--nabu-blue-dark)) !important;
  border: 0 !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 20px rgba(0, 79, 127, .18) !important;
  font-weight: 750 !important;
}

body.nabu-public-registration-page .crm-event-confirm-form-block .crm-button *,
body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-button * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

/* Zurück-Schaltflächen dezent absetzen, sofern CiviCRM sie entsprechend markiert. */
body.nabu-public-registration-page .crm-event-confirm-form-block .crm-button-type-back,
body.nabu-public-registration-page .crm-event-confirm-form-block [name*="back" i],
body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-button-type-back,
body.nabu-public-registration-page .crm-event-thankyou-form-block [name*="back" i] {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: var(--nabu-ink) !important;
  background: #eef4f6 !important;
  border: 1px solid #ccdbe2 !important;
  box-shadow: none !important;
}

/* "Erzählen Sie anderen davon!" auf der Danke-Seite in das gleiche Design bringen. */
body.nabu-public-registration-page .nabu-thankyou-share {
  margin: 24px 0 0 !important;
  padding: 20px 22px !important;
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
  background: linear-gradient(135deg, #f7fafb, #edf5f7) !important;
  border: 1px solid var(--nabu-line) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

body.nabu-public-registration-page .nabu-thankyou-share h1,
body.nabu-public-registration-page .nabu-thankyou-share h2,
body.nabu-public-registration-page .nabu-thankyou-share h3,
body.nabu-public-registration-page .nabu-thankyou-share p,
body.nabu-public-registration-page .nabu-thankyou-share span,
body.nabu-public-registration-page .nabu-thankyou-share div {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}

body.nabu-public-registration-page .nabu-thankyou-share h1,
body.nabu-public-registration-page .nabu-thankyou-share h2,
body.nabu-public-registration-page .nabu-thankyou-share h3 {
  margin-top: 0 !important;
  font-weight: 750 !important;
  letter-spacing: 0 !important;
}

body.nabu-public-registration-page .nabu-thankyou-share a {
  color: var(--nabu-blue-dark) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Kalenderzeile und Rücklink bekommen Luft und passen optisch zum Rest. */
body.nabu-public-registration-page .crm-event-confirm-form-block .iCal_links-section,
body.nabu-public-registration-page .crm-event-thankyou-form-block .iCal_links-section,
body.nabu-public-registration-page .crm-event-thankyou-form-block [class*="ical" i] {
  margin: 18px 0 !important;
  padding: 13px 15px !important;
  background: #f7fafb !important;
  border: 1px solid var(--nabu-line) !important;
  border-radius: 11px !important;
}

@media (max-width: 720px) {
  body.nabu-public-registration-page .crm-event-confirm-form-block table,
  body.nabu-public-registration-page .crm-event-thankyou-form-block table {
    display: block !important;
    overflow-x: auto !important;
  }

  body.nabu-public-registration-page .crm-event-confirm-form-block table th,
  body.nabu-public-registration-page .crm-event-confirm-form-block table td.label,
  body.nabu-public-registration-page .crm-event-thankyou-form-block table th,
  body.nabu-public-registration-page .crm-event-thankyou-form-block table td.label {
    width: 120px;
  }

  body.nabu-public-registration-page .crm-event-confirm-form-block .crm-section > .label,
  body.nabu-public-registration-page .crm-event-confirm-form-block .crm-section > .content,
  body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-section > .label,
  body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-section > .content {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: left !important;
  }
}


/* ================================================================
   V9 – Veranstaltung voll / Anmeldung geschlossen / Warteliste
   ================================================================ */

/* Einheitliche Statuskarte auf der Event-Übersichtsseite. */
body.nabu-public-event-page .nabu-event-status-card {
  box-sizing: border-box !important;
  width: 100% !important;
  margin: 16px 0 0 !important;
  padding: 18px 20px !important;
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr) !important;
  gap: 14px !important;
  align-items: start !important;
  color: #263f4b !important;
  -webkit-text-fill-color: currentColor !important;
  background: linear-gradient(135deg, #f7fbfc, #edf5f7) !important;
  border: 1px solid #c9dce4 !important;
  border-left: 5px solid var(--nabu-blue) !important;
  border-radius: 14px !important;
  box-shadow: 0 8px 24px rgba(32, 65, 79, .06) !important;
}

body.nabu-public-event-page .nabu-event-status-card * {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}

body.nabu-public-event-page .nabu-event-status-card__icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: var(--nabu-blue-dark);
  border-radius: 50%;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
}

body.nabu-public-event-page .nabu-event-status-card__eyebrow {
  margin-bottom: 3px;
  color: var(--nabu-blue-dark) !important;
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.nabu-public-event-page .nabu-event-status-card__title {
  margin: 0 0 5px !important;
  color: #183845 !important;
  font-size: 1.2rem !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
}

body.nabu-public-event-page .nabu-event-status-card p {
  margin: 0 !important;
  line-height: 1.6 !important;
}

/* Von CiviCRM erzeugte Session-Meldungen (z.B. "ausgebucht" / Warteliste)
   werden per EventInfo.tpl in den NABU-Seitenkopf verschoben. */
body.nabu-public-event-page .nabu-event-status-card--system {
  display: block !important;
  position: relative;
  padding-left: 58px !important;
}

body.nabu-public-event-page .nabu-event-status-card--system::before {
  content: "i";
  position: absolute;
  left: 18px;
  top: 17px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: var(--nabu-blue-dark);
  border-radius: 50%;
  font-weight: 900;
}

/* Ausgebucht ohne Warteliste: warmer Hinweis, aber nicht alarmistisch. */
body.nabu-public-event-page .nabu-event-status-card--full {
  background: linear-gradient(135deg, #fffaf0, #fff5df) !important;
  border-color: #ead7ad !important;
  border-left-color: #c98b22 !important;
}

body.nabu-public-event-page .nabu-event-status-card--full::before {
  background: #b77a16;
}

/* Warteliste: freundlicher, klarer Hinweis. */
body.nabu-public-event-page .nabu-event-status-card--waitlist {
  background: linear-gradient(135deg, #f3f8fb, #e9f3f7) !important;
  border-color: #bfd7e2 !important;
  border-left-color: var(--nabu-blue) !important;
}

/* Noch nicht geöffnet / geschlossen. */
body.nabu-public-event-page .nabu-event-status-card--closed {
  background: linear-gradient(135deg, #f7f9fa, #eef2f4) !important;
  border-color: #d1dde2 !important;
  border-left-color: #6b8794 !important;
}

body.nabu-public-event-page .nabu-event-status-card--closed .nabu-event-status-card__icon {
  background: #587783;
}

/* Die alten globalen CiviCRM-Meldungen sollen nach dem Verschieben nicht
   wieder mit Standardbreite/-abständen dazwischenfunken. */
body.nabu-public-event-page .messages.status.nabu-event-status-moved,
body.nabu-public-event-page .messages.help.nabu-event-status-moved {
  width: 100% !important;
  max-width: none !important;
}

/* Wartelisten-/Freigabehinweis direkt im Anmeldeformular. */
body.nabu-public-registration-page .crm-event-register-form-block #id-waitlist-approval-msg,
body.nabu-public-registration-page .crm-event-register-form-block .nabu-registration-notice {
  box-sizing: border-box !important;
  margin: 0 0 22px !important;
  padding: 18px 20px 18px 20px !important;
  color: #2d4651 !important;
  -webkit-text-fill-color: currentColor !important;
  background: linear-gradient(135deg, #f6fafc, #edf5f8) !important;
  border: 1px solid #c4d9e2 !important;
  border-left: 5px solid var(--nabu-blue) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  line-height: 1.6 !important;
}

body.nabu-public-registration-page .crm-event-register-form-block #id-waitlist-approval-msg::before {
  content: attr(data-nabu-label);
  display: block;
  margin: 0 0 6px;
  color: var(--nabu-blue-dark) !important;
  -webkit-text-fill-color: currentColor !important;
  font-size: .78rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.nabu-public-registration-page .crm-event-register-form-block #id-waitlist-approval-msg *,
body.nabu-public-registration-page .crm-event-register-form-block .nabu-registration-notice * {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}

body.nabu-public-registration-page .crm-event-register-form-block #id-waitlist-msg,
body.nabu-public-registration-page .crm-event-register-form-block #id-req-approval-msg {
  font-size: 1rem !important;
  line-height: 1.65 !important;
}

/* Waitlist-Formular bleibt auch bei langen Hinweisen sauber. */
body.nabu-public-registration-page .crm-event-register-form-block #id-waitlist-approval-msg a {
  color: var(--nabu-blue-dark) !important;
  -webkit-text-fill-color: currentColor !important;
  font-weight: 700 !important;
}

@media (max-width: 720px) {
  body.nabu-public-event-page .nabu-event-status-card {
    grid-template-columns: 34px minmax(0, 1fr) !important;
    gap: 11px !important;
    padding: 15px 16px !important;
  }

  body.nabu-public-event-page .nabu-event-status-card__icon {
    width: 32px;
    height: 32px;
  }

  body.nabu-public-event-page .nabu-event-status-card--system {
    padding-left: 52px !important;
  }

  body.nabu-public-event-page .nabu-event-status-card--system::before {
    left: 14px;
    top: 14px;
  }
}

/* ================================================================
   V10 – Seitentitel auf Bestätigungs-/Danke-Seite + Fehlermeldungen
   ================================================================ */

/*
 * CiviCRM Standalone setzt die seiteneigenen H1-Titel teilweise außerhalb
 * des eigentlichen Formularblocks auf weiß. Diese Titel liegen daher nicht
 * unter .crm-event-confirm-form-block/.crm-event-thankyou-form-block.
 * Auf allen öffentlichen Registrierungsseiten erzwingen wir eine gut lesbare
 * dunkle Schrift. Der NABU-Kopf bleibt davon optisch unverändert.
 */
body.nabu-public-registration-page h1,
body.nabu-public-registration-page h1.crm-title,
body.nabu-public-registration-page .crm-title,
body.nabu-public-registration-page .page-title,
body.nabu-public-registration-page .crm-page-title,
body.nabu-public-registration-page #crm-container > h1,
body.nabu-public-registration-page #crm-main-content-wrapper > h1 {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: var(--nabu-ink) !important;
  text-shadow: none !important;
  letter-spacing: 0 !important;
}

/* Seitentitel außerhalb der Karten etwas ruhiger in das Gesamtdesign einbinden. */
body.nabu-public-registration-page #crm-container > h1,
body.nabu-public-registration-page #crm-main-content-wrapper > h1,
body.nabu-public-registration-page h1.crm-title {
  width: min(1040px, calc(100% - 32px));
  margin: 18px auto 12px !important;
  font-size: clamp(1.45rem, 2.8vw, 2rem) !important;
  line-height: 1.2 !important;
  font-weight: 760 !important;
}

/* Fehler bleiben deutlich, passen aber zum hellen NABU-Layout. */
body.nabu-public-registration-page .messages.error,
body.nabu-public-registration-page .messages.crm-error,
body.nabu-public-registration-page .alert-danger,
body.nabu-public-registration-page .crm-error {
  color: #7b2338 !important;
  -webkit-text-fill-color: #7b2338 !important;
  background: #fff1f4 !important;
  border: 1px solid #efc1cc !important;
  border-left: 4px solid #a12647 !important;
  border-radius: 11px !important;
  box-shadow: none !important;
}

body.nabu-public-registration-page .messages.error *,
body.nabu-public-registration-page .messages.crm-error *,
body.nabu-public-registration-page .alert-danger *,
body.nabu-public-registration-page .crm-error * {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}

@media (max-width: 720px) {
  body.nabu-public-registration-page #crm-container > h1,
  body.nabu-public-registration-page #crm-main-content-wrapper > h1,
  body.nabu-public-registration-page h1.crm-title {
    width: min(100% - 20px, 1040px);
  }
}

/* ================================================================
   V11 – Self-Service: Stornierung / Umbuchung
   /civicrm/event/selfsvcupdate und SelfSvcTransfer
   ================================================================ */

body.nabu-public-selfsvc-page {
  background: var(--nabu-page) !important;
  color: var(--nabu-ink) !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block,
body.nabu-public-selfsvc-page .event-legal-footer {
  width: min(1040px, calc(100% - 32px));
  margin-left: auto !important;
  margin-right: auto !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block {
  margin-top: 0 !important;
  margin-bottom: 18px !important;
  padding: clamp(22px, 4vw, 38px) !important;
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
  background: var(--nabu-surface) !important;
  background-image: none !important;
  border: 1px solid var(--nabu-line) !important;
  border-radius: var(--nabu-radius) !important;
  box-shadow: var(--nabu-shadow) !important;
}

/* Das dunkle Standalone-Theme im Self-Service vollständig neutralisieren. */
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block div,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block section,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block fieldset,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block legend,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block table,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block tbody,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block thead,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block tr,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block td,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block th {
  background-color: transparent !important;
  background-image: none !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block p,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block div,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block span,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block td,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block th,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block label,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block legend,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block strong {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Übersichtstabelle der aktuellen Anmeldung */
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block table,
body.nabu-public-selfsvc-page .nabu-selfsvc-table {
  width: 100% !important;
  margin: 0 0 24px !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  overflow: hidden;
  background: #f8fbfc !important;
  border: 1px solid var(--nabu-line) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block table th,
body.nabu-public-selfsvc-page .nabu-selfsvc-table th {
  padding: 12px 14px !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: linear-gradient(135deg, var(--nabu-blue-dark), var(--nabu-blue)) !important;
  border: 0 !important;
  border-right: 1px solid rgba(255,255,255,.15) !important;
  font-weight: 750 !important;
  text-align: left !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block table th:last-child,
body.nabu-public-selfsvc-page .nabu-selfsvc-table th:last-child {
  border-right: 0 !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block table td,
body.nabu-public-selfsvc-page .nabu-selfsvc-table td {
  padding: 15px 14px !important;
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
  background: #f8fbfc !important;
  border: 0 !important;
  border-bottom: 1px solid var(--nabu-line) !important;
  vertical-align: top !important;
  line-height: 1.55 !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block table tr:last-child td,
body.nabu-public-selfsvc-page .nabu-selfsvc-table tr:last-child td {
  border-bottom: 0 !important;
}

/* Auswahl "Anmeldung stornieren oder umbuchen" */
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-section {
  display: grid !important;
  grid-template-columns: minmax(180px, 270px) minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  margin: 18px 0 !important;
  padding: 18px 20px !important;
  background: #f8fbfc !important;
  border: 1px solid var(--nabu-line) !important;
  border-radius: 14px !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-section > .label,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block label {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #27424f !important;
  -webkit-text-fill-color: currentColor !important;
  font-weight: 750 !important;
  line-height: 1.4 !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-section > .content {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block select,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block input[type="text"],
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block input[type="email"],
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block input[type="tel"] {
  min-height: 44px !important;
  width: min(100%, 420px) !important;
  padding: 9px 40px 9px 12px !important;
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
  background-color: #fff !important;
  border: 1px solid #c7d6dd !important;
  border-radius: 9px !important;
  box-shadow: none !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block select:focus,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block input:focus {
  border-color: var(--nabu-blue) !important;
  outline: 3px solid rgba(0, 114, 184, .14) !important;
  outline-offset: 1px;
}

/* Buttons wie im restlichen öffentlichen Event-Flow. */
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-submit-buttons,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-form-submit {
  display: flex !important;
  flex-wrap: wrap;
  gap: 10px;
  margin: 20px 0 0 !important;
  padding: 0 !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-button,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block button[type="submit"],
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block input[type="submit"] {
  min-height: 46px !important;
  padding: 11px 20px !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: linear-gradient(135deg, var(--nabu-blue), var(--nabu-blue-dark)) !important;
  border: 0 !important;
  border-radius: 11px !important;
  box-shadow: 0 8px 22px rgba(0, 79, 127, .20) !important;
  font-weight: 750 !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-button *,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block button[type="submit"] * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-button:hover,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block button[type="submit"]:hover,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block input[type="submit"]:hover {
  filter: brightness(.96);
  transform: translateY(-1px);
}

/* Hinweise/Bestätigungen nach Storno oder Umbuchung. */
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .messages,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .help,
body.nabu-public-selfsvc-page .nabu-selfsvc-notice {
  margin: 12px 0 18px !important;
  padding: 13px 15px !important;
  color: #284735 !important;
  -webkit-text-fill-color: currentColor !important;
  background: #eef7f0 !important;
  border: 1px solid #cfe3d3 !important;
  border-left: 4px solid var(--nabu-green) !important;
  border-radius: 11px !important;
  box-shadow: none !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .messages.error,
body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-error {
  color: #7b2338 !important;
  -webkit-text-fill-color: #7b2338 !important;
  background: #fff1f4 !important;
  border-color: #efc1cc !important;
  border-left-color: #a12647 !important;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block a {
  color: var(--nabu-blue-dark) !important;
  -webkit-text-fill-color: currentColor !important;
  text-underline-offset: 3px;
}

body.nabu-public-selfsvc-page .nabu-selfsvc-form-block a:hover {
  color: var(--nabu-blue) !important;
}

body.nabu-public-selfsvc-page .nabu-hide-native-title,
body.nabu-public-selfsvc-page .nabu-hide-native-branding {
  display: none !important;
}

@media (max-width: 720px) {
  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block,
  body.nabu-public-selfsvc-page .event-legal-footer {
    width: min(100% - 20px, 1040px);
  }

  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block {
    padding: 20px 18px !important;
  }

  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-section {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block table,
  body.nabu-public-selfsvc-page .nabu-selfsvc-table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* ================================================================
   V12 – Mobile / Smartphone Feinschliff
   Basis: V11. Diese Regeln stehen bewusst am Dateiende, damit sie
   ältere Desktop- und Responsive-Regeln zuverlässig überschreiben.
   ================================================================ */

/* Horizontales Überlaufen auf kleinen Displays verhindern. */
@media (max-width: 760px) {
  html,
  body.nabu-public-event-page,
  body.nabu-public-registration-page,
  body.nabu-public-selfsvc-page,
  body.nabu-legal-page {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body.nabu-public-event-page #crm-container,
  body.nabu-public-event-page #crm-main-content-wrapper,
  body.nabu-public-registration-page #crm-container,
  body.nabu-public-registration-page #crm-main-content-wrapper,
  body.nabu-public-selfsvc-page #crm-container,
  body.nabu-public-selfsvc-page #crm-main-content-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Einheitliche Seitenbreite und etwas mehr nutzbarer Platz. */
  .nabu-event-page,
  .nabu-registration-shell,
  body.nabu-public-registration-page .crm-event-register-form-block,
  body.nabu-public-registration-page .crm-event-confirm-form-block,
  body.nabu-public-registration-page .crm-event-thankyou-form-block,
  body.nabu-public-registration-page .event-legal-footer,
  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block,
  body.nabu-public-selfsvc-page .event-legal-footer,
  .nabu-legal-wrap {
    width: calc(100% - 16px) !important;
    max-width: none !important;
    margin-left: 8px !important;
    margin-right: 8px !important;
  }

  /* Kopf: auf dem Handy kompakter, aber weiterhin klar erkennbar. */
  .nabu-event-header {
    display: grid !important;
    grid-template-columns: 112px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 16px 16px 18px !important;
    border-radius: 14px !important;
  }

  .nabu-event-brand {
    width: 112px !important;
    max-width: 112px !important;
  }

  .nabu-event-brand img {
    width: 112px !important;
    max-width: 100% !important;
  }

  .nabu-event-heading {
    min-width: 0 !important;
  }

  .nabu-event-kicker {
    margin-bottom: 3px !important;
    font-size: .64rem !important;
    line-height: 1.25 !important;
    letter-spacing: .055em !important;
    overflow-wrap: anywhere;
  }

  .nabu-event-title {
    font-size: clamp(1.42rem, 7.2vw, 2rem) !important;
    line-height: 1.08 !important;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .nabu-event-subtitle {
    margin-top: 5px !important;
    font-size: .82rem !important;
    line-height: 1.35 !important;
  }

  /* Eventseite: Karten und Infoblöcke kompakter. */
  body.nabu-public-event-page .crm-event-info-form-block .event-info {
    padding: 18px 14px !important;
    border-radius: 14px !important;
  }

  body.nabu-public-event-page .event_summary-section {
    font-size: 1rem !important;
    line-height: 1.55 !important;
  }

  body.nabu-public-event-page .event_description-section {
    font-size: .96rem !important;
    line-height: 1.62 !important;
  }

  body.nabu-public-event-page .event_date_time-section,
  body.nabu-public-event-page .event_address-section,
  body.nabu-public-event-page .event_contact-section,
  body.nabu-public-event-page .event_fees-section {
    display: block !important;
    padding: 14px !important;
    border-radius: 12px !important;
  }

  body.nabu-public-event-page .event_date_time-section > .label,
  body.nabu-public-event-page .event_address-section > .label,
  body.nabu-public-event-page .event_contact-section > .label,
  body.nabu-public-event-page .event_fees-section > .label {
    display: block !important;
    margin: 0 0 5px !important;
  }

  body.nabu-public-event-page .event_map-section,
  body.nabu-public-event-page .event_map-section .olMap,
  body.nabu-public-event-page .event_map-section [id*="map"] {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* ------------------------------------------------------------
     Anmeldeformular – wichtigste Smartphone-Korrektur
     Labels und Eingaben werden konsequent untereinander angeordnet.
     ------------------------------------------------------------ */
  body.nabu-public-registration-page .crm-event-register-form-block,
  body.nabu-public-registration-page .crm-event-confirm-form-block,
  body.nabu-public-registration-page .crm-event-thankyou-form-block {
    padding: 16px 12px !important;
    border-radius: 14px !important;
  }

  body.nabu-public-registration-page .crm-event-register-form-block fieldset,
  body.nabu-public-registration-page .crm-event-register-form-block .crm-profile,
  body.nabu-public-registration-page .crm-event-register-form-block [class*="crm-profile-name-"],
  body.nabu-public-registration-page .crm-event-register-form-block [class*="crm-profile-id-"],
  body.nabu-public-registration-page .crm-event-register-form-block .crm-group {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 14px !important;
    padding: 14px 12px !important;
    border-radius: 12px !important;
  }

  /* Alte Float-/Breitenlogik von CiviCRM vollständig neutralisieren. */
  body.nabu-public-registration-page .crm-event-register-form-block .crm-section {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    clear: both !important;
    margin: 0 !important;
    padding: 8px 0 !important;
  }

  body.nabu-public-registration-page .crm-event-register-form-block .crm-section > .label,
  body.nabu-public-registration-page .crm-event-register-form-block .crm-section > .content,
  body.nabu-public-registration-page .crm-event-register-form-block .label,
  body.nabu-public-registration-page .crm-event-register-form-block .content {
    position: static !important;
    float: none !important;
    clear: both !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    transform: none !important;
    text-align: left !important;
    white-space: normal !important;
  }

  body.nabu-public-registration-page .crm-event-register-form-block .crm-section > .label,
  body.nabu-public-registration-page .crm-event-register-form-block td.label,
  body.nabu-public-registration-page .crm-event-register-form-block th.label {
    margin-bottom: 6px !important;
    font-size: .92rem !important;
    line-height: 1.35 !important;
  }

  /* Manche Profile werden intern noch als Tabelle ausgegeben. */
  body.nabu-public-registration-page .crm-event-register-form-block .crm-profile table,
  body.nabu-public-registration-page .crm-event-register-form-block fieldset table,
  body.nabu-public-registration-page .crm-event-register-form-block table.form-layout,
  body.nabu-public-registration-page .crm-event-register-form-block table.crm-profile {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.nabu-public-registration-page .crm-event-register-form-block .crm-profile tbody,
  body.nabu-public-registration-page .crm-event-register-form-block fieldset tbody,
  body.nabu-public-registration-page .crm-event-register-form-block table.form-layout tbody,
  body.nabu-public-registration-page .crm-event-register-form-block .crm-profile tr,
  body.nabu-public-registration-page .crm-event-register-form-block fieldset tr,
  body.nabu-public-registration-page .crm-event-register-form-block table.form-layout tr {
    display: block !important;
    width: 100% !important;
  }

  body.nabu-public-registration-page .crm-event-register-form-block .crm-profile td,
  body.nabu-public-registration-page .crm-event-register-form-block fieldset td,
  body.nabu-public-registration-page .crm-event-register-form-block table.form-layout td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 5px 0 !important;
    text-align: left !important;
    white-space: normal !important;
  }

  /* Alle Eingaben über die gesamte verfügbare Breite. 16px verhindert
     zusätzlich das automatische Hineinzoomen von iOS/Safari. */
  body.nabu-public-registration-page .crm-event-register-form-block input[type="text"],
  body.nabu-public-registration-page .crm-event-register-form-block input[type="email"],
  body.nabu-public-registration-page .crm-event-register-form-block input[type="tel"],
  body.nabu-public-registration-page .crm-event-register-form-block input[type="number"],
  body.nabu-public-registration-page .crm-event-register-form-block input[type="date"],
  body.nabu-public-registration-page .crm-event-register-form-block input[type="url"],
  body.nabu-public-registration-page .crm-event-register-form-block select,
  body.nabu-public-registration-page .crm-event-register-form-block textarea {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
    margin: 0 !important;
    font-size: 16px !important;
  }

  body.nabu-public-registration-page .crm-event-register-form-block textarea {
    min-height: 120px !important;
  }

  /* Select2/Chosen ebenfalls volle Breite. */
  body.nabu-public-registration-page .crm-event-register-form-block .select2-container,
  body.nabu-public-registration-page .crm-event-register-form-block .chosen-container,
  body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-choice,
  body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-selection--single,
  body.nabu-public-registration-page .crm-event-register-form-block .chosen-container-single .chosen-single {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-choice,
  body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-selection--single,
  body.nabu-public-registration-page .crm-event-register-form-block .chosen-container-single .chosen-single,
  body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-choice .select2-chosen,
  body.nabu-public-registration-page .crm-event-register-form-block .select2-container .select2-selection__rendered,
  body.nabu-public-registration-page .crm-event-register-form-block .chosen-container-single .chosen-single span {
    font-size: 16px !important;
  }

  /* Geöffnete Select2-/Chosen-Liste auf kleinen Displays nicht breiter als der Viewport. */
  body.nabu-public-registration-page .select2-drop,
  body.nabu-public-registration-page .select2-dropdown,
  body.nabu-public-registration-page .chosen-container .chosen-drop {
    max-width: calc(100vw - 24px) !important;
  }

  body.nabu-public-registration-page .select2-search input,
  body.nabu-public-registration-page .select2-search__field,
  body.nabu-public-registration-page .chosen-search input {
    font-size: 16px !important;
  }

  /* Checkbox-/Radiozeilen: kein verrutschtes Label neben dem Kästchen. */
  body.nabu-public-registration-page .crm-event-register-form-block input[type="checkbox"],
  body.nabu-public-registration-page .crm-event-register-form-block input[type="radio"] {
    width: 18px !important;
    height: 18px !important;
    min-height: 0 !important;
    margin: 2px 8px 0 0 !important;
    vertical-align: top !important;
    flex: 0 0 auto;
  }

  body.nabu-public-registration-page .crm-event-register-form-block [class*="terms" i],
  body.nabu-public-registration-page .crm-event-register-form-block [class*="gdpr" i],
  body.nabu-public-registration-page .crm-event-register-form-block [id*="terms" i],
  body.nabu-public-registration-page .crm-event-register-form-block [id*="gdpr" i] {
    max-width: 100% !important;
    overflow-wrap: anywhere;
  }

  /* Terms & Conditions / Datenschutz: Text nicht in schmalen Labelspalten. */
  body.nabu-public-registration-page .crm-event-register-form-block [class*="terms" i] .crm-section,
  body.nabu-public-registration-page .crm-event-register-form-block [class*="gdpr" i] .crm-section,
  body.nabu-public-registration-page .crm-event-register-form-block [id*="terms" i] .crm-section,
  body.nabu-public-registration-page .crm-event-register-form-block [id*="gdpr" i] .crm-section {
    display: block !important;
  }

  /* Buttons: groß genug für Touch, keine seitlich abgeschnittenen Texte. */
  body.nabu-public-registration-page .crm-submit-buttons,
  body.nabu-public-registration-page .crm-form-submit,
  body.nabu-public-registration-page .crm-event-register-form-block .crm-submit-buttons,
  body.nabu-public-registration-page .crm-event-confirm-form-block .crm-submit-buttons,
  body.nabu-public-registration-page .crm-event-thankyou-form-block .crm-submit-buttons {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
  }

  body.nabu-public-registration-page .crm-button,
  body.nabu-public-registration-page button[type="submit"],
  body.nabu-public-registration-page input[type="submit"] {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    white-space: normal !important;
    text-align: center !important;
  }

  /* Confirm-/Danke-Seite: Tabellen dürfen den Viewport nicht sprengen. */
  body.nabu-public-registration-page .crm-event-confirm-form-block table,
  body.nabu-public-registration-page .crm-event-thankyou-form-block table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  body.nabu-public-registration-page .crm-event-confirm-form-block td,
  body.nabu-public-registration-page .crm-event-confirm-form-block th,
  body.nabu-public-registration-page .crm-event-thankyou-form-block td,
  body.nabu-public-registration-page .crm-event-thankyou-form-block th {
    min-width: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  /* Überschriften außerhalb der Karten. */
  body.nabu-public-registration-page #crm-container > h1,
  body.nabu-public-registration-page #crm-main-content-wrapper > h1,
  body.nabu-public-registration-page h1.crm-title {
    width: calc(100% - 16px) !important;
    margin: 14px 8px 10px !important;
    font-size: 1.45rem !important;
    line-height: 1.15 !important;
    overflow-wrap: anywhere;
  }

  /* Sharebox, Kalenderlinks und Footer flexibel umbrechen. */
  body.nabu-public-event-page .nabu-share-card > *,
  body.nabu-public-event-page .nabu-share-card .crm-social-network,
  body.nabu-public-event-page .nabu-share-card .crm-socialnetwork,
  body.nabu-public-event-page .nabu-share-card [class*="social-network"] {
    padding: 16px 14px !important;
  }

  body.nabu-public-event-page .iCal_links-section,
  body.nabu-public-event-page .nabu-share-card,
  .event-legal-footer,
  .event-legal-footer__links {
    max-width: 100% !important;
    overflow-wrap: anywhere;
  }

  .event-legal-footer {
    gap: 14px !important;
    padding: 16px 14px !important;
  }

  .event-legal-footer__links {
    width: 100% !important;
    justify-content: flex-start !important;
  }

  /* Statuskarten: Text bekommt möglichst viel Platz. */
  body.nabu-public-event-page .nabu-event-status-card {
    grid-template-columns: 32px minmax(0, 1fr) !important;
    gap: 10px !important;
    padding: 14px 12px !important;
  }

  /* Self-Service-Seiten ebenfalls Smartphone-tauglich. */
  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block {
    padding: 16px 12px !important;
    border-radius: 14px !important;
  }

  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-section {
    display: block !important;
    width: 100% !important;
    padding: 14px 12px !important;
  }

  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-section > .label,
  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-section > .content {
    display: block !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
  }

  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-section > .label {
    margin-bottom: 7px !important;
  }

  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block select,
  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block input[type="text"],
  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block input[type="email"],
  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block input[type="tel"] {
    width: 100% !important;
    max-width: 100% !important;
    font-size: 16px !important;
  }

  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-submit-buttons,
  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-form-submit {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
  }

  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block .crm-button,
  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block button[type="submit"],
  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block input[type="submit"] {
    width: 100% !important;
  }

  /* Rechtliche Seiten: Inhaltsverzeichnis und Buttons besser bedienbar. */
  .nabu-legal-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .nabu-legal-toc {
    position: static !important;
    padding: 15px !important;
  }

  .nabu-legal-toc nav {
    grid-template-columns: 1fr !important;
  }

  .nabu-legal-content {
    padding: 18px 14px !important;
  }

  .nabu-legal-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  body.nabu-legal-page .nabu-legal-content a.nabu-legal-button,
  body.nabu-legal-page a.nabu-legal-button {
    width: 100% !important;
    min-height: 46px !important;
    text-align: center !important;
  }
}

/* Noch kleinere Geräte: Logo/Überschrift untereinander, damit nichts gequetscht wird. */
@media (max-width: 420px) {
  .nabu-event-header {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 15px 14px 17px !important;
  }

  .nabu-event-brand {
    width: 106px !important;
    max-width: 106px !important;
  }

  .nabu-event-brand img {
    width: 106px !important;
  }

  .nabu-event-title {
    font-size: 1.55rem !important;
  }

  .nabu-event-kicker {
    font-size: .62rem !important;
  }

  body.nabu-public-registration-page .crm-event-register-form-block,
  body.nabu-public-registration-page .crm-event-confirm-form-block,
  body.nabu-public-registration-page .crm-event-thankyou-form-block,
  body.nabu-public-selfsvc-page .nabu-selfsvc-form-block {
    padding: 14px 10px !important;
  }

  body.nabu-public-registration-page .crm-event-register-form-block fieldset,
  body.nabu-public-registration-page .crm-event-register-form-block .crm-profile,
  body.nabu-public-registration-page .crm-event-register-form-block [class*="crm-profile-name-"],
  body.nabu-public-registration-page .crm-event-register-form-block [class*="crm-profile-id-"],
  body.nabu-public-registration-page .crm-event-register-form-block .crm-group {
    padding: 13px 10px !important;
  }

  body.nabu-public-event-page .crm-event-info-form-block .event-info {
    padding: 16px 11px !important;
  }

  .event-legal-footer {
    padding: 14px 12px !important;
  }
}

/* ================================================================
   V13 – Mehrfachanmeldung / zusätzliche Teilnehmer + Mobile-Buttons
   Basis: vom Benutzer bereitgestellte V12-Datei.

   CiviCRM rendert Teilnehmer 2..N über
   .crm-event-additionalparticipant-form-block und nicht immer innerhalb
   von body.nabu-public-registration-page. Darum werden diese Seiten hier
   gezielt über :has(...) erkannt, ohne das Backend global umzustylen.
   ================================================================ */

/* ---------- Zusätzliche Teilnehmer: komplette öffentliche Seite ---------- */
body:has(.crm-event-additionalparticipant-form-block) {
  background: var(--nabu-page) !important;
  color: var(--nabu-ink) !important;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
}

body:has(.crm-event-additionalparticipant-form-block) *,
body:has(.crm-event-additionalparticipant-form-block) *::before,
body:has(.crm-event-additionalparticipant-form-block) *::after {
  box-sizing: border-box;
}

body:has(.crm-event-additionalparticipant-form-block) #crm-container,
body:has(.crm-event-additionalparticipant-form-block) #crm-main-content-wrapper {
  background: transparent !important;
}

body:has(.crm-event-additionalparticipant-form-block) #crm-main-content-wrapper {
  width: min(1040px, calc(100% - 32px)) !important;
  max-width: 1040px !important;
  margin: 28px auto 48px !important;
  padding: 0 !important;
}

/* CiviCRM-Branding auf den Mehrfachanmeldeseiten ausblenden. */
body:has(.crm-event-additionalparticipant-form-block) .crm-logo,
body:has(.crm-event-additionalparticipant-form-block) .crm-version,
body:has(.crm-event-additionalparticipant-form-block) .civicrm-logo,
body:has(.crm-event-additionalparticipant-form-block) .powered-by-civicrm,
body:has(.crm-event-additionalparticipant-form-block) a[href*="civicrm.org"],
body:has(.crm-event-additionalparticipant-form-block) a[href*="civicrm.com"] {
  display: none !important;
}

/*
 * Seitenkopf für "Teilnehmer*in 2 von 2 anmelden", "3 von 5" usw.
 * Das vorhandene H1 bleibt dynamisch; das NABU-Logo wird nur dekorativ
 * als Hintergrund ergänzt. So funktioniert derselbe Block für beliebig
 * viele zusätzliche Teilnehmer.
 */
body:has(.crm-event-additionalparticipant-form-block) #crm-main-content-wrapper > h1,
body:has(.crm-event-additionalparticipant-form-block) #crm-container > h1,
body:has(.crm-event-additionalparticipant-form-block) h1.crm-title {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  min-height: 142px !important;
  width: 100% !important;
  margin: 0 0 18px !important;
  padding: 48px 30px 28px 235px !important;
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: var(--nabu-ink) !important;
  background-color: var(--nabu-surface) !important;
  background-image:
    linear-gradient(90deg, var(--nabu-blue), var(--nabu-green)),
    url("https://civi-nabu.onfar.de/public/media/branding/NABU.jpg") !important;
  background-repeat: no-repeat, no-repeat !important;
  background-position: left bottom, 30px center !important;
  background-size: 100% 5px, 170px auto !important;
  border: 1px solid var(--nabu-line) !important;
  border-radius: var(--nabu-radius) !important;
  box-shadow: var(--nabu-shadow) !important;
  font-size: clamp(1.7rem, 3.4vw, 2.55rem) !important;
  line-height: 1.12 !important;
  font-weight: 750 !important;
  letter-spacing: 0 !important;
  text-shadow: none !important;
  overflow: hidden !important;
}

body:has(.crm-event-additionalparticipant-form-block) #crm-main-content-wrapper > h1::before,
body:has(.crm-event-additionalparticipant-form-block) #crm-container > h1::before,
body:has(.crm-event-additionalparticipant-form-block) h1.crm-title::before {
  content: "NABU REGIONALVERBAND CALAU E.V.";
  position: absolute;
  left: 235px;
  top: 27px;
  color: var(--nabu-blue-dark) !important;
  -webkit-text-fill-color: var(--nabu-blue-dark) !important;
  font-size: .72rem !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  letter-spacing: .065em !important;
}

/* Statusmeldung "Anmeldeinformationen für Teilnehmer/in 1 wurden gespeichert". */
body:has(.crm-event-additionalparticipant-form-block) .messages.status,
body:has(.crm-event-additionalparticipant-form-block) .messages.help {
  width: 100% !important;
  margin: 0 0 18px !important;
  padding: 13px 16px !important;
  color: #28513a !important;
  -webkit-text-fill-color: #28513a !important;
  background: #eef7f0 !important;
  border: 1px solid #cfe3d3 !important;
  border-left: 4px solid var(--nabu-green) !important;
  border-radius: 11px !important;
  box-shadow: none !important;
}

body:has(.crm-event-additionalparticipant-form-block) .messages.status *,
body:has(.crm-event-additionalparticipant-form-block) .messages.help * {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Fehlerhinweise auf denselben Seiten. */
body:has(.crm-event-additionalparticipant-form-block) .messages.error,
body:has(.crm-event-additionalparticipant-form-block) .crm-error {
  color: #7b2338 !important;
  -webkit-text-fill-color: #7b2338 !important;
  background: #fff1f4 !important;
  border: 1px solid #efc1cc !important;
  border-left: 4px solid #a12647 !important;
  border-radius: 11px !important;
}

/* Hauptbereiche und Profile als helle Karten. */
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item.custom_pre-section,
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item.custom_post-section,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block > fieldset,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block .crm-group,
body:has(.crm-event-additionalparticipant-form-block) [class*="crm-profile-name-"],
body:has(.crm-event-additionalparticipant-form-block) [class*="crm-profile-id-"] {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 18px !important;
  padding: 22px 24px !important;
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
  background: #f8fbfc !important;
  background-image: none !important;
  border: 1px solid var(--nabu-line) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

/* Innere Tabellen/Wrapper dürfen das alte Dark-Theme nicht wiederbringen. */
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item div,
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item fieldset,
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item legend,
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item table,
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item tbody,
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item tr,
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item td,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block div,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block table,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block tbody,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block tr,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block td {
  background-color: transparent !important;
  background-image: none !important;
}

body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item,
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item p,
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item div,
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item span,
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item label,
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item legend,
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item td,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block p,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block div,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block span,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block label,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block legend,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block td {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}

body:has(.crm-event-additionalparticipant-form-block) fieldset > legend,
body:has(.crm-event-additionalparticipant-form-block) .crm-profile-name,
body:has(.crm-event-additionalparticipant-form-block) .crm-group-title {
  width: auto !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: var(--nabu-ink) !important;
  background: transparent !important;
  border: 0 !important;
  font-size: 1.08rem !important;
  line-height: 1.35 !important;
  font-weight: 750 !important;
  letter-spacing: 0 !important;
}

/* Feldzeilen wie auf der ersten Anmeldeseite. */
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item .crm-section,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block .crm-section {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 7px 0 !important;
  background: transparent !important;
  border: 0 !important;
}

body:has(.crm-event-additionalparticipant-form-block) .crm-section > .label {
  color: #38515d !important;
  -webkit-text-fill-color: #38515d !important;
  font-weight: 650 !important;
  line-height: 1.4 !important;
}

body:has(.crm-event-additionalparticipant-form-block) .crm-section > .content {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Eingabefelder */
body:has(.crm-event-additionalparticipant-form-block) input[type="text"],
body:has(.crm-event-additionalparticipant-form-block) input[type="email"],
body:has(.crm-event-additionalparticipant-form-block) input[type="tel"],
body:has(.crm-event-additionalparticipant-form-block) input[type="number"],
body:has(.crm-event-additionalparticipant-form-block) input[type="date"],
body:has(.crm-event-additionalparticipant-form-block) input[type="url"],
body:has(.crm-event-additionalparticipant-form-block) select,
body:has(.crm-event-additionalparticipant-form-block) textarea {
  min-height: 44px !important;
  max-width: 100% !important;
  padding: 9px 12px !important;
  color: #203640 !important;
  -webkit-text-fill-color: #203640 !important;
  background: #fff !important;
  border: 1px solid #bfcfd7 !important;
  border-radius: 9px !important;
  box-shadow: 0 1px 2px rgba(24, 49, 61, .04) !important;
  font: inherit !important;
}

body:has(.crm-event-additionalparticipant-form-block) input[type="text"],
body:has(.crm-event-additionalparticipant-form-block) input[type="email"],
body:has(.crm-event-additionalparticipant-form-block) input[type="tel"],
body:has(.crm-event-additionalparticipant-form-block) input[type="url"],
body:has(.crm-event-additionalparticipant-form-block) textarea {
  width: min(100%, 520px) !important;
}

body:has(.crm-event-additionalparticipant-form-block) select {
  width: min(100%, 360px) !important;
}

body:has(.crm-event-additionalparticipant-form-block) input:focus,
body:has(.crm-event-additionalparticipant-form-block) select:focus,
body:has(.crm-event-additionalparticipant-form-block) textarea:focus {
  border-color: var(--nabu-blue) !important;
  outline: 3px solid rgba(0, 114, 184, .14) !important;
  outline-offset: 1px !important;
  box-shadow: none !important;
}

body:has(.crm-event-additionalparticipant-form-block) .crm-marker,
body:has(.crm-event-additionalparticipant-form-block) .required,
body:has(.crm-event-additionalparticipant-form-block) span.crm-marker {
  color: #b42318 !important;
  -webkit-text-fill-color: #b42318 !important;
}

/* Links auf zusätzlichen Teilnehmerseiten */
body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item a,
body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block a {
  color: var(--nabu-blue-dark) !important;
  -webkit-text-fill-color: var(--nabu-blue-dark) !important;
  text-underline-offset: 3px;
}

/* ---------- Buttons: Text und Icon zuverlässig innerhalb des Buttons ---------- */
/*
 * CiviCRM baut Buttons als <span class="crm-button"> mit einem darin
 * liegenden <input class="form-submit">. Die V12-Mobile-Regel setzte auch
 * dieses innere Input auf 100% Breite; dadurch konnte der Text unter den
 * blauen Wrapper rutschen. Hier wird der Wrapper zum eigentlichen Button
 * und das Input wieder zu seinem sichtbaren, zentrierten Textinhalt.
 */
body.nabu-public-registration-page .crm-submit-buttons .crm-button,
body:has(.crm-event-additionalparticipant-form-block) .crm-submit-buttons .crm-button {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  min-height: 46px !important;
  padding: 11px 20px !important;
  margin: 0 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: linear-gradient(135deg, var(--nabu-blue), var(--nabu-blue-dark)) !important;
  border: 0 !important;
  border-radius: 11px !important;
  box-shadow: 0 8px 22px rgba(0, 79, 127, .20) !important;
  overflow: visible !important;
  vertical-align: middle !important;
}

body.nabu-public-registration-page .crm-submit-buttons .crm-button input.form-submit,
body:has(.crm-event-additionalparticipant-form-block) .crm-submit-buttons .crm-button input.form-submit {
  position: static !important;
  inset: auto !important;
  display: inline-block !important;
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  opacity: 1 !important;
  font: inherit !important;
  font-weight: 750 !important;
  line-height: 1.25 !important;
  text-align: center !important;
  white-space: normal !important;
  transform: none !important;
  cursor: pointer !important;
}

body.nabu-public-registration-page .crm-submit-buttons .crm-button .crm-i,
body:has(.crm-event-additionalparticipant-form-block) .crm-submit-buttons .crm-button .crm-i {
  position: static !important;
  inset: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  line-height: 1 !important;
  transform: none !important;
}

/* Zurück / Teilnehmer überspringen etwas zurückhaltender darstellen. */
body.nabu-public-registration-page .crm-submit-buttons .crm-button.crm-button-type-back,
body:has(.crm-event-additionalparticipant-form-block) .crm-submit-buttons .crm-button.crm-button-type-back,
body:has(.crm-event-additionalparticipant-form-block) .crm-submit-buttons .crm-button:has(input[name*="_back"]),
body:has(.crm-event-additionalparticipant-form-block) .crm-submit-buttons .crm-button:has(input[name*="next_skip"]) {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: var(--nabu-ink) !important;
  background: #e7eef2 !important;
  box-shadow: none !important;
  border: 1px solid #ccd9df !important;
}

body.nabu-public-registration-page .crm-submit-buttons .crm-button.crm-button-type-back input.form-submit,
body:has(.crm-event-additionalparticipant-form-block) .crm-submit-buttons .crm-button.crm-button-type-back input.form-submit,
body:has(.crm-event-additionalparticipant-form-block) .crm-submit-buttons .crm-button:has(input[name*="_back"]) input.form-submit,
body:has(.crm-event-additionalparticipant-form-block) .crm-submit-buttons .crm-button:has(input[name*="next_skip"]) input.form-submit,
body:has(.crm-event-additionalparticipant-form-block) .crm-submit-buttons .crm-button:has(input[name*="_back"]) .crm-i,
body:has(.crm-event-additionalparticipant-form-block) .crm-submit-buttons .crm-button:has(input[name*="next_skip"]) .crm-i {
  color: var(--nabu-ink) !important;
  -webkit-text-fill-color: var(--nabu-ink) !important;
}

/* ---------- Mobile: zusätzliche Teilnehmer 2..N ---------- */
@media (max-width: 760px) {
  body:has(.crm-event-additionalparticipant-form-block) {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body:has(.crm-event-additionalparticipant-form-block) #crm-main-content-wrapper {
    width: calc(100% - 16px) !important;
    max-width: none !important;
    margin: 8px 8px 28px !important;
  }

  body:has(.crm-event-additionalparticipant-form-block) #crm-main-content-wrapper > h1,
  body:has(.crm-event-additionalparticipant-form-block) #crm-container > h1,
  body:has(.crm-event-additionalparticipant-form-block) h1.crm-title {
    display: block !important;
    min-height: 0 !important;
    margin-bottom: 14px !important;
    padding: 102px 14px 18px !important;
    background-position: left bottom, 14px 14px !important;
    background-size: 100% 4px, 112px auto !important;
    border-radius: 14px !important;
    font-size: clamp(1.35rem, 6.8vw, 1.9rem) !important;
    line-height: 1.12 !important;
    overflow-wrap: anywhere !important;
  }

  body:has(.crm-event-additionalparticipant-form-block) #crm-main-content-wrapper > h1::before,
  body:has(.crm-event-additionalparticipant-form-block) #crm-container > h1::before,
  body:has(.crm-event-additionalparticipant-form-block) h1.crm-title::before {
    left: 14px;
    top: 76px;
    font-size: .61rem !important;
    letter-spacing: .045em !important;
  }

  body:has(.crm-event-additionalparticipant-form-block) .messages.status,
  body:has(.crm-event-additionalparticipant-form-block) .messages.help,
  body:has(.crm-event-additionalparticipant-form-block) .messages.error {
    padding: 12px 13px !important;
    font-size: .92rem !important;
    line-height: 1.45 !important;
  }

  body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item.custom_pre-section,
  body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item.custom_post-section,
  body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block > fieldset,
  body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block .crm-group,
  body:has(.crm-event-additionalparticipant-form-block) [class*="crm-profile-name-"],
  body:has(.crm-event-additionalparticipant-form-block) [class*="crm-profile-id-"] {
    padding: 14px 12px !important;
    border-radius: 12px !important;
  }

  /* CiviCRM-Floats und Tabellenlogik auch für Person 2..N abschalten. */
  body:has(.crm-event-additionalparticipant-form-block) .crm-section {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    clear: both !important;
    padding: 8px 0 !important;
  }

  body:has(.crm-event-additionalparticipant-form-block) .crm-section > .label,
  body:has(.crm-event-additionalparticipant-form-block) .crm-section > .content,
  body:has(.crm-event-additionalparticipant-form-block) td.label,
  body:has(.crm-event-additionalparticipant-form-block) td.content {
    position: static !important;
    float: none !important;
    clear: both !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: left !important;
    white-space: normal !important;
    transform: none !important;
  }

  body:has(.crm-event-additionalparticipant-form-block) .crm-section > .label,
  body:has(.crm-event-additionalparticipant-form-block) td.label {
    margin-bottom: 6px !important;
    font-size: .92rem !important;
    line-height: 1.35 !important;
  }

  body:has(.crm-event-additionalparticipant-form-block) table.form-layout,
  body:has(.crm-event-additionalparticipant-form-block) table.form-layout-compressed,
  body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body:has(.crm-event-additionalparticipant-form-block) table.form-layout tbody,
  body:has(.crm-event-additionalparticipant-form-block) table.form-layout-compressed tbody,
  body:has(.crm-event-additionalparticipant-form-block) table.form-layout tr,
  body:has(.crm-event-additionalparticipant-form-block) table.form-layout-compressed tr,
  body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item tbody,
  body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item tr {
    display: block !important;
    width: 100% !important;
  }

  body:has(.crm-event-additionalparticipant-form-block) table.form-layout td,
  body:has(.crm-event-additionalparticipant-form-block) table.form-layout-compressed td,
  body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 5px 0 !important;
    text-align: left !important;
  }

  body:has(.crm-event-additionalparticipant-form-block) input[type="text"],
  body:has(.crm-event-additionalparticipant-form-block) input[type="email"],
  body:has(.crm-event-additionalparticipant-form-block) input[type="tel"],
  body:has(.crm-event-additionalparticipant-form-block) input[type="number"],
  body:has(.crm-event-additionalparticipant-form-block) input[type="date"],
  body:has(.crm-event-additionalparticipant-form-block) input[type="url"],
  body:has(.crm-event-additionalparticipant-form-block) select,
  body:has(.crm-event-additionalparticipant-form-block) textarea,
  body:has(.crm-event-additionalparticipant-form-block) .select2-container,
  body:has(.crm-event-additionalparticipant-form-block) .chosen-container {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    font-size: 16px !important;
  }

  /* Buttonzeile: ein klarer Button pro Zeile. */
  body.nabu-public-registration-page .crm-submit-buttons,
  body:has(.crm-event-additionalparticipant-form-block) .crm-submit-buttons {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
    margin: 20px 0 0 !important;
  }

  body.nabu-public-registration-page .crm-submit-buttons .crm-button,
  body:has(.crm-event-additionalparticipant-form-block) .crm-submit-buttons .crm-button {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 52px !important;
    padding: 12px 16px !important;
  }

  body.nabu-public-registration-page .crm-submit-buttons .crm-button input.form-submit,
  body:has(.crm-event-additionalparticipant-form-block) .crm-submit-buttons .crm-button input.form-submit {
    width: auto !important;
    max-width: calc(100% - 32px) !important;
    font-size: 16px !important;
    white-space: normal !important;
    text-align: center !important;
  }
}

@media (max-width: 420px) {
  body:has(.crm-event-additionalparticipant-form-block) #crm-main-content-wrapper > h1,
  body:has(.crm-event-additionalparticipant-form-block) #crm-container > h1,
  body:has(.crm-event-additionalparticipant-form-block) h1.crm-title {
    padding: 96px 12px 16px !important;
    background-position: left bottom, 12px 12px !important;
    background-size: 100% 4px, 104px auto !important;
    font-size: 1.32rem !important;
  }

  body:has(.crm-event-additionalparticipant-form-block) #crm-main-content-wrapper > h1::before,
  body:has(.crm-event-additionalparticipant-form-block) #crm-container > h1::before,
  body:has(.crm-event-additionalparticipant-form-block) h1.crm-title::before {
    left: 12px;
    top: 72px;
    font-size: .57rem !important;
  }

  body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item.custom_pre-section,
  body:has(.crm-event-additionalparticipant-form-block) .crm-public-form-item.custom_post-section,
  body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block > fieldset,
  body:has(.crm-event-additionalparticipant-form-block) .crm-event-additionalparticipant-form-block .crm-group,
  body:has(.crm-event-additionalparticipant-form-block) [class*="crm-profile-name-"],
  body:has(.crm-event-additionalparticipant-form-block) [class*="crm-profile-id-"] {
    padding: 13px 10px !important;
  }
}
