/* KFV Beitragskarten – Hochtaunus-Layout, KFV-Schweinfurt-Marke.
   Greift ausschließlich unter .kfv-news (Marker-Klasse am Query-Block). */

/* Raster: 3 / 2 / 1 Spalten.
   Selektor mit .wp-block-query.kfv-news (Spezifität 0,3,0), damit display:grid
   das von Core injizierte display:flex des Flex-Layouts sicher überschreibt. */
.wp-block-query.kfv-news .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (max-width: 1024px) {
  .wp-block-query.kfv-news .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .wp-block-query.kfv-news .wp-block-post-template { grid-template-columns: 1fr; }
}

/* Core-Flex-Layout setzt an .wp-block-post > li eine feste width:calc(33%…);
   unter Grid muss die Karte ihre Spalte füllen. Reset mit !important, da
   Cores Regel höhere Spezifität (0,4,1) hat. */
.wp-block-query.kfv-news .wp-block-post-template .wp-block-post {
  width: auto !important;
}

/* Karte: gepolsterte weiße Karte mit Schlagschatten (wie Hochtaunus). */
.kfv-news .wp-block-post {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 16px;
  background: var(--wp--preset--color--paper, #fff);
  border-radius: 10px;
  box-shadow: 0 0 10px rgba(0, 0, 0, .15);
  transition: box-shadow .25s ease;
}

/* Bild: feste 3:2-Höhe erzwingen, damit alle Fotos gleich hoch sind
   (das aspectRatio-Attribut des Blocks greift in dieser Umgebung nicht). */
.kfv-news .wp-block-post-featured-image {
  margin: 0 0 12px;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: 8px;
  line-height: 0;
}
.kfv-news .wp-block-post-featured-image a,
.kfv-news .wp-block-post-featured-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: filter .2s ease;
}

/* Kategorie (verlinkt) */
.kfv-news .wp-block-post-terms {
  font-weight: 600;
  letter-spacing: .02em;
  margin: 0 0 4px;
}
.kfv-news .wp-block-post-terms a { color: inherit; text-decoration: none; }
.kfv-news .wp-block-post-terms a:hover { text-decoration: underline; }

/* Datum */
.kfv-news .wp-block-post-date { color: #6b7280; margin: 0 0 6px; }

/* Titel */
.kfv-news .wp-block-post-title {
  color: var(--wp--preset--color--ink, #1A1A1A);
  font-weight: 600;
  line-height: 1.3;
  margin: 0 0 8px;
}
.kfv-news .wp-block-post-title a { color: inherit; text-decoration: none; }
.kfv-news .wp-block-post-title a:hover { text-decoration: underline; }

/* Auszug */
.kfv-news .wp-block-post-excerpt {
  color: #4b5563;
  font-size: .9rem;
  line-height: 1.6;
  margin: 0 0 10px;
}
.kfv-news .wp-block-post-excerpt__excerpt { margin: 0; }

/* Weiterlesen – unten bündig */
.kfv-news .wp-block-read-more {
  margin-top: auto;
  color: var(--wp--preset--color--fire, #C8102E);
  font-size: .8rem;
  font-weight: 600;
  text-decoration: none;
}
.kfv-news .wp-block-read-more:hover { text-decoration: underline; }

/* Hover: stärkerer Schatten (wie Hochtaunus) + Bild leicht abdunkeln */
.kfv-news .wp-block-post:hover { box-shadow: 0 0 30px rgba(0, 0, 0, .15); }
.kfv-news .wp-block-post:hover .wp-block-post-featured-image img { filter: brightness(.95); }

/* Ganze Kachel klickbar: den Titel-Link über die komplette Karte strecken.
   Der semantische Link bleibt der Titel (gut für Screenreader/SEO), sein
   Pseudo-Element legt sich als unsichtbare Klickfläche über die ganze Karte. */
.kfv-news .wp-block-post { position: relative; }
.kfv-news .wp-block-post-title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* Elemente mit eigenem Ziel (Kategorie-Archiv) müssen über der Klickfläche
   liegen, damit sie separat anklickbar bleiben. Bild- und Weiterlesen-Link
   zeigen ohnehin auf denselben Beitrag – sie liegen ebenfalls oben, damit
   ihre Hover-Zustände weiter funktionieren. */
.kfv-news .wp-block-post-terms a,
.kfv-news .wp-block-post-featured-image a,
.kfv-news .wp-block-read-more {
  position: relative;
  z-index: 2;
}

/* Startseite: weißen Streifen zwischen Header und erstem Abschnitt entfernen.
   Blocksy polstert den Content-Container oben mit --theme-content-vertical-spacing
   (60px). Da der erste Abschnitt (smoke-grauer Hero mit Wappen) alignfull ist,
   entsteht dadurch ein weißer Rand unter dem roten Header. Nur auf der Startseite
   den oberen Abstand auf 0 setzen; der untere Abstand und alle Unterseiten bleiben
   unverändert. Höhere Spezifität (0,3,1) schlägt Blocksys [data-vertical-spacing]. */
body.home .ct-container-full[data-vertical-spacing] {
  padding-top: 0;
}

/* „Unsere Bereiche"-Kacheln (Startseite): rote „Mehr erfahren"-Buttons unten
   bündig ausrichten. Core-Columns strecken die Spalten bereits auf gleiche Höhe
   (align-items:stretch). Die Spalte zur Flex-Spalte machen und die Button-Gruppe
   per margin-top:auto an den unteren Rand schieben – so stehen alle Buttons trotz
   unterschiedlich langer Beschreibungstexte auf einer Linie. */
.kfv-bereiche.wp-block-columns .wp-block-column {
  display: flex;
  flex-direction: column;
}
.kfv-bereiche.wp-block-columns .wp-block-column .wp-block-buttons {
  margin-top: auto;
}
