/* ==========================================================================
   1. FONTS
   ========================================================================== */

/* ── Panton Regular ── */
@font-face { font-display: swap; font-family: 'Panton'; font-style: normal; font-weight: 100; src: url('../Fonts/Panton/woff2/regular/normal/Panton-100.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: normal; font-weight: 200; src: url('../Fonts/Panton/woff2/regular/normal/Panton-200.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: normal; font-weight: 300; src: url('../Fonts/Panton/woff2/regular/normal/Panton-300.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: normal; font-weight: 400; src: url('../Fonts/Panton/woff2/regular/normal/Panton-400.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: normal; font-weight: 500; src: url('../Fonts/Panton/woff2/regular/normal/Panton-500.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: normal; font-weight: 600; src: url('../Fonts/Panton/woff2/regular/normal/Panton-600.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: normal; font-weight: 700; src: url('../Fonts/Panton/woff2/regular/normal/Panton-700.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: normal; font-weight: 800; src: url('../Fonts/Panton/woff2/regular/normal/Panton-800.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: normal; font-weight: 900; src: url('../Fonts/Panton/woff2/regular/normal/Panton-900.woff2') format('woff2'); }

/* ── Panton Italic ── */
@font-face { font-display: swap; font-family: 'Panton'; font-style: italic; font-weight: 100; src: url('../Fonts/Panton/woff2/regular/italic/Panton-ThinItalic-100.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: italic; font-weight: 200; src: url('../Fonts/Panton/woff2/regular/italic/Panton-ExtraLightItalic-200.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: italic; font-weight: 300; src: url('../Fonts/Panton/woff2/regular/italic/Panton-LightItalic-300.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: italic; font-weight: 400; src: url('../Fonts/Panton/woff2/regular/italic/Panton-RegularItalic-400.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: italic; font-weight: 500; src: url('../Fonts/Panton/woff2/regular/italic/Panton-SemiBoldItalic-500.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: italic; font-weight: 600; src: url('../Fonts/Panton/woff2/regular/italic/Panton-BoldItalic-600.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: italic; font-weight: 700; src: url('../Fonts/Panton/woff2/regular/italic/Panton-ExtraBoldItalic-700.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: italic; font-weight: 800; src: url('../Fonts/Panton/woff2/regular/italic/Panton-HeavyItalic-800.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton'; font-style: italic; font-weight: 900; src: url('../Fonts/Panton/woff2/regular/italic/Panton-BlackItalic-900.woff2') format('woff2'); }

/* ── Panton Narrow Regular ── */
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: normal; font-weight: 100; src: url('../Fonts/Panton/woff2/narrow/normal/PantonNarrow-Thin-100.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: normal; font-weight: 200; src: url('../Fonts/Panton/woff2/narrow/normal/PantonNarrow-ExtraLight-200.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: normal; font-weight: 300; src: url('../Fonts/Panton/woff2/narrow/normal/PantonNarrow-Light-300.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: normal; font-weight: 400; src: url('../Fonts/Panton/woff2/narrow/normal/PantonNarrow-Regular-400.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: normal; font-weight: 500; src: url('../Fonts/Panton/woff2/narrow/normal/PantonNarrow-SemiBold-500.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: normal; font-weight: 600; src: url('../Fonts/Panton/woff2/narrow/normal/PantonNarrow-Bold-600.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: normal; font-weight: 700; src: url('../Fonts/Panton/woff2/narrow/normal/PantonNarrow-ExtraBold-700.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: normal; font-weight: 800; src: url('../Fonts/Panton/woff2/narrow/normal/PantonNarrow-Heavy-800.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: normal; font-weight: 900; src: url('../Fonts/Panton/woff2/narrow/normal/PantonNarrow-Black-900.woff2') format('woff2'); }

/* ── Panton Narrow Italic ── */
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: italic; font-weight: 100; src: url('../Fonts/Panton/woff2/narrow/italic/PantonNarrow-ThinItalic-100.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: italic; font-weight: 200; src: url('../Fonts/Panton/woff2/narrow/italic/PantonNarrow-ExtraLightItalic-200.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: italic; font-weight: 300; src: url('../Fonts/Panton/woff2/narrow/italic/PantonNarrow-LightItalic-300.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: italic; font-weight: 400; src: url('../Fonts/Panton/woff2/narrow/italic/PantonNarrow-RegularItalic-400.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: italic; font-weight: 500; src: url('../Fonts/Panton/woff2/narrow/italic/PantonNarrow-SemiBoldItalic-500.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: italic; font-weight: 600; src: url('../Fonts/Panton/woff2/narrow/italic/PantonNarrow-BoldItalic-600.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: italic; font-weight: 700; src: url('../Fonts/Panton/woff2/narrow/italic/PantonNarrow-ExtraBoldItalic-700.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: italic; font-weight: 800; src: url('../Fonts/Panton/woff2/narrow/italic/PantonNarrow-HeavyItalic-800.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Panton Narrow'; font-style: italic; font-weight: 900; src: url('../Fonts/Panton/woff2/narrow/italic/PantonNarrow-BlackItalic-900.woff2') format('woff2'); }



/* ==========================================================================
   2. DESIGN TOKENS (Custom Properties)
   ========================================================================== */

:root {
  /* ── Brand Colors ── */
  --bs-primary:     #004591;
  --bs-primary-50:  #E8EDF4;
  --bs-primary-100: #D0D8E8;
  --bs-primary-200: #B5C2DA;
  --bs-primary-300: #9BB1D2;
  --bs-primary-400: #7FA0CC;
  --bs-primary-500: #2B78BE;
  --bs-primary-600: #1D65A6;
  --bs-primary-700: #1A5590;
  --bs-primary-800: #15447A;
  --bs-primary-900: #003977;

  --bs-secondary:     #2878cc;
  --bs-secondary-50:  #E8EDF4;
  --bs-secondary-100: #D0D8E8;
  --bs-secondary-200: #B5C2DA;
  --bs-secondary-300: #9BB1D2;
  --bs-secondary-400: #7FA0CC;
  --bs-secondary-500: #2B78BE;
  --bs-secondary-600: #1D65A6;
  --bs-secondary-700: #1A5590;
  --bs-secondary-800: #15447A;
  --bs-secondary-900: #003977;

  /* ── Accent Colors (Stiftungszwecke) ── */
  --bs-ws-green:  #6FDAC2; 
  --bs-ws-orange: #FFA686;
  --bs-ws-purple: #E0A3E0;
  --bs-ws-blue:   #95B2EF;
  --bs-ws-red:    #EB9494;

  --bs-ws-green-rgb:  122, 163, 154;
  --bs-ws-orange-rgb: 255, 175, 141;
  --bs-ws-purple-rgb: 184, 141, 184;
  --bs-ws-blue-rgb:   128, 144, 179;
  --bs-ws-red-rgb:    185, 95, 94;

  --bs-ws-green-dark-rgb:  115, 154, 146;
  --bs-ws-orange-dark-rgb: 193, 132, 106;
  --bs-ws-purple-dark-rgb: 174, 133, 174;
  --bs-ws-blue-dark-rgb:   128, 144, 179;
  --bs-ws-red-dark-rgb:    185, 95, 94;

  /* ── Semantic Colors (RGB) ── */
  --bs-primary-rgb:   0, 69, 145;
  --bs-secondary-rgb: 40, 120, 204;
  --bs-success-rgb:   25, 135, 84;
  --bs-info-rgb:      13, 202, 240;
  --bs-warning-rgb:   255, 193, 7;
  --bs-danger-rgb:    220, 53, 69;
  --bs-light-rgb:     248, 249, 250;
  --bs-dark-rgb:      1, 14, 29;

  --bs-light: #f8f8f8;
  --bs-dark:  #212529;

  /* ── Gray Scale ── */
  --bs-gray-50:  #f8fafc;
  --bs-gray-100: #f1f5f9;
  --bs-gray-200: #e2e8f0;
  --bs-gray-250: #d9d9d9;
  --bs-gray-300: #cbd5e0;
  --bs-gray-400: #94a3b7;
  --bs-gray-500: #64748a;
  --bs-gray-600: #475568;
  --bs-gray-700: #334154;
  --bs-gray-800: #1e293a;
  --bs-gray-900: #010e1d;

  /* ── Typography ── */
  --bs-font-sans-serif: 'Panton', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --bs-body-font-family: var(--bs-font-sans-serif);
  --bs-body-font-size:   1.1rem;
  --bs-body-font-weight: 300;
  --bs-body-line-height: 1.5;
  --bs-heading-color:    inherit;

  /* ── Body ── */
  --bs-body-color:     #010e1d;
  --bs-body-color-rgb: 1, 14, 29;
  --bs-body-bg:        #e3e3e1;
  --bs-body-bg-rgb:    227, 227, 225;

  /* ── Emphasis & Secondary/Tertiary ── */
  --bs-emphasis-color:     hsl(0, 0%, 0%);
  --bs-emphasis-color-rgb: 0, 0, 0;

  --bs-secondary-color:     rgba(1, 14, 29, 0.75);
  --bs-secondary-color-rgb: 1, 14, 29;
  --bs-secondary-bg:        #e9ecef;
  --bs-secondary-bg-rgb:    233, 236, 239;

  --bs-tertiary-color:     rgba(1, 14, 29, 0.5);
  --bs-tertiary-color-rgb: 1, 14, 29;
  --bs-tertiary-bg:        #f8f9fa;
  --bs-tertiary-bg-rgb:    248, 249, 250;

  /* ── Links ── */
  --bs-link-color:           #0d6efd;
  --bs-link-color-rgb:       13, 110, 253;
  --bs-link-decoration:      underline;
  --bs-link-hover-color:     #0a58ca;
  --bs-link-hover-color-rgb: 10, 88, 202;

  /* ── Code & Highlights ── */
  --bs-code-color:      #d63384;
  --bs-highlight-color: #010e1d;
  --bs-highlight-bg:    #fff3cd;

  /* ── Borders ── */
  --bs-border-width:             1px;
  --bs-border-style:             solid;
  --bs-border-color:             #dee2e6;
  --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
  --bs-border-primary-500:       #418FDE;

  --bs-border-radius:      0.375rem;
  --bs-border-radius-sm:   0.25rem;
  --bs-border-radius-lg:   0.5rem;
  --bs-border-radius-xl:   1rem;
  --bs-border-radius-xxl:  2rem;
  --bs-border-radius-2xl:  var(--bs-border-radius-xxl);
  --bs-border-radius-pill: 50rem;

  /* ── Shadows ── */
  --bs-box-shadow:       0 0.5rem 1rem var(--bs-secondary);
  --bs-box-shadow-sm:    0 0.125rem 0.25rem var(--bs-secondary);
  --bs-box-shadow-lg:    0 1rem 3rem var(--bs-secondary);
  --bs-box-shadow-inset: inset 0 1px 2px var(--bs-secondary);

  /* ── Opacity Scale ── */
  --opacity-0:   0;
  --opacity-20:  0.2;
  --opacity-30:  0.3;
  --opacity-40:  0.4;
  --opacity-50:  0.5;
  --opacity-60:  0.6;
  --opacity-70:  0.7;
  --opacity-75:  0.75;
  --opacity-80:  0.8;
  --opacity-90:  0.9;
  --opacity-100: 1;

}


/* ==========================================================================
   3. BASE LAYOUT
   ========================================================================== */

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

body > header,
body > main,
body > footer {
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
}

body > header {
  color: var(--bs-primary);
  flex-shrink: 0;
}

body > main {
  flex: 1;
  display: flex;
  flex-direction: column;
  background-color: var(--bs-white);
}

body > main > section {
  flex: 1;
  justify-content: start;
}

body > main > .header {
  flex-shrink: 0 !important;
  flex: none !important;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

/* Content section overlaps the header for parallax depth */
body > main > .header + section {
  position: relative;
  z-index: 2;
  background-color: var(--bs-white);
}

h1, h2, h3, h4, h5, h6 {
  color: var(--bs-primary-800);
}

/* ==========================================================================
   4. UTILITY CLASSES
   ========================================================================== */

.text-primary-50 {
  color: var(--bs-primary-50) !important;
}

.border-primary-500 {
  border-color: var(--bs-border-primary-500) !important;
}

.invert {
  filter: invert(1);
}


/* ==========================================================================
   5. BUTTONS
   ========================================================================== */

.btn {
  border-radius: 0;
  font-weight: 600;
  padding: 0.9375rem 1.625rem;
}

.btn-primary:hover,
.btn-primary:focus,
.page-link:hover,
.page-link:focus {
  background-color: var(--bs-secondary);
  border-color: var(--bs-secondary);
  color: var(--bs-white);
}
.btn {
    border-radius: 0;
    font-weight: 600;
    padding: 0.9375rem 1.625rem;
}

.btn-secondary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-secondary);
    --bs-btn-border-color: var(--bs-secondary);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
    --bs-btn-active-color:  var(--bs-primary);
    --bs-btn-active-bg: var(--bs-primary);
    --bs-btn-active-border-color: #var(--bs-primary);
    --bs-btn-active-shadow: none;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #6c757d;
    --bs-btn-disabled-border-color: #6c757d;
    display: inline-flex;
    padding: 0.6375rem 1.625rem;
}
.btn-secondary::before {
    content: "";
    display: block;
    background-image: url(../../../../../../fileadmin/logo/arrow-right.png);
    width: 26px;
    height: 19px;
    margin-left:0;
    margin-right: 16px;
    transition: margin 0.3s ease;
}
.btn-secondary:hover::before
{    
    margin-left: 8px;
    margin-right: 8px;
}
/* ==========================================================================
   6. NAVBAR
   ========================================================================== */

/* ── Header wrapper ── */
.site-header {
  display: flex;
  justify-content: center;
  left: 0;
  position: sticky;
  top: 36px;
  transition: transform 0.3s ease-out;
  width: 100%;
  z-index: 5000;
  height: 100px;
  margin-bottom: -100px;
}

/* Backdrop overlay on hover */
.site-header::before {
  content: "";
  position: absolute;
  outline-width: -10000px;
  outline-style: solid;
  z-index: -1;
  transition: outline-width 0.05s ease-in;
}

.site-header:hover::before {
  outline-width: 10000px;
}

/* ── Navbar bar ── */
.site-header .navbar {
  display: flex;
  flex-direction: row;
  margin: 0 auto;
  max-width: calc(100% - 60px);
  width: 100%;
  height: 100px;
  padding-left: 28px;
  padding-right: 28px;
  position: relative;
  filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.2));
}

/* White clipped background (z-index 5 – behind links, above dropdown) */
.site-header .navbar::before {
  clip-path: polygon(
    25px 0%, calc(100% - 25px) 0%,
    100% 25px, 100% calc(100% - 25px),
    calc(100% - 25px) 100%, 25px 100%,
    0% calc(100% - 25px), 0% 25px
  );
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100px;
  background-color: var(--bs-white);
  z-index: 5;
}

/* ── Navbar responsive widths ── */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .site-header .navbar {
    padding-left: 20px;
    padding-right: 20px;
  }

  .navbar-brand-container {
    min-width: 140px;
    max-width: 140px;
  }

  #navbar-content .navbar-nav {
    gap: 1.25rem !important;
  }

  .site-header .nav-link.dropdown-toggle,
  .site-header .nav-link {
    font-size: 1rem;
    line-height: 1.375rem;
  }

  .site-header .btn.contact-button {
    width: 110px;
    height: 40px;
    font-size: 1rem;
  }

  .site-header .btn.contact-button i {
    font-size: 14px;
    height: 14px;
  }
}

@media (min-width: 1200px) {
  .site-header .navbar { max-width: 1136px; }
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
  .navbar-brand-container {
    min-width: 150px;
    max-width: 150px;
  }

  #navbar-content .navbar-nav {
    gap: 1.5rem !important;
  }

  .site-header .nav-link.dropdown-toggle,
  .site-header .nav-link {
    font-size: 1.1rem;
    line-height: 1.5rem;
  }

  .site-header .btn.contact-button {
    width: 120px;
    height: 42px;
    font-size: 1.1rem;
  }
}

@media (min-width: 1600px) {
  .site-header .navbar { max-width: 1496px; }
}

/* ── Brand ── */
.navbar-brand-container {
  position: relative;
  z-index: 10;
  min-width: 180px;
  max-width: 180px;
}

/* ── Collapse / content area ── */
#navbar-content {
  display: flex;
  flex-direction: row;
  align-self: center;
  flex-wrap: nowrap;
  align-content: center;
  justify-content: center;
  align-items: center;
}

#navbar-content .navbar-nav {
  gap: 2.25rem;
}

/* ── Nav links (z-index 10 – above white background) ── */
.site-header .nav-link.dropdown-toggle,
.site-header .nav-link {
  color: var(--bs-secondary-600);
  font-size: 1.25rem;
  line-height: 1.625rem;
  font-weight: 500;
  text-decoration: none;
  z-index: 10;
  display: grid;
  align-items: center;
  height: 100px;
}

.site-header .nav-link.dropdown-toggle:hover,
.site-header .nav-link:hover {
  color: var(--bs-primary);
}

/* ── Nav items ── */
.site-header .nav-item {
  position: static;
}

/* Active indicator (underline on hover) */
.site-header .navbar-nav > .nav-item > a::after {
  position: absolute;
  content: "";
  bottom: 0;
  left: 0;
  width: 100%;
  display: none;
  border: none;
  border-bottom: 5px solid var(--bs-primary);
}

.site-header .nav-item:hover a::after {
  display: block;
}

/* Hide Bootstrap caret */
.site-header .nav-link.dropdown-toggle::after {
  display: none;
}

/* ── Contact button ── */
.site-header .btn.contact-button {
  position: relative;
  z-index: 10;
  width: 132px;
  height: 45px;
  background-color: var(--bs-secondary-600);
  color: var(--bs-secondary-50);
  font-size: 1.25rem;
  line-height: 1.625rem;
  font-weight: 500;
  padding: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-content: center;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

.site-header .btn.contact-button i {
  position: relative;
  z-index: 10;
  color: var(--bs-primary-50);
  height: 16px;
  font-size: 16px;
}


/* ==========================================================================
   7. DROPDOWN MENU
   ========================================================================== */

/* Dropdown panel slides behind the navbar (z-index 2) */
/* All dropdown wrappers stay in-flow (no stacking context) */
.dropdown,
.dropdown-center,
.dropend,
.dropstart,
.dropup,
.dropup-center {
  position: static;
}

/* Desktop-only: hover dropdown + focus-within + submenu behaviour */
@media (min-width: 992px) {
  /* Dropdown panel slides behind the navbar (z-index 2) */
  
  .navbar .nav-item.dropdown > .dropdown-menu
  {
    overflow: hidden;
    height: 0;
    visibility: hidden;
  }
  .navbar .nav-item.dropdown:hover > .dropdown-menu {
    
    overflow: auto;
    visibility: visible;
    height: auto;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding-top: 100px;
    padding-bottom: 25px;
    margin-top: 25px !important;
    border: none;
    background: linear-gradient(
      to bottom,
      rgb(var(--bs-primary-rgb)) 0%,
      rgb(var(--bs-secondary-rgb)) 100%
    ) !important;
    border-radius: 0;
    z-index: 2;
    clip-path: polygon(
      25px 0%, calc(100% - 25px) 0%,
      100% 25px, 100% calc(100% - 25px),
      calc(100% - 25px) 100%, 25px 100%,
      0% calc(100% - 25px), 0% 25px
    );
  }

  .navbar .nav-item.dropdown:hover > .dropdown-menu,
  .navbar .nav-item.dropdown:focus-within > .dropdown-menu,
  .navbar .nav-item.dropdown.desktop-open > .dropdown-menu {
    display: block;
  }

  .navbar .dropdown-submenu {
    position: relative;
  }

  .navbar .dropend:hover > .dropdown-submenu,
  .navbar .dropend:focus-within > .dropdown-submenu,
  .navbar .dropend.desktop-open > .dropdown-submenu {
    display: block;
  }

  .navbar .nav-item.dropdown > .nav-link {
    pointer-events: auto;
    cursor: pointer;
  }
}

.dropdown-item {
  color: var(--bs-white);
  font-size: 1rem;
  line-height: 1.625rem;
  font-weight: 500;
  text-decoration: none;
  padding-left: 25px;
}

/* ── Mega-menu three-column layout: image | links | abstract ── */
.dropdown-mega-wrapper {
  list-style: none;
  padding: 0;
}

.dropdown-mega-layout {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 48px;
  padding: 0 25px;
  max-width: 1500px;
  margin: 0 auto;
}

/* Column 1: image */
.dropdown-mega__preview {
  flex: 0 0 240px;
  width: 240px;
}

.dropdown-mega__img {
  display: block;
}

.dropdown-mega__img img {
  width: 240px;
  height: 332px; /* original 550×760 → aspect ratio 55:76 */
  object-fit: cover;
  display: block;
  transition: opacity 0.25s ease;
}

.dropdown-mega__img img[src=""] {
  display: none;
}

/* Column 2: nav links */
.dropdown-mega__links {
  flex: 1;
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}

.dropdown-mega__links > li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.dropdown-mega__links > li:last-child {
  border-bottom: none;
}

/* Column 3: abstract text */
.dropdown-mega__abstract-panel {
  flex: 0 0 360px;
  width: 360px;
  display: flex;
  align-items: flex-start;
}

.dropdown-mega__abstract {
  color: var(--bs-white);
  font-size: 1.175rem;
  line-height: 1.6;
  margin: 0;
  min-height: 2.8em;
  transition: opacity 0.25s ease;
}

/* Mobile: beide Seitenpalten ausblenden, nur Links zeigen */
@media (max-width: 991.98px) {
  .dropdown-mega-layout {
    flex-direction: column;
    gap: 0;
    padding: 0;
  }

  .dropdown-mega__preview,
  .dropdown-mega__abstract-panel {
    display: none;
  }

  .dropdown-mega__links {
    width: 100%;
  }
}


/* ==========================================================================
   8. FOOTER
   ========================================================================== */

body > footer {
  flex-shrink: 0;
  background-color: var(--bs-primary);
  color: var(--bs-white);
  padding-top: 10rem;
  padding-bottom: 2rem;
}

body > footer a {
  color: var(--bs-white);
  text-decoration: none;
}

.footer-content {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr));
  padding: 0;
  column-gap: 12.25rem;
  margin: 0 auto;
}
.footer-bottom {
  margin: 0 auto;
}

.footer-content .nav-footer {
  display: flex;
  flex-direction: row;
  gap: 7.125rem;
}

@media (max-width: 991.98px) {
  .footer-content .nav-footer {
    gap: 3rem;
    flex-wrap: wrap;
  }
}

@media (max-width: 575.98px) {
  .footer-content .nav-footer {
    flex-direction: column;
    gap: 2rem;
  }
}

.nav-footer-list {
  list-style: none;
  padding: 0;
  min-width: 18rem;
}

.nav-footer-group h3 {
  font-weight: 500;
  font-size: 1.625rem;
  line-height: 1.625rem;
  margin-bottom: 2rem;
  color: var(--bs-white);
}

.nav-footer-list li {
  margin-bottom: 1rem;
}

.nav-footer-list a {
  color: var(--bs-white);
  text-decoration: none;
  font-size: 1.25rem;
  line-height: 1.375rem;
  font-weight: 400;
}

/* ── Footer bottom bar ── */
#footer-bottom-menu {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#footer-bottom-menu .nav-link {
  color: var(--bs-white);
  text-decoration: none;
  font-size: 1.125rem;
  line-height: 1.25rem;
  font-weight: 400;
}


/* ==========================================================================
   9. HERO SLIDER
   ========================================================================== */

.container:has(.hero-slider) {
  padding: 0;
  width: 100%;
  max-width: 100% !important;
}

.hero-slider {
  position: relative;
  overflow: hidden;
}

.hero-slider__img {
  width: 100%;
  height: 800px;
  object-fit: cover;
  object-position: center;
  display: block;
}

.hero-slider__caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 2.35rem;
  text-align: right;
  max-width: 1500px !important;
  margin: 0 auto;
}
[class*="hero-slider__caption--bg-"] .hero_slider__image-element-fg {
  position: absolute;
  mix-blend-mode: multiply;
  z-index: 1;
  top:0;
  left:0;
  pointer-events: none;
  width: 513px;
  height: 513px;
  border-radius: 50%;
  transform: translate(-25px, -25px);
}
[class*="hero-slider__caption--bg-"]  .small1 {
  position: absolute;
  display: block;
  overflow: hidden;
  z-index: 1;
  top:20px;
  left:20px;
  pointer-events: none;
  width: 40px;
  height: 40px;
}
[class*="hero-slider__caption--bg-"] .small2 {
  position: absolute;
  display: block;
  overflow:hidden;
  z-index: 1;
  bottom:12px;
  left:12px;
  pointer-events: none;
  width: 69px;
  height: 69px;
}
[class*="hero-slider__caption--bg-"] .small1::before,
[class*="hero-slider__caption--bg-"] .small2::before {
  content: "";
  position: relative;
  display: block;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background-color: rgba(var(--bs-white-rgb), var(--opacity-75));
}

[class*="hero-slider__caption--bg-"] .small1::before
{
  width: 48px;
  height: 48px;
}
[class*="hero-slider__caption--bg-"] .small2::before
{
  width: 80px;
  height: 80px;
}
.hero-slider__caption--bg-0 .hero_slider__image-element-fg { /* Kinder und Jugendhilfe */
  background-color: rgba(var(--bs-ws-green-rgb), var(--opacity-100));
}

.hero-slider__caption--bg-1 .hero_slider__image-element-fg { /* Erziehung und Bildung */
  background-color: rgba(var(--bs-ws-orange-rgb), var(--opacity-100));
}

.hero-slider__caption--bg-2 .hero_slider__image-element-fg { /* Ehe und Familie */
  background-color: rgba(var(--bs-ws-purple-rgb), var(--opacity-100));
}

.hero-slider__caption--bg-3 .hero_slider__image-element-fg { /* Sportförderung */
  background-color: rgba(var(--bs-ws-blue-rgb), var(--opacity-100));
}

.hero-slider__caption--bg-4 .hero_slider__image-element-fg { /* Förderung der Tierzucht */
  background-color: rgba(var(--bs-ws-red-rgb), var(--opacity-100));
}

.hero-slider__caption--bg-0 .small2::before { /* Kinder und Jugendhilfe */
  background-color: rgba(var(--bs-ws-green-rgb), var(--opacity-75));
}

.hero-slider__caption--bg-1 .small2::before { /* Erziehung und Bildung */
  background-color: rgba(var(--bs-ws-orange-rgb), var(--opacity-75));
}

.hero-slider__caption--bg-2 .small2::before { /* Ehe und Familie */
  background-color: rgba(var(--bs-ws-purple-rgb), var(--opacity-75));
}

.hero-slider__caption--bg-3 .small2::before { /* Sportförderung */
  background-color: rgba(var(--bs-ws-blue-rgb), var(--opacity-75));
}

.hero-slider__caption--bg-4 .small2::before { /* Förderung der Tierzucht */
  background-color: rgba(var(--bs-ws-red-rgb), var(--opacity-75));
}

.hero_slider_container {
  position: relative;
  min-height: 600px;
  display: flex;
  flex-direction: row;
  align-content: flex-start;
  justify-content: flex-end;
  align-items: flex-start;
  flex-wrap: wrap;
  cursor: pointer;
}
.hero_slider__content {
  position: relative;
  overflow: hidden;
  margin-top: 64px;
  margin-right: 64px;
  width: 463px;
  height: 463px;
  padding: 90px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  align-content: start;
}
.hero_slider__image-element-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.hero-slider__title {
  color: var(--bs-white) !important;
  font-size: 2.75rem;
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 1.5rem;
  position: relative;
  z-index: 2;
  text-align: start;
}

.hero-slider__btn {
  background-color: transparent;
  border-color: transparent;
  color: var(--bs-white);
  font-size: 1.125rem;
  font-weight: 400;
  position: relative;
  text-align: start;
  z-index: 2;
  padding:0;
}

.hero-slider__btn img {
  margin-right: 8px;
  transition: transform 0.3s ease-out;
}

.hero-slider__btn::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 0;
  height: 2px;
  background-color: var(--bs-white);
  transition: width 0.3s ease-out;
}

.hero-slider__btn:hover,
.hero-slider__btn:focus,
.hero-slider__btn:active {
  background-color: transparent;
  border-color: transparent;
  color: var(--bs-white);
}

.hero-slider__btn:hover img {
  transform: translateX(8px);
  transition: transform 0.3s ease-out;
}
.hero-slider__control { 
  width: 120px;
  opacity: 1;
}
#heroSlider-173 > button.carousel-control-next.hero-slider__control {
  padding-right: 60px;
}
#heroSlider-173 > button.carousel-control-prev.hero-slider__control {
  padding-left: 60px;
}
.hero-slider__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  background-color: var(--bs-primary);
  color: var(--bs-white);
  border-radius: 0;
  transition: background-color 0.2s, color 0.2s, box-shadow 0.2s, transform 0.2s, scale 0.2s;
}

.hero-slider__arrow svg {
  width: 1.5rem;
  height: 1.5rem;
}

.hero-slider__control:hover .hero-slider__arrow,
.hero-slider__control:focus .hero-slider__arrow {
  background-color: var(--bs-white);
  color: var(--bs-primary-900);
  box-shadow: 0 0.25rem 0.5rem var(--bs-secondary);
  scale: 1.01;
}

.hero-slider .carousel-indicators [data-bs-target] {
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 50%;
  background-color: var(--bs-white);
  border: none;
  opacity: 0.5;
  margin: 0 0.25rem;
}

.hero-slider .carousel-indicators .active {
  opacity: 1;
}

@media (max-width: 767.98px) {
  .hero-slider__img {
    height: 20rem;
  }

  .hero-slider__caption {
    padding: 1.5rem;
  }

  .hero-slider__title {
    font-size: 1.5rem;
    margin-bottom: 1rem;
  }

  .hero-slider__control {
    width: 80px;
  }

  .hero-slider__arrow {
    width: 44px;
    height: 44px;
  }

  .hero-slider__arrow svg {
    width: 1.25rem;
    height: 1.25rem;
  }

  #heroSlider-173 > button.carousel-control-next.hero-slider__control {
    padding-right: 36px;
  }
  #heroSlider-173 > button.carousel-control-prev.hero-slider__control {
    padding-left: 36px;
  }

  .hero_slider_container {
    min-height: 420px;
    padding-top: 100px; /* Platz für die überlappende Nav */
  }

  .hero_slider__content {
    margin-top: 0;
    margin-right: 40px;
    width: 340px;
    height: 340px;
    padding: 60px;
  }

  [class*="hero-slider__caption--bg-"] .hero_slider__image-element-fg {
    width: 380px;
    height: 380px;
    transform: translate(-20px, -20px);
  }

  [class*="hero-slider__caption--bg-"] .small1 {
    width: 30px;
    height: 30px;
    top: 15px;
    left: 15px;
  }
  [class*="hero-slider__caption--bg-"] .small1::before {
    width: 36px;
    height: 36px;
  }
  [class*="hero-slider__caption--bg-"] .small2 {
    width: 50px;
    height: 50px;
    bottom: 10px;
    left: 10px;
  }
  [class*="hero-slider__caption--bg-"] .small2::before {
    width: 60px;
    height: 60px;
  }
}

@media (max-width: 575.98px) {
  .hero-slider__img {
    height: 16rem;
  }

  .hero-slider__caption {
    padding: 1rem;
  }

  .hero-slider__title {
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
  }

  .hero-slider__btn {
    font-size: 0.875rem;
  }

  .hero-slider__control {
    width: 50px;
    top: 100px; /* Pfeile unterhalb der Nav positionieren */
  }

  .hero-slider__arrow {
    width: 32px;
    height: 32px;
  }

  .hero-slider__arrow svg {
    width: 0.875rem;
    height: 0.875rem;
  }

  #heroSlider-173 > button.carousel-control-next.hero-slider__control {
    padding-right: 18px;
  }
  #heroSlider-173 > button.carousel-control-prev.hero-slider__control {
    padding-left: 18px;
  }

  .hero_slider_container {
    min-height: 300px;
    padding-top: 100px; /* Platz für die überlappende Nav */
  }

  .hero_slider__content {
    margin-top: 0;
    margin-right: 16px;
    width: 200px;
    height: 200px;
    padding: 24px;
  }

  [class*="hero-slider__caption--bg-"] .hero_slider__image-element-fg {
    width: 230px;
    height: 230px;
    transform: translate(-15px, -15px);
  }

  [class*="hero-slider__caption--bg-"] .small1 {
    width: 18px;
    height: 18px;
    top: 8px;
    left: 8px;
  }
  [class*="hero-slider__caption--bg-"] .small1::before {
    width: 22px;
    height: 22px;
  }
  [class*="hero-slider__caption--bg-"] .small2 {
    width: 32px;
    height: 32px;
    bottom: 5px;
    left: 5px;
  }
  [class*="hero-slider__caption--bg-"] .small2::before {
    width: 40px;
    height: 40px;
  }
}


/* ==========================================================================
   10. STIFTUNGSZWECKE – Circles (#c12)
   ========================================================================== */

#c12 .row {
  display: flex;
  align-content: space-between;
  align-items: center;
  justify-items: end;
  
  justify-content: space-between;
  margin: 0;
  padding: 0;
}

#c12 .row .col-xl-4.col-lg-6 {
  width: 225px;
  height: 225px;
  padding: 0;
  margin: 0;
  overflow: hidden;
  display: block;
  align-items: center;
  justify-content: center;
  border-radius: 0;
}

#c12 .mentry {
  margin: 0 !important;
  width: 255px !important;
  height: 255px !important;
  box-shadow: none !important;
  position: relative;
  overflow: hidden;
  color: var(--bs-gray-50);
  padding: 16px;
  border-radius: 50%;
  transform: translate(-15px, -15px);
}

#c12 .mentry a {
  display: flex;
  justify-content: center;
  color: var(--bs-gray-50);
  text-decoration: none;
  font-size: 1.625rem;
  font-weight: 500;
  line-height: 2rem;
  width: 225px;
  height: 225px;
  z-index: 11;
  position: relative;
}

#c12 .mentry a .title {
  display: block;
  text-align: left;
  padding: 0 !important;
  width: 174px;
  height: 123px;
  margin: auto;
  hyphens: auto;
  line-break: strict;
}

#c12 .mentry .img-fluid {
  border-radius: 0;
  position: absolute;
  top: 54px;
  right: 0;
  z-index: 10;
}

/* Circle colours per Stiftungszweck */
#c12 .row div:nth-child(1) .mentry { background-color: var(--bs-ws-green); }
#c12 .row div:nth-child(2) .mentry { background-color: var(--bs-ws-orange); }
#c12 .row div:nth-child(3) .mentry { background-color: var(--bs-ws-purple); }
#c12 .row div:nth-child(4) .mentry { background-color: var(--bs-ws-blue); }
#c12 .row div:nth-child(5) .mentry { background-color: var(--bs-ws-red); }

@media (max-width: 1399.98px) {
  #c12 .row {
    justify-content: center;
    flex-wrap: wrap;
    gap: 1.5rem;
  }
}

@media (max-width: 991.98px) {
  #c12 .row {
    justify-content: center;
    gap: 1.5rem;
  }
}

@media (max-width: 575.98px) {
  #c12 .row {
    flex-direction: column;
    align-items: center;
    align-content: center;
    gap: 1.5rem;
  }
}


/* ==========================================================================
   11. PAGINATION
   ========================================================================== */

.pagination {
  --bs-pagination-padding-x:             0.75rem;
  --bs-pagination-padding-y:             0.375rem;
  --bs-pagination-font-size:             1rem;
  --bs-pagination-color:                 var(--bs-primary-900);
  --bs-pagination-bg:                    var(--bs-body-bg);
  --bs-pagination-border-width:          var(--bs-border-width);
  --bs-pagination-border-color:          var(--bs-primary-100);
  --bs-pagination-border-radius:         0;
  --bs-pagination-hover-color:           var(--bs-link-hover-color);
  --bs-pagination-hover-bg:              var(--bs-tertiary-bg);
  --bs-pagination-hover-border-color:    var(--bs-border-color);
  --bs-pagination-focus-color:           var(--bs-link-hover-color);
  --bs-pagination-focus-bg:              var(--bs-secondary-bg);
  --bs-pagination-focus-box-shadow:      0 0 0 0.25rem rgba(13, 110, 253, 0.25);
  --bs-pagination-active-color:          var(--bs-gray-50);
  --bs-pagination-active-bg:             var(--bs-primary);
  --bs-pagination-active-border-color:   var(--bs-primary);
  --bs-pagination-disabled-color:        var(--bs-secondary-color);
  --bs-pagination-disabled-bg:           var(--bs-secondary-bg);
  --bs-pagination-disabled-border-color: var(--bs-border-color);
  display: flex;
  padding-left: 0;
  list-style: none;
}


/* ==========================================================================
   12. MOBILE NAVIGATION (< 992px)
   ========================================================================== */

/* Body scroll lock when drawer is open */
body.mobile-menu-open {
  overflow: hidden;
}

@media (max-width: 991.98px) {

  /* ── Header bar ── */
  .site-header {
    top: 0;
    height: 70px;
    margin-bottom: -70px;
  }

  /* Disable backdrop overlay on mobile */
  .site-header::before {
    display: none;
  }

  .site-header .navbar {
    height: 70px;
    padding: 0 20px;
    max-width: 100%;
    filter: none;
  }

  .site-header .navbar::before {
    height: 70px;
    clip-path: none;
  }

  /* ── Brand ── */
  .navbar-brand-container {
    min-width: 130px;
    max-width: 130px;
  }

  /* ── Container (flex row: toggler + contact) ── */
  .site-header .navbar > .container {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding: 0;
    margin: 0;
    max-width: none;
  }

  /* ── Hamburger ── */
  .navbar-toggler {
    position: relative;
    z-index: 10;
    order: 3;
    display: block;
  }

  .navbar-toggler .hamburger-toggle {
    width: 40px;
    height: 40px;
  }

  .navbar-toggler .hamburger-toggle .hamburger span {
    background: var(--bs-secondary);
  }

  /* ── Contact button (icon-only on mobile) ── */
  .site-header .btn.contact-button {
    order: 2;
    width: 40px;
    height: 40px;
    font-size: 0;
    gap: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: transparent;
    border: none;
  }

  .site-header .btn.contact-button i {
    color: var(--bs-secondary);
    font-size: 22px;
    height: 22px;
  }

  /* ── Fullscreen drawer ── */
  .site-header .navbar-collapse {
    display: block !important;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: linear-gradient(180deg, var(--bs-primary) 0%, var(--bs-secondary) 100%);
    z-index: 3;
    padding: 80px 24px 40px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transform: translateY(-100%);
    visibility: hidden;
    pointer-events: none;
    transition: transform 0.3s ease-out, visibility 0s linear 0.3s;
  }

  .site-header .navbar-collapse.mobile-open {
    transform: translateY(0);
    visibility: visible;
    pointer-events: auto;
    transition: transform 0.3s ease-out, visibility 0s linear 0s;
  }

  /* ── Nav list ── */
  #navbar-content .navbar-nav {
    flex-direction: column;
    gap: 0;
    width: 100%;
  }

  /* ── Nav items ── */
  .site-header .nav-item {
    position: relative;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  }

  /* ── Nav links ── */
  .site-header .nav-link.dropdown-toggle,
  .site-header .nav-link {
    color: var(--bs-white);
    height: auto;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.25rem;
    padding: 14px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: auto;
  }

  .site-header .nav-link.dropdown-toggle:hover,
  .site-header .nav-link:hover {
    color: rgba(255, 255, 255, 0.8);
  }

  /* Disable hover underline on mobile */
  .site-header .navbar-nav > .nav-item > a::after,
  .site-header .nav-item:hover a::after {
    display: none !important;
  }

  /* ── Expand indicator (+) for items with children ── */
  .site-header .nav-link.dropdown-toggle::after {
    display: flex !important;
    content: "+";
    border: none;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    font-weight: 300;
    color: var(--bs-white);
    background: rgba(0, 69, 145, 0.25);
    border-radius: 4px;
    transition: transform 0.25s ease-out, background-color 0.2s ease;
    margin-left: auto;
    flex-shrink: 0;
  }

  .site-header .nav-item.dropdown.mobile-expanded > a.dropdown-toggle::after {
    transform: rotate(45deg);
    background: rgba(255, 255, 255, 0.15);
  }

  /* ── Dropdown accordion ── */
  /* Accordion container */
  .navbar .nav-item.dropdown > .dropdown-menu,
  .dropdown-menu .dropend > .dropdown-menu {
    position: static !important;
    display: block !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease-in-out;
    width: 100%;
    clip-path: none !important;
    border-radius: 0 !important;
  }

  .navbar .nav-item.dropdown.mobile-expanded > .dropdown-menu,
  .dropdown-menu .dropend.mobile-expanded > .dropdown-menu {
    max-height: 80vh;
  }

  /* ── Dropdown items ── */
  .dropdown-menu .dropdown-item {
    color: var(--bs-white) !important;
    font-size: 1rem;
    font-weight: 300;
    padding: 10px 0 10px 24px;
    white-space: normal;
    border: none;
  }

  .dropdown-menu .dropdown-item:hover,
  .dropdown-menu .dropdown-item:focus {
    background: transparent !important;
    color: rgba(255, 255, 255, 0.8) !important;
  }

  /* Sub-level: dropend expand indicator */
  .dropdown-menu .dropend > a.dropdown-toggle::after {
    display: flex !important;
    content: "+";
    border: none;
    width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 300;
    color: var(--bs-white);
    background: rgba(0, 69, 145, 0.2);
    border-radius: 3px;
    transition: transform 0.25s ease-out;
    margin-left: auto;
    flex-shrink: 0;
    position: static !important;
    transform: none;
    top: auto !important;
    right: auto !important;
  }

  .dropdown-menu .dropend.mobile-expanded > a.dropdown-toggle::after {
    transform: rotate(45deg);
  }

  /* Indent sub-sub items */
  .dropdown-menu .dropend .dropdown-menu .dropdown-item {
    padding-left: 44px;
  }
}
/* ==========================================================================
   13. FRAME LAYOUT 
   ========================================================================== */

.frame-layout-1 {
    padding: 0;
    padding-top: 6rem;
    padding-bottom: 6rem;
    border-radius: 0;
    background-color: #EBEEF2;
}

/* #c194 */
#c194 .row {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap:3rem;
    margin: 0 auto;
}
#c194 .row > * {
    flex: 1 1 0;
    padding: 0;
}
#c194 .col-lg-6, #c194 img {
    padding: 0 !important;
    margin: 0 !important;
}

@media (max-width: 991.98px) {
  #c194 .row {
    flex-direction: column;
  }
}

/* ==========================================================================
   14. container max-widths overrides for large screens
   ========================================================================== */

@media (min-width: 1650px) {
    .container-1500 {
        max-width: 1500px !important;
        --bs-gutter-x: 0;
        --bs-gutter-y: 0;
    }
}
@media (min-width: 1650px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        max-width: 1200px !important;
        --bs-gutter-x: 0rem;
        --bs-gutter-y: 0;
    }
}
@media (min-width: 1400px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
      max-width: 1140px;
      --bs-gutter-x: 0rem;
      --bs-gutter-y: 0;
    }
}

/* ==========================================================================
   15. POWERMAIL
   ========================================================================== */

/* ── Multi-step navigation ── */
.powermail_form .btn-group {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  gap: 0.25rem;
  border: 1px solid var(--bs-gray-300);
  border-radius: 0;
  padding: 0.25rem;
  background-color: var(--bs-gray-100);
}

.powermail_form .btn-group .btn {
  flex: 1 1 auto;
  border: 1px solid transparent;
  border-radius: 0;
  padding: 0.75rem 1rem;
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--bs-primary-900);
  background-color: transparent;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

.powermail_form .btn-group .btn:hover {
  background-color: var(--bs-white);
  border-color: var(--bs-gray-300);
  color: var(--bs-primary);
}

.powermail_form .btn-group .btn.active,
.powermail_form .btn-group .btn.btn-primary {
  background-color: var(--bs-primary);
  color: var(--bs-white);
  border-color: var(--bs-primary);
  font-weight: 600;
}

@media (max-width: 991.98px) {
  .powermail_form .btn-group {
    flex-direction: column;
    margin-bottom: 1rem;
  }

  .powermail_form .btn-group .btn {
    text-align: left;
    padding: 0.625rem 1rem;
  }
}

/* ── Layout: btn-group (links 30%) neben fieldsets (rechts 70%) ab md ── */
@media (min-width: 768px) {
  .frame-type-powermail_pi1 .powermail_morestep {
    display: grid;
    grid-template-columns: 30% 1fr;
    grid-template-rows: max-content 1fr;
    column-gap: 2rem;
    align-items: start;
  }
  /* Hilfs-Container (Hidden-Input-Wrapper, form-uid) transparent fürs Grid machen.
     Honeypot-Wrapper (`:has(input[name*="__hp"])`) ausgenommen, damit dessen
     inline `position:absolute; margin-left:-99999px` weiter greift.
     `.powermail-sidebar-text` (per JS eingehängtes c160) ausgenommen, damit
     es als eigener Grid-Item in Spalte 1 platziert werden kann. */
  .frame-type-powermail_pi1 .powermail_morestep > *:not(.btn-group):not(.powermail_fieldset):not(.powermail-sidebar-text):not(:has(input[name*="__hp"])) {
    display: contents;
  }
  .frame-type-powermail_pi1 .powermail_morestep > .btn-group {
    grid-column: 1;
    grid-row: 1;
    position: sticky;
    top: 1rem;
    align-self: start;
  }
  .frame-type-powermail_pi1 .powermail_morestep > .powermail_fieldset {
    grid-column: 2;
    grid-row: 1 / span 2;
  }
  /* Sidebar-Text (c160) direkt unter der btn-group, fixe Position
     unabhängig von der Fieldset-Höhe */
  .frame-type-powermail_pi1 .powermail_morestep > .powermail-sidebar-text {
    grid-column: 1;
    grid-row: 2;
    align-self: start;
    margin-top: 4rem;
  }
}

/* ── Form layout ── */
.powermail_form {
  max-width: 100%;
}

.powermail_form h3 {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--bs-primary);
  margin-bottom: 2rem;
}

.powermail_form .powermail_fieldset {
  border: none;
  padding: 0;
  margin: 0 0 0.5rem 0;
}

.powermail_form .powermail_legend {
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--bs-primary);
  padding: 0;
  margin-top: 0.25rem;
  margin-bottom: 0.75rem;
  border-bottom: 2px solid var(--bs-primary);
  padding-bottom: 0.5rem;
  width: 100%;
}

/* ── Field wrappers ── */
.powermail_form .powermail_fieldwrap {
  margin-bottom: 0.75rem;
}

.powermail_form .row {
  margin-bottom: 0;
}

.tx-powermail .row + .row {
  margin-block-start: 0;
}

/* ── 2-spaltig ab md ── */
@media (min-width: 768px) {
  .powermail_form .powermail_fieldset[style*="display: block"] {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 0 1rem;
  }
  .powermail_form .powermail_fieldset > .row {
    min-width: 0;
  }
  .powermail_form .powermail_legend,
  .powermail_form .powermail_tab_navigation {
    grid-column: 1 / -1;
  }
  .powermail_form .row:has(.powermail_fieldwrap_type_textarea),
  .powermail_form .row:has(.powermail_fieldwrap_type_radio),
  .powermail_form .row:has(.powermail_fieldwrap_type_check),
  .powermail_form .row:has(.powermail_fieldwrap_type_text) {
    grid-column: 1 / -1;
  }
  .powermail_form .row:has(.powermail_fieldwrap_geschaeftsfuehrerinvorsitzender),
  .powermail_form .row:has(.powermail_fieldwrap_bankverbindungnamederbank) {
    grid-column-start: 1;
  }
  /* Fieldset 6: 6-spaltig (2+2+2 = Drittel, 3+3 = 50/50) */
  .powermail_form .powermail_fieldset_6[style*="display: block"] {
    grid-template-columns: repeat(6, 1fr);
    grid-auto-flow: dense;
    row-gap: 0.5rem;
    overflow: hidden;
  }
  /* Mittel-Inputs → Spalte 1-2 (von 6) */
  .powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_1oeffentlichemittel),
  .powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_2oeffentlichemittel),
  .powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_3oeffentlichemittel),
  .powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_4oeffentlichemittel) {
    grid-column: 1 / 3;
  }
  /* Einnahmen-Inputs → Spalte 3-4 (von 6) */
  .powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_einnahmenineurzu1_01),
  .powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_einnahmenineurzu2_01),
  .powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_einnahmenineurzu3_01),
  .powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_einnahmenineurzu4_01) {
    grid-column: 3 / 5;
  }
  /* Radios (zu 1./2./3./4.) → Spalte 5-6 (von 6) */
  .powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_marker_04),
  .powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_zu2),
  .powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_zu3),
  .powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_zu4) {
    grid-column: 5 / 7;
  }
  /* Radios inline */
  .powermail_form .powermail_fieldset_6 .form-check {
    display: inline-flex;
    margin-right: 0.75rem;
  }
  /* Fördersumme + Gesamtfinanzierung: je 3 von 6 Spalten = 50/50 */
  .powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_foerdersummeguentherweberstiftungineur) {
    grid-column: 1 / 4;
  }
  .powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_gesamtfinanzierungineur) {
    grid-column: 4 / 7;
  }
}

/* ── Fieldset 6: Visuelle Block-Trennung ── */
/* Block 2 */
.powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_2oeffentlichemittel),
.powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_einnahmenineurzu2_01),
.powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_zu2),
/* Block 3 */
.powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_3oeffentlichemittel),
.powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_einnahmenineurzu3_01),
.powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_zu3),
/* Block 4 */
.powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_4oeffentlichemittel),
.powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_einnahmenineurzu4_01),
.powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_zu4),
/* Fördersumme + Gesamtfinanzierung */
.powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_foerdersummeguentherweberstiftungineur),
.powermail_form .powermail_fieldset_6 .row:has(.powermail_fieldwrap_gesamtfinanzierungineur) {
  margin-top: 0.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--bs-gray-300);
}

/* ── Labels ── */
.powermail_form label {
  display: block;
  font-size: 1.125rem;
  font-weight: 400;
  color: var(--bs-gray-700);
  margin-top: 0;
  margin-bottom: 0.25rem;
  letter-spacing: 0.01em;
}

/* ── Input, Textarea, Select ── */
.powermail_form .powermail_input,
.powermail_form .powermail_textarea,
.powermail_form .powermail_select {
  width: 100%;
  padding: 0.5rem 0.75rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--bs-gray-900);
  background-color: var(--bs-gray-100);
  border: 1px solid var(--bs-gray-300);
  border-radius: 0;
  transition: border-color 0.2s, box-shadow 0.2s, background-color 0.2s;
  appearance: none;
  -webkit-appearance: none;
}

.powermail_form .powermail_input:focus,
.powermail_form .powermail_textarea:focus,
.powermail_form .powermail_select:focus {
  outline: none;
  border-color: var(--bs-primary);
  background-color: var(--bs-white);
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.15);
}

.powermail_form .powermail_input::placeholder,
.powermail_form .powermail_textarea::placeholder {
  color: var(--bs-gray-500);
  font-weight: 400;
}

.powermail_form .powermail_textarea {
  min-height: 5rem;
  resize: vertical;
}

.powermail_form .powermail_select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 1rem;
  padding-right: 2.5rem;
}

/* ── Checkbox & Radio ── */
.powermail_form .form-check {
  display: flex;
  align-items: center;
  padding-left: 0;
  margin-bottom: 0.5rem;
  gap: 0.5rem;
}

.powermail_form .form-check-input {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  border: 2px solid var(--bs-gray-400);
  border-radius: 0;
  vertical-align: middle;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-color: #fff;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.powermail_form .form-check-input:hover {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.1);
}

.powermail_form .form-check-input:focus {
  outline: none;
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.15);
}

.powermail_form .form-check-input[type="radio"] {
  border-radius: 50%;
  position: relative;
}

.powermail_form .form-check-input[type="radio"]::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background-color: var(--bs-primary);
  transform: translate(-50%, -50%);
  transition: width 0.2s ease, height 0.2s ease;
}

.powermail_form .form-check-input[type="radio"]:checked {
  border-color: var(--bs-primary);
  background-color: #fff;
}

.powermail_form .form-check-input[type="radio"]:checked::after {
  width: 0.55rem;
  height: 0.55rem;
}

.powermail_form .form-check-input[type="checkbox"] {
  border-radius: 0.2rem;
  position: relative;
}

.powermail_form .form-check-input[type="checkbox"]::after {
  content: "";
  display: block;
  position: absolute;
  top: 45%;
  left: 50%;
  width: 0.3rem;
  height: 0.6rem;
  border: solid #fff;
  border-width: 0 2.5px 2.5px 0;
  transform: translate(-50%, -55%) rotate(45deg);
  opacity: 0;
  transition: opacity 0.15s ease;
}

.powermail_form .form-check-input[type="checkbox"]:checked {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

.powermail_form .form-check-input[type="checkbox"]:checked::after {
  opacity: 1;
}

.powermail_form .form-check-input:checked {
  border-color: var(--bs-primary);
}

.powermail_form .form-check-label {
  display: inline;
  font-size: 1.125rem;
  font-weight: 400;
  color: var(--bs-gray-700);
  cursor: pointer;
  line-height: 1.4;
  transition: color 0.2s ease;
}

.powermail_form .form-check-input:checked + .form-check-label {
  color: var(--bs-gray-900);
  font-weight: 500;
}

.powermail_form .form-check-label .checkbox-svg {
  width: 0;
  height: 0;
  display: none;
}

/* ── Error state ── */
.powermail-errors-list
{
  margin: 0;
  padding: 0;
  list-style: none;
}
.powermail_form .powermail_field_error {
  border-color: #e0a0a0 !important;
  background-color: rgba(220, 53, 69, 0.03) !important;
  box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.08) !important;
  transition: border-color 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
}

.powermail_form .powermail_field_error_container {
  color: #b85a5a;
  margin-top: 0.375rem;
  padding-left: 0.125rem;
  animation: errorFadeIn 0.3s ease;
  border: none !important;
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
}

.powermail_form .powermail_field_error_container ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

@keyframes errorFadeIn {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Submit button ── */
.powermail_form input[type="submit"],
.powermail_form .btn-primary:not(.btn-group .btn-primary) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.875rem 2.5rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--bs-white);
  background-color: var(--bs-primary);
  border: 2px solid var(--bs-primary);
  border-radius: 0;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;
  letter-spacing: 0.02em;
}

.powermail_form input[type="submit"]:hover,
.powermail_form .btn-primary:not(.btn-group .btn-primary):hover {
  background-color: var(--bs-white);
  color: var(--bs-primary);
  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
}

/* ── Absenden: hervorgehoben (grün) ── */
.powermail_form .powermail_fieldwrap_type_submit .btn.btn-primary {
  background-color: var(--bs-success, #198754);
  border-color: var(--bs-success, #198754);
  color: var(--bs-white);
  font-weight: 700;
  letter-spacing: 0.03em;
}
.powermail_form .powermail_fieldwrap_type_submit .btn.btn-primary:hover {
  background-color: var(--bs-white);
  color: var(--bs-success, #198754);
  border-color: var(--bs-success, #198754);
}

/* ── Formular zurücksetzen: dezent (outline) ── */
.powermail_form .powermail_fieldwrap_type_reset .btn.btn-primary {
  background-color: transparent;
  border: 2px solid var(--bs-gray-400);
  color: var(--bs-gray-600);
  font-weight: 500;
}
.powermail_form .powermail_fieldwrap_type_reset {
  text-align: right;
}
.powermail_form .powermail_fieldwrap_type_reset .btn.btn-primary:hover {
  background-color: var(--bs-gray-200);
  border-color: var(--bs-gray-500);
  color: var(--bs-gray-800);
  box-shadow: none;
}

/* ── Step navigation (prev/next within fieldset) ── */
.powermail_form .powermail_tab_navigation {
  display: flex;
  gap: 1rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--bs-gray-200);
}

.powermail_form .powermail_tab_navigation .btn {
  padding: 0.625rem 1.5rem;
  font-size: 1rem;
  font-weight: 500;
  border-radius: 0;
}

/* ── Flash messages ── */
.powermail_form .powermail_message_error {
  padding: 1rem 1.25rem;
  background-color: rgba(220, 53, 69, 0.05);
  border-left: 3px solid #e0a0a0;
  color: #b85a5a;
  margin-bottom: 1.5rem;
  font-size: 0.9375rem;
  border-radius: 0 0.25rem 0.25rem 0;
  animation: errorFadeIn 0.3s ease;
}

/* ── Responsive ── */
@media (max-width: 767.98px) {
  .powermail_form .powermail_input,
  .powermail_form .powermail_textarea,
  .powermail_form .powermail_select {
    padding: 0.625rem 0.75rem;
    font-size: 0.9375rem;
  }

  .powermail_form input[type="submit"] {
    width: 100%;
    padding: 0.75rem 1.5rem;
  }

  .powermail_form .powermail_tab_navigation {
    flex-direction: column;
  }

  .powermail_form .powermail_tab_navigation .btn {
    width: 100%;
  }

  /* Reset-Button: klein, dezent, unter Zurück-Navigation */
  .powermail_form .row:has(.powermail_fieldwrap_type_reset) {
    order: 99;
    margin-top: 1rem;
    border-top: 1px solid var(--bs-gray-200);
    padding-top: 1rem;
  }
  .powermail_form .powermail_fieldwrap_type_reset {
    text-align: center;
  }
  .powermail_form .powermail_fieldwrap_type_reset .btn.btn-primary {
    font-size: 0.8125rem;
    padding: 0.5rem 1.25rem;
    width: auto;
  }
}

/* ==========================================================================
   16. NEWS CLASSES
   ========================================================================== */
.container:has(.frame-type-news_newsliststicky.frame-layout-4) {
  max-width: 100% !important;
  padding: 0;
}
#c197 {
  max-width: 1200px !important;
  padding: 0;
  margin: 0 auto;
}
.frame-type-news_newsliststicky.frame-layout-4
{
  background-color: transparent;
  padding: 0;
  border-radius: 0;
}
.frame-type-news_newsliststicky.frame-layout-4 .news-list-view {
  position: relative;
  /* full-bleed: slider bricht aus dem Container, max 1920px */
  width: min(98vw, 1920px);
  left: 50%;
  transform: translateX(-50%);
}

.frame-type-news_newsliststicky.frame-layout-4 .list-group {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 1.5rem;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scroll-padding-left: max(1.5rem, calc((min(100vw, 1920px) - 1538px) / 2));
  -ms-overflow-style: none;
  scrollbar-width: none;
  /* Padding hält erste/letzte Karte auf Container-Ebene */
  padding-left: max(1.5rem, calc((min(100vw, 1920px) - 1538px) / 2));
  padding-right: max(1.5rem, calc((min(100vw, 1920px) - 1538px) / 2));
  
  border-radius: 0;
}

.frame-type-news_newsliststicky.frame-layout-4 .list-group::-webkit-scrollbar {
  display: none;
}

/* Kartenbreite = 1/4 der Container-Breite */
.frame-type-news_newsliststicky.frame-layout-4 .list-group > .list-group-item {
  flex: 0 0 calc((min(100vw, 1920px, 1538px) - 4.5rem) / 4);
  max-width: min(calc((min(100vw, 1920px, 1538px) - 4.5rem) / 4), 365px);
  scroll-snap-align: start;
  margin-bottom: 30px;
  background-color: var(--bs-gray-100);
  transition: opacity .25s ease;
}
.frame-type-news_newsliststicky.frame-layout-0 .list-group > .list-group-item
{
  background-color: var(--bs-gray-100);
  transition: opacity .25s ease;
}
@media (max-width: 991.98px) {
  .frame-type-news_newsliststicky.frame-layout-4 .list-group {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    scroll-padding-left: 1.5rem;
  }
  .frame-type-news_newsliststicky.frame-layout-4 .list-group > .list-group-item {
    flex: 0 0 calc((min(100vw, 1920px) - 4.5rem) / 2);
    max-width: calc((min(100vw, 1920px) - 4.5rem) / 2);
  }
}

@media (max-width: 575.98px) {
  .frame-type-news_newsliststicky.frame-layout-4 .list-group > .list-group-item {
    flex: 0 0 calc(min(100vw, 1920px) - 3rem);
    max-width: calc(min(100vw, 1920px) - 3rem);
  }
}

@media (min-width: 1650px) {
  .frame-type-news_newsliststicky.frame-layout-4 .list-group {
    padding-left: max(1.5rem, calc((min(100vw, 1920px) - 1538px) / 2));
    padding-right: max(1.5rem, calc((min(100vw, 1920px) - 1538px) / 2));
    scroll-padding-left: max(1.5rem, calc((min(100vw, 1920px) - 1538px) / 2));
  }
  .frame-type-news_newsliststicky.frame-layout-4 .list-group > .list-group-item {
    flex: 0 0 calc((1538px - 4.5rem) / 4);
    max-width: min(calc((1538px - 4.5rem) / 4), 365px);
  }
}

.frame-type-news_newsliststicky.frame-layout-0 .list-group {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 1rem;
}

.frame-type-news_newsliststicky.frame-layout-0 .list-group .list-group-item {
  margin-bottom: 1rem;
  background-color: var(--bs-gray-100);
}

/* ── News Slider Navigation ── */
.news-slider-nav {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  pointer-events: none;
  z-index: 10;
}

.news-slider__control--prev {
  margin-left: 60px;
}

.news-slider__control--next {
  margin-right: 60px;
}

.news-slider__control {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  width: 60px;
  height: 60px;
  opacity: 1;
  pointer-events: auto;
  /* Pfeile vertikal mittig über Bildbereich (Bild = aspect-ratio 3:2 = Kartenbreite × 2/3)
     margin-top = Bildhöhe/2 − Buttonhöhe/2 = Kartenbreite/3 − 1.5rem
     Kartenbreite = (min(100vw, 1140px) − 3rem) / 3 */
  margin-top: calc((min(100vw, 1920px, 1140px) - 3rem) / 9 - 1.5rem);
}

@media (max-width: 991.98px) {
  .news-slider__control {
    margin-top: calc((min(100vw, 1920px) - 4.5rem) / 6 - 1.5rem);
  }
}

@media (max-width: 991.98px) {
  .news-slider-nav {
    justify-content: flex-end;
    gap: 0.5rem;
    top: 0;
    transform: translateY(calc(-100% - 0.5rem));
  }
  .news-slider__control--prev,
  .news-slider__control--next {
    margin-left: 0;
    margin-right: 0;
  }
  .news-slider__control {
    margin-top: 0;
    width: 48px;
    height: 48px;
  }
}

.news-slider__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  background-color: var(--bs-secondary);
  color: var(--bs-white);
  border-radius: 0;
  transition: background-color 0.2s, color 0.2s, box-shadow 0.2s, scale 0.2s;
}

.news-slider__arrow svg {
  width: 1.5rem;
  height: 1.5rem;
}

.news-slider__control:hover .news-slider__arrow,
.news-slider__control:focus .news-slider__arrow {
  background-color: var(--bs-white);
  color: var(--bs-primary-900);
  box-shadow: 0 0.25rem 0.5rem var(--bs-secondary);
  scale: 1.01;
}

.news-slider__control:disabled .news-slider__arrow {
  background-color: var(--bs-gray-300);
  color: var(--bs-gray-500);
  cursor: not-allowed;
}

@media (max-width: 767.98px) {
  .news-slider__control--prev {
    margin-left: 20px;
  }
  .news-slider__control--next {
    margin-right: 20px;
  }
  .news-slider__control {
    width: 44px;
    height: 44px;
  }
  .news-slider__arrow {
    width: 2.5rem;
    height: 2.5rem;
  }
  .news-slider__arrow svg {
    width: 1.25rem;
    height: 1.25rem;
  }
}

@media (max-width: 575.98px) {
  .news-slider__control--prev {
    margin-left: 8px;
  }
  .news-slider__control--next {
    margin-right: 8px;
  }
  .news-slider__control {
    width: 36px;
    height: 36px;
  }
  .news-slider__arrow {
    width: 2rem;
    height: 2rem;
  }
  .news-slider__arrow svg {
    width: 1rem;
    height: 1rem;
  }
}

.list-group .list-group-item {
  background-color: transparent;
}
.list-group .list-group-item a {
  text-decoration: none;
  color: inherit;
}
/* ── News card (swiper-slide style) ── */
.news-list-item {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  transition: box-shadow 0.25s ease;
  text-decoration: none;
  background-color: var(--bs-gray-100);
}

.frame-type-news_newsliststicky.frame-layout-4 .list-group-item:hover .news-list-item,
.frame-type-news_newsliststicky.frame-layout-4 .list-group-item:focus-within .news-list-item {
  box-shadow: 0 8px 24px rgba(0, 69, 145, 0.12);
}

/* Image */
.news-list-item__header {
  flex-shrink: 0;
  overflow: hidden;
}

.news-list-item .news-img-wrap {
  aspect-ratio: 3 / 2;
  overflow: hidden;
}

.news-list-item .news-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.4s ease;
}
.news-list-item .news-img-wrap img.dummyImage {
  object-fit: contain;
  background-color: var(--bs-gray-200);
  padding: 2rem;
}

.frame-type-news_newsliststicky.frame-layout-4 .list-group-item:hover .news-img-wrap img {
  transform: scale(1.04);
}

/* Body */
.news-list-item__body {
  flex: 1;
  padding: 1.25rem 1.25rem 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.news-list-item__title {
  font-size: 1.6rem !important;
  font-weight: 500;
  line-height: 1.25;
  color: var(--bs-secondary) !important;
  margin: 0;
  display:block;
}

.news-list-item__teaser {
  font-size: 1.125rem;
  font-weight: 300;
  line-height: 1.55;
  color: var(--bs-black);
  margin: 0;
  display: block;
}

/* Footer */
.news-list-item__footer {
  padding: 0 1.15rem 1.15rem;
  margin-top: auto;
}

.news-list-item__footer .extra.extra-compact {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.375rem;
  flex-wrap: nowrap;
  font-size: 0.8125rem;
  color: var(--bs-gray-600);
  margin-bottom: 0 !important;
}

.news-list-item__footer time {
  font-weight: 400;
  font-size: 0.75rem;
  color: var(--bs-gray-600);
}

.news-list-item__footer .blue {
  color: var(--bs-primary-800);
  font-weight: 500;
  padding-left: 0.175rem;
  padding-right: 0.175rem;
}

.news-list-item__footer .label {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--bs-primary);
  background-color: var(--bs-primary-50);
  padding: 0.125rem 0.5rem;
  white-space: nowrap;
}

/* frame-layout-4: plain text label + → arrow */
.frame-type-news_newsliststicky.frame-layout-4 .news-list-item__footer .label {
  background-color: transparent;
  padding: 0;
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--bs-gray-600);
}

.frame-type-news_newsliststicky.frame-layout-4 .news-list-item__footer .extra.extra-compact {
  justify-content: space-between;
  padding-top: 0.75rem;
}

.frame-type-news_newsliststicky.frame-layout-4 .news-list-item__footer .extra.extra-compact .svg {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}

/* ── News list Item (horizontal row layout) ── */

.news-list-item.row .news-list-item__header .news-img-wrap {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.news-list-item.row .news-list-item__header .news-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.4s ease;
}

.list-group-item:hover .news-list-item.row .news-img-wrap img {
  transform: scale(1.04);
}

.news-list-item.row .news-list-item__body {
  padding: 0.25rem 0 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.news-list-item.row .news-list-item__title {
  font-size: 1.3rem !important;
  font-weight: 600;
  line-height: 1.35;
  color: var(--bs-secondary) !important;
  margin: 0;
}

.news-list-item.row .news-list-item__teaser {
  font-size: 1.125rem;
  font-weight: 300;
  line-height: 1.55;
  color: var(--bs-black);
  flex: 1;
}

.news-list-item.row .news-list-item__footer {
  padding: 0;
  margin-top: auto;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

/* ── frame-layout-0: vertikale Weber-Karte (Masonry) ── */
.frame-type-news_newsliststicky.frame-layout-0 .list-group {
  column-gap: 1rem;
}

.frame-type-news_newsliststicky.frame-layout-0 .list-group-item {
  margin-bottom: 1rem;
}

.frame-type-news_newsliststicky.frame-layout-0 .news-list-item.row {
  display: flex;
  flex-direction: column;
  background-color: transparent;
  margin-left: 0;
  margin-right: 0;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.frame-type-news_newsliststicky.frame-layout-0 .list-group-item:hover .news-list-item.row {  
    box-shadow: 0 0 20px rgba(40, 120, 204, .4) !important;
}

.frame-type-news_newsliststicky.frame-layout-0 .news-list-item.row .news-list-item__header {
  width: 100%;
  flex-shrink: 0;
  overflow: hidden;
  padding: 0;
  margin: 0;
}

.frame-type-news_newsliststicky.frame-layout-0 .news-list-item.row .news-list-item__header .news-img-wrap {
  aspect-ratio: 3 / 2;
}

.frame-type-news_newsliststicky.frame-layout-0 .news-list-item.row .news-list-item__header .news-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.frame-type-news_newsliststicky.frame-layout-0 .news-list-item.row .news-list-item__header .news-img-wrap img.dummyImage {
  object-fit: contain;
  background-color: var(--bs-gray-200);
}

.frame-type-news_newsliststicky.frame-layout-0 .list-group-item:hover .news-list-item.row .news-img-wrap img {
  transform: scale(1.04);
}

.frame-type-news_newsliststicky.frame-layout-0 .news-list-item.row .news-list-item__body {
  width: 100%;
  padding: 0.875rem 1rem 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.frame-type-news_newsliststicky.frame-layout-0 .news-list-item.row .news-list-item__title {
  
  font-size: 1.5rem !important;
  font-weight: 500;
  line-height: 1.4;
  color: var(--bs-secondary) !important;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.frame-type-news_newsliststicky.frame-layout-0 .news-list-item.row .news-list-item__teaser {
  font-size: 1.125rem;
  font-weight: 300;
  line-height: 1.5;
  color: var(--bs-black);
  display:block;
}

.frame-type-news_newsliststicky.frame-layout-0 .news-list-item.row .news-list-item__teaser p {
  margin-bottom: 0;
}

.frame-type-news_newsliststicky.frame-layout-0 .news-list-item.row .news-list-item__footer {
  width: 100%;
  padding: 0 1.15rem 1.15rem;
  display: block;
  margin-top: auto;
}

.frame-type-news_newsliststicky.frame-layout-0 .news-list-item.row .news-list-item__footer .extra.extra-compact {
  justify-content: space-between;
  width: 100%;
  padding-top: 0.75rem;
}

.frame-type-news_newsliststicky.frame-layout-0 .news-list-item.row .news-list-item__footer time {
  font-size: 0.75rem;
}

.frame-type-news_newsliststicky.frame-layout-0 .news-list-item.row .news-list-item__footer .label {
  background-color: transparent;
  padding: 0;
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--bs-gray-600);
}



.frame-type-news_newsliststicky.frame-layout-0 .news-list-item.row .news-list-item__footer .btn {
  font-weight: 600;
}

.frame-type-news_newsliststicky.frame-layout-0 .list-group .masonry-col {
  flex: 1;
  min-width: 0;
  padding: 0; 
}

/* Mobile-Fallback: unter 800px immer einspaltig, auch wenn das Masonry-JS
   noch nicht gelaufen ist oder die inline-styles vom letzten Resize bleiben. */
@media (max-width: 799.98px) {
  .frame-type-news_newsliststicky.frame-layout-0 ul.list-group {
    display: block !important;
    gap: 0 !important;
  }
  .frame-type-news_newsliststicky.frame-layout-0 .list-group .masonry-col {
    display: block;
    width: 100%;
  }
}

.news-single .svg {
  display: none;
}

.news-single .lead {
  margin-bottom: 1.5rem;
}

/* ==========================================================================
   17. TYPOGRAPHY
   ========================================================================== */

/* ── Überschriften-Abstände ── */
main section:not(.header) h1,
main section:not(.header) h2,
main section:not(.header) h3,
main section:not(.header) h4,
main section:not(.header) h5,
main section:not(.header) h6 {
  margin-top: 2rem;
  margin-bottom: 1.75rem;
}

main section:not(.header) h1 { margin-top: 0; }

main section:not(.header) h2 { margin-top: 2.5rem; }

main section:not(.header) h3 { margin-top: 2rem; }

main section:not(.header) h4,
main section:not(.header) h5,
main section:not(.header) h6 { margin-top: 1.5rem; }

/* Erste Überschrift direkt nach einem div/section bekommt keinen Top-Abstand */
main section:not(.header) > * > :is(h1, h2, h3, h4, h5, h6):first-child,
main section:not(.header) :is(h1, h2, h3, h4, h5, h6):first-child {
  margin-top: 0;
}

/* ── Absätze: minimum 1rem Abstand ── */
main section:not(.header) p {
  margin-bottom: 1rem;
}

main section:not(.header) p:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   18. GALLERY (frame-type-gallery, frame-layout-0)
   ========================================================================== */


.dropdown-mega-wrapper a:hover {text-decoration: none !important;}