/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */



/* =========================================================
   LEGENDE – KLASSEN (am TOP-LEVEL-Container/Section eintragen)
   -----------------------------------------------------------
   Default ohne Klasse (im Content):
     Desktop ~50px | Tablet ~40px | Mobile ~32px Abstand oben & unten

   Gesamtabstand (oben+unten überschreiben):
     .abstand-0    → 0
     .abstand-xs   → 1rem  (~16px)
     .abstand-sm   → 2rem  (~32px)
     .abstand-md   → 3rem  (~48px)
     .abstand-lg   → 4rem  (~64px)
     .abstand-xl   → 6rem  (~96px)
     .abstand-xxl  → 8rem  (~128px)
     .abstand-xxxl → 10rem (~160px)

   Nur oben:
     .abstand-oben-0 / -xs / -sm / -md / -lg / -xl / -xxl / -xxxl

   Nur unten:
     .abstand-unten-0 / -xs / -sm / -md / -lg / -xl / -xxl / -xxxl

   Vollbild (Hero):
     .fullscreen              → min-height:100svh (Fallback 100vh), Inhalt zentriert
     .fullscreen-ohne-header  → Höhe = 100svh minus Headerhöhe (automatisch via JS)
     .fullscreen-exakt        → exakt 100svh/100vh (keine Auto-Höhe)
     (optional) .safe-area    → iOS-Notch-Padding

   **NEU** 3/4-Screen (Hero):
     .dreiviertel             → min-height:75svh (Fallback 75vh), Inhalt zentriert
     .dreiviertel-ohne-header → Höhe = 75svh/dvh minus Headerhöhe
     .dreiviertel-exakt       → exakt 75svh/75vh
========================================================= */


/* ================================
   DEFAULT-ABSTAND (nur CONTENT)
   Desktop ≈ 50px | Tablet ≈ 40px | Mobile ≈ 32px
   Header/Footer bleiben unberührt
================================== */
/* 1) Deine Wunschwerte */
:root{
  --vpad-d: 8rem;    /* Desktop */
  --vpad-t: 3rem;    /* Tablet  */
  --vpad-m: 2.5rem;  /* Mobile  */
}

/* 2) Elementor-Kit Defaults neutralisieren (keine ~50px mehr) */
:root,
[class^="elementor-kit-"], [class*=" elementor-kit-"]{
  --container-default-padding-block-start: 0 !important;
  --container-default-padding-block-end:   0 !important;
}

/* 3) NUR Top-Level-Abschnitte paddingen (direkte Kinder) */

/* Desktop – äußerer .elementor */
.elementor:not(.elementor-location-header):not(.elementor-location-footer)
  > :is(.e-con, .elementor-top-section) {
  padding-block: var(--vpad-d) !important;
}
/* Desktop – falls klassisches .elementor-section-wrap vorhanden ist */
.elementor:not(.elementor-location-header):not(.elementor-location-footer)
  > .elementor-section-wrap
  > :is(.e-con, .elementor-top-section) {
  padding-block: var(--vpad-d) !important;
}

/* Desktop – INNERES .elementor (z. B. im Template/Beitragsinhalt),
   ebenfalls nur direkte Kinder */
.elementor:not(.elementor-location-header):not(.elementor-location-footer)
  .elementor
  > :is(.e-con, .elementor-top-section),
.elementor:not(.elementor-location-header):not(.elementor-location-footer)
  .elementor > .elementor-section-wrap
  > :is(.e-con, .elementor-top-section) {
  padding-block: var(--vpad-d) !important;
}

/* Tablet */
@media (max-width:1024px){
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > :is(.e-con, .elementor-top-section),
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > .elementor-section-wrap > :is(.e-con, .elementor-top-section),
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    .elementor > :is(.e-con, .elementor-top-section),
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    .elementor > .elementor-section-wrap > :is(.e-con, .elementor-top-section){
    padding-block: var(--vpad-t) !important;
  }
}

/* Mobile */
@media (max-width:760px){
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > :is(.e-con, .elementor-top-section),
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > .elementor-section-wrap > :is(.e-con, .elementor-top-section),
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    .elementor > :is(.e-con, .elementor-top-section),
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    .elementor > .elementor-section-wrap > :is(.e-con, .elementor-top-section){
    padding-block: var(--vpad-m) !important;
  }
}

/* Hero-Varianten bleiben davon unberührt */
.elementor .elementor-element.fullscreen,
.elementor .elementor-element.fullscreen-ohne-header,
.elementor .elementor-element.fullscreen-exakt,
.elementor .elementor-element.dreiviertel,
.elementor .elementor-element.dreiviertel-ohne-header,
.elementor .elementor-element.dreiviertel-exakt{
  padding-block: 0 !important;
}


/* ======================
   FULLSCREEN / HERO (mit Auto-Headerhöhe)
   - entfernt Default-Padding im Hero
   - zentriert Inhalt
   - svh stabil auf Mobilgeräten
====================== */

/* Vollbild inkl. Header im Flow */
.elementor .elementor-element.fullscreen {
  min-height: 100svh;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}
@supports not (height: 100svh) {
  .elementor .elementor-element.fullscreen { min-height: 100vh; }
}

/* Vollbild OHNE Header (Header sticky/overlay) – Abschnittshöhe = Viewport - Header */
.elementor .elementor-element.fullscreen-ohne-header {
  min-height: 0 !important; /* Elementor-Inline min-height neutralisieren */
  height: calc(100dvh - var(--header-h, 0px)) !important; /* echte sichtbare Höhe */
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}

@supports not (height: 100dvh) {
  .elementor .elementor-element.fullscreen-ohne-header {
    height: calc(100svh - var(--header-h, 0px)) !important;
  }
}
@supports not (height: 100svh) {
  .elementor .elementor-element.fullscreen-ohne-header {
    height: calc(100vh - var(--header-h, 0px)) !important;
  }
}

/* Optional: Innenabstände sicher entfernen */
.elementor .elementor-element.fullscreen-ohne-header > .elementor-container,
.elementor .elementor-element.fullscreen-ohne-header > .e-con-inner {
  padding: 0 !important;
}

/* Exakte Höhe erzwingen (falls gewünscht) */
.elementor .elementor-element.fullscreen-exakt { 
  height: 100svh;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}
@supports not (height: 100svh) { .elementor .elementor-element.fullscreen-exakt { height: 100vh; } }


/* ======================
   3/4 SCREEN (75% Höhe)
====================== */

/* 3/4 inkl. Header im Flow */
.elementor .elementor-element.dreiviertel {
  min-height: 75svh;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}
@supports not (height: 100svh) {
  .elementor .elementor-element.dreiviertel { min-height: 75vh; }
}

/* 3/4 OHNE Header */
.elementor .elementor-element.dreiviertel-ohne-header {
  min-height: 0 !important;
  height: calc(75dvh - var(--header-h, 0px)) !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}
@supports not (height: 100dvh) {
  .elementor .elementor-element.dreiviertel-ohne-header {
    height: calc(75svh - var(--header-h, 0px)) !important;
  }
}
@supports not (height: 100svh) {
  .elementor .elementor-element.dreiviertel-ohne-header {
    height: calc(75vh - var(--header-h, 0px)) !important;
  }
}

/* 3/4 exakt (ohne Auto-Anpassung) */
.elementor .elementor-element.dreiviertel-exakt {
  height: 75svh;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}
@supports not (height: 100svh) {
  .elementor .elementor-element.dreiviertel-exakt { height: 75vh; }
}

/* Optional: iOS Notch-Schutz */
.safe-area { 
  padding-top: max(0px, env(safe-area-inset-top));
  padding-bottom: max(0px, env(safe-area-inset-bottom));
}


/* ======================
   HINWEIS JS (Kommentar)
----------------------
Um die Header-Höhe automatisch zu setzen, ergänze einmalig ein Script:

<script>
  const root = document.documentElement;
  const header = document.querySelector('.elementor-location-header, header');
  function setHeaderH(){
    const h = header ? Math.round(header.getBoundingClientRect().height) : 0;
    root.style.setProperty('--header-h', h + 'px');
  }
  setHeaderH();
  new ResizeObserver(setHeaderH).observe(document.body);
  window.addEventListener('resize', setHeaderH);
</script>

Dieses Script kann im Theme/Code Snippets liegen. Es ist nur nötig für
*.fullscreen-ohne-header* und *.dreiviertel-ohne-header*.
====================== */


/* ======================
   ABSTAND-KLASSEN (robust)
   -> am Top-Level-Container/Section eintragen
   -> hohe Spezifität + !important
   -> wirken auch bei Elementor-eigenen Styles
====================== */

/* 0 – komplett ohne Luft (setzt auch gap/row-gap auf 0) */
.elementor .elementor-element.abstand-0,
.elementor .elementor-element.abstand-0 > .e-con-inner,
.elementor .elementor-element.abstand-0 > .elementor-container{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.elementor .elementor-element.abstand-0{ gap: 0 !important; row-gap: 0 !important; }
/* Sicherheitsnetz gegen Restmargins in abstand-0 */
.elementor .elementor-element.abstand-0 > .e-con-inner > :first-child,
.elementor .elementor-element.abstand-0 > .elementor-container > :first-child{ margin-top: 0 !important; }
.elementor .elementor-element.abstand-0 > .e-con-inner > :last-child,
.elementor .elementor-element.abstand-0 > .elementor-container > :last-child { margin-bottom: 0 !important; }

/* Größen (oben+unten) – wirken auf Element + inneren Wrapper */
.elementor .elementor-element.abstand-xs,
.elementor .elementor-element.abstand-xs > .e-con-inner,
.elementor .elementor-element.abstand-xs > .elementor-container{ padding-top:1rem !important;  padding-bottom:1rem !important; }

.elementor .elementor-element.abstand-sm,
.elementor .elementor-element.abstand-sm > .e-con-inner,
.elementor .elementor-element.abstand-sm > .elementor-container{ padding-top:2rem !important;  padding-bottom:2rem !important; }

.elementor .elementor-element.abstand-md,
.elementor .elementor-element.abstand-md > .e-con-inner,
.elementor .elementor-element.abstand-md > .elementor-container{ padding-top:3rem !important;  padding-bottom:3rem !important; }

.elementor .elementor-element.abstand-lg,
.elementor .elementor-element.abstand-lg > .e-con-inner,
.elementor .elementor-element.abstand-lg > .elementor-container{ padding-top:4rem !important;  padding-bottom:4rem !important; }

.elementor .elementor-element.abstand-xl,
.elementor .elementor-element.abstand-xl > .e-con-inner,
.elementor .elementor-element.abstand-xl > .elementor-container{ padding-top:6rem !important;  padding-bottom:6rem !important; }

.elementor .elementor-element.abstand-xxl,
.elementor .elementor-element.abstand-xxl > .e-con-inner,
.elementor .elementor-element.abstand-xxl > .elementor-container{ padding-top:8rem !important;  padding-bottom:8rem !important; }

.elementor .elementor-element.abstand-xxxl,
.elementor .elementor-element.abstand-xxxl > .e-con-inner,
.elementor .elementor-element.abstand-xxxl > .elementor-container{ padding-top:10rem !important; padding-bottom:10rem !important; }

/* Nur oben */
.elementor .elementor-element.abstand-oben-0,
.elementor .elementor-element.abstand-oben-0 > .e-con-inner,
.elementor .elementor-element.abstand-oben-0 > .elementor-container{ padding-top:0 !important; }

.elementor .elementor-element.abstand-oben-xs,
.elementor .elementor-element.abstand-oben-xs > .e-con-inner,
.elementor .elementor-element.abstand-oben-xs > .elementor-container{ padding-top:1rem !important; }

.elementor .elementor-element.abstand-oben-sm,
.elementor .elementor-element.abstand-oben-sm > .e-con-inner,
.elementor .elementor-element.abstand-oben-sm > .elementor-container{ padding-top:2rem !important; }

.elementor .elementor-element.abstand-oben-md,
.elementor .elementor-element.abstand-oben-md > .e-con-inner,
.elementor .elementor-element.abstand-oben-md > .elementor-container{ padding-top:3rem !important; }

.elementor .elementor-element.abstand-oben-lg,
.elementor .elementor-element.abstand-oben-lg > .e-con-inner,
.elementor .elementor-element.abstand-oben-lg > .elementor-container{ padding-top:4rem !important; }

.elementor .elementor-element.abstand-oben-xl,
.elementor .elementor-element.abstand-oben-xl > .e-con-inner,
.elementor .elementor-element.abstand-oben-xl > .elementor-container{ padding-top:6rem !important; }

.elementor .elementor-element.abstand-oben-xxl,
.elementor .elementor-element.abstand-oben-xxl > .e-con-inner,
.elementor .elementor-element.abstand-oben-xxl > .elementor-container{ padding-top:8rem !important; }

.elementor .elementor-element.abstand-oben-xxxl,
.elementor .elementor-element.abstand-oben-xxxl > .e-con-inner,
.elementor .elementor-element.abstand-oben-xxxl > .elementor-container{ padding-top:10rem !important; }

/* Nur unten */
.elementor .elementor-element.abstand-unten-0,
.elementor .elementor-element.abstand-unten-0 > .e-con-inner,
.elementor .elementor-element.abstand-unten-0 > .elementor-container{ padding-bottom:0 !important; }

.elementor .elementor-element.abstand-unten-xs,
.elementor .elementor-element.abstand-unten-xs > .e-con-inner,
.elementor .elementor-element.abstand-unten-xs > .elementor-container{ padding-bottom:1rem !important; }

.elementor .elementor-element.abstand-unten-sm,
.elementor .elementor-element.abstand-unten-sm > .e-con-inner,
.elementor .elementor-element.abstand-unten-sm > .elementor-container{ padding-bottom:2rem !important; }

.elementor .elementor-element.abstand-unten-md,
.elementor .elementor-element.abstand-unten-md > .e-con-inner,
.elementor .elementor-element.abstand-unten-md > .elementor-container{ padding-bottom:3rem !important; }

.elementor .elementor-element.abstand-unten-lg,
.elementor .elementor-element.abstand-unten-lg > .e-con-inner,
.elementor .elementor-element.abstand-unten-lg > .elementor-container{ padding-bottom:4rem !important; }

.elementor .elementor-element.abstand-unten-xl,
.elementor .elementor-element.abstand-unten-xl > .e-con-inner,
.elementor .elementor-element.abstand-unten-xl > .elementor-container{ padding-bottom:6rem !important; }

.elementor .elementor-element.abstand-unten-xxl,
.elementor .elementor-element.abstand-unten-xxl > .e-con-inner,
.elementor .elementor-element.abstand-unten-xxl > .elementor-container{ padding-bottom:8rem !important; }

.elementor .elementor-element.abstand-unten-xxxl,
.elementor .elementor-element.abstand-unten-xxxl > .e-con-inner,
.elementor .elementor-element.abstand-unten-xxxl > .elementor-container{ padding-bottom:10rem !important; }

/* Optional: iOS Notch-Schutz für Vollbildbereiche */
.safe-area { 
  padding-top: max(0px, env(safe-area-inset-top));
  padding-bottom: max(0px, env(safe-area-inset-bottom));
}




/* ================================
   INHALTSBREITE BEGRENZEN (nur Content)
   Desktop: 75% (max 1280px)
   Tablet : 90% (max 1024px)
   Mobile : 97% (max 760px)
   Abschnitte/Container mit Klasse .full-site sind ausgenommen (volle Breite)
================================== */

/* Desktop */
.elementor:not(.elementor-location-header):not(.elementor-location-footer)
  > .elementor-top-section:not(.full-site) > .elementor-container,
.elementor:not(.elementor-location-header):not(.elementor-location-footer)
  > .elementor-section-wrap > .elementor-top-section:not(.full-site) > .elementor-container,
.elementor:not(.elementor-location-header):not(.elementor-location-footer)
  > .e-con:not(.full-site) > .e-con-inner,
.elementor:not(.elementor-location-header):not(.elementor-location-footer)
  > .elementor-section-wrap > .e-con:not(.full-site) > .e-con-inner {
  width: min(80%, 1280px);
  margin-inline: auto;
}

/* Tablet */
@media (max-width: 1024px){
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > .elementor-top-section:not(.full-site) > .elementor-container,
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > .elementor-section-wrap > .elementor-top-section:not(.full-site) > .elementor-container,
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > .e-con:not(.full-site) > .e-con-inner,
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > .elementor-section-wrap > .e-con:not(.full-site) > .e-con-inner {
    width: min(90%, 1024px);
  }
}

/* Mobile */
@media (max-width: 760px){
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > .elementor-top-section:not(.full-site) > .elementor-container,
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > .elementor-section-wrap > .elementor-top-section:not(.full-site) > .elementor-container,
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > .e-con:not(.full-site) > .e-con-inner,
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > .elementor-section-wrap > .e-con:not(.full-site) > .e-con-inner {
    width: min(97%, 760px);
  }
}

/* Hinweis:
   – Für volle Breite/„Full Bleed“ gib der Sektion/dem Container die Klasse: full-site
   – Kein padding hier gesetzt → kollidiert nicht mit deinen abstand-Klassen
*/






/*EINSTELLUNGEN FÜR FILEBIRD GALLERIE*/


/* Basis: Items standardmäßig ausblenden, im expanded alle anzeigen */
[class*="fbg-limit-"] .filebird-gallery-item { display: none !important; }
[class*="fbg-limit-"].is-expanded .filebird-gallery-item { display: block !important; }

/* Button-Container: Button steht als direktes Geschwisterelement nach der Galerie */
[class*="fbg-limit-"] + .fbg-toggle-wrap { text-align: center; }

/* Elementor-Button-Optik, aber halb so groß */
.fbg-toggle.elementor-button {
  line-height: 1;
  display: inline-block;
}
.fbg-toggle.elementor-button.fbg-size-50 {
  --fbg-scale: .5;
  font-size: calc(1em * var(--fbg-scale));
  padding: calc(.75em * var(--fbg-scale)) calc(1.5em * var(--fbg-scale));
  border-radius: calc(var(--e-button-border-radius, .5rem) * var(--fbg-scale));
}
.fbg-toggle.elementor-button:focus {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}


/* ===== Sichtbare Items pro Limit + Auto-Hide Button (per :has) =====
   Wir zählen nur .filebird-gallery-item-DIVs via :nth-of-type,
   damit evtl. fremde <br>/<b>-Warnungen nicht mitgezählt werden. */

/* 1 */
.fbg-limit-1 .filebird-gallery-item:nth-of-type(-n+1){display:block!important;}
.fbg-limit-1:not(:has(.filebird-gallery-item:nth-of-type(2))) + .fbg-toggle-wrap{display:none!important;}
/* 2 */
.fbg-limit-2 .filebird-gallery-item:nth-of-type(-n+2){display:block!important;}
.fbg-limit-2:not(:has(.filebird-gallery-item:nth-of-type(3))) + .fbg-toggle-wrap{display:none!important;}
/* 3 */
.fbg-limit-3 .filebird-gallery-item:nth-of-type(-n+3){display:block!important;}
.fbg-limit-3:not(:has(.filebird-gallery-item:nth-of-type(4))) + .fbg-toggle-wrap{display:none!important;}
/* 4 */
.fbg-limit-4 .filebird-gallery-item:nth-of-type(-n+4){display:block!important;}
.fbg-limit-4:not(:has(.filebird-gallery-item:nth-of-type(5))) + .fbg-toggle-wrap{display:none!important;}
/* 5 */
.fbg-limit-5 .filebird-gallery-item:nth-of-type(-n+5){display:block!important;}
.fbg-limit-5:not(:has(.filebird-gallery-item:nth-of-type(6))) + .fbg-toggle-wrap{display:none!important;}
/* 6 */
.fbg-limit-6 .filebird-gallery-item:nth-of-type(-n+6){display:block!important;}
.fbg-limit-6:not(:has(.filebird-gallery-item:nth-of-type(7))) + .fbg-toggle-wrap{display:none!important;}
/* 7 */
.fbg-limit-7 .filebird-gallery-item:nth-of-type(-n+7){display:block!important;}
.fbg-limit-7:not(:has(.filebird-gallery-item:nth-of-type(8))) + .fbg-toggle-wrap{display:none!important;}
/* 8 */
.fbg-limit-8 .filebird-gallery-item:nth-of-type(-n+8){display:block!important;}
.fbg-limit-8:not(:has(.filebird-gallery-item:nth-of-type(9))) + .fbg-toggle-wrap{display:none!important;}
/* 9 */
.fbg-limit-9 .filebird-gallery-item:nth-of-type(-n+9){display:block!important;}
.fbg-limit-9:not(:has(.filebird-gallery-item:nth-of-type(10))) + .fbg-toggle-wrap{display:none!important;}
/* 10 */
.fbg-limit-10 .filebird-gallery-item:nth-of-type(-n+10){display:block!important;}
.fbg-limit-10:not(:has(.filebird-gallery-item:nth-of-type(11))) + .fbg-toggle-wrap{display:none!important;}
/* 11 */
.fbg-limit-11 .filebird-gallery-item:nth-of-type(-n+11){display:block!important;}
.fbg-limit-11:not(:has(.filebird-gallery-item:nth-of-type(12))) + .fbg-toggle-wrap{display:none!important;}
/* 12 */
.fbg-limit-12 .filebird-gallery-item:nth-of-type(-n+12){display:block!important;}
.fbg-limit-12:not(:has(.filebird-gallery-item:nth-of-type(13))) + .fbg-toggle-wrap{display:none!important;}
/* 13 */
.fbg-limit-13 .filebird-gallery-item:nth-of-type(-n+13){display:block!important;}
.fbg-limit-13:not(:has(.filebird-gallery-item:nth-of-type(14))) + .fbg-toggle-wrap{display:none!important;}
/* 14 */
.fbg-limit-14 .filebird-gallery-item:nth-of-type(-n+14){display:block!important;}
.fbg-limit-14:not(:has(.filebird-gallery-item:nth-of-type(15))) + .fbg-toggle-wrap{display:none!important;}
/* 15 */
.fbg-limit-15 .filebird-gallery-item:nth-of-type(-n+15){display:block!important;}
.fbg-limit-15:not(:has(.filebird-gallery-item:nth-of-type(16))) + .fbg-toggle-wrap{display:none!important;}
/* 16 */
.fbg-limit-16 .filebird-gallery-item:nth-of-type(-n+16){display:block!important;}
.fbg-limit-16:not(:has(.filebird-gallery-item:nth-of-type(17))) + .fbg-toggle-wrap{display:none!important;}
/* 17 */
.fbg-limit-17 .filebird-gallery-item:nth-of-type(-n+17){display:block!important;}
.fbg-limit-17:not(:has(.filebird-gallery-item:nth-of-type(18))) + .fbg-toggle-wrap{display:none!important;}
/* 18 */
.fbg-limit-18 .filebird-gallery-item:nth-of-type(-n+18){display:block!important;}
.fbg-limit-18:not(:has(.filebird-gallery-item:nth-of-type(19))) + .fbg-toggle-wrap{display:none!important;}
/* 19 */
.fbg-limit-19 .filebird-gallery-item:nth-of-type(-n+19){display:block!important;}
.fbg-limit-19:not(:has(.filebird-gallery-item:nth-of-type(20))) + .fbg-toggle-wrap{display:none!important;}
/* 20 */
.fbg-limit-20 .filebird-gallery-item:nth-of-type(-n+20){display:block!important;}
.fbg-limit-20:not(:has(.filebird-gallery-item:nth-of-type(21))) + .fbg-toggle-wrap{display:none!important;}


/* Basis: alle Bilder füllen ihre Kachel und werden sauber beschnitten */
.filebird-gallery .filebird-gallery-item { overflow: hidden; }
.filebird-gallery .filebird-gallery-item a,
.filebird-gallery .filebird-gallery-item img { display: block; width: 100%; height: 100%; }
.filebird-gallery .filebird-gallery-item img { object-fit: cover; }

/* Ratio-Profile – wähle eins pro Galerie über zusätzliche Klasse am Wrapper */
.fbg-aspect-1x1 .filebird-gallery-item  { aspect-ratio: 1 / 1; }
.fbg-aspect-4x3 .filebird-gallery-item  { aspect-ratio: 4 / 3; }
.fbg-aspect-3x2 .filebird-gallery-item  { aspect-ratio: 3 / 2; }
.fbg-aspect-16x9 .filebird-gallery-item { aspect-ratio: 16 / 9; }



/*FILEBIRD GALLERY EINSTELLUNGEN
- Anzahlt der Ang. Bilder
- Button "mehr Einblenen"*/
/* Basis: Items standardmäßig ausblenden, im expanded alle anzeigen */
[class*="fbg-limit-"] .filebird-gallery-item { display: none !important; }
[class*="fbg-limit-"].is-expanded .filebird-gallery-item { display: block !important; }

/* Button-Container: Button steht als direktes Geschwisterelement nach der Galerie */
[class*="fbg-limit-"] + .fbg-toggle-wrap { text-align: center; }

/* Elementor-Button-Optik, aber halb so groß */
.fbg-toggle.elementor-button {
  line-height: 1;
  display: inline-block;
}
.fbg-toggle.elementor-button.fbg-size-50 {
  --fbg-scale: .5;
  font-size: calc(1em * var(--fbg-scale));
  padding: calc(.75em * var(--fbg-scale)) calc(1.5em * var(--fbg-scale));
  border-radius: calc(var(--e-button-border-radius, .5rem) * var(--fbg-scale));
}
.fbg-toggle.elementor-button:focus {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}


/* ===== Sichtbare Items pro Limit + Auto-Hide Button (per :has) =====
   Wir zählen nur .filebird-gallery-item-DIVs via :nth-of-type,
   damit evtl. fremde <br>/<b>-Warnungen nicht mitgezählt werden. */

/* 1 */
.fbg-limit-1 .filebird-gallery-item:nth-of-type(-n+1){display:block!important;}
.fbg-limit-1:not(:has(.filebird-gallery-item:nth-of-type(2))) + .fbg-toggle-wrap{display:none!important;}
/* 2 */
.fbg-limit-2 .filebird-gallery-item:nth-of-type(-n+2){display:block!important;}
.fbg-limit-2:not(:has(.filebird-gallery-item:nth-of-type(3))) + .fbg-toggle-wrap{display:none!important;}
/* 3 */
.fbg-limit-3 .filebird-gallery-item:nth-of-type(-n+3){display:block!important;}
.fbg-limit-3:not(:has(.filebird-gallery-item:nth-of-type(4))) + .fbg-toggle-wrap{display:none!important;}
/* 4 */
.fbg-limit-4 .filebird-gallery-item:nth-of-type(-n+4){display:block!important;}
.fbg-limit-4:not(:has(.filebird-gallery-item:nth-of-type(5))) + .fbg-toggle-wrap{display:none!important;}
/* 5 */
.fbg-limit-5 .filebird-gallery-item:nth-of-type(-n+5){display:block!important;}
.fbg-limit-5:not(:has(.filebird-gallery-item:nth-of-type(6))) + .fbg-toggle-wrap{display:none!important;}
/* 6 */
.fbg-limit-6 .filebird-gallery-item:nth-of-type(-n+6){display:block!important;}
.fbg-limit-6:not(:has(.filebird-gallery-item:nth-of-type(7))) + .fbg-toggle-wrap{display:none!important;}
/* 7 */
.fbg-limit-7 .filebird-gallery-item:nth-of-type(-n+7){display:block!important;}
.fbg-limit-7:not(:has(.filebird-gallery-item:nth-of-type(8))) + .fbg-toggle-wrap{display:none!important;}
/* 8 */
.fbg-limit-8 .filebird-gallery-item:nth-of-type(-n+8){display:block!important;}
.fbg-limit-8:not(:has(.filebird-gallery-item:nth-of-type(9))) + .fbg-toggle-wrap{display:none!important;}
/* 9 */
.fbg-limit-9 .filebird-gallery-item:nth-of-type(-n+9){display:block!important;}
.fbg-limit-9:not(:has(.filebird-gallery-item:nth-of-type(10))) + .fbg-toggle-wrap{display:none!important;}
/* 10 */
.fbg-limit-10 .filebird-gallery-item:nth-of-type(-n+10){display:block!important;}
.fbg-limit-10:not(:has(.filebird-gallery-item:nth-of-type(11))) + .fbg-toggle-wrap{display:none!important;}
/* 11 */
.fbg-limit-11 .filebird-gallery-item:nth-of-type(-n+11){display:block!important;}
.fbg-limit-11:not(:has(.filebird-gallery-item:nth-of-type(12))) + .fbg-toggle-wrap{display:none!important;}
/* 12 */
.fbg-limit-12 .filebird-gallery-item:nth-of-type(-n+12){display:block!important;}
.fbg-limit-12:not(:has(.filebird-gallery-item:nth-of-type(13))) + .fbg-toggle-wrap{display:none!important;}
/* 13 */
.fbg-limit-13 .filebird-gallery-item:nth-of-type(-n+13){display:block!important;}
.fbg-limit-13:not(:has(.filebird-gallery-item:nth-of-type(14))) + .fbg-toggle-wrap{display:none!important;}
/* 14 */
.fbg-limit-14 .filebird-gallery-item:nth-of-type(-n+14){display:block!important;}
.fbg-limit-14:not(:has(.filebird-gallery-item:nth-of-type(15))) + .fbg-toggle-wrap{display:none!important;}
/* 15 */
.fbg-limit-15 .filebird-gallery-item:nth-of-type(-n+15){display:block!important;}
.fbg-limit-15:not(:has(.filebird-gallery-item:nth-of-type(16))) + .fbg-toggle-wrap{display:none!important;}
/* 16 */
.fbg-limit-16 .filebird-gallery-item:nth-of-type(-n+16){display:block!important;}
.fbg-limit-16:not(:has(.filebird-gallery-item:nth-of-type(17))) + .fbg-toggle-wrap{display:none!important;}
/* 17 */
.fbg-limit-17 .filebird-gallery-item:nth-of-type(-n+17){display:block!important;}
.fbg-limit-17:not(:has(.filebird-gallery-item:nth-of-type(18))) + .fbg-toggle-wrap{display:none!important;}
/* 18 */
.fbg-limit-18 .filebird-gallery-item:nth-of-type(-n+18){display:block!important;}
.fbg-limit-18:not(:has(.filebird-gallery-item:nth-of-type(19))) + .fbg-toggle-wrap{display:none!important;}
/* 19 */
.fbg-limit-19 .filebird-gallery-item:nth-of-type(-n+19){display:block!important;}
.fbg-limit-19:not(:has(.filebird-gallery-item:nth-of-type(20))) + .fbg-toggle-wrap{display:none!important;}
/* 20 */
.fbg-limit-20 .filebird-gallery-item:nth-of-type(-n+20){display:block!important;}
.fbg-limit-20:not(:has(.filebird-gallery-item:nth-of-type(21))) + .fbg-toggle-wrap{display:none!important;}



