/* =========================================================================
   gm-Theme — Layout & Komponenten (originalgetreuer FlatCore-gm-Look auf BS5)
   Werte 1:1 aus FlatCore styles/navigation/default.min.css; Farben via Tokens.
   ========================================================================= */

/* ---- Container / Section (gm-Overrides, BS5-gutter-schonend) ---- */
.container { padding-left: 25px; padding-right: 25px; }
section { padding: 90px 0; overflow: hidden; background: #fff; }
@media (max-width:1199px){ section { padding: 70px 0; } }
@media (max-width:991px){  section { padding: 50px 0; } }
section.no-padding { padding: 0; }

/* ---- Header ----
   Alter FlatCore-1:1-Rest mit BLOSSEM Element-Selektor "header" (z-index:9999!) entfernt:
   traf JEDES <header>-Tag der Seite, nicht nur die Navigation -> das semantisch korrekte
   <header class="gm-sitemap-hero"> im Sitemap-Plugin bekam dadurch z-index:9999 (9x hoeher
   als .gm-header mit 1000) + weissen Hintergrund und legte sich beim Scrollen über die
   Navigation. Die moderne .gm-header-Komponente setzt Position/Z-Index/Hintergrund/Schatten
   laengst selbst (gm-header.css: .gm-header{position:sticky;z-index:1000;background:#fff},
   .gm-header.is-scrolled .gm-header-main{box-shadow:...}) -> diese Zeile war reine Alt-Last. */
.navbar-header-custom { padding: 22px 0 20px; }
.navbar-default { transition:.5s; box-shadow: 0 0 3px rgba(0,0,0,.2); }
.navbar-default .container { position:relative; }
@media screen and (min-width:992px){
  .header-style { box-shadow:none; }
  .header-style .navbar-default { box-shadow:none; }
}
@media screen and (max-width:991px){
  .navbar-header-custom { padding: 12px 0; }
}
.md-font-size14 { font-size: 14px; }
@media (max-width:991px){ .sm-display-none { display:none !important; } }

/* ---- Navigation: Marineblau-Balken (Desktop ≥992px) ---- */
.menu_area { position:relative; z-index:2; }
@media screen and (min-width:992px){
  .header-style .menu_area {
    background: var(--gm-primary);
    border-top: 1px solid var(--gm-border);
    border-bottom: 1px solid var(--gm-border);
  }
}
.menu_area .navbar { padding: 0; }
.navbar-nav { margin: 0; }
.navbar-nav > li { margin-left: 10px; }
@media screen and (min-width:1200px){ .navbar-nav > li { margin-left:10px; } }
@media screen and (max-width:1199px){ .navbar-nav > li { margin-left:5px; } }
.navbar-nav > li > a.nav-link {
  position:relative; display:block;
  font-size:14px; font-weight:500;
  padding:21px .5rem;
  color:#fff; letter-spacing:.5px;
  text-transform:uppercase; transition:.4s;
}
@media screen and (min-width:992px){
  .header-style .navbar-nav > li:first-child { margin-left:0; }
}
.header-style .navbar-nav > li > a.nav-link:hover,
.header-style .navbar-nav > li > a.nav-link:focus,
.header-style .navbar-nav > li.active > a.nav-link {
  color: rgba(255,255,255,.78);
}
.navbar-nav > li > a.nav-link .moewe { width:50px; margin-top:-10px; }

/* ---- Navigation: Mobile / Burger (≤991px) ---- */
@media screen and (max-width:991px){
  .menu_area .navbar { position:relative; }
  #nav.navbar-nav {
    background: var(--gm-primary);
    box-shadow: 0 2px 3px rgba(0,0,0,.2);
    position:absolute; top:100%; left:0; width:100%;
    display:none; z-index:1200; padding: 0 0 8px;
  }
  #nav.navbar-nav.menu-open { display:block; }
  #nav.navbar-nav > li { width:100%; margin:0; border-top:1px solid var(--gm-border); }
  #nav.navbar-nav > li > a.nav-link { padding:10px 20px; font-size:13px; color:#fff; }
  #nav.navbar-nav > li > a.nav-link:hover { background: rgba(255,255,255,.08); }

  .navbar-toggler {
    background: var(--gm-primary); width:40px; height:35px; padding:0;
    border-radius:.25rem; position:absolute; right:15px; top:50%;
    transform: translateY(-50%); cursor:pointer; z-index:1300; border:none;
  }
  .navbar-toggler:after {
    position:absolute; top:11px; right:10px; display:block;
    height:8px; width:20px; border-top:2px solid #fff; border-bottom:2px solid #fff; content:"";
  }
  .navbar-toggler:before {
    transition:.3s; position:absolute; top:16px; right:10px; display:block;
    height:2px; width:20px; background:#fff; content:"";
  }
  .navbar-toggler.menu-opened:after { transition:.3s; top:16px; border:0; height:2px; width:19px; background:#fff; transform:rotate(45deg); }
  .navbar-toggler.menu-opened:before { top:16px; width:19px; transform:rotate(-45deg); }
}

/* ---- Fixe Nav-Buttons (Buchen / Livecam / Suche) ---- */
.attr-nav { display:flex; align-items:center; }
.attr-nav .top-nav-area { display:flex; align-items:center; gap:.5rem; list-style:none; padding:0; margin:0; }
@media (max-width:991px){
  .attr-nav { position:absolute; right:60px; top:50%; transform:translateY(-50%); }
  .attr-nav .top-nav-area .label-text { display:none; }
}
@keyframes pulse {
  0%   { box-shadow: 0 0 10px rgba(255,255,255,.3); }
  50%  { box-shadow: 0 0 20px rgba(255,255,255,.7); }
  100% { box-shadow: 0 0 10px rgba(255,255,255,.3); }
}
.pulse-effect { animation: pulse 2s infinite; }

/* ---- Hero / Page-Title ---- */
.page-title-section { padding:125px 0; text-align:center; }
@media (max-width:1199px){ .page-title-section { padding:85px 0; } }
@media (max-width:991px){  .page-title-section { padding:60px 0; } }
@media (max-width:767px){  .page-title-section { padding:50px 0; } }
.cover-background { position:relative; background-size:cover; overflow:hidden; background-position:center; background-repeat:no-repeat; }
[data-overlay-dark],[data-overlay-light]{ position:relative; }
[data-overlay-dark] .container,[data-overlay-light] .container{ position:relative; z-index:2; }
[data-overlay-dark]:before,[data-overlay-light]:before{ content:''; position:absolute; inset:0; width:100%; height:100%; z-index:1; }
.theme-overlay[data-overlay-dark]:before{ background: var(--gm-primary); }
[data-overlay-light]:before{ background:#fff; }
[data-overlay-light="1"]:before{opacity:.1}[data-overlay-light="2"]:before{opacity:.2}[data-overlay-light="3"]:before{opacity:.3}
[data-overlay-light="4"]:before{opacity:.4}[data-overlay-light="5"]:before{opacity:.5}[data-overlay-light="6"]:before{opacity:.6}
[data-overlay-dark="1"]:before{opacity:.1}[data-overlay-dark="2"]:before{opacity:.2}[data-overlay-dark="3"]:before{opacity:.3}
[data-overlay-dark="4"]:before{opacity:.4}[data-overlay-dark="5"]:before{opacity:.5}[data-overlay-dark="6"]:before{opacity:.6}
[data-overlay-dark="7"]:before{opacity:.7}[data-overlay-dark="8"]:before{opacity:.8}[data-overlay-dark="9"]:before{opacity:.9}
.holder-claim h1 { margin:0 0 20px; font-size: var(--gm-fs-h1); color:#fff; }
.holder-quote h3 { color:#fff; font-size: var(--gm-fs-h2); margin:0; }

/* =========================================================================
   Startseiten-Hero (Goldstandard): Bild-Slider + Claim/CTA-Overlay + Ken-Burns
   ========================================================================= */
/* WICHTIG: .gm-hero NICHT overflow:hidden! Sonst klippt der Hero jedes
   aufklappende Kind-Popup (DS-IBE Datum/Gaeste) an seinem unteren Rand ab —
   unabhaengig vom z-index. Das Cropping fuer Video/Standbild gehoert auf den
   Media-Container (.main-slider), nicht auf den ganzen Hero. So bleibt das
   Such-Widget ausserhalb des Clipping-Kaefigs und sein Popup ragt frei. */
.gm-hero { position: relative; }
/* Scroll-Ziel des Hero-Pfeils: liegt direkt unter dem Hero (Weiss-Anfang).
   scroll-margin-top kompensiert den sticky Header -> der Sprung landet sauber
   im weissen Bereich (Kacheln sichtbar), nicht verdeckt am Hero-Uebergang. */
#gm-hero-end { display: block; height: 0; scroll-margin-top: 90px; }

/* Vollbild-Hero: Header + Hero fuellen exakt EINEN Viewport (kein Ueberstand
   unter den Fold). svh (small viewport height) statt vh loest das Portrait-/
   Mobile-Browserleisten-Problem (vh bezieht die ein-/ausblendenden UI-Leisten
   falsch ein; svh nimmt die kleinste sichere Hoehe -> Hero immer vollstaendig
   sichtbar, kein Springen). Header-Hoehe (sticky, im Fluss) wird abgezogen.
   vh als Fallback fuer aeltere Browser. */
.main-slider {
  position: relative; width: 100%; max-width: 100%;
  height: calc(100vh - 140px); height: calc(100svh - 140px);
  min-height: 480px;
  overflow: hidden; /* Cropping fuer Video/Standbild (Ken-Burns), klippt aber
                       NICHT das Such-Widget-Popup (liegt im gm-hero-content) */
}
@media (max-width: 991px) { .main-slider { height: calc(100svh - 96px); min-height: 440px; } }
.main-slider .carousel-inner,
.main-slider .carousel-item,
.main-slider picture { height: 100%; }
.main-slider .slide-img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }

/* Hero-Video: Das STANDBILD (c-001) ist die sofort sichtbare Basis (z-index 1).
   Das Video liegt DARUEBER (z-index 2), startet opacity:0 und blendet erst bei
   'playing' ein -> waehrend des Bufferns ist das Video unsichtbar, also zeigt
   Safari keinen nativen Lade-Spinner ueber sichtbarem Inhalt. Bei 'ended'/Fehler/
   mobil/reduce blendet das Video wieder aus und das Standbild bleibt. Beide unter
   dem Lesbarkeits-Verlauf (5) und Claim/Widget (10). */
.gm-hero-video, .gm-hero-still {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center;
}
.gm-hero-still { z-index: 1; pointer-events: none; background: var(--gm-primary); }
.gm-hero-still img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.gm-hero-video { z-index: 2; opacity: 0; transition: opacity 1s ease; background: transparent; pointer-events: none; }
.gm-hero-video.is-playing { opacity: 1; }

/* Ken-Burns: sanfter Zoom auf dem aktiven Slide */
.main-slider .carousel-item.active .slide-img { animation: gm-kenburns 7s ease-out both; }
@keyframes gm-kenburns { from { transform: scale(1); } to { transform: scale(1.07); } }

/* Bild "knallen" lassen: dezent Sättigung/Kontrast anheben (Standbild + Video) */
.gm-hero-still img, .gm-hero-video { filter: saturate(1.08) contrast(1.04); }

/* Lesbarkeits-Verlauf über dem Bild (unter dem Content) — bewusst leicht
   gehalten; der weiße Claim bleibt über Text-Schatten lesbar, das Foto kommt
   farbig durch (nicht mehr flächig abgedunkelt). */
.gm-hero .main-slider::after {
  content: ""; position: absolute; inset: 0; z-index: 5; pointer-events: none;
  background: linear-gradient(90deg, rgba(20,30,45,.40) 0%, rgba(20,30,45,.18) 34%, rgba(20,30,45,0) 60%),
              linear-gradient(0deg, rgba(20,30,45,.16) 0%, rgba(20,30,45,0) 30%);
}
@media (max-width: 767px) {
  .gm-hero .main-slider::after {
    background: linear-gradient(0deg, rgba(20,30,45,.52) 6%, rgba(20,30,45,.10) 52%, rgba(20,30,45,.14) 100%);
  }
}

/* Claim / CTA */
.gm-hero-content { position: absolute; inset: 0; z-index: 10; display: flex; align-items: center; pointer-events: none; }
@media (max-width: 767px) { .gm-hero-content { align-items: flex-end; padding-bottom: 3.5rem; } }
.gm-hero-content .container { pointer-events: none; }
.gm-hero-content a { pointer-events: auto; }
.gm-hero-eyebrow {
  color: #fff; text-transform: uppercase; letter-spacing: .18em; font-weight: 600;
  font-size: .8rem; margin: 0 0 .75rem; opacity: .92;
  text-shadow: 0 1px 10px rgba(20,30,45,.55), 0 1px 3px rgba(20,30,45,.45);
}
.gm-hero-claim {
  color: #fff; font-family: var(--gm-font-head); font-weight: 800; line-height: 1.05;
  font-size: clamp(2.2rem, 1.4rem + 4vw, 4.25rem); margin: 0 0 1.5rem;
  text-shadow: 0 2px 22px rgba(20,30,45,.5), 0 1px 5px rgba(20,30,45,.45);
}
.gm-hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0 0 1.25rem; }
/* Ab 1200px uebernimmt das DS-IBE-Suchwidget die Buchungsaktion (siehe unten) —
   der CTA-Button ist nur der Ersatz fuer die Breakpoints, in denen das Widget
   versteckt ist (Befund 2026-07-04: mobiler Hero hatte sonst keinen CTA). */
@media (min-width: 1200px) { .gm-hero-actions { display: none; } }

/* Such-Label ueber dem Widget (Pin + Uppercase, Markenfarbe-Weiss) */
.gm-hero-searchlabel {
  color: #fff; text-transform: uppercase; letter-spacing: .14em; font-weight: 600;
  font-size: .85rem; margin: 0 0 .6rem; display: inline-flex; align-items: center; gap: .5rem;
  text-shadow: 0 1px 12px rgba(20,30,45,.55), 0 1px 3px rgba(20,30,45,.45);
}
.gm-hero-searchlabel i { font-size: 1rem; }

/* DS-IBE-Such-Widget im Hero (Light DOM, Variante C — iframe ist tabu, Shadow DOM
   inkompatibel). Schadensbegrenzung: Reset-Grenze + Akzentfarbe auf Marke. */
.gm-hero-search { pointer-events: auto; max-width: 1040px; margin-top: .5rem; }
.gm-hero-search #dsIbeSearchWidgetContentHolder { width: 100%; }
/* Reset-Grenze: stoppt Vererbung von Host-Werten ins Widget (Box-Model bleibt sauber) */
#dsIbeWidget { contain: layout style; box-sizing: border-box; }
/* Popups (Datum/Gaeste) ueber die Widget-Breite. Das Widget setzt sie per
   Container-Query (@4xl) auf ~50% + rechte Haelfte (an das Feld gebunden);
   hier zentriert auf ~94% des Widget-Containers gezwungen (dezenter Rand
   links/rechts) und per z-index ganz nach vorn (ueber Hero/Content). */
#dsIbeWidget .twng-absolute.twng-top-full {
  width: 94% !important; left: 3% !important; right: 3% !important;
  transform: none !important; z-index: 1000 !important;
}
/* Akzentfarbe des Widgets auf Markenblau zwingen (#0f3c8b -> #323E52).
   Das Widget injiziert :root{--primary-color:#0f3c8b…}; hier ueberschrieben. */
:root {
  --primary-color: #323E52 !important;
  --primary-color-hover: #232c3b !important;
  --primary-color-light: #323E5288 !important;
  --secondary-color: #323E52 !important;
  --secondary-color-light: #323E5288 !important;
  --tertiary-color: #323E52 !important;
  --detail-bg-color: #323E52 !important;
}
/* Widget-Feldbeschriftungen (Datum/Gaeste + Platzhalter) linksbuendig statt zentriert.
   Greift nur die Feld-Spalten (twng-flex-col), nicht den runden Such-Button. */
#dsIbeWidget [class*="twng-flex-col"],
#dsIbeWidget [class*="twng-flex-col"] * { text-align: left !important; }
/* Such-Widget ab Tablet/iPad-Landscape ausblenden (nur auf Desktop >= 1200px zeigen) */
@media (max-width: 1199.98px) { .gm-hero-search, .gm-hero-searchlabel { display: none !important; } }

/* Scroll-Indikator */
.gm-hero-scroll {
  position: absolute; left: 50%; bottom: 1.5rem; transform: translateX(-50%); z-index: 11;
  width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.6);
  display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1rem;
  animation: gm-bounce 2.2s infinite; text-decoration: none;
}
.gm-hero-scroll:hover { background: rgba(255,255,255,.15); color: #fff; }
@keyframes gm-bounce { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(6px); } }
@media (max-width: 767px) { .gm-hero-scroll { display: none; } }

/* Controls eleganter: dezente, halbtransparente Kreise */
.main-slider .carousel-control-prev,
.main-slider .carousel-control-next { width: auto; opacity: 1; z-index: 12; }
.main-slider .carousel-control-prev { left: 18px; justify-content: flex-start; }
.main-slider .carousel-control-next { right: 18px; justify-content: flex-end; }
.main-slider .gm-arrow {
  display: flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; border-radius: 50%;
  background: rgba(255,255,255,.18); color: #fff; backdrop-filter: blur(4px);
  border: 1px solid rgba(255,255,255,.55); font-size: 17px; transition: background .25s ease, border-color .25s ease;
}
.main-slider .carousel-control-prev:hover .gm-arrow,
.main-slider .carousel-control-next:hover .gm-arrow { background: rgba(255,255,255,.32); border-color: #fff; }
@media (max-width: 767px) { .main-slider .carousel-control-prev, .main-slider .carousel-control-next { display: none; } }

/* Indikatoren: feine Striche in Markenfarbe */
.main-slider .carousel-indicators { margin-bottom: 1.5rem; z-index: 12; gap: .4rem; }
.main-slider .carousel-indicators [data-bs-target] {
  width: 26px; height: 4px; border-radius: 2px; border: 0; background: rgba(255,255,255,.5); opacity: 1; transition: background .25s ease, width .25s ease;
}
.main-slider .carousel-indicators .active { background: #fff; width: 38px; }

@media (prefers-reduced-motion: reduce) {
  .main-slider .carousel-item.active .slide-img { animation: none; }
  .gm-hero-scroll { animation: none; }
}

/* ---- Buttons (.gmbtn) ---- */
.gmbtn { background: var(--gm-primary); cursor:pointer; font-weight:600; color:#fff; letter-spacing:1px; font-size:14px; line-height:20px; padding:12px 28px; border-radius: var(--gm-radius); text-transform:uppercase; display:inline-block; vertical-align:middle; position:relative; transition:.3s linear; border:none; }
.gmbtn:hover, .gmbtn:focus, a.gmbtn:hover { color:#fff; background: var(--gm-primary-hover); text-decoration:none; }
.gmbtn.white { background:#fff; color: var(--gm-primary); }
.gmbtn.white:hover { color:#fff; background: var(--gm-primary-hover); }
.gmbtn.small { font-size:12px; padding:8px 20px; }
.gmbtn.transparent { background:transparent; border:1px solid var(--gm-border); color: var(--gm-ink); }
.gmbtn.transparent:hover { background: var(--gm-primary); border-color: var(--gm-primary); color:#fff; }
@media (max-width:991px){ .gmbtn { padding:10px 24px; font-size:13px; } }

/* ---- Footer (Goldstandard) ---- */
footer { color: var(--gm-footer-text); }
.footer-area { background: var(--gm-footer-bg); padding: 72px 0 44px; }
@media (max-width:1199px){ .footer-area { padding: 56px 0 40px; } }
@media (max-width:767px){  .footer-area { padding: 44px 0 32px; } }

/* Spalten-Layout: gleichmaessige Abstaende, sauberer Umbruch */
.gm-footer-cols { row-gap: 2.5rem; }
.gm-footer-col { padding-left: .75rem; padding-right: .75rem; }
@media (min-width: 992px){ .gm-footer-col + .gm-footer-col { box-shadow: inset 1px 0 0 rgba(20,30,45,.06); } }

/* Spalten-Ueberschriften: EB Garamond, Markenfarbe, einheitlich linksbuendig */
/* h2+h3: Footer-Spaltentitel sind seit Heading-Order-Fix (2026-07-03) h2;
   h3 bleibt fuer Alt-Markup mitgestylt — Optik identisch. */
footer h2, footer h3 {
  font-family: var(--gm-font-head); font-size: 1.375rem; font-weight: 800; line-height: 1.2;
  color: var(--gm-primary); letter-spacing: .01em; text-align: left;
  margin: 0 0 1.25rem; padding: 0; position: relative;
}
footer h2::after, footer h3::after { content:""; display:block; width:40px; height:3px; background: var(--gm-sea); margin-top:.65rem; }
footer p { margin-bottom: 0; }
footer a { color: var(--gm-footer-text); text-decoration: none; transition: color .2s ease; }
footer a:hover { color: var(--gm-primary); }

/* Icon-Listen (Anschrift/Kontakt) — ohne Bullets, sauber ausgerichtet */
.gm-footer-list { list-style: none; margin: 0; padding: 0; }
.gm-footer-list li { display: flex; align-items: flex-start; gap: .6rem; margin-bottom: .7rem; line-height: 1.55; }
.gm-footer-list li:last-child { margin-bottom: 0; }
.gm-footer-list > li > i { color: var(--gm-sea); font-size: 1.05rem; line-height: 1.5; flex: 0 0 1.25rem; text-align: center; }

/* Reine Link-Listen (Rechtliche Seiten / Pressemappe) mit Chevron */
.gm-footer-links li { gap: 0; }
.gm-footer-links a { display: inline-flex; align-items: center; }
.gm-footer-links a::before { content: "\203A"; color: var(--gm-sea); margin-right: .45rem; font-weight: 700; transition: transform .2s ease; }
.gm-footer-links a:hover::before { transform: translateX(3px); }

/* Siegel-Reihe (Wir sind fuer Sie da!) — als dezente weisse Badges */
.gm-footer-badges { display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; margin-bottom: 1.25rem; }
.gm-footer-badges img { height: 58px; width: auto; background: #fff; padding: 6px; border-radius: 6px; box-shadow: 0 1px 4px rgba(20,30,45,.08); }

/* Suchfeld im Footer (Feld + Lupe-Button) */
.gm-footer-search { display: flex; margin-top: 1.1rem; max-width: 280px; }
.gm-footer-search input {
  flex: 1 1 auto; min-width: 0; font: inherit; color: var(--gm-text); background: #fff;
  border: 1px solid var(--gm-border); border-right: 0; border-radius: 4px 0 0 4px; padding: .5rem .75rem;
}
.gm-footer-search input::placeholder { color: var(--gm-footer-text); }
.gm-footer-search input:focus { outline: 2px solid var(--gm-sea); outline-offset: -1px; position: relative; z-index: 1; }
.gm-footer-search button {
  flex: 0 0 auto; border: 0; cursor: pointer; color: #fff; background: var(--gm-primary);
  padding: 0 .9rem; border-radius: 0 4px 4px 0; font-size: 1rem; transition: background .2s ease;
}
.gm-footer-search button:hover { background: var(--gm-primary-hover); }

/* ---- Footer-Bottom: Copyright + Partner-Logos (abgesetzt) ---- */
.gm-footer-bottom { margin-top: 3.5rem; padding-top: 2.25rem; border-top: 1px solid rgba(20,30,45,.10); text-align: center; }
.gm-footer-bottom p { margin: 0 0 1.1rem !important; }
.gm-footer-bottom p:last-child { margin-bottom: 0 !important; }
.gm-footer-bottom small { color: var(--gm-footer-text); letter-spacing: .02em; }
.gm-footer-bottom a { display: inline-block; }
/* Footer-Social: identische Icon-Auswahl/Struktur wie .gm-topbar-social
   (some_head-Snippet), nur Farbe an den hellen Footer-Hintergrund angepasst
   (Analog-Vorgabe 2026-07-04 — vorher eigene .gmbtn-Pillen mit abweichenden
   Icons, jetzt eine einzige Quelle fuer die Social-Links). */
.gm-footer-social .gm-social { justify-content: center; gap: 1.1rem; }
.gm-footer-social .gm-social a { color: var(--gm-footer-text); font-size: 1.35rem; }
.gm-footer-social .gm-social a:hover, .gm-footer-social .gm-social a:focus { color: var(--gm-primary) !important; opacity: 1; }
/* Partner-Logos einheitlich gehoeht + vertikal mittig */
.gm-footer-bottom img { vertical-align: middle; }
.gm-footer-bottom p:last-child img { height: 34px; width: auto; margin: 0 .6rem; opacity: .9; transition: opacity .2s ease; }
.gm-footer-bottom p:last-child a:hover img { opacity: 1; }
@media (max-width:575px){ .gm-footer-bottom p:last-child img { height: 28px; } }

/* ---- Feature-Boxes / Cards ---- */
.feature-box-02 { margin-top:-190px; }
@media (max-width:1199px){ .feature-box-02 { margin-top:-70px; } }
@media (max-width:991px){  .feature-box-02 { margin-top:0; } }
.box-shadow-large { box-shadow: 0 0 12px rgba(0,0,0,.1); }

/* ---- back-to-top ---- */
#back-to-top { position:fixed; right:20px; bottom:20px; display:none; z-index:1000; }
#back-to-top.show { display:inline-flex; }

/* ---- Diverse FlatCore-Utilities (im Content/Snippets genutzt) ---- */
.text-theme-color { color: var(--gm-primary) !important; }
.bg-theme { background: var(--gm-primary) !important; color:#fff; }
.alt-font { font-family: var(--gm-font-head); }
.no-padding { padding:0 !important; }
.box-shadow-large { box-shadow:0 0 12px rgba(0,0,0,.1); }

/* ---- Galerie (stream-gallery Plugin) + Lightbox ---- */
.se-gallery-item { display:block; overflow:hidden; border-radius: var(--gm-radius); background:var(--gm-cream); }
.se-gallery-item img { width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .4s ease; }
.se-gallery-item:hover img,
.se-gallery-item:focus-visible img { transform:scale(1.05); }
.se-lightbox { position:fixed; inset:0; z-index:2000; background:rgba(50,62,82,.94); display:none; align-items:center; justify-content:center; }
.se-lightbox.open { display:flex; }
.se-lb-fig { margin:0; max-width:92vw; max-height:92vh; text-align:center; }
.se-lb-img { max-width:92vw; max-height:82vh; object-fit:contain; box-shadow:0 10px 40px rgba(0,0,0,.5); }
.se-lb-cap { color:#fff; margin-top:.75rem; font-size:.95rem; }
.se-lb-close, .se-lb-prev, .se-lb-next { position:absolute; background:transparent; border:0; color:#fff; cursor:pointer; line-height:1; }
.se-lb-close { top:18px; right:24px; font-size:2.5rem; }
.se-lb-prev, .se-lb-next { top:50%; transform:translateY(-50%); font-size:3rem; padding:.5rem 1rem; }
.se-lb-prev { left:8px; } .se-lb-next { right:8px; }
.se-lb-close:focus-visible, .se-lb-prev:focus-visible, .se-lb-next:focus-visible { outline:3px solid #fff; outline-offset:2px; }
@media (prefers-reduced-motion: reduce){ .se-gallery-item img { transition:none; } }

/* ---- Download-Liste (stream-windfluechter / PDFs) ---- */
.se-download { border:1px solid var(--gm-border); border-radius:var(--gm-radius); color:var(--gm-text); transition:.2s; text-decoration:none; }
.se-download:hover { background:var(--gm-primary); color:#fff; border-color:var(--gm-primary); }
.se-download i { color:var(--gm-primary); font-size:1.25rem; }
.se-download:hover i { color:#fff; }

/* =========================================================================
   Breadcrumb (Goldstandard) — ruhig, dezent, akademisch. Home-Icon + Chevron-
   Trenner statt Bootstrap-Slash; Links gedaempft, aktuelle Seite in #323E52.
   Liegt als feiner Abschluss zwischen Content und Footer-Flaeche.
   ========================================================================= */
.gm-breadcrumb-nav { padding: 1.1rem 0 1.15rem; border-top: 1px solid var(--gm-border); }
.gm-breadcrumb-nav .breadcrumb {
  --bs-breadcrumb-divider: '';
  display: flex; flex-wrap: wrap; align-items: center;
  margin: 0; padding: 0; list-style: none;
  font-size: .8rem; letter-spacing: .02em; line-height: 1.5;
}
.gm-breadcrumb-nav .breadcrumb-item { display: inline-flex; align-items: center; }
.gm-breadcrumb-nav .breadcrumb-item a { color: var(--gm-text); text-decoration: none; transition: color .15s ease; }
.gm-breadcrumb-nav .breadcrumb-item a:hover,
.gm-breadcrumb-nav .breadcrumb-item a:focus-visible { color: var(--gm-sea); }
.gm-breadcrumb-nav .breadcrumb-item.active { color: var(--gm-primary); font-weight: 600; }
/* Chevron-Trenner (ersetzt Bootstrap-Slash) */
.gm-breadcrumb-nav .breadcrumb-item + .breadcrumb-item { padding-left: 0; }
.gm-breadcrumb-nav .breadcrumb-item + .breadcrumb-item::before {
  content: "\203A"; color: var(--gm-border); padding: 0 .6rem; font-size: 1.05em; line-height: 1;
}
/* Home-Icon dezent, vertikal sauber ausgerichtet */
.gm-breadcrumb-nav .gm-bc-home a { display: inline-flex; align-items: center; color: var(--gm-text); }
.gm-breadcrumb-nav .gm-bc-home i { font-size: .95rem; }
.gm-breadcrumb-nav .gm-bc-home a:hover i { color: var(--gm-sea); }
