:root {
    --clr-accent:           darkorange;
    --clr-accent-trans:     rgb(255, 140, 0, 0.5);
    --clr-accent-inverse:   gainsboro;
    --clr-grey-light:       #e9ecef;
    --bs-border-color:      rgb(125, 129, 133);
    --bs-link-color:        inherit;
    --bs-link-color-rgb:    var(--bs-body-color);
    --bs-focus-ring-color:  var(--clr-accent-trans);
    --bs-border-radius:     4px;
    --bs-body-font-family:  "Roboto", "Helvetica Neue", Arial, "Segoe UI", "Noto Sans", "Liberation Sans", sans-serif;

    --ffdl-primary: #0c6baf;          /* Primär (blau) */
    --ffdl-primary-600:#0a5b95;
    --ffdl-secondary: #0e7a3a;        /* Akzent (grün) */
    --ffdl-bg-soft: #f6f8fb;          /* helle Sektion */
    --ffdl-text: #1d232a;             /* Fließtext */
    --ffdl-muted: #5b6776;            /* sekundärer Text */
    --ffdl-border: #e4e8ee;           /* Linien/Kartenrand */
    --ffdl-focus: #ffb703;            /* gut sichtbarer Fokus (gelb/orange) */
  --ffdl-blue: #2b64ad;        /* Navbar/Buttons */
  --ffdl-blue-700:#1f4f8e;
  --ffdl-orange:#e67817;       /* Abschnittstitel / Icons */
  --ffdl-muted:#5b6776;
  --ffdl-border:#e7edf5;
    --motion-fast:          300ms;
    --motion-medium:        200ms;
}






:root {
  /* Logo-Höhen (mobil) */
  --logo-height-start: 72px;       /* Startgröße auf kleinen Screens */
  --logo-height-scrolled: 48px;    /* nach Scroll */

  /* Scrollschwelle (Pixel) */
  --scroll-threshold: 10px;
}


/* Ab >=992px (lg) – Desktop */
@media (min-width: 992px) {
  :root {
    --logo-height-start: 88px;     /* hier ruhig etwas großzügiger */
    --logo-height-scrolled: 56px;  /* (optional) etwas größer als mobil */
  }
}








/* Barrierefreiheit: „Bewegung reduzieren“ */
@media (prefers-reduced-motion: reduce){
  :root{
    --motion-fast: 0ms;
    --motion-medium: 0ms;
  }
}
/* Optischer Schutz für Anker-Ziele */
:target{ scroll-margin-top: var(--sticky-top); }

html {
    scroll-padding-top: var(--sticky-top); /* Optischer Schutz für Anker-Ziele */
    scrollbar-gutter: stable both-edges; /* Beruhigt Layout bei Scrollbar-Ein-/Ausblendung */
    /*scroll-behavior: auto; * Smooth-Scroll kann „Nachschwingen“ erzeugen */
    scroll-behavior: smooth;
}

/* Falls Viewport der Scroller ist */
html, body { overscroll-behavior-y: none; }

@font-face {
  font-family: 'Roboto';
  font-display: swap;
  src: local('Roboto'),
       url('../fonts/Roboto/Roboto-Regular.woff2') format('woff2'),
       url('../fonts/Roboto/Roboto-Regular.woff') format('woff');
  unicode-range: U+000-5FF;
}
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-display: swap;
  src: local('Roboto'),
       url('../fonts/Roboto/Roboto-Italic.woff2') format('woff2'),
       url('../fonts/Roboto/Roboto-Italic.woff') format('woff');
  unicode-range: U+000-5FF;
}
@font-face {
  font-family: 'Roboto';
  font-weight: 700;
  font-display: swap;
  src: local('Roboto'),
       url('../fonts/Roboto/Roboto-Bold.woff2') format('woff2'),
       url('../fonts/Roboto/Roboto-Bold.woff') format('woff');
  unicode-range: U+000-5FF;
}
@font-face {
  font-family: 'Roboto';
  font-weight: 700;
  font-style: italic;
  font-display: swap;
  src: local('Roboto'),
       url('../fonts/Roboto/Roboto-BoldItalic.woff2') format('woff2'),
       url('../fonts/Roboto/Roboto-BoldItalic.woff') format('woff');
  unicode-range: U+000-5FF;
}


body {
    color: var(--ffdl-text);
    font-family: var(--bs-body-font-family);
    background-color: white;
    text-rendering: optimizeLegibility;
}


/*
 * ELEMENTS, HELPER CLASSES
 * -------------------------------------------------------------- */

img,svg,video,canvas{ max-width:100%; height:auto; }

/* Skip-Link */
.visually-hidden-focusable{
  position:absolute; left:-100rem; top:.5rem; z-index:1000; background:var(--ffdl-primary);
  color:#fff; padding:.5rem .75rem; border-radius:.5rem; text-decoration:none;
}
.visually-hidden-focusable:focus{ left:.5rem; }

/* Meldungen (live region wird visuell versteckt, screenreaderfreundlich) */
[aria-live]{ width:1px; height:1px; position:absolute; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* Bilder: weiche Ecken */
img{ border-radius:.5rem; }

/* Tabellen (z. B. im Inhalt) */
table{ border-collapse: collapse; }
td, th{ padding:.5rem .6rem; border:1px solid var(--ffdl-border); }
thead th{ background:var(--ffdl-bg-soft); }

/* Druck (grobe Defaults) */
@media print{
  .navbar, .site-footer, .home-hero, nav[aria-label="Breadcrumbs"]{ display:none !important; }
  a[href^="http"]::after{ content:" (" attr(href) ")"; font-size:90%; }
}

/* Basislinks & Fokus sichtbar */
a{ color:var(--ffdl-primary); text-decoration-thickness: .08em; text-underline-offset:.15em; }
a:hover{ color:var(--ffdl-primary-600); }
:focus{ outline:2px solid var(--ffdl-focus); outline-offset:2px; }
:focus-visible{ outline:3px solid var(--ffdl-focus); outline-offset:2px; }




/* Buttons – kräftiger Kontrast */
.btn-primary{
  --bs-btn-bg: var(--ffdl-blue);
  --bs-btn-border-color: var(--ffdl-blue);
  --bs-btn-hover-bg: var(--ffdl-blue-700);
  --bs-btn-hover-border-color: var(--ffdl-blue-700);
}
.btn-outline-primary{
  --bs-btn-color: var(--ffdl-primary);
  --bs-btn-border-color: var(--ffdl-primary);
  --bs-btn-hover-bg: var(--ffdl-primary);
  --bs-btn-hover-border-color: var(--ffdl-primary);
  --bs-btn-hover-color:#fff;
}

.btn-register{ background:var(--ffdl-blue); border-color:var(--ffdl-blue); color:#fff; }
.btn-register:hover{ background:var(--ffdl-blue-700); border-color:var(--ffdl-blue-700); }


/* ===== Überschriften / Farbakzente */
h1, .h1{ color:var(--ffdl-blue); font-weight:800; letter-spacing:.2px; }
.hero-subtitle { color:var(--ffdl-blue); font-weight:600; }
.section-title-orange { color:var(--ffdl-orange); font-weight:800; }



/* Utility */
.bg-body-tertiary{ background: var(--ffdl-bg-soft) !important; }

/*
a:hover,
a:focus,
a:active {
	color: var(--clr-accent); 
	text-decoration: none; 
}
*/

/* BUTTONS */
/*
.btn {
    box-shadow: inset 0 0 0 2px white;
}
.btn:active {
    --bs-btn-active-bg: var(--clr-accent);
    --bs-btn-active-border-color: var(--clr-accent);
}
btn:focus-visible {
    --bs-btn-hover-bg: var(--clr-accent);
    --bs-btn-hover-border-color: var(--clr-accent);
    box-shadow: inset 0 0 0 2px white;
}

.btn,
.btn-primary {
    --bs-btn-bg: var(--clr-accent-inverse);
    --bs-btn-border-color: var(--clr-accent-inverse);   
}
.btn:hover,
.btn-primary:hover {
    --bs-btn-hover-bg: var(--clr-accent);
    --bs-btn-hover-border-color: var(--clr-accent);
}

.btn-secondary {
    --bs-btn-bg: var(--clr-accent);
    --bs-btn-border-color: var(--clr-accent);
}
.btn-secondary:hover {
    --bs-btn-hover-bg: var(--clr-accent-inverse);
    --bs-btn-hover-border-color: var(--clr-accent-inverse);    
}

h1, .h1 {
    font-size: 1.5rem;
    margin-block: 1em;
}
@media (min-width: 1200px) {
    h1, .h1 {
        font-size: 2rem;
    }
}

h2, .h2 {
    color: red;
    font-size: 1.2rem;
    margin-top: 2em;
}

hr {
    color: var(--clr-grey-light);
    opacity: 1;
}
*/



/* ===== Brandbar (Logo oben, Social rechts) */
.brandbar{ padding: 1.75rem 0; background:#fff; }
.brandbar .brandbar-logo img{ height:auto; width:auto; max-height:120px; }
@media (min-width: 992px){ .brandbar .brandbar-logo img{ max-height:140px; } }

.brandbar-social{ display:flex; gap:.5rem; }
.brandbar-social a{
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:.5rem;
  background:var(--ffdl-blue); color:#fff; text-decoration:none;
}
.brandbar-social a:hover{ background:var(--ffdl-blue-700); }












/* Header -------------------------------------------------------- */

/* Top-Logo: nur Desktop sichtbar */
.top-logo { display: none; background: #fff; }
@media (min-width: 992px) {
  .top-logo { display: block; padding: 1.25rem 0; border-bottom: 1px solid var(--ffdl-border); }
}
.top-logo-img {
  height: auto;
  width: auto;
  max-height: var(--logo-height-start);
  transition: max-height var(--motion-medium) ease;
}
.is-scrolled .top-logo-img {
  max-height: var(--logo-height-scrolled);
}

/* Brandbar (ohne Logo) */
.brandbar { background: #fff; }
.brandbar .container { min-height: 48px; }
.brandbar-right { display: flex; gap: .5rem; }

/* Social (Beispielstil, falls kein Modul) */
.brandbar-social { display: flex; gap: .5rem; }
.brandbar-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  border-radius: .5rem;
  background: var(--ffdl-blue);
  color: #fff;
  text-decoration: none;
}
.brandbar-social a:hover { filter: brightness(.9); }

/* Navbar darunter */
.site-header .navbar {
  background: var(--ffdl-blue) !important;
  border-top: 1px solid rgba(255, 255, 255, .08);
  border-bottom: 1px solid var(--ffdl-border);
}
.navbar .navbar-brand,
.navbar .nav-link { color: #fff !important; }
.navbar-nav .nav-link { padding: .5rem .8rem; font-weight: 600; }
.navbar .nav-link:hover,
.navbar .nav-link:focus {
  text-decoration: underline;
  text-underline-offset: .18em;
}
.navbar-nav .nav-link:focus-visible { outline-offset: 4px; }

/* Navbar-Brand-Logo: nur mobil sichtbar */
.navbar-brand-logo {
  height: auto;
  width: auto;
  max-height: var(--logo-height-start);
  transition: max-height var(--motion-medium) ease;
}
.is-scrolled .navbar-brand-logo { max-height: var(--logo-height-scrolled); }
@media (min-width: 992px) {
  .navbar .navbar-brand { display: none; } /* Desktop: nur Top-Logo oben */
}

/* Sicherstellen, dass Bilder nicht aus dem Container laufen */
.top-logo img,
.navbar-brand img { max-width: 100%; }










/* LS-Button (deaktiviert auf LS-Seite) */
.ffdl-ls-btn.disabled{ pointer-events:none; cursor:not-allowed; opacity:.65; }
.ffdl-ls-btn.disabled {
  pointer-events: none;   /* nicht klickbar */
  opacity: .65;           /* ausgegraut */
  cursor: not-allowed;
}

.ffdl-ls-btn.disabled{ pointer-events:none; opacity:.65; cursor:not-allowed; }

/* Cards / Teaser-Kacheln ------------------------------------------------- */
.ffdl-card, .moduletable .card{
  border:1px solid var(--ffdl-border);
  border-radius:1rem;
  box-shadow: 0 2px 4px rgba(0,0,0,.04);
  overflow:hidden;
}
.ffdl-card img{ display:block; width:100%; height:auto; }
.ffdl-card .card-body{ padding:1rem 1rem 1.1rem; }
.ffdl-card .card-title{ font-weight:600; font-size:1.15rem; margin-bottom:.35rem; }
.ffdl-card .card-text{ color:var(--ffdl-muted); }

/* Startseite: Sektionen -------------------------------------------------- */

/* HERO */
.is-home .home-hero{
  background: linear-gradient(180deg, #eef5fb 0%, #ffffff 100%);
  border-bottom:1px solid var(--ffdl-border);
}
.home-hero .btn{ margin-top:.5rem; }
.home-hero-logo{ max-width: 420px; height:auto; }
@media (min-width: 992px){ .home-hero-logo{ max-width:560px; } }

/* Intro */
.home-intro p{ max-width: 70ch; margin: 0 auto; color: var(--ffdl-muted); }

/* Teaser 3er Grid */
.home-teasers .row > [class*="col-"] .moduletable,
.home-teasers .row > [class*="col-"] .card{
  height:100%;
}
.home-teasers .card{
  border-radius:1rem; border:1px solid var(--ffdl-border);
  transition: transform .15s ease, box-shadow .15s ease;
}
.home-teasers .card:hover{ transform:translateY(-2px); box-shadow:0 8px 16px rgba(0,0,0,.06);}

/* Veranstaltungen (Liste/Kacheln) */
.home-events header h2{ font-weight:700; }
.home-events .event-list{ display:grid; grid-template-columns:1fr; gap:1rem; }
@media (min-width:768px){ .home-events .event-list{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1200px){ .home-events .event-list{ grid-template-columns:repeat(3,1fr); } }
.home-events .event{
  border:1px solid var(--ffdl-border); border-radius:1rem; padding:1rem; background:#fff;
}
.home-events .event time{ display:block; font-weight:600; color:var(--ffdl-primary); }
.home-events .event h3{ font-size:1.15rem; margin:.25rem 0 .5rem; }
.home-events .event .event-meta{ color:var(--ffdl-muted); font-size:.95rem; }
.home-events .ffdl-panel{
  background:#fff; border:1px solid var(--ffdl-border); border-radius:1rem;
  box-shadow:0 18px 36px rgba(0,0,0,.06);
  padding:1.25rem;
}
.home-events .event time{ display:block; font-weight:700; color:var(--ffdl-orange); }
.home-events .event .meta { color:var(--ffdl-muted); }
.home-events .event .icon{ width:1.25rem; display:inline-block; text-align:center; color:var(--ffdl-orange); margin-right:.4rem; }

/* News */
.home-news .news-list{ display:grid; grid-template-columns:1fr; gap:1rem; }
@media (min-width:992px){ .home-news .news-list{ grid-template-columns:repeat(3,1fr); } }
.home-news article{
  border:1px solid var(--ffdl-border); border-radius:1rem; background:#fff; overflow:hidden;
}
.home-news article .thumb{ aspect-ratio: 16/9; background:#ddd; }
.home-news article .content{ padding:1rem; }
.home-news article h3{ font-size:1.1rem; margin:.25rem 0 .5rem; }
.home-news article .meta{ color:var(--ffdl-muted); font-size:.92rem; }

/* Partner/Logoleiste */
.home-partners .logo-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; align-items:center;
}
@media (min-width:768px){ .home-partners .logo-grid{ grid-template-columns:repeat(4,1fr); } }
.home-partners img{ max-height:48px; width:auto; opacity:.9; filter: grayscale(20%); }
.home-partners img:hover{ opacity:1; filter:none; }

/* Standardseiten --------------------------------------------------------- */
#maincontent{ scroll-margin-top: 4rem; } /* für Skip-Link-Ziel */
aside[aria-label]{ position: relative; }
aside .moduletable{ margin-bottom:1rem; }
aside .moduletable .module-title{ font-weight:700; margin-bottom:.5rem; }
article img{ max-width:100%; height:auto; }

/* Breadcrumbs */
nav[aria-label="Breadcrumbs"] ol{
  margin:0; padding: 0; list-style: none; display:flex; flex-wrap:wrap; gap:.5rem; color:var(--ffdl-muted);
}
nav[aria-label="Breadcrumbs"] li{ color:var(--ffdl-muted); }
nav[aria-label="Breadcrumbs"] a{ text-decoration:none; }



/* Footer ----------------------------------------------------------------- */
.site-footer{
  background:#fff;
}
.site-footer small{ color:var(--ffdl-muted); }







/*
 * LAYOUT: ALL
 * --------------------------------------------------------- */

/* Seite horizontal zentrieren + Platz für fixe Top-Zeile */
.container.layout-centered{
  max-width: var(--page-max);
}






/*
 * LAYOUT
 * --------------------------------------------------------- */



/*
 * LOGO: ALL SCREENS
 * --------------------------------------------------------- */






/*
 * LOGO: BIG SCREENS ONLY
 * --------------------------------------------------------- */







/*
 * MENU: ALL SCREENS
 * --------------------------------------------------------- */









/*
 * BACK-TO-TOP
 * --------------------------------------------------------- */

.back-to-top {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  display: none;
  gap: .4rem;
}
.back-to-top.btn.show {
    display: inline-flex;
    align-items: center;
    --bs-btn-active-bg: var(--clr-accent-inverse);
    --bs-btn-active-border-color: var(--clr-accent-inverse);
}
.back-to-top.btn.show:hover {
    --bs-btn-active-bg: var(--clr-accent);
    --bs-btn-active-border-color: var(--clr-accent);
}



/*
 * SPECIALS: PAGES
 * --------------------------------------------------------- */

.com-content-article__body {
}
