/*
  LHB Angebotsband – verbindliche globale Komponente
  Version 1.0 / 17.07.2026

  HTML-Vertrag:
  .lhb-offer-band
    .lhb-offer-card
      .lhb-offer-icon oder .lhb-offer-icon-slot
      .lhb-offer-title
      .lhb-offer-text
      optional .lhb-offer-link
*/

.lhb-offer-band {
  display: grid;
  grid-template-columns: repeat(var(--lhb-offer-columns, 3), minmax(0, 1fr));
  border-bottom: var(--linie) solid var(--lhb-line-color);
  background: var(--weiss);
}
.lhb-offer-band--2 { --lhb-offer-columns: 2; }
.lhb-offer-band--3 { --lhb-offer-columns: 3; }
.lhb-offer-band--4 { --lhb-offer-columns: 4; }
.lhb-offer-band--5 { --lhb-offer-columns: 5; }

.lhb-offer-card {
  box-sizing: border-box;
  min-width: 0;
  min-height: 238px;
  padding: 24px 26px 26px;
  border-right: var(--linie) solid var(--lhb-line-color);
  display: grid;
  grid-template-rows: auto auto minmax(24px, 1fr) auto auto;
  align-content: stretch;
  gap: 0;
  color: var(--schwarz);
  background: var(--weiss);
  text-decoration: none;
  transition: background-color .2s ease, color .2s ease;
}
.lhb-offer-card:last-child { border-right: 0; }

.lhb-offer-icon-slot {
  display: block;
  margin: 0 0 14px;
  line-height: 1;
}
.lhb-offer-card > .lhb-offer-icon,
.lhb-offer-icon-slot > .lhb-offer-icon {
  display: block;
  margin: 0;
  font-size: 27px;
  line-height: 1;
  color: var(--lila);
  transition: color .2s ease;
}
.lhb-offer-card > .lhb-offer-icon { margin-bottom: 14px; }

.lhb-offer-content {
  min-width: 0;
  min-height: 0;
  display: contents;
}

.lhb-offer-title {
  min-width: 0;
  min-height: 2.12em;
  margin: 0;
  font-family: var(--lhb-font-display);
  font-size: clamp(20px, 1.45vw, 24px);
  font-weight: 800;
  letter-spacing: -.025em;
  line-height: 1.04;
  text-transform: uppercase;
  overflow-wrap: normal;
  word-break: normal;
  transition: color .2s ease;
  hyphens: none;
}

.lhb-offer-text {
  align-self: end;
  margin: 0;
  padding-top: 0;
  grid-row: 4;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
  transition: color .2s ease;
  font-family: var(--lhb-font-body);
  font-size: 15px;
  line-height: 1.58;
  color: var(--lhb-neutral-800);
}

.lhb-offer-link {
  align-self: end;
  margin-top: 14px;
  grid-row: 5;
  transition: color .2s ease;
}

/* v211: Grossflaechige Navigation bleibt im Markenfarbraum, ohne schwarze Vollinversion. */
.lhb-offer-card:is(:hover, :focus-visible) {
  background: var(--lhb-surface-navigation-hover);
  color: var(--schwarz);
}
.lhb-offer-card:is(:hover, :focus-visible) .lhb-offer-title,
.lhb-offer-card:is(:hover, :focus-visible) .lhb-offer-icon,
.lhb-offer-card:is(:hover, :focus-visible) .lhb-offer-link {
  color: var(--lila);
}
.lhb-offer-card:is(:hover, :focus-visible) .lhb-offer-text {
  color: var(--lhb-color-text-body);
}

@media (max-width: 1100px) and (min-width: 761px) {
  .lhb-offer-band--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lhb-offer-band--5 .lhb-offer-card:nth-child(2n) { border-right: 0; }
  .lhb-offer-band--5 .lhb-offer-card { border-bottom: var(--linie) solid var(--lhb-line-color); }
  .lhb-offer-band--5 .lhb-offer-card:last-child { grid-column: 1 / -1; border-bottom: 0; }
}

@media (max-width: 760px) {
  .lhb-offer-band,
  .lhb-offer-band--2,
  .lhb-offer-band--3,
  .lhb-offer-band--4,
  .lhb-offer-band--5 {
    grid-template-columns: 1fr;
  }
  .lhb-offer-card {
    min-height: 0;
    padding: 22px 22px 24px;
    border-right: 0;
    border-bottom: var(--linie) solid var(--lhb-line-color);
    grid-template-rows: auto auto minmax(18px, 1fr) auto auto;
  }
  .lhb-offer-card:last-child { border-bottom: 0; }
  .lhb-offer-icon-slot,
  .lhb-offer-card > .lhb-offer-icon { margin-bottom: 12px; }
  .lhb-offer-title {
    min-height: 0;
    font-size: clamp(20px, 6.2vw, 25px);
  }
  .lhb-offer-text { padding-top: 0; grid-row: 4; }
}

/* v122: kompakte Variante fuer dreispaltige Angebotsbaender.
   Die Fuenfer-Variante bleibt unveraendert. Bei drei Karten ist die Lesemenge
   meist geringer; deshalb darf die Komponente vertikal kompakter reagieren. */
@media (min-width: 761px) {
  .lhb-offer-band--3 .lhb-offer-card {
    min-height: 205px;
    padding: 20px 26px 22px;
    grid-template-rows: auto auto minmax(12px, .55fr) auto auto;
  }
  .lhb-offer-band--3 .lhb-offer-icon-slot,
  .lhb-offer-band--3 .lhb-offer-card > .lhb-offer-icon {
    margin-bottom: 10px;
  }
  .lhb-offer-band--3 .lhb-offer-title {
    min-height: 1.08em;
  }
  .lhb-offer-band--3 .lhb-offer-text {
    -webkit-line-clamp: 3;
    line-height: 1.5;
  }
}


/* Verbandsuebersicht v1.0 – bewahrt die bisherige Geometrie als offizielle
   Angebotsband-Variante statt lokaler .lhb-card-Ueberschreibungen. */
.lhb-offer-band--organization .lhb-offer-card{
  min-height:250px;
  padding:26px 24px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:22px;
}
.lhb-offer-band--organization .lhb-offer-card > .lhb-offer-icon{font-size:28px}
.lhb-offer-band--organization .lhb-offer-title{
  min-height:0;
  font-size:25px;
  letter-spacing:0;
  line-height:1.04;
}
.lhb-offer-band--organization .lhb-offer-text{
  display:block;
  overflow:visible;
  font-size:15px;
  line-height:1.62;
  color:var(--lhb-neutral-750);
}
.lhb-offer-band--organization .lhb-offer-card:focus-visible{
  outline:3px solid var(--flieder);
  outline-offset:-5px;
}
@media(max-width:900px){
  .lhb-offer-band--organization .lhb-offer-card{border-right:0;border-bottom:var(--linie) solid var(--lhb-line-color)}
  .lhb-offer-band--organization .lhb-offer-card:last-child{border-bottom:0}
}
