/* =========================================================
     ELEMENTOR-ELTERN NEUTRALISIEREN (volle Breite, kein Rand)
     Greift nur auf Container, die diese Seite enthalten.
  ========================================================= */
  .e-con:has(.eftb),
  .e-con-inner:has(.eftb) {
    --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
    --gap: 0px; --row-gap: 0px; --column-gap: 0px; --content-width: 100%; --min-height: 0px;
    width: 100% !important; max-width: none !important; min-height: 0 !important;
    margin-top: 0 !important; margin-bottom: 0 !important;
    padding: 0 !important; gap: 0 !important; border: 0 !important;
  }
  .elementor-widget:has(.eftb),
  .elementor-widget-container:has(> .eftb),
  .elementor-widget-container:has(> .elementor-shortcode > .eftb),
  .elementor-shortcode:has(> .eftb) {
    width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important;
  }

  /* =========================================================
     ZENTRALE EINSTELLUNGEN
  ========================================================= */
  .eftb, .eftb *, .eftb *::before, .eftb *::after { box-sizing: border-box; }

  .eftb {
    /* TYPOGRAFIE */
    --eft-font-display: "Cormorant Garamond", Georgia, serif;
    --eft-font-sans: "Inter", Arial, sans-serif;
    --eft-font-title-desktop: 38px;
    --eft-font-title-tablet: 27px;
    --eft-font-title-mobile: 27px;
    --eft-font-lead: 24px;
    --eft-font-heading: 27px;     /* Abschnittstitel links */
    --eft-font-index: 30px;       /* „§ 1“ */
    --eft-font-body: 16px;
    --eft-font-label: 11px;

    /* FARBEN */
    --eft-royal-blue: #4169E1;
    --eft-royal-blue-hover: #5879E6;
    --eft-navy: #091624;
    --eft-off-white: #F5F4F0;
    --eft-white: #FFFFFF;
    --eft-main-text: #252525;
    --eft-muted-text: #666C72;
    --eft-border: rgba(9, 22, 36, 0.16);
    --eft-dark-text: rgba(255, 255, 255, 0.74);
    --eft-todo-bg: #FFE98A;
    --eft-todo-text: #3A2F00;

    /* BREITEN UND ABSTÄNDE */
    --eft-content-width: 1180px;
    --eft-reading-width: 680px;
    --eft-page-padding-desktop: 32px;
    --eft-page-padding-tablet: 20px;
    --eft-page-padding-mobile: 16px;
    --eft-kopfzeile: var(--efhd-hoehe, 84px);

    position: relative; width: 100%; margin: 0; padding: 0; overflow: clip;
    color: var(--eft-main-text); background: var(--eft-off-white);
    font-family: var(--eft-font-sans); font-size: var(--eft-font-body);
    font-weight: 400; line-height: 1.75;
    -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
  }

  body:has(.efhd[data-ueber="nein"]) .eftb { --eft-kopfzeile: 0px; }

  .eftb :where(h1, h2, h3, p, ul, ol, li, dl, dt, dd) { margin: 0; padding: 0; }
  .eftb :where(ul, ol) { list-style: none; }

  .eftb .eftb__container {
    width: min(var(--eft-content-width), calc(100% - var(--eft-page-padding-desktop) - var(--eft-page-padding-desktop)));
    margin: 0 auto;
  }

  /* =========================================================
     KOPFBEREICH (dunkel, Kopfzeile liegt durchsichtig darüber)
  ========================================================= */
  .eftb .eftb__head {
    position: relative; isolation: isolate;
    padding: calc(var(--eft-kopfzeile) + clamp(64px, 9vw, 132px)) 0 clamp(56px, 7vw, 100px);
    color: var(--eft-white);
    background:
      radial-gradient(120% 90% at 100% 0%, rgba(65, 105, 225, 0.22) 0%, rgba(65, 105, 225, 0) 62%),
      var(--eft-navy);
  }
  .eftb .eftb__head::after {
    content: ""; position: absolute; right: 0; bottom: 0;
    width: min(38vw, 520px); height: 6px; background: var(--eft-royal-blue);
  }
  .eftb .eftb__head-grid {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 0.62fr);
    gap: clamp(40px, 8vw, 120px); align-items: end;
  }
  .eftb .eftb__eyebrow {
    display: flex; align-items: center; gap: 13px; margin-bottom: 26px;
    color: var(--eft-royal-blue-hover); font-family: var(--eft-font-sans);
    font-size: 12px; font-weight: 600; line-height: 1.4;
    letter-spacing: 0.17em; text-transform: uppercase;
  }
  .eftb .eftb__eyebrow::before { content: ""; flex: 0 0 38px; height: 2px; background: var(--eft-royal-blue); }
  .eftb .eftb__title {
    color: #F7F6F2; font-family: var(--eft-font-display);
    font-size: var(--eft-font-title-desktop) !important; font-weight: 500; font-style: normal;
    line-height: 0.92; letter-spacing: -0.03em; text-transform: none;
    overflow-wrap: break-word; -webkit-hyphens: auto; hyphens: auto;
  }
  .eftb .eftb__lead {
    padding-left: 24px; border-left: 2px solid var(--eft-royal-blue);
    color: var(--eft-dark-text); font-family: var(--eft-font-display);
    font-size: var(--eft-font-lead); font-weight: 500; line-height: 1.3; letter-spacing: -0.01em;
  }

  /* =========================================================
     INHALT
  ========================================================= */
  .eftb .eftb__body { padding: clamp(64px, 8vw, 112px) 0 clamp(88px, 10vw, 144px); background: var(--eft-off-white); }

  .eftb .eftb__hinweis {
    display: none; margin-bottom: 48px; padding: 16px 20px;
    border-left: 4px solid #E0B400; color: var(--eft-todo-text); background: #FFF6CC;
    font-size: 14px; line-height: 1.55;
  }
  body.logged-in .eftb:has(mark.eftb__todo) .eftb__hinweis { display: block; }

  /* Auf einen Blick */
  .eftb .eftb__glance {
    margin-bottom: clamp(48px, 6vw, 80px); padding: clamp(28px, 3.4vw, 44px);
    color: var(--eft-white); background: var(--eft-navy);
    border-top: 6px solid var(--eft-royal-blue);
  }
  .eftb .eftb__glance-title {
    margin-bottom: 18px; color: var(--eft-royal-blue-hover); font-family: var(--eft-font-sans);
    font-size: 12px; font-weight: 600; line-height: 1.4; letter-spacing: 0.17em; text-transform: uppercase;
  }
  .eftb .eftb__glance-grid {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0; border-top: 1px solid rgba(255, 255, 255, 0.16);
  }
  .eftb .eftb__glance-item { padding: 20px 24px 4px 0; }
  .eftb .eftb__glance-item + .eftb__glance-item { padding-left: 24px; border-left: 1px solid rgba(255, 255, 255, 0.16); }
  .eftb .eftb__glance-item dt {
    color: rgba(255, 255, 255, 0.6); font-size: 10.5px; font-weight: 600; line-height: 1.5;
    letter-spacing: 0.15em; text-transform: uppercase;
  }
  .eftb .eftb__glance-item dd {
    margin-top: 8px; color: #F7F6F2; font-family: var(--eft-font-display);
    font-size: 25px; font-weight: 600; line-height: 1.15; letter-spacing: -0.01em;
  }
  .eftb .eftb__glance-item dd small {
    display: block; margin-top: 6px; color: var(--eft-dark-text);
    font-family: var(--eft-font-sans); font-size: 13px; font-weight: 400; line-height: 1.5; letter-spacing: 0;
  }

  .eftb .eftb__intro {
    max-width: var(--eft-reading-width); margin-bottom: clamp(40px, 5vw, 64px);
    color: var(--eft-navy); font-family: var(--eft-font-display);
    font-size: 25px; font-weight: 500; line-height: 1.35; letter-spacing: -0.01em;
  }

  .eftb .eftb__rows { counter-reset: eftb-nr; border-top: 1px solid var(--eft-border); }
  .eftb .eftb__row {
    counter-increment: eftb-nr;
    display: grid; grid-template-columns: minmax(220px, 0.36fr) minmax(0, 0.64fr);
    gap: clamp(28px, 6vw, 96px); align-items: start;
    padding: clamp(36px, 4.4vw, 56px) 0; border-bottom: 1px solid var(--eft-border);
    scroll-margin-top: calc(var(--efhd-hoehe, 84px) + 24px);
  }
  .eftb .eftb__label {
    display: flex; flex-direction: column; align-items: flex-start; gap: 16px;
    color: var(--eft-navy); font-family: var(--eft-font-display);
    font-size: var(--eft-font-heading); font-weight: 600; font-style: normal;
    line-height: 1.1; letter-spacing: -0.015em; text-transform: none;
    overflow-wrap: break-word; -webkit-hyphens: auto; hyphens: auto;
  }
  .eftb .eftb__label::before {
    content: "§\00a0" counter(eftb-nr);
    content: "§\00a0" counter(eftb-nr) / "";
    color: var(--eft-royal-blue); font-family: var(--eft-font-display);
    font-size: var(--eft-font-index); font-weight: 600; font-variant-numeric: lining-nums;
    line-height: 0.8; letter-spacing: -0.02em;
  }

  .eftb .eftb__content { min-width: 0; max-width: var(--eft-reading-width); padding-top: 2px; }
  .eftb .eftb__content > * + * { margin-top: 18px; }
  .eftb .eftb__content p { color: var(--eft-main-text); font-size: var(--eft-font-body); line-height: 1.75; }
  .eftb .eftb__content h3 { color: var(--eft-navy); font-family: var(--eft-font-display); font-size: 23px; font-weight: 600; line-height: 1.2; }

  /* Nummerierte Absätze (1), (2) … */
  .eftb .eftb__list { counter-reset: eftb-li; }
  .eftb .eftb__list > li {
    counter-increment: eftb-li; position: relative;
    padding: 0 0 0 40px; color: var(--eft-main-text); line-height: 1.75;
  }
  .eftb .eftb__list > li + li { margin-top: 16px; }
  .eftb .eftb__list > li::before {
    content: counter(eftb-li);
    content: counter(eftb-li) / "";
    position: absolute; top: 0.28em; left: 0; width: 26px;
    color: var(--eft-royal-blue); font-size: 12px; font-weight: 600;
    font-variant-numeric: tabular-nums; line-height: 1.5; letter-spacing: 0.06em;
  }

  /* Hervorgehobene Regel (Zahlung, Rückzahlung, Mindestalter) */
  .eftb .eftb__key {
    padding: 18px 22px; border-left: 3px solid var(--eft-royal-blue);
    color: var(--eft-navy); background: var(--eft-white);
    font-size: 15.5px; font-weight: 500; line-height: 1.6;
  }
  .eftb .eftb__content p.eftb__key { color: var(--eft-navy); font-size: 15.5px; font-weight: 500; line-height: 1.6; }

  /* Links im Text */
  .eftb .eftb__content a {
    color: var(--eft-navy); text-decoration: underline;
    text-decoration-color: rgba(65, 105, 225, 0.55); text-decoration-thickness: 1px; text-underline-offset: 0.22em;
    transition: color 180ms ease, text-decoration-color 180ms ease;
  }
  .eftb .eftb__content a:hover, .eftb .eftb__content a:focus-visible { color: var(--eft-royal-blue); text-decoration-color: var(--eft-royal-blue); }
  .eftb a:focus-visible { outline: 2px solid var(--eft-royal-blue); outline-offset: 4px; }

  /* Platzhalter – gelb markiert, bis sie ersetzt sind */
  .eftb mark.eftb__todo {
    padding: 0.05em 0.3em; border-radius: 2px; color: var(--eft-todo-text); background: var(--eft-todo-bg);
    font: inherit; -webkit-box-decoration-break: clone; box-decoration-break: clone;
  }
  .eftb .eftb__glance mark.eftb__todo { font-size: 0.8em; }

  .eftb .eftb__stand {
    margin-top: 40px; color: var(--eft-muted-text); font-size: var(--eft-font-label);
    font-weight: 600; line-height: 1.5; letter-spacing: 0.15em; text-transform: uppercase;
  }

  /* =========================================================
     TABLET
  ========================================================= */
  @media (max-width: 1024px) {
    .eftb .eftb__container { width: min(var(--eft-content-width), calc(100% - var(--eft-page-padding-tablet) - var(--eft-page-padding-tablet))); }
    .eftb .eftb__title { font-size: var(--eft-font-title-tablet) !important; }
    .eftb .eftb__head-grid { gap: 48px; }
    .eftb .eftb__row { grid-template-columns: minmax(190px, 0.34fr) minmax(0, 0.66fr); gap: 40px; }
    .eftb .eftb__glance-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .eftb .eftb__glance-item:nth-child(3) { padding-left: 0; border-left: 0; }
    .eftb .eftb__glance-item:nth-child(n+3) { margin-top: 12px; border-top: 1px solid rgba(255, 255, 255, 0.16); }
  }

  /* =========================================================
     SMARTPHONE
  ========================================================= */
  @media (max-width: 767px) {
    .eftb { --eft-font-heading: 25px; --eft-font-index: 26px; }
    .eftb .eftb__container { width: min(620px, calc(100% - var(--eft-page-padding-mobile) - var(--eft-page-padding-mobile))); }
    .eftb .eftb__head { padding-top: calc(var(--eft-kopfzeile) + 56px); padding-bottom: 52px; }
    .eftb .eftb__head::after { width: 46vw; height: 4px; }
    .eftb .eftb__head-grid { grid-template-columns: 1fr; gap: 28px; }
    .eftb .eftb__eyebrow { margin-bottom: 20px; }
    .eftb .eftb__title { font-size: var(--eft-font-title-mobile) !important; }
    .eftb .eftb__lead { padding-left: 18px; font-size: 20px; }
    .eftb .eftb__body { padding: 48px 0 80px; }
    .eftb .eftb__intro { font-size: 21px; }
    .eftb .eftb__glance-grid { grid-template-columns: 1fr; }
    .eftb .eftb__glance-item, .eftb .eftb__glance-item + .eftb__glance-item { padding: 16px 0 14px; border-left: 0; }
    .eftb .eftb__glance-item + .eftb__glance-item { border-top: 1px solid rgba(255, 255, 255, 0.16); margin-top: 0; }
    .eftb .eftb__row { grid-template-columns: 1fr; gap: 22px; padding: 36px 0 40px; }
    .eftb .eftb__label { flex-direction: row; align-items: baseline; gap: 16px; }
    .eftb .eftb__list > li { padding-left: 32px; }
  }

  /* =========================================================
     REDUZIERTE BEWEGUNG UND DRUCK
  ========================================================= */
  @media (prefers-reduced-motion: reduce) {
    .eftb *, .eftb *::before, .eftb *::after { transition-duration: 0.01ms !important; }
  }
  @media print {
    .eftb, .eftb .eftb__head, .eftb .eftb__body { color: #000000; background: #FFFFFF; }
    .eftb .eftb__head { padding: 0 0 24px; }
    .eftb .eftb__head::after, .eftb .eftb__hinweis { display: none !important; }
    .eftb .eftb__title, .eftb .eftb__lead { color: #000000; }
    .eftb .eftb__glance { color: #000000; background: #FFFFFF; border: 1px solid #000000; }
    .eftb .eftb__glance-item dd, .eftb .eftb__glance-item dt, .eftb .eftb__glance-item dd small { color: #000000; }
    .eftb .eftb__row { break-inside: avoid; }
  }
