/* LHB-Komponentenarchitektur 1.0
   Verbindliche, seitenuebergreifende Grundregeln. Sichtbare Varianten werden
   ueber die jeweiligen Komponenten-Dateien und dokumentierte Modifikatoren
   gesteuert; lokale Seitenregeln duerfen diese Basis nicht neu definieren. */
:root {
  --lhb-content-max: 1440px;
  --lhb-line: var(--lhb-line-width);
  --lhb-heading-leading-tight: 1.06;
  --lhb-heading-leading-normal: 1.10;
  --lhb-heading-leading-editorial-hero: 1.08;
  --lhb-hero-text-padding-block: 32px;
  --lhb-hero-text-padding-inline: 36px;
  --lhb-hero-secondary-leading: 1.68;
  --lhb-hero-statement-leading: 1.10;
  --lhb-hero-action-gap: 26px;
}

[data-component] { min-width: 0; }
[data-component] > * { min-width: 0; }

/* v123/v344: Arbeitsfeld-Startseiten – Hero plus Angebotsband sollen bei
   typischen Desktop-Hoehen gemeinsam sichtbar bleiben. Die Viewportberechnung
   definiert eine Ziel-/Mindesthoehe, darf aber niemals redaktionellen Inhalt
   abschneiden. Benötigt die Textspalte mehr Raum, waechst der Hero inhaltlich. */
@media (min-width:981px) and (min-height:760px){
  body.lhb-workfield-home main > .lhb-hero:first-child{
    height:auto!important;
    min-height:clamp(430px,calc(100dvh - var(--lhb-active-header-height,136px) - 205px),var(--lhb-workfield-hero-max,520px))!important;
  }
  body.lhb-workfield-home main > .lhb-hero:first-child + .lhb-offer-band--5{
    --lhb-workfield-band-height:238px;
  }
  body.lhb-workfield-home:has(main > .lhb-hero:first-child + .lhb-offer-band--5) main > .lhb-hero:first-child{
    height:auto!important;
    min-height:clamp(430px,calc(100dvh - var(--lhb-active-header-height,136px) - 238px),var(--lhb-workfield-hero-max,520px))!important;
  }
  body.lhb-workfield-home main > .lhb-hero:first-child > .lhb-hero__media{
    min-height:0!important;
    height:100%;
  }
  body.lhb-workfield-home main > .lhb-hero:first-child > .lhb-hero__media > img,
  body.lhb-workfield-home main > .lhb-hero:first-child > .lhb-hero__media > picture,
  body.lhb-workfield-home main > .lhb-hero:first-child > .lhb-hero__media > video{
    min-height:0!important;
    height:100%;
  }
}

/* v124: Landesheimatbund-Startseite nutzt dieselbe Viewportlogik wie die
   Arbeitsfeld-Startseiten. Die asymmetrische Verbands-Hero-Variante mit
   lila Verstaendnis-Spalte bleibt erhalten; nur die Gesamthoehe reagiert. */
@media (min-width:981px) and (min-height:700px){
  body.lhb-organization-home main > .lhb-hero:first-child{
    --lhb-workfield-hero-max:520px;
    height:clamp(420px,calc(100dvh - var(--lhb-active-header-height,136px) - 205px),520px)!important;
    min-height:0!important;
  }
  body.lhb-organization-home main > .lhb-hero:first-child > .lhb-hero-left,
  body.lhb-organization-home main > .lhb-hero:first-child > .lhb-quote{
    min-height:0!important;
    height:100%;
    box-sizing:border-box;
  }
  body.lhb-organization-home main > .lhb-hero:first-child > .lhb-hero-left{
    padding-block:clamp(30px,4.4vh,48px);
    gap:clamp(18px,3vh,30px);
  }
  body.lhb-organization-home main > .lhb-hero:first-child > .lhb-quote{
    padding-block:clamp(30px,4.4vh,48px);
    gap:clamp(16px,2.6vh,24px);
  }
  body.lhb-organization-home .lhb-quick-actions{
    margin-top:clamp(14px,2.4vh,24px);
  }
}

/* v125: Hero-Variante "Statement-Spalte" fuer die Verbandsstartseite.
   Rechts stehen nur Kicker, Hauptstatement und Aktion. Die Aktion ist an
   derselben unteren Grundlinie wie die Aktionsleiste der linken Spalte. */
body.lhb-organization-home .lhb-quote--statement{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
body.lhb-organization-home .lhb-quote--statement .lhb-actions{
  margin-top:0;
}
@media (min-width:981px){
  body.lhb-organization-home .lhb-hero-left,
  body.lhb-organization-home .lhb-quote--statement{
    padding-bottom:clamp(30px,4.4vh,48px);
  }
  body.lhb-organization-home .lhb-quote--statement .lhb-btn{
    min-height:var(--lhb-action-height);
  }
}


/* v127: Veranstaltungsstartseite als kompakte Hero-Variante. In der
   Standardansicht sollen Hero, geschlossene Filterleiste und die komplette
   Bildzeile der ersten drei Veranstaltungskarten gemeinsam sichtbar sein.
   Die Regel greift nur bei geschlossenem Filter; geoeffnete Filter duerfen
   die Seite verlaengern. */
@media (min-width:981px) and (min-height:760px){
  body.lhb-events-home main > .lhb-events-hero:first-child{
    height:clamp(270px,calc(100dvh - var(--lhb-active-header-height,136px) - 70px - 300px),330px);
    min-height:270px;
  }
}


/* v133: Kompakte Publikationspaare in schmalen Ansichten.
   Zusammengehoerige kleine Cover bleiben als visuelle Gruppe nebeneinander;
   sie werden nicht auf volle Modulbreite gestapelt. */
.lhb-publication-pair{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
@media (max-width:980px){
  .lhb-publication-pair{
    width:min(100%,360px);
    margin-inline:auto;
    gap:12px;
  }
}
@media (max-width:640px){
  .lhb-publication-pair{
    width:min(100%,300px);
    gap:10px;
  }
  .lhb-publication-pair .hf-cover span{
    font-size:10px;
  }
}


/* v136: Vereinskarten als abgestufte Kartenfamilie.
   Die Landingpage zeigt weiterhin eine ruhige Übersichtskarte für den
   visuellen Eindruck; Randinformationen außerhalb Sachsen-Anhalts werden nur
   dezent überblendet, Quellen und Stadtverweise erscheinen ohne Box als
   Kartennotizen. In der Vereinsdatenbank bleibt die Intro-Karte auch in
   Hochformatansichten standardmäßig sichtbar. Kartenbedienung und Legende
   rücken dort an den oberen Kartenrand, um die nutzbare Fläche zu vergrößern.
   Verwaltungsgrenzen werden skaliert zugeschaltet: Übersichtsdarstellung bei
   kleinerem Zoom, feinere Grenzen erst in näheren Zoomstufen. */


/* v210: Publikationscover in gemischten Inhaltsrastern.
   Die Mediengeometrie gehoert verbindlich zur jeweiligen Kartenfamilie. Eine
   Publikation darf die Medienhoehe, das Seitenverhaeltnis oder damit die
   Gesamthoehe ihrer Karte nicht veraendern. Die Publikationsvariante schaltet
   ausschliesslich auf eine ruhige Contain-Darstellung innerhalb der bereits
   definierten Medienflaeche um. */
.content-card.is-publication .content-card-image,
.ik-content-card.is-publication .ik-content-image,
.lhb-related__card.is-publication .lhb-related__media{
  display:grid !important;
  place-items:center !important;
  box-sizing:border-box !important;
  padding:14px !important;
  overflow:hidden !important;
  background:var(--lhb-neutral-100) !important;
}
.content-card.is-publication .content-card-image img,
.ik-content-card.is-publication .ik-content-image img,
.lhb-related__card.is-publication .lhb-related__media img{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  height:100% !important;
  max-height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  object-fit:contain !important;
  object-position:center !important;
}
/* Die Klasse kennzeichnet nur die bereits getrimmte Bildquelle; sie darf keine
   abweichende Karten- oder Medienhoehe mehr erzeugen. */
.ik-content-card.is-padded-cover .ik-content-image{
  padding:10px !important;
}
.ik-content-card.is-padded-cover .ik-content-image img{
  transform:none !important;
}
@media(max-width:640px){
  .content-card.is-publication .content-card-image,
  .ik-content-card.is-publication .ik-content-image,
  .lhb-related__card.is-publication .lhb-related__media{
    padding:14px !important;
  }
}


/* v207: Standard-Heros folgen einer gemeinsamen vertikalen Mitte. Die
   Arbeitsbereichstitel nutzen den in lhb-hero.css definierten umlautsicheren
   Zeilenrhythmus. Die Fachgremien-Seite gehoert zur Uebersichts-Hero-Familie;
   das Vereinsbild-Karussell verwendet ausschliesslich Querformate direkter
   Mitglieder. */


/* Update v240 – globale Titel- und Hero-Geometrie.
   Der Zeilenrhythmus wird ausschließlich über die beiden zentralen Tokens
   gesteuert. Hero-Hauptüberschriften erhalten etwas mehr Luft für Umlaute
   und Oberlängen; Modulüberschriften erhalten einen klaren, aber weiterhin
   kompakten Mehrzeilenrhythmus. Die Detailregeln stehen in lhb-headings.css
   und lhb-hero.css. */


/* v241: content-driven action heroes. The page height is defined by the
   actual text and action groups, not by a fixed empty stage. This contract
   supersedes the older organization-home viewport clamp. */
@media (min-width:981px){
  body.lhb-organization-home main > .lhb-hero:first-child{
    height:auto!important;
    min-height:0!important;
  }
  body.lhb-organization-home main > .lhb-hero:first-child > .lhb-hero-left,
  body.lhb-organization-home main > .lhb-hero:first-child > .lhb-quote{
    height:auto!important;
    min-height:0!important;
    padding-block:var(--lhb-hero-text-padding-block)!important;
  }
}
@media (max-width:900px){
  :root{
    --lhb-hero-text-padding-block:28px;
    --lhb-hero-text-padding-inline:22px;
    --lhb-hero-action-gap:22px;
  }
}


/* v243: Foto-Dokumentationsseiten bilden eine gemeinsame Seitenfamilie.
   Split-Hero ohne Medienbuehne, Serienlisten mit identischer Vorschaulogik
   und Lightbox-Anbindung werden ueber lhb-photo-documentation.css
   standardisiert und fuer IKE- sowie Industriekultur-Dokumentationen
   wiederverwendet. */


/* v244: Pilot der Artikelmigration. Journalartikel, KONNEX-Artikel und Meldungen
   verwenden getrennte kanonische Datenquellen und getrennte Ziel-URLs, aber
   einen gemeinsamen Block- und Medienrenderer. Bestehende manuelle
   Einzeldateien sind keine Migrationsquelle. Das Archiv und alle abgeleiteten
   Ausspielungen werden ausschließlich aus den neuen Fach-JSON-Dateien gebaut. */


/* v245: Gesamtmigration. Die in v244 pilotierte globale Artikelarchitektur
   gilt ohne lokale Ausnahmen für alle 270 redaktionellen Inhalte. Story- und
   Heftzuordnung bleiben Datenmerkmale; Renderer und Blockvertrag sind global. */


/* Architekturstand v247 – redaktionelle Story- und Artikelnavigation.
   1. Storys tragen eine kanonische Heftangabe (ausgabe_label/ausgabe_sort) und
      werden in Uebersicht, Journalstart und Filter absteigend chronologisch geführt.
   2. Kartenraster erzeugen Binnenkanten ueber den Rasterabstand; dadurch bleiben
      Linien auch bei unvollstaendigen letzten Reihen konsistent.
   3. Interne Endnotenanker scrollen ohne Hash-History-Eintrag. Browser-Zurueck
      fuehrt deshalb wieder zur vorherigen Seite.
   4. Redaktionelle Karten begrenzen Teaser global, statt Einzelfaelle zu kuerzen.
   5. Der Journalfilter folgt einem verbindlichen Dreizeilenraster. */
:root{--lhb-editorial-card-teaser-lines:7}


/* v285: final-row contract for responsive card grids directly before the
   global footer. The footer owns the final horizontal page edge. A grid that
   opts into this utility therefore suppresses the bottom border only on its
   final *visual* row; the number of cards follows the responsive column count.
   This is a reusable edge rule, not a title-story page exception. */
@media (min-width:901px){
  main[data-lhb-footer-edge-owner="footer"] > .lhb-footer-edge-grid--3-2-1 > :nth-child(3n+1):nth-last-child(-n+3),
  main[data-lhb-footer-edge-owner="footer"] > .lhb-footer-edge-grid--3-2-1 > :nth-child(3n+1):nth-last-child(-n+3) ~ *{
    border-bottom:0!important;
  }
}
@media (min-width:601px) and (max-width:900px){
  main[data-lhb-footer-edge-owner="footer"] > .lhb-footer-edge-grid--3-2-1 > :nth-child(2n+1):nth-last-child(-n+2),
  main[data-lhb-footer-edge-owner="footer"] > .lhb-footer-edge-grid--3-2-1 > :nth-child(2n+1):nth-last-child(-n+2) ~ *{
    border-bottom:0!important;
  }
}
@media (max-width:600px){
  main[data-lhb-footer-edge-owner="footer"] > .lhb-footer-edge-grid--3-2-1 > :last-child{
    border-bottom:0!important;
  }
}


/* v347 – Frontend-Normalisierung: Linienruhe und Desktop-/Tablet-Luft.
   Strukturelle Kanten werden ueber --lhb-line-width gesteuert; subtile
   Metadaten-/Hilfslinien duerfen weiterhin --lhb-line-width-thin verwenden.
   Mehr Innenraum gilt nur fuer die grossen Modul-/Dokumentationsfamilien.
   Smartphone-Breiten <=760px behalten bewusst den bewaehrten kompakten Stand. */
@media (min-width:981px){
  .network-callout-head,
  .network-callout-body,
  .doc-section-head,
  .doc-section-body,
  .entry-copy,
  .lhb-entry-copy,
  .lhb-contact__intro,
  .lhb-contact__details,
  .lhb-press-section__head,
  .lhb-press-section__body,
  .ike-module-left,
  .ike-module-right,
  .ik-module-copy,
  .hf-module-left,
  .hf-module-right,
  .nd-module-left,
  .nd-module-right,
  .af-module-head,
  .af-module-body{
    padding-block:var(--lhb-module-pad-block-desktop);
    padding-inline:var(--lhb-module-pad-inline-desktop);
  }
  .entry-gallery,
  .lhb-entry-media,
  .ik-module-media{
    padding:var(--lhb-media-pad-desktop);
  }
}
@media (min-width:761px) and (max-width:980px){
  .network-callout-head,
  .network-callout-body,
  .doc-section-head,
  .doc-section-body,
  .entry-copy,
  .lhb-entry-copy,
  .lhb-contact__intro,
  .lhb-contact__details,
  .lhb-press-section__head,
  .lhb-press-section__body,
  .ike-module-left,
  .ike-module-right,
  .ik-module-copy,
  .hf-module-left,
  .hf-module-right,
  .nd-module-left,
  .nd-module-right,
  .af-module-head,
  .af-module-body{
    padding-block:var(--lhb-module-pad-block-tablet);
    padding-inline:var(--lhb-module-pad-inline-tablet);
  }
  .entry-gallery,
  .lhb-entry-media,
  .ik-module-media{
    padding:var(--lhb-media-pad-tablet);
  }
}

/* v349 – Kontaktachsen und verfeinerte Desktop-Luft.
   In zweispaltigen Arbeitsbereichskontakten beginnt die Person rechts auf
   derselben Hoehe wie die Funktionsbezeichnung links; der Kicker bleibt eine
   eigene obere Orientierungsebene. Gestapelte Tablet-/Mobilkontakte behalten
   ihre normale Innengeometrie. */
@media (min-width:981px){
  .lhb-contact--workfield .lhb-contact__label,
  .lhb-contact--wide-details .lhb-contact__label,
  .lhb-contact--organization .lhb-contact__label,
  .lhb-contact--address-heavy .lhb-contact__label,
  .lhb-contact--green-band .lhb-contact__label,
  .lhb-contact--workfield-large .lhb-contact__label{
    margin-bottom:14px !important;
  }
  .lhb-contact--workfield .lhb-contact__details,
  .lhb-contact--wide-details .lhb-contact__details,
  .lhb-contact--organization .lhb-contact__details,
  .lhb-contact--address-heavy .lhb-contact__details,
  .lhb-contact--green-band .lhb-contact__details,
  .lhb-contact--workfield-large .lhb-contact__details{
    padding-top:calc(var(--lhb-module-pad-block-desktop) + var(--lhb-contact-label-offset));
  }
}

