/* =========================================================
   Freiwillige Feuerwehr Syke – Template "ffsyke"
   Variante C "Rot kompakt". Alle Farben hier zentral.
   ========================================================= */

:root {
  --ffs-red: #9D2E25;
  --ffs-red-dark: #7d241d;
  --ffs-red-darker: #5f1b16;
  --ffs-gold: #F2B705;
  --ffs-ink: #1d1d1f;
  --ffs-muted: #5c5f66;
  --ffs-soft: #f6f4f3;
  --ffs-line: #e6e2e0;
  --ffs-white: #ffffff;
  --ffs-radius: 10px;
  --ffs-container: 1160px;
  --ffs-header-h: 88px;
  --ffs-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  /* Cassiopeia/Bootstrap-Variablen auf unsere Farben setzen */
  --cassiopeia-color-primary: var(--ffs-red);
  --cassiopeia-color-link: var(--ffs-red);
  --cassiopeia-color-hover: var(--ffs-red-dark);
  --cassiopeia-font-family-body: var(--ffs-font);
  --cassiopeia-font-family-headings: var(--ffs-font);
  --link-color: var(--ffs-red);
  --link-color-rgb: 157, 46, 37;
  --link-hover-color: var(--ffs-red-dark);
  --bs-primary: var(--ffs-red);
  --bs-primary-rgb: 157, 46, 37;
  --bs-link-color: var(--ffs-red);
  --bs-link-color-rgb: 157, 46, 37;
  --bs-link-hover-color: var(--ffs-red-dark);
  --bs-body-font-family: var(--ffs-font);
  --bs-body-color: var(--ffs-ink);
}

/* ---------- Grundlagen ---------- */
html { scroll-padding-top: calc(var(--ffs-header-h) + 16px); }
body.ffs {
  margin: 0;
  font-family: var(--ffs-font);
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--ffs-ink);
  background: var(--ffs-white);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.ffs a { color: var(--ffs-red); text-underline-offset: 2px; }
.ffs a:hover { color: var(--ffs-red-dark); }
.ffs img { max-width: 100%; height: auto; }
.ffs h1, .ffs h2, .ffs h3, .ffs h4 { font-family: var(--ffs-font); line-height: 1.2; color: var(--ffs-ink); font-weight: 700; }
.ffs h1 { font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.4rem); margin: 0 0 .6em; }
.ffs h2 { font-size: clamp(1.4rem, 1.15rem + .9vw, 1.85rem); margin: 1.4em 0 .5em; }
.ffs h3 { font-size: 1.3rem; margin: 1.3em 0 .4em; }
.ffs :focus-visible { outline: 3px solid var(--ffs-gold); outline-offset: 2px; }

.ffs-container { width: 100%; max-width: var(--ffs-container); margin-inline: auto; padding-inline: 24px; box-sizing: border-box; }

.ffs-skip {
  position: absolute; left: 12px; top: -60px; z-index: 1000;
  background: var(--ffs-white); color: var(--ffs-red); padding: 10px 16px; border-radius: 6px; font-weight: 600;
}
.ffs-skip:focus { top: 12px; }

/* ---------- Kopfzeile ---------- */
.ffs-header {
  position: sticky; top: 0; z-index: 900;
  background: var(--ffs-red);
  color: var(--ffs-white);
  box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
}
.ffs-header__inner {
  max-width: 1400px; margin-inline: auto; padding-inline: 24px; box-sizing: border-box;
  min-height: var(--ffs-header-h);
  display: flex; align-items: center; gap: 20px;
}
.ffs-brand { flex-shrink: 0; display: block; line-height: 0; }
.ffs-brand img { width: 280px; height: auto; }

/* Menü (mod_menu Standard-Ausgabe) */
.ffs-nav { margin-left: auto; }
.ffs-nav ul { list-style: none; margin: 0; padding: 0; }
.ffs-nav > ul,
.ffs-nav .mod-menu { display: flex; align-items: center; gap: 2px; flex-wrap: nowrap; }
.ffs-nav li { position: relative; }
.ffs-nav a,
.ffs-nav .mod-menu__heading,
.ffs-nav .mod-menu__separator {
  display: flex; align-items: center; gap: 6px;
  color: var(--ffs-white); text-decoration: none; white-space: nowrap;
  font-weight: 600; font-size: .95rem; padding: 9px 11px; border-radius: 6px;
  cursor: pointer;
}
.ffs-nav a:hover,
.ffs-nav li:hover > a,
.ffs-nav li:hover > .mod-menu__heading { background: rgba(0, 0, 0, .15); color: var(--ffs-white); }
.ffs-nav .current > a,
.ffs-nav .active > a,
.ffs-nav .active > .mod-menu__heading { background: rgba(0, 0, 0, .24); color: var(--ffs-white); }

/* Untermenü-Pfeil (per JS eingefügt) */
.ffs-sub-toggle {
  display: none; background: none; border: 0; color: inherit; padding: 0 6px; cursor: pointer; line-height: 0;
}
.ffs-nav .parent > a::after,
.ffs-nav .parent > .mod-menu__heading::after {
  content: ""; width: 0; height: 0; margin-left: 2px;
  border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 6px solid currentColor;
}

/* Desktop-Dropdown */
.ffs-nav .mod-menu__sub,
.ffs-nav li > ul {
  position: absolute; top: calc(100% + 6px); left: 0; min-width: 230px;
  background: var(--ffs-white); border-radius: 8px; padding: 6px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .18);
  display: flex; flex-direction: column; gap: 0;
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: opacity .15s ease, transform .15s ease, visibility .15s;
}
.ffs-nav li > ul::before { content: ""; position: absolute; left: 0; right: 0; top: -8px; height: 8px; }
.ffs-nav li:hover > ul,
.ffs-nav li:focus-within > ul,
.ffs-nav li.is-open > ul { opacity: 1; visibility: visible; transform: none; }
.ffs-nav li > ul a {
  color: var(--ffs-ink); font-weight: 500; padding: 9px 12px; border-radius: 6px; white-space: normal;
}
.ffs-nav li > ul a:hover,
.ffs-nav li > ul li:hover > a { background: var(--ffs-soft); color: var(--ffs-red); }
.ffs-nav li > ul .current > a,
.ffs-nav li > ul .active > a { background: var(--ffs-soft); color: var(--ffs-red); }
.ffs-nav li > ul .parent > a::after { display: none; }

.ffs-nav__intern { display: none; }

/* Aktionen rechts */
.ffs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.ffs-btn-intern {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--ffs-white); color: var(--ffs-red) !important; border: 0;
  font: inherit; font-weight: 700; font-size: .95rem; text-decoration: none;
  padding: 9px 16px; border-radius: 6px; cursor: pointer; white-space: nowrap;
}
.ffs-btn-intern:hover { background: #fbeceb; }
.ffs-btn-intern[aria-expanded="true"] .ffs-caret { transform: rotate(180deg); }
.ffs-intern { position: relative; }
.ffs-intern__menu {
  position: absolute; right: 0; top: calc(100% + 10px); min-width: 260px;
  background: var(--ffs-white); border-radius: 8px; padding: 6px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .2);
}
.ffs-intern__menu[hidden] { display: none; }
.ffs-intern__menu ul { list-style: none; margin: 0; padding: 0; }
.ffs-intern__menu a {
  display: block; color: var(--ffs-ink); text-decoration: none; padding: 9px 12px; border-radius: 6px; font-weight: 500;
}
.ffs-intern__menu a:hover,
.ffs-intern__menu .current > a { background: var(--ffs-soft); color: var(--ffs-red); }
.ffs-intern__menu ul ul { padding-left: 12px; }

.ffs-toggle { display: none; background: none; border: 0; color: var(--ffs-white); padding: 6px; cursor: pointer; line-height: 0; }
.ffs-toggle .ffs-icon-close { display: none; }
.ffs-toggle[aria-expanded="true"] .ffs-icon-open { display: none; }
.ffs-toggle[aria-expanded="true"] .ffs-icon-close { display: inline; }

/* ---------- Startbild (Modul "Eigener Inhalt", Layout "hero") ---------- */
.ffs-hero-wrap { background: var(--ffs-soft); padding-bottom: 40px; }
.ffs-hero__media img { display: block; width: 100%; height: auto; aspect-ratio: 21 / 8; max-height: 600px; object-fit: cover; }
.ffs-hero__box {
  position: relative; box-sizing: border-box;
  width: calc(100% - 48px); max-width: calc(var(--ffs-container) - 48px);
  margin: -70px auto 0; padding: 26px 32px;
  background: var(--ffs-white); border-left: 6px solid var(--ffs-red);
  box-shadow: 0 8px 30px rgba(0, 0, 0, .12);
}
.ffs-hero__media + .ffs-hero__box { margin-top: -70px; }
.ffs-hero__box:first-child { margin-top: 40px; }
.ffs-hero__title { margin: 0 0 4px !important; font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.1rem) !important; }
.ffs-hero__text { color: var(--ffs-muted); }
.ffs-hero__text > :last-child { margin-bottom: 0; }

/* ---------- Inhalt ---------- */
.ffs-breadcrumbs { padding-top: 18px; font-size: .9rem; }
.ffs-breadcrumbs .breadcrumb { background: none; padding: 0; margin: 0; }
.ffs-layout { flex: 1 0 auto; padding-top: 44px; padding-bottom: 64px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
.ffs-layout.has-sidebar { grid-template-columns: minmax(0, 1fr) 300px; }
.ffs-main:focus { outline: none; }
.ffs-main > :first-child { margin-top: 0; }

/* Lesebreite für einzelne Beiträge */
.ffs .com-content-article { max-width: 820px; }
.ffs .com-content-article .page-header h1,
.ffs .com-content-article .page-header h2 { margin-top: 0; }
.ffs .article-info,
.ffs dl.article-info { color: var(--ffs-muted); font-size: .9rem; margin: 0 0 1.2em; }
.ffs .article-info dd { margin: 0; display: inline-block; margin-right: 14px; }
.ffs .article-info-term { display: none; }
.ffs figure { margin: 1.5em 0; }
.ffs figcaption { color: var(--ffs-muted); font-size: .9rem; margin-top: 6px; }
.ffs .com-content-article__body img,
.ffs .item-content img { border-radius: 6px; }
.ffs iframe { max-width: 100%; }

/* Blog- und Startseiten-Listen als Karten */
.ffs .blog-items { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); margin-bottom: 32px; }
.ffs .blog-items.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ffs .blog-items.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ffs .blog-items.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ffs .blog-item {
  background: var(--ffs-white); border: 1px solid var(--ffs-line); border-radius: var(--ffs-radius);
  overflow: hidden; display: flex; flex-direction: column; margin: 0;
}
.ffs .blog-item .item-image,
.ffs .blog-item figure { margin: 0; float: none !important; }
.ffs .blog-item .item-image img,
.ffs .blog-item figure img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0; }
.ffs .blog-item .item-content { padding: 18px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.ffs .blog-item .page-header h2,
.ffs .blog-item h2 { font-size: 1.2rem; margin: 4px 0 8px; }
.ffs .blog-item h2 a { color: var(--ffs-ink); text-decoration: none; }
.ffs .blog-item h2 a:hover { color: var(--ffs-red); }
.ffs .blog-item p { color: var(--ffs-muted); font-size: .97rem; }
.ffs .blog-item .readmore { margin-top: auto; }
.ffs .items-leading .blog-item { border: 0; border-radius: 0; }
.ffs .items-leading .blog-item .item-content { padding: 0; }
.ffs .items-leading .blog-item .item-image img { aspect-ratio: auto; border-radius: var(--ffs-radius); margin-bottom: 16px; }

/* Buttons, Formulare, Paginierung */
.ffs .btn-primary,
.ffs .btn-primary:visited {
  --bs-btn-bg: var(--ffs-red); --bs-btn-border-color: var(--ffs-red);
  --bs-btn-hover-bg: var(--ffs-red-dark); --bs-btn-hover-border-color: var(--ffs-red-dark);
  --bs-btn-active-bg: var(--ffs-red-darker); --bs-btn-active-border-color: var(--ffs-red-darker);
  background-color: var(--ffs-red); border-color: var(--ffs-red); color: var(--ffs-white);
}
.ffs .btn-primary:hover, .ffs .btn-primary:focus { background-color: var(--ffs-red-dark); border-color: var(--ffs-red-dark); color: var(--ffs-white); }
.ffs .btn-secondary { color: var(--ffs-ink); }
.ffs .form-control:focus, .ffs .form-select:focus {
  border-color: var(--ffs-red); box-shadow: 0 0 0 .2rem rgba(157, 46, 37, .2);
}
.ffs .readmore .btn,
.ffs a.btn-secondary.readmore { background: none; border: 0; padding: 0; color: var(--ffs-red); font-weight: 600; }
.ffs .pagination .page-link { color: var(--ffs-red); }
.ffs .pagination .active .page-link,
.ffs .pagination .page-item.active .page-link { background: var(--ffs-red); border-color: var(--ffs-red); color: var(--ffs-white); }

/* Tabellen (z. B. Listen im internen Bereich) */
.ffs table { border-collapse: collapse; width: 100%; }
.ffs .com-content-article__body table td,
.ffs .com-content-article__body table th { border-bottom: 1px solid var(--ffs-line); padding: 8px 10px; text-align: left; }
.ffs .com-content-article__body table th { background: var(--ffs-soft); }

/* Module (Kartenstil von Cassiopeia) */
.ffs .card { border-color: var(--ffs-line); border-radius: var(--ffs-radius); }
.ffs .card-header { background: var(--ffs-soft); font-weight: 700; }

/* ---------- Fußzeile ---------- */
.ffs-footer { background: var(--ffs-ink); color: #cfcfcf; font-size: .95rem; margin-top: auto; }
.ffs-footer__inner { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; flex-wrap: wrap; padding-top: 36px; padding-bottom: 20px; }
.ffs-footer__about strong { display: block; color: var(--ffs-white); font-size: 1.05rem; margin-bottom: 4px; }
.ffs-footer a { color: var(--ffs-white); text-decoration: none; }
.ffs-footer a:hover { color: var(--ffs-gold); }
.ffs-footer__links ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 22px; flex-wrap: wrap; }
.ffs-footer__links a { padding: 0; }
.ffs-footer__copy { color: #9a9a9a; font-size: .85rem; padding-bottom: 28px; }
.ffs-footer__stripe { height: 8px; background: var(--ffs-red); }

/* ---------- Mobil / Tablet ---------- */
@media (max-width: 1339.98px) {
  :root { --ffs-header-h: 64px; }
  .ffs-header__inner { gap: 12px; padding-inline: 16px; }
  .ffs-brand img { width: 210px; }
  .ffs-actions { margin-left: auto; }
  .ffs-toggle { display: inline-flex; }
  .ffs-btn-intern { padding: 9px 11px; }
  .ffs-btn-intern span, .ffs-btn-intern .ffs-caret { display: none; }
  .ffs-intern { display: none; } /* intern-Menü steckt mobil im Hauptmenü */
  .ffs-actions .ffs-intern + .ffs-toggle { margin-left: 0; }

  .ffs-nav {
    position: absolute; left: 0; right: 0; top: 100%;
    background: var(--ffs-red-dark);
    max-height: calc(100vh - var(--ffs-header-h)); overflow-y: auto;
    padding: 8px 16px 20px; box-shadow: 0 12px 24px rgba(0, 0, 0, .25);
    display: none; margin: 0;
  }
  .ffs-nav.is-open { display: block; }
  .ffs-nav > ul, .ffs-nav .mod-menu { flex-direction: column; align-items: stretch; gap: 0; }
  .ffs-nav li { display: flex; flex-wrap: wrap; align-items: center; border-bottom: 1px solid rgba(255, 255, 255, .12); }
  .ffs-nav a, .ffs-nav .mod-menu__heading, .ffs-nav .mod-menu__separator { flex: 1; padding: 13px 8px; font-size: 1.05rem; border-radius: 0; white-space: normal; }
  .ffs-nav a:hover, .ffs-nav li:hover > a { background: none; }
  .ffs-nav .current > a, .ffs-nav .active > a { background: none; color: var(--ffs-gold); }
  .ffs-nav .parent > a::after, .ffs-nav .parent > .mod-menu__heading::after { display: none; }
  .ffs-sub-toggle { display: inline-flex; padding: 12px; }
  .ffs-sub-toggle svg { transition: transform .15s; }
  .ffs-nav li.is-open > .ffs-sub-toggle svg { transform: rotate(180deg); }

  .ffs-nav li > ul,
  .ffs-nav .mod-menu__sub {
    position: static; width: 100%; min-width: 0; flex-basis: 100%;
    background: none; box-shadow: none; padding: 0 0 8px 14px; border-radius: 0;
    opacity: 1; visibility: visible; transform: none; transition: none; display: none;
  }
  .ffs-nav li:hover > ul, .ffs-nav li:focus-within > ul { display: none; }
  .ffs-nav li.is-open > ul { display: flex; }
  .ffs-nav li > ul li { border-bottom: 0; }
  .ffs-nav li > ul a { color: rgba(255, 255, 255, .9); padding: 9px 8px; font-size: 1rem; }
  .ffs-nav li > ul a:hover, .ffs-nav li > ul .current > a, .ffs-nav li > ul .active > a { background: none; color: var(--ffs-gold); }

  .ffs-nav__intern { display: block; margin-top: 18px; }
  .ffs-nav__label {
    display: flex; align-items: center; gap: 8px; margin: 0 0 4px;
    font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255, 255, 255, .7);
  }

  .ffs-layout.has-sidebar { grid-template-columns: minmax(0, 1fr); }
  .ffs .blog-items.columns-3, .ffs .blog-items.columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
  body.ffs { font-size: 1rem; }
  .ffs-container { padding-inline: 16px; }
  .ffs-brand img { width: 190px; }
  .ffs-hero__media img { aspect-ratio: 16 / 10; }
  .ffs-hero__box { width: calc(100% - 32px); margin-top: -40px; padding: 18px 20px; }
  .ffs-hero__media + .ffs-hero__box { margin-top: -40px; }
  .ffs-hero-wrap { padding-bottom: 28px; }
  .ffs-layout { padding-top: 28px; padding-bottom: 44px; }
  .ffs .blog-items.columns-2, .ffs .blog-items.columns-3, .ffs .blog-items.columns-4 { grid-template-columns: minmax(0, 1fr); }
  .ffs-footer__inner { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .ffs * { transition: none !important; }
}

@media print {
  .ffs-header, .ffs-footer, .ffs-hero-wrap, .ffs-sidebar, .ffs-skip { display: none !important; }
  .ffs-layout { padding: 0; }
}

/* =========================================================
   1.0.3 – Absicherungen
   ========================================================= */

/* Menü-Links nie unterstreichen (auch aktive Seite) */
.ffs-nav a, .ffs-nav a:hover, .ffs-nav a[aria-current],
.ffs-intern__menu a { text-decoration: none !important; }

/* Desktop: Hauptmenü immer waagerecht – auch wenn im Modul ein
   Cassiopeia-Layout (Dropdown/Collapsible) gewählt ist oder ein Wrapper drumherum liegt */
@media (min-width: 1340px) {
  .ffs-nav ul.mod-menu,
  .ffs-nav > ul,
  .ffs-nav > div > ul {
    display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important;
    align-items: center !important; gap: 2px !important; margin: 0 !important; padding: 0 !important;
  }
  .ffs-nav ul.mod-menu > li,
  .ffs-nav > ul > li { display: block !important; flex: 0 0 auto !important; margin: 0 !important; padding: 0 !important; }
  .ffs-nav li > ul,
  .ffs-nav li > ul.mm-collapse { display: flex !important; flex-direction: column !important; height: auto !important; }
  .ffs-nav .mm-toggler { display: none !important; }
}
@media (max-width: 1339.98px) {
  .ffs-nav ul.mod-menu, .ffs-nav > div > ul { display: flex !important; flex-direction: column !important; }
  .ffs-nav li.is-open > ul { display: flex !important; height: auto !important; }
  .ffs-nav li:not(.is-open) > ul { display: none !important; }
  .ffs-nav .mm-toggler { display: none !important; }
}

/* Brotkrumen auf der Startseite ausblenden */
.is-home .ffs-breadcrumbs { display: none; }

/* Bilder im Einleitungstext von Karten: volle Breite statt alter Float-/Breitenangaben */
.ffs .blog-item .item-content img {
  float: none !important; display: block; width: 100% !important; max-width: 100%;
  height: auto !important; margin: 0 0 14px !important; border-radius: 6px;
}
.ffs .blog-item .item-content p { text-align: left !important; }
.ffs .blog-item .item-content [style*="float"] { float: none !important; }

/* Bearbeiten-Symbol (nur für Angemeldete mit Rechten) dezent */
.ffs .blog-item .icons, .ffs .com-content-article .icons { font-size: .85rem; }
.ffs .blog-item .icons a { text-decoration: none; }

/* ---------- Bildergalerie in Beiträgen ---------- */
.ffs .ffs-gallery {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin: 1.6em 0;
}
.ffs .ffs-gallery a { display: block; border-radius: 6px; overflow: hidden; background: var(--ffs-soft); line-height: 0; }
.ffs .ffs-gallery img {
  width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0 !important; margin: 0 !important;
  transition: transform .25s ease;
}
.ffs .ffs-gallery a:hover img { transform: scale(1.04); }
.ffs .com-content-article__body a > img { cursor: zoom-in; }
@media (max-width: 767.98px) { .ffs .ffs-gallery { grid-template-columns: repeat(3, 1fr); gap: 6px; } }
@media (max-width: 420px)    { .ffs .ffs-gallery { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Lightbox ---------- */
.ffs-lb-open { overflow: hidden; }
.ffs-lb {
  position: fixed; inset: 0; z-index: 2000; background: rgba(10, 10, 10, .95);
  display: flex; align-items: center; justify-content: center; padding: 56px 64px;
}
.ffs-lb[hidden] { display: none; }
.ffs-lb__fig { margin: 0; max-width: 100%; max-height: 100%; text-align: center; }
.ffs-lb__fig img { max-width: 100%; max-height: calc(100vh - 130px); width: auto; height: auto; border-radius: 4px; box-shadow: 0 10px 40px rgba(0,0,0,.5); }
.ffs-lb__fig figcaption { color: #ddd; font-size: .9rem; margin-top: 10px; }
.ffs-lb button {
  position: absolute; background: rgba(255,255,255,.12); color: #fff; border: 0; cursor: pointer;
  width: 48px; height: 48px; border-radius: 50%; font-size: 32px; line-height: 1; display: flex; align-items: center; justify-content: center;
}
.ffs-lb button:hover { background: var(--ffs-red); }
.ffs-lb button[hidden] { display: none; }
.ffs-lb__close { top: 12px; right: 12px; }
.ffs-lb__prev { left: 10px; top: 50%; transform: translateY(-50%); }
.ffs-lb__next { right: 10px; top: 50%; transform: translateY(-50%); }
@media (max-width: 767.98px) {
  .ffs-lb { padding: 56px 8px; }
  .ffs-lb__prev, .ffs-lb__next { top: auto; bottom: 14px; transform: none; }
}

/* Galerie: alte Größen-/Float-Angaben der Bilder ignorieren */
.ffs .ffs-gallery img { width: 100% !important; height: 100% !important; float: none !important; max-width: none; }
.ffs p.ffs-gallery { text-align: left !important; }
.ffs .com-content-article__body img:not(.ffs-gallery img) { cursor: zoom-in; }

/* ---------- Karten: einheitlich (1.0.7) ---------- */
.ffs .blog-item > .item-image,
.ffs .blog-item > figure { order: -1; margin: 0 !important; float: none !important; width: 100% !important; }
.ffs .blog-item > .item-image img,
.ffs .blog-item > figure img { width: 100% !important; height: auto !important; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0 !important; margin: 0 !important; }
.ffs .ffs-card-text {
  position: relative; max-height: 9.9em; overflow: hidden; color: var(--ffs-muted); font-size: .97rem; line-height: 1.65; margin-bottom: 12px;
}
.ffs .ffs-card-text::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2.4em;
  background: linear-gradient(rgba(255,255,255,0), #fff);
}
.ffs .ffs-card-text p, .ffs .ffs-card-text div { margin: 0 0 .5em; text-align: left !important; padding: 0 !important; }
.ffs .ffs-card-text h1, .ffs .ffs-card-text h2, .ffs .ffs-card-text h3 { font-size: 1rem; margin: 0 0 .3em; }
.ffs .ffs-card-text ul, .ffs .ffs-card-text ol { margin: 0 0 .5em; padding-left: 1.2em; }
.ffs .ffs-card-text table, .ffs .ffs-card-text iframe { display: none; }
.ffs .blog-item .readmore { margin: auto 0 0; }
.ffs .blog-item .readmore a { font-weight: 600; text-decoration: none; }
.ffs .blog-item .readmore a:hover { text-decoration: underline; }
.ffs .blog-item .icons { order: 0; }
.ffs .ffs-card-text.is-short::after { display: none; }

/* =========================================================
   1.0.9 – Menü: Joomla-6-Buttons, Safari/iOS
   ========================================================= */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

/* Buttons im Menü komplett neutralisieren (Safari/iOS bringt sonst eigene Button-Optik mit) */
.ffs-nav button,
.ffs-toggle,
.ffs-btn-intern {
  -webkit-appearance: none; appearance: none;
  -webkit-tap-highlight-color: transparent;
  font: inherit; letter-spacing: inherit;
}
.ffs-nav button { background: none; border: 0; border-radius: 0; margin: 0; color: inherit; box-shadow: none; }

/* Joomla-Chevron ersetzen wir durch unseren Pfeil */
.ffs-nav .icon-chevron-down { display: none !important; }

/* Überschrift (z. B. „Fahrzeuge“) im Joomla-Button */
.ffs-nav .ffs-heading-toggle {
  display: inline-flex; align-items: center; padding: 0; cursor: pointer; text-align: left;
}
.ffs-nav .ffs-heading-toggle .mod-menu__heading { pointer-events: none; }
.ffs-nav .ffs-heading-caret { display: inline-flex; line-height: 0; margin-left: -4px; padding-right: 10px; }
.ffs-nav .ffs-heading-caret svg { transition: transform .15s; }
.ffs-nav li.is-open > .ffs-heading-toggle .ffs-heading-caret svg { transform: rotate(180deg); }
.ffs-nav .ffs-heading-toggle:hover .mod-menu__heading { background: rgba(0, 0, 0, .15); }

@media (max-width: 1339.98px) {
  .ffs-nav { max-height: calc(100vh - var(--ffs-header-h)); max-height: calc(100dvh - var(--ffs-header-h)); -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
  .ffs-nav .ffs-heading-toggle { display: flex; flex: 1 1 auto; justify-content: space-between; width: 100%; min-width: 0; }
  .ffs-nav .ffs-heading-toggle .mod-menu__heading { flex: 1 1 auto; }
  .ffs-nav .ffs-heading-toggle:hover .mod-menu__heading { background: none; }
  .ffs-nav .ffs-heading-caret { margin: 0; padding: 12px; }
  .ffs-nav .active > .ffs-heading-toggle .mod-menu__heading { color: var(--ffs-gold); }
}
@media (min-width: 1340px) {
  .ffs-nav .ffs-heading-toggle { border-radius: 6px; }
  .ffs-nav li:hover > .ffs-heading-toggle, .ffs-nav li:focus-within > .ffs-heading-toggle { background: rgba(0, 0, 0, .15); }
  .ffs-nav .active > .ffs-heading-toggle { background: rgba(0, 0, 0, .24); }
  .ffs-nav .ffs-heading-toggle .mod-menu__heading { background: none !important; padding-right: 0; }
  .ffs-nav .ffs-heading-caret { margin-left: 5px; }
}
