/* LHB Kontakt- und Personenvertrag 1.0
   Globale Struktur fuer Kontaktfelder, Ansprechpartner und Personenraster.
   Seitenspezifische Inhalte bleiben lokal; Geometrie, Typografie, Kanten und
   responsive Verhalten werden hier zentral verwaltet. */

.lhb-contact{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  border-bottom:var(--linie) solid var(--lhb-line-color);
  background:var(--lhb-surface-panel);
}
.lhb-contact--wide-details{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}
.lhb-contact--organization{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.lhb-contact__intro,
.lhb-contact__details{padding:34px 30px}
.lhb-contact__intro{border-right:var(--linie) solid var(--lhb-line-color)}
.lhb-contact__label{
  font-family:var(--lhb-font-ui);
  font-size:10px;
  font-weight:800;
  letter-spacing:.18em;
  line-height:1.2;
  text-transform:uppercase;
  color:var(--lhb-color-accent);
  margin-bottom:14px;
}
.lhb-contact__title{
  margin:0;
  font-family:var(--lhb-font-display);
  font-size:34px;
  font-weight:800;
  letter-spacing:0;
  line-height:1;
  text-transform:uppercase;
}
.lhb-contact__intro p,
.lhb-contact__details{
  font-family:var(--lhb-font-body);
  font-size:16px;
  line-height:1.7;
  color:var(--lhb-neutral-750);
}
.lhb-contact__intro p{margin-top:18px}
.lhb-contact__name{
  font-family:var(--lhb-font-display);
  font-size:22px;
  font-weight:800;
  letter-spacing:0;
  line-height:1.12;
  text-transform:uppercase;
  margin-bottom:10px;
}
.lhb-contact__role{margin:0 0 10px}
.lhb-contact__lines{font-family:var(--lhb-font-body);font-size:15px;line-height:1.75}
.lhb-contact a{color:var(--lhb-color-accent)}
.lhb-contact a:hover{text-decoration:underline}
.lhb-contact__actions{display:flex;flex-wrap:wrap;gap:var(--lhb-space-2);margin-top:var(--lhb-space-3)}
.lhb-contact__phones,.lhb-contact__address{font-family:var(--lhb-font-body);font-size:15px;line-height:1.7;color:var(--lhb-neutral-800)}
.lhb-contact__phones{margin:0 0 10px}
.lhb-contact__address{margin:0}

/* v358.2 – Kontaktmodule verwenden in beiden Modulhaelften dieselbe Schriftfamilie.
   Zusaetzlich bilden Intro und Kontaktdetails eine gemeinsame helle Modulfläche;
   Groessen, Gewichte, Geometrie und semantische Hierarchie bleiben unveraendert. */
.lhb-contact__details,
.lhb-contact__details .lhb-contact__role,
.lhb-contact__details .lhb-contact__lines,
.lhb-contact__details .lhb-contact__phones,
.lhb-contact__details .lhb-contact__address,
.lhb-contact__details p{font-family:var(--lhb-font-display)}

.lhb-person-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.lhb-person-card{
  border:var(--lhb-line-width-medium) solid var(--lhb-line-color);
  padding:16px;
  min-height:160px;
  background:var(--lhb-surface-panel);
}
.lhb-person-card__name{
  font-family:var(--lhb-font-display);
  font-size:16px;
  font-weight:800;
  letter-spacing:0;
  line-height:1.12;
  text-transform:uppercase;
}
.lhb-person-card__role{
  font-family:var(--lhb-font-body);
  font-size:13px;
  line-height:1.45;
  color:var(--lhb-neutral-700);
  margin-top:8px;
}
.lhb-person-card__contact{
  font-family:var(--lhb-font-body);
  font-size:13px;
  line-height:1.55;
  margin-top:10px;
}
.lhb-person-card__contact a{color:var(--lhb-color-accent)}

@media(max-width:1050px){
  .lhb-person-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:980px){
  .lhb-contact,
  .lhb-contact--wide-details,
  .lhb-contact--organization{grid-template-columns:1fr}
  .lhb-contact__intro{border-right:none;border-bottom:var(--linie) solid var(--lhb-line-color)}
}
@media(max-width:900px){
  .lhb-person-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .lhb-contact__intro,
  .lhb-contact__details{padding-left:22px;padding-right:22px}
  .lhb-contact__title{font-size:30px}
  .lhb-contact__name{font-size:20px}
  .lhb-contact__details{font-size:15px}
}

/* Arbeitsbereichsvertrag 1.2: gleiche redaktionelle und visuelle Grundstruktur.
   Links stehen nur Label und Arbeitsbereichstitel; rechts Ansprechpartner und Kontaktdaten. */
.lhb-contact--workfield,
.lhb-contact--wide-details,
.lhb-contact--organization,
.lhb-contact--address-heavy,
.lhb-contact--green-band,
.lhb-contact--workfield-large{
  grid-template-columns:minmax(0,2fr) minmax(0,3fr);
}
.lhb-contact--workfield .lhb-contact__title,
.lhb-contact--wide-details .lhb-contact__title,
.lhb-contact--organization .lhb-contact__title,
.lhb-contact--address-heavy .lhb-contact__title,
.lhb-contact--green-band .lhb-contact__title,
.lhb-contact--workfield-large .lhb-contact__title{
  font-size:clamp(31px,3.1vw,44px);
  line-height:1.03;
}
.lhb-contact--workfield .lhb-contact__name,
.lhb-contact--wide-details .lhb-contact__name,
.lhb-contact--organization .lhb-contact__name,
.lhb-contact--address-heavy .lhb-contact__name,
.lhb-contact--green-band .lhb-contact__name,
.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{line-height:1.72;color:var(--lhb-neutral-800)}

/* Variantenvertrag 1.1: fachlich unterschiedliche Kontaktfelder nutzen
   dieselbe Struktur und steuern nur ihre benoetigten Proportionen. */
.lhb-contact--address-heavy .lhb-contact__details{line-height:1.75}
.lhb-contact--address-heavy a{
  color:var(--lhb-color-ink);
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:3px;
}
.lhb-contact__intro-text{margin-top:18px}

.lhb-person-grid--board{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.lhb-person-card--board{min-height:0;padding:14px}
.lhb-person-card--board .lhb-person-card__name{display:block;font-size:14px}
.lhb-person-card--board .lhb-person-card__role{display:block;font-size:13px;margin-top:5px;color:var(--lhb-neutral-650)}

@media(max-width:980px){
  .lhb-contact--address-heavy,
  .lhb-contact--green-band,
  .lhb-contact--workfield-large{grid-template-columns:1fr}
}
@media(max-width:900px){
  .lhb-person-grid--board{grid-template-columns:1fr}
}
@media(max-width:640px){
  .lhb-contact--address-heavy .lhb-contact__intro,
  .lhb-contact--address-heavy .lhb-contact__details,
  .lhb-contact--green-band .lhb-contact__intro,
  .lhb-contact--green-band .lhb-contact__details,
  .lhb-contact--workfield-large .lhb-contact__intro,
  .lhb-contact--workfield-large .lhb-contact__details{padding:28px 22px}
  .lhb-contact--address-heavy .lhb-contact__title{font-size:clamp(28px,8.5vw,38px)}
  .lhb-contact--address-heavy .lhb-contact__name,
  .lhb-contact--green-band .lhb-contact__name,
  .lhb-contact--workfield-large .lhb-contact__name{font-size:22px}
  .lhb-contact--workfield-large .lhb-contact__title{font-size:clamp(28px,8.5vw,38px)}
  .lhb-contact--wide-details .lhb-contact__intro,
  .lhb-contact--wide-details .lhb-contact__details{padding:36px}
  .lhb-contact--wide-details .lhb-contact__title{font-size:clamp(26px,8vw,30px);line-height:1.05;overflow-wrap:anywhere}
  .lhb-contact--wide-details .lhb-contact__name{font-size:20px}
  .lhb-contact--wide-details .lhb-contact__details{font-size:15px;line-height:1.7}
}


/* Arbeitsbereichskontakt 2.2 – semantische Reihenfolge rechts:
   Name, ggf. Funktion, Telefonnummern, Post-/Besucheradresse, Kontaktaktion. */
.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{display:flex;flex-direction:column;align-items:flex-start}
.lhb-contact--workfield .lhb-contact__phones,
.lhb-contact--wide-details .lhb-contact__phones,
.lhb-contact--organization .lhb-contact__phones,
.lhb-contact--address-heavy .lhb-contact__phones,
.lhb-contact--green-band .lhb-contact__phones,
.lhb-contact--workfield-large .lhb-contact__phones{margin-bottom:8px}
.lhb-contact--workfield .lhb-contact__address,
.lhb-contact--wide-details .lhb-contact__address,
.lhb-contact--organization .lhb-contact__address,
.lhb-contact--address-heavy .lhb-contact__address,
.lhb-contact--green-band .lhb-contact__address,
.lhb-contact--workfield-large .lhb-contact__address{margin-bottom:0}
.lhb-contact--workfield .lhb-contact__details > .lhb-contact-trigger,
.lhb-contact--wide-details .lhb-contact__details > .lhb-contact-trigger,
.lhb-contact--organization .lhb-contact__details > .lhb-contact-trigger,
.lhb-contact--address-heavy .lhb-contact__details > .lhb-contact-trigger,
.lhb-contact--green-band .lhb-contact__details > .lhb-contact-trigger,
.lhb-contact--workfield-large .lhb-contact__details > .lhb-contact-trigger{margin-top:18px}

/* Arbeitsbereichskontakt 2.1 – verbindlicher Abschlussbaustein.
   Funktionsbereich und Person gehoeren sichtbar zusammen; innere und aeussere
   Strukturkanten folgen demselben globalen Linienvertrag. */
.lhb-contact--workfield,
.lhb-contact--wide-details,
.lhb-contact--organization,
.lhb-contact--address-heavy,
.lhb-contact--green-band,
.lhb-contact--workfield-large{
  grid-template-columns:minmax(0,2fr) minmax(0,3fr) !important;
  border-bottom:var(--linie) solid var(--lhb-line-color) !important;
  background:var(--weiss) !important;
}
.lhb-contact--workfield .lhb-contact__intro,
.lhb-contact--wide-details .lhb-contact__intro,
.lhb-contact--organization .lhb-contact__intro,
.lhb-contact--address-heavy .lhb-contact__intro,
.lhb-contact--green-band .lhb-contact__intro,
.lhb-contact--workfield-large .lhb-contact__intro{
  /* Einheitliche Strukturkante: Innen- und Außenraster folgen demselben Linienvertrag. */
  border-right:var(--linie) solid var(--lhb-line-color) !important;
  background:var(--lhb-overlay-accent-045) !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{
  background:var(--lhb-overlay-accent-045) !important;
}
.lhb-contact--workfield .lhb-contact__role,
.lhb-contact--wide-details .lhb-contact__role,
.lhb-contact--organization .lhb-contact__role,
.lhb-contact--address-heavy .lhb-contact__role,
.lhb-contact--green-band .lhb-contact__role,
.lhb-contact--workfield-large .lhb-contact__role{
  margin:0 0 12px !important;
}
.lhb-contact--workfield .lhb-contact__details p,
.lhb-contact--wide-details .lhb-contact__details p,
.lhb-contact--organization .lhb-contact__details p,
.lhb-contact--address-heavy .lhb-contact__details p,
.lhb-contact--green-band .lhb-contact__details p,
.lhb-contact--workfield-large .lhb-contact__details p{
  margin:0 0 12px !important;
}
@media(max-width:980px){
  .lhb-contact--workfield,
  .lhb-contact--wide-details,
  .lhb-contact--organization,
  .lhb-contact--address-heavy,
  .lhb-contact--green-band,
  .lhb-contact--workfield-large{
    grid-template-columns:minmax(0,1fr) !important;
  }
  .lhb-contact--workfield .lhb-contact__intro,
  .lhb-contact--wide-details .lhb-contact__intro,
  .lhb-contact--organization .lhb-contact__intro,
  .lhb-contact--address-heavy .lhb-contact__intro,
  .lhb-contact--green-band .lhb-contact__intro,
  .lhb-contact--workfield-large .lhb-contact__intro{
    border-right:0 !important;
    border-bottom:var(--linie) solid var(--lhb-line-color) !important;
  }
}
@media(max-width:640px){
  .lhb-contact--workfield .lhb-contact__intro,
  .lhb-contact--workfield .lhb-contact__details,
  .lhb-contact--wide-details .lhb-contact__intro,
  .lhb-contact--wide-details .lhb-contact__details,
  .lhb-contact--organization .lhb-contact__intro,
  .lhb-contact--organization .lhb-contact__details,
  .lhb-contact--address-heavy .lhb-contact__intro,
  .lhb-contact--address-heavy .lhb-contact__details,
  .lhb-contact--green-band .lhb-contact__intro,
  .lhb-contact--green-band .lhb-contact__details,
  .lhb-contact--workfield-large .lhb-contact__intro,
  .lhb-contact--workfield-large .lhb-contact__details{
    padding:26px 22px !important;
  }
  .lhb-contact--workfield .lhb-contact__title,
  .lhb-contact--wide-details .lhb-contact__title,
  .lhb-contact--organization .lhb-contact__title,
  .lhb-contact--address-heavy .lhb-contact__title,
  .lhb-contact--green-band .lhb-contact__title,
  .lhb-contact--workfield-large .lhb-contact__title{
    max-width:none !important;
    font-size:clamp(25px,7.4vw,34px) !important;
    line-height:1.02 !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
  }
  .lhb-contact--workfield .lhb-contact__name,
  .lhb-contact--wide-details .lhb-contact__name,
  .lhb-contact--organization .lhb-contact__name,
  .lhb-contact--address-heavy .lhb-contact__name,
  .lhb-contact--green-band .lhb-contact__name,
  .lhb-contact--workfield-large .lhb-contact__name{
    margin:0 0 12px !important;
    font-size:clamp(22px,6.7vw,30px) !important;
    line-height:1.04 !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{
    font-size:15px !important;
    line-height:1.62 !important;
  }
}
