/* =========================
   HEADER: Brand + Claim
   ========================= */
.header .navbar-brand{
  display:flex;
  align-items:center;
  gap:clamp(.8rem, 1vw + .4rem, 1.6rem);
  flex-wrap:nowrap;
}
.header .navbar-brand .site-description__name{
  font-size:clamp(1.1rem, 0.8rem + 1vw, 1.6rem);
  font-weight:700;
  color:#FDB515;
  line-height:1.1;
}
.header .navbar-brand .site-description__tagline{
  font-size:clamp(.9rem, 0.75rem + 0.35vw, 1.05rem);
  font-weight:500;
  color:#FDB515;
  opacity:.95;
  line-height:1.2;
}
.header .navbar-brand .brand-logo img{
  max-height:150px;
  height:auto;
  width:auto;
}
@media (max-width:576px){
  .header .navbar-brand{ flex-wrap:wrap; }
  .header .navbar-brand .site-description{ margin-top:.25rem; }
}
.header .navbar-brand .site-description{
  display: flex;
  flex-direction: column;   /* erzwingt Zeilenumbruch */
  line-height: 1.15;
}

/* zur Sicherheit: beide Zeilen als Block-Elemente */
.header .navbar-brand .site-description > .site-description__name,
.header .navbar-brand .site-description > .site-description__tagline{
  display: block !important;
}
/* =========================
   NAVIGATION: Pill Tabs
   ========================= */
.header .container-nav .mod-menu{
  display:flex;
  gap:.4rem;
  justify-content:center;
}
.header .container-nav .mod-menu > li > a{
  text-decoration:none;
  padding:.55rem 1rem;
  border-radius:999px;
  font-weight:600;
  line-height:1;
  color:#fff;
  transition:background .15s ease, color .15s ease, transform .05s ease;
}
.header .container-nav .mod-menu > li > a:hover{
  background:rgba(255,255,255,.12);
  transform:translateY(-1px);
}
.header .container-nav .mod-menu > li.current > a,
.header .container-nav .mod-menu > li.active  > a{
  background:#FDB515;
  color:#0b1f3a;
  box-shadow:0 4px 14px rgba(201,162,39,.35);
}
.header .container-nav .mod-menu > li.parent > a span::after{
  content:"▾";
  font-size:.8rem;
  margin-left:.4rem;
  opacity:.85;
}
.header .container-nav .mod-menu ul{
  background:#1f2a4a;
  border-radius:10px;
  padding:.4rem;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
}
.header .container-nav .mod-menu ul li a{
  color:#fff;
  padding:.55rem .9rem;
  border-radius:8px;
  display:block;
  white-space:nowrap;
  transition:background .15s ease;
}
.header .container-nav .mod-menu ul li a:hover{
  background:rgba(201,162,39,.2);
}

/* =========================
   HEADER: Gradient / Focus
   ========================= */
:root{
  --fg-navy-1:#1f2a4a;
  --fg-navy-2:#113a6b;
  --fg-navy-3:#0b1f3a;
  --fg-gold:#FDB515;
}
.header.container-header.full-width{
  background:linear-gradient(180deg,var(--fg-navy-1) 0%,var(--fg-navy-2) 58%,var(--fg-navy-3) 100%);
  border-bottom:1px solid rgba(255,255,255,.06);
  box-shadow:0 8px 24px rgba(0,0,0,.18) inset;
}
.header .container-nav .mod-menu > li > a{ color:#fff; }
.header .container-nav .mod-menu > li > a:focus-visible{
  outline:2px solid var(--fg-gold);
  outline-offset:2px;
}
@media (prefers-reduced-motion:no-preference){
  .header.container-header.full-width{
    transition:box-shadow .25s ease, border-color .25s ease, background .25s ease;
  }
}

/* =========================
   SIDEBAR RIGHT: Cards
   ========================= */
.container-sidebar-right .sidebar-right.card{
  background:#fff;
  border:1px solid #e8ecf3;
  border-radius:14px;
  box-shadow:0 6px 18px rgba(0,0,0,.06);
  overflow:hidden;
  margin:1rem 0;
}
.container-sidebar-right .sidebar-right.card > .card-header{
  margin:0;
  padding:.9rem 1rem;
  font-size:1.1rem;
  font-weight:800;
  line-height:1.2;
  background:linear-gradient(180deg,#a7b1d7 0%, #d1dded 100%);
  border-bottom:1px solid #e8ecf3;
  color:#0b1f3a;
}
.container-sidebar-right .sidebar-right.card > .card-body{
  padding:.8rem .95rem 1rem;
}
.container-sidebar-right .sidebar-right.card p{ margin:.55rem 0; color:#39424e; }
.container-sidebar-right .sidebar-right.card a{
  color:#0f3c8c;
  text-decoration:none;
  border-bottom:1px solid rgba(15,60,140,.25);
}
.container-sidebar-right .sidebar-right.card a:hover{ border-bottom-color:rgba(15,60,140,.6); }
.container-sidebar-right .sidebar-right.card .mod-custom img{
  display:block; width:100%; height:auto; border-radius:10px;
}

/* === Termine-Modul: Fremd-Borders komplett abschalten === */
.container-sidebar-right .sidebar-right.card.mod--events .mod_events_latest_table{
  width:100%;
  border-collapse:separate; 
  border-spacing:0;
  border:0 !important;                  /* killt ggf. Rahmen am Table */
}

.container-sidebar-right .sidebar-right.card.mod--events .mod_events_latest_table td{
  display:block;
  padding:.75rem 0;
  border:0 !important;                   /* alle JEvents-Borders aus */
}

/* Erste Zeile ohne Trennlinie, ab der zweiten eine feine Linie oben */
.container-sidebar-right .sidebar-right.card.mod--events .mod_events_latest_table tr + tr td{
  border-top:1px solid #e6ebf4 !important;
}

/* Falls JEvents irgendwo linke/breite Linien erzwingt */
.container-sidebar-right .sidebar-right.card.mod--events .mod_events_latest_table,
.container-sidebar-right .sidebar-right.card.mod--events .mod_events_latest_table *{
  border-left:0 !important;
  border-right:0 !important;
}

/* Titel, Datum/Badge, Uhrzeit hübsch */
.container-sidebar-right .sidebar-right.card.mod--events .mod_events_latest_content{
  display:block;
  color:#0b1f3a;
  line-height:1.25;
  margin-bottom:.35rem;
}

.container-sidebar-right .sidebar-right.card.mod--events .icon-calendar{
  display:inline-block;
  width:1rem; height:1rem;
  margin-right:.35rem;
}
.container-sidebar-right .sidebar-right.card.mod--events .icon-calendar::before{
  content:"📅";
}

.container-sidebar-right .sidebar-right.card.mod--events .icon-time{
  display:inline-block;
  width:1rem; height:1rem;
  margin-right:.35rem;
}
.container-sidebar-right .sidebar-right.card.mod--events .icon-time::before{
  content:"⏰";
}

/* Badge-Look für Datum & Zeit */
.container-sidebar-right .sidebar-right.card.mod--events .mod_events_latest_date{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-weight:700;
  background:#e9eef7;
  color:#113a6b;
  padding:.15rem .5rem;
  border-radius:999px;
  margin:.25rem .35rem .25rem 0;
}

/* Link unten als Button */
.container-sidebar-right .sidebar-right.card.mod--events .mod_events_latest_callink{
  margin-top:.75rem;
}
.container-sidebar-right .sidebar-right.card.mod--events .mod_events_latest_callink a{
  display:inline-block;
  padding:.5rem .8rem;
  border-radius:999px;
  background:#e9eef7;
  border:none;
  color:#113a6b;
  font-weight:700;
  text-decoration:none;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
}
.container-sidebar-right .sidebar-right.card.mod--events .mod_events_latest_callink a:hover{
  background:#FDB515; color:#0b1f3a;
}

/* Info-Karten */
.container-sidebar-right .sidebar-right.card.mod--note{
  border-color:#f0e6c8; background:linear-gradient(180deg,#fff 0%, #fffdfa 100%);
}
.container-sidebar-right .sidebar-right.card.mod--note > .card-header{
  background:linear-gradient(180deg,#fff7df 0%, #fff1c9 100%);
  border-bottom-color:#f0e6c8; color:#5a4500;
}
.container-sidebar-right .sidebar-right.card.mod--note a{
  color:#5a4500; border-bottom:1px solid rgba(90,69,0,.35);
}
.container-sidebar-right .sidebar-right.card.mod--note a:hover{
  color:#0b1f3a; border-bottom-color:#FDB515;
}

/* =========================
   NEWS/Blog: Struktur + Optik
   ========================= */
/* --- News: reines Grid, max. 2 Spalten --- */
.com-content-category-blog__items.blog-items.grid-2{
  display:grid !important;
  grid-template-columns:1fr;
  gap:2rem;
}
/* LEADING optional immer volle Breite */
.com-content-category-blog__items.blog-items.grid-2.grid-full{
  grid-template-columns:1fr;
}

@media (min-width:768px){
  .com-content-category-blog__items.blog-items.grid-2{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}

/* Cards */
.com-content-category-blog__item{
  display:flow-root;            /* kapselt Floats */
  break-inside:avoid;           /* kein Spaltenbruch */
  background:#fff;
  border:1px solid #e8ecf3;
  border-radius:16px;
  box-shadow:0 6px 18px rgba(0,0,0,.06);
  overflow:hidden;
}
.com-content-category-blog__item .item-content{
  display:flex; flex-direction:column; gap:.65rem; padding:1rem 1.1rem;
}

/* Floats aus Alt-Artikeln zuverlässig neutralisieren */
.com-content-category-blog .item-content img[style*="float:"],
.com-content-category-blog .item-content .pull-left,
.com-content-category-blog .item-content .pull-right,
.com-content-category-blog .item-content [class*="float-"],
.com-content-category-blog .item-content .image-placeholderR{
  float:none !important; display:block !important; max-width:100% !important; margin:.5rem 0 .75rem 0 !important;
}
.com-content-category-blog .item-content::after{ content:""; display:block; clear:both; }

/* Readmore unten rechts, ohne Float */
.com-content-category-blog .item-content .readmore{
  margin-top:auto; padding-top:.6rem; border-top:1px dashed #e3e7f0;
  text-align:right; float:none !important; position:static !important; clear:both !important;
}
.com-content-category-blog .item-content .readmore .btn{
  display:inline-flex !important; align-items:center; gap:.4rem;
  background:#C9A227; color:#0b1f3a; border:none; border-radius:999px;
  padding:.55rem .9rem; font-weight:700; text-decoration:none;
}

/* Headline/Divider */
.com-content-category-blog .page-header{ margin:0 0 .5rem 0; padding:0 0 .6rem 0; }
.com-content-category-blog .page-header h2{ margin:0; font-size:clamp(1.15rem,1.05rem + .6vw,1.6rem); line-height:1.25; color:#0b1f3a; }
.com-content-category-blog .page-header h2 a{ color:inherit; text-decoration:none !important; border:0 !important; box-shadow:none !important; }

/* ================================
   NAVIGATIONSSEITEN (Kachel-Übersichten)
   ================================ */

/* Farb-Variablen aus deinem Theme nutzen/fallbacken */
:root{
  --fg-navy-1: #1f2a4a;
  --fg-navy-2: #113a6b;
  --fg-navy-3: #0b1f3a;
  --fg-gold:   #FDB515;
  --fg-ink:    #1b2230;
  --tile-bg:   #cfeaf7;       /* dezentes Hellblau (kannst du anpassen) */
  --tile-brd:  #e8ecf3;
}

/* Grid-Container für die Kacheln */
.navgrid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: clamp(14px, 2vw, 22px);
  margin: 1rem auto 2.25rem;
  padding: 0 .25rem;
  max-width: min(1200px, 100%);
}

/* Kachel-Grundlook */
.navtile{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-height: 120px;
  padding: clamp(1rem, 2.2vh, 1.25rem) clamp(1rem, 2.5vw, 1.25rem);
  border-radius: 14px;
  border: 1px solid var(--tile-brd);
  background: var(--tile-bg);
  color: var(--fg-ink);
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
  transition: transform .12s ease, box-shadow .12s ease, background .2s ease, color .2s ease;
  /* sanfte Entrance-Anim – Reihenfolge via --i steuerbar */
  opacity: 0;
  transform: translateY(10px);
  animation: navtile-in .5s both;
  animation-delay: calc(var(--i, 0) * 90ms);
}

/* Hover / Fokus */
.navtile:hover,
.navtile:focus-visible{
  background: linear-gradient(180deg, var(--fg-navy-1), var(--fg-navy-3));
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
  outline: none;
}
.navtile:focus-visible{
  box-shadow: 0 0 0 3px #fff, 0 0 0 6px var(--fg-gold), 0 12px 28px rgba(0,0,0,.14);
}

/* Optional: kleine Goldkante oben für Akzent */
.navtile::before{
  content:"";
  position:absolute;
  inset: 0 0 auto 0;
  height: 3px;
  border-top-left-radius: 14px;
  border-top-right-radius: 14px;
  background: linear-gradient(90deg, var(--fg-gold), transparent 70%);
  opacity:.7;
  pointer-events:none;
}
.navtile{ position:relative; }

/* Außenabstände in Kacheltext weich machen */
.navtile > span,
.navtile > strong,
.navtile > em{ display:block; }

/* Externe Links kennzeichnen (nur wenn target=_blank) */
.navtile[target="_blank"]::after{
  content:"↗";
  font-weight: 800;
  margin-left:.4rem;
  opacity:.9;
}

/* Einfache Einblend-Animation */
@keyframes navtile-in{
  to { opacity:1; transform: translateY(0); }
}

/* Motion-Reduktion respektieren */
@media (prefers-reduced-motion: reduce){
  .navtile{ animation:none; opacity:1; transform:none; }
}

/* Dichte Variante (z.B. auf Mobil) */
@media (max-width: 640px){
  .navtile{ min-height: 96px; }
}

/* =========================================
   Content-Karten, Accordion & Banner (FGH)
   ========================================= */

/* Grundfarben – nutzt deine Header-Palette */
:root{
  --fg-navy-1:#1f2a4a;
  --fg-navy-3:#0b1f3a;
  --fg-gold:#FDB515;
  --fg-ink:#1b2230;
  --fg-muted:#667085;
  --fg-border:#e8ecf3;
  --fg-bg:#f7f9fd;
}

/* Abschnittscontainer – nicht "container" nennen (Bootstrap) */
.fg-section{
  max-width:min(1100px, 100%);
  margin: 0 auto;
  padding: clamp(12px, 2.5vw, 24px);
}

/* Grid für Karten */
.fg-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: clamp(14px, 2.2vw, 24px);
}

/* Karte */
.fg-card{
  background:#fff;
  border:1px solid var(--fg-border);
  border-radius:16px;
  box-shadow:0 6px 18px rgba(0,0,0,.06);
  padding: clamp(14px, 2.2vw, 20px);
  display:flex;
  flex-direction:column;
  gap:12px;
}

/* Bild oben in der Karte – sauber skaliert */
.fg-card > .fg-card-img{
  width:100%;
  aspect-ratio: 4 / 3;            /* 16/9? -> anpassen */
  object-fit:cover;
  border-radius:12px;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
}

/* Textblock */
.fg-card .fg-card-text{ text-align:center; color:var(--fg-ink); }
.fg-card .fg-card-text strong{
  display:block;
  font-size: clamp(1.05rem, .9rem + .6vw, 1.35rem);
  margin-bottom:.25rem;
}

/* Accordion (details/summary) */
.fg-accordion{ margin-top: 4px; }
.fg-accordion details{
  border:1px solid var(--fg-border);
  border-radius:12px;
  background: #fff;
  overflow:hidden;
}
.fg-accordion details + details{ margin-top:10px; }

.fg-accordion summary{
  list-style:none;
  cursor:pointer;
  padding:.9rem 1rem;
  font-weight:800;
  color:var(--fg-navy-3);
  position:relative;
}
.fg-accordion summary::-webkit-details-marker{ display:none; }
.fg-accordion summary::after{
  content:"▾";
  position:absolute;
  right: .9rem;
  top: 50%;
  transform: translateY(-50%) rotate(0deg);
  transition: transform .15s ease;
  opacity:.9;
}
.fg-accordion details[open] summary::after{
  transform: translateY(-50%) rotate(180deg);
}

.fg-accordion .fg-accordion-body{
  padding:.2rem 1rem 1rem;
  color:var(--fg-ink);
}
.fg-accordion .fg-accordion-body ul{ margin:.25rem 0 0 1rem; }
.fg-accordion .fg-accordion-body li{ margin:.25rem 0; }

/* Linkstil im Summary (falls verlinkte Überschrift) */
.fg-accordion summary a{
  color:inherit; text-decoration:none; border:0;
}

/* Vollbreit-Banner */
.fg-banner{
  margin: clamp(12px, 2.2vw, 22px) 0;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--fg-border);
  box-shadow:0 6px 18px rgba(0,0,0,.06);
  background:#fff;
}
.fg-banner a{ display:block; }
.fg-banner img{
  display:block; width:100%; height:auto;
}

/* Feinheiten */
.fg-muted{ color:var(--fg-muted); }

/* Mobile Einspaltig enger */
@media (max-width: 768px){
  .fg-card{ padding:14px; }
}

/* ================================
   Bild-Pyramide (1–2–4 Layout)
   ================================ */
:root{
  --fg-border:#e8ecf3;
}

/* Container */
.fg-py{
  display:grid;
  grid-template-columns: repeat(7, minmax(0,1fr));
  gap: clamp(10px, 2vw, 18px);
  max-width:min(1100px, 100%);
  margin: 0 auto;
}

/* 1–2–4 Anordnung über Grid-Areas */
.fg-py.fg-py--124{
  grid-template-areas:
    ". . a a a . ."
    ". b b . c c ."
    "d d e e f f g";
}

/* Items (1..7) den Areas zuordnen */
.fg-py.fg-py--124 > figure:nth-child(1){ grid-area:a; }
.fg-py.fg-py--124 > figure:nth-child(2){ grid-area:b; }
.fg-py.fg-py--124 > figure:nth-child(3){ grid-area:c; }
.fg-py.fg-py--124 > figure:nth-child(4){ grid-area:d; }
.fg-py.fg-py--124 > figure:nth-child(5){ grid-area:e; }
.fg-py.fg-py--124 > figure:nth-child(6){ grid-area:f; }
.fg-py.fg-py--124 > figure:nth-child(7){ grid-area:g; }

/* Karte/Frame pro Bild */
.fg-py figure{
  margin:0;
  position:relative;
  border:1px solid var(--fg-border);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 6px 18px rgba(0,0,0,.06);
  background:#fff;
  /* Einheitliche Höhe – gern anpassen: 3/2, 16/9, etc. */
  aspect-ratio: 4 / 3;
}

/* Bildfüllung */
.fg-py figure img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition: transform .25s ease;
}
.fg-py figure:hover img{ transform: scale(1.03); }

/* Optional: Caption */
.fg-py figure figcaption{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:.5rem .75rem;
  font-weight:700;
  color:#0b1f3a;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.88) 55%, rgba(255,255,255,1) 100%);
}

/* Responsive: ab Tablet einfaches Grid */
@media (max-width: 900px){
  .fg-py.fg-py--124{
    grid-template-areas:none;                 /* Areas deaktivieren */
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}
@media (max-width: 520px){
  .fg-py{ gap: 10px; }
  .fg-py.fg-py--124{
    grid-template-columns: 1fr;               /* Einspaltig */
  }
}