/* ====================================== */
/* BILDÜBERLAPPUNG  3 Bilder              */
/* z.B. in Bergbau - Springen1            */
/* ====================================== */
.bild-wrap {
  position: relative;
  display: inline-block;
  max-width: 100%;
}
.bild-base {
  display: block;
  width: 100%;
  height: auto;
}
.bild-overlay {
  position: absolute;
  height: auto;
  max-width: 100%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  border-radius: 4px;
}
.hover-text {
  position: absolute;
  background: rgba(0,0,0,0.3); /* vorher 0.6, jetzt 0.3 = heller / transparenter */
  color: #fff;
  padding: 5px 10px;
  border-radius: 4px;
  opacity: 0;
  transition: opacity 0.3s ease;
  text-align: center;
}
/* Hover Effekt */
.bild-wrap:hover .hover-text {
  opacity: 1;
}

/* Responsive */
@media (max-width:600px) {
  .bild-wrap img {
    width: 80%;
  }
  .bild-overlay[style*="top:-10px"] {
    top: -5px;
    right: -5px;
  }
}


/* ====================================== */
/* BENUTZERDEFINIERTE TABELLE (GELB/GRAU) */
/* Universelle Tabellen                   */
/* ====================================== */
.custom-table {
  width: 100%;
  border-collapse: collapse; /* entfernt doppelte Ränder */
  table-layout: fixed;
  /*Rahmen um Tabelle*/
  border-style: solid !important;
  border: 1px solid #dddddd !important;
  border-radius: 8px;
  overflow: hidden; /* wichtig für runde Ecken */        /* früher: border: none; /* Tabelle selbst ohne Rahmen */
}
.custom-table td {
  vertical-align: top;
  padding: 10px;
  font-weight: 600;
  border: none; /* Zellen ohne Rahmen */
}
/* Bilder korrekt darstellen */
.custom-table td img {
  display: block;
  width: 100%;
  height: auto;
}
/* Farbzelle gelb*/
.custom-table td.hellgelb {
  background-color: #fbeeb8 !important; /* hellgelb*/  /* wichtig: überschreibt Editor-Stile */
  color: #000000 !important;
  /* Schrift = Joomla Standard */
  font-family: inherit;
  font-weight: normal; /*bei Fett hier eine Zahl z.B. 700*/
}
/* Farbzelle grau*/
.custom-table td.hellgrau {
  background-color: #eeeeee !important; /* hellgrau */  /* wichtig: überschreibt Editor-Stile */
  /*color: #000000 !important; */
  /* Schrift = Joomla Standard */
  font-family: inherit;
  font-weight: normal; /*bei Fett hier eine Zahl z.B. 700*/
}
/* Button in der Farbzelle */
.custom-table td .cell-button {
  display: inline-block;
  margin-top: 12px;
  padding: 10px 22px;

  background-color: transparent;
  color: #000000;
  border: 2px solid #000000;
  border-radius: 30px;

  text-decoration: none;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 600;

  transition: all 0.25s ease;
}
/* Hover-Effekt */
.custom-table td .cell-button:hover {
  background-color: #000000;
  color: #ffffff;
}
/* Bildzellen */
.custom-table td.image-cell {
  text-align: center; 
  vertical-align: middle; 
}
/* Bild in der Zelle */
.table-img {
  max-width: 100%; 
  height: auto;
  display: block; /* ← WICHTIG: damit kein Abstand + Hintergrund sichtbar */
  margin: 0 auto; /* zentriert das Bild wirklich */
}
/* sorgt dafür, dass auch Bildzellen die Hintergrundfarbe sauber zeigen */
.custom-table td.hellgelb.image-cell,
.custom-table td.hellgrau.image-cell {
  padding: 10px; /* optional, für Abstand im farbigen Bereich */
}
/* Zoom-Funktion */
.table-img.zoom {
  max-width: 100%;   
  cursor: zoom-in;
  transition: transform 0.3s ease;
}
.table-img.zoom:hover {
  transform: scale(1.05);
}



/* ===================================== */
/* PUBLIKATIONEN*/
/* ===================================== */
.pub{
  border: 1px solid #cccccc;
  padding: 12px;
  margin: 15px 0;
  border-radius: 6px;
  background: #fafafa;
}
.pub-source{
  font-style: italic;
  color:#666;
  margin-bottom:4px;
}
.pub-title{
  font-weight: 600;
  position: relative;
  padding-left: 14px;
}
.pub-title::before{
  content:"";
  position:absolute;
  left:0;
  top:3px;
  width:6px;
  height:18px;
  background:#0d6efd;   /* Farbe */
  border-radius:2px;
}.pub-year{
  font-weight: bold !important;
  font-size: 1.8rem;
}
.pub-authors{
  color:#444;
  margin-top:3px;
}
.pub-journal{
  font-style: italic;
  color:#666;
  margin-top:2px;
}
.pub-links{
  margin-top:4px;
}
.pub-links a{
  margin-right:10px;
  font-size:0.9rem;
}




/* ===================================== */
/* REFERENZEN in Tabellenform*/
/* ===================================== */
.referenzen-table {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 1200px;
    margin: 20px;
    font-family: Arial, sans-serif;
}
/* Header */
.referenz-header {
    display: grid;
    grid-template-columns: 100px 100px 2fr 1fr 120px;
    padding: 12px;
    font-weight: bold;
    background-color: var(--cassiopeia-color-primary);
    color: #fff;
    border-radius: 6px;
    column-gap: 20px; /* Abstand zwischen Spalten */
}
/* Zeilen */
.referenz-row {
    display: grid;
    grid-template-columns: 100px 100px 2fr 1fr 120px;
    align-items: center;
    padding: 12px;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
    transition: 0.2s ease;
    column-gap: 20px; /* Abstand zwischen Spalten */
}
.referenz-row:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
/* Zebra */
.referenz-row:nth-child(even) {
    background-color: #f9f9f9;
}
/* Spalten */
.referenz-row .col {
    padding: 4px 8px;
}
.referenz-row .auftraggeber {
    white-space: normal;   /* Zeilenumbruch erlauben */
    word-break: break-word; /* sehr lange Wörter umbrechen */
}
/* Logo */
.referenz-row .logo {
    display: flex;
    justify-content: flex-end;
}
.referenz-row .logo img {
    max-height: 50px;
    object-fit: contain;
    cursor: pointer; /* Hinweis: klickbar */
    max-width: 100%;
    height: auto;
    transition: 0.2s ease;
}
.referenz-row .logo img:hover {
    transform: scale(1.1);
    opacity: 0.85;
}
/* ===================================== */
/* REFERENZEN "MEHR LESEN" LINK */
/* ===================================== */
.referenz-row .projekt {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
/* Link Styling */
.referenz-row .more-link {
    font-size: inherit;        /* gleiche Größe wie Text */
    font-family: inherit;      /* gleiche Schriftart */
    font-weight: inherit;      /* gleiche Stärke */
    color: var(--cassiopeia-color-primary); /* blau aus Cassiopeia */
    text-decoration: underline; /* optional: damit er als Link erkennbar bleibt */
}
/* Hover Effekt */
.referenz-row .more-link:hover {
    text-decoration: underline;
    opacity: 0.8;
}
/* ===================================== */
/* REFERNEZEN MOBILE */
/* ===================================== */
@media (max-width: 768px) {
    .referenz-header {
        display: none;
    }
    .referenz-row {
        grid-template-columns: 1fr;
        gap: 6px;
        padding: 15px;
    }
    .referenz-row .col {
        display: flex;
        justify-content: space-between;
        border-bottom: 1px solid #eee;
    }
    .referenz-row .col::before {
        font-weight: bold;
        color: #666;
    }
    .jahr::before { content: "Jahr"; }
    .kunde::before { content: "Kunde"; }
    .projekt::before { content: "Projekt"; }
    .leistung::before { content: "Leistung"; }
    .logo {
        justify-content: flex-start;
        border-bottom: none;
        margin-top: 10px;
    }
}

/* ========================= */
/* TEAMLISTE alle untereinander */
/* ========================= */
/* ========================= */
/* TEAMLISTE VERTIKAL */
/* ========================= */
.team-list {
    display: flex;
    flex-direction: column;
    gap: 30px;
    max-width: 900px;
    margin: 0;
}

.team-member {
    display: flex;
    gap: 20px;
    background: #fff;
    border: 1px solid #ddd;
    padding: 15px;
    align-items: flex-start;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.team-member:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.team-member img.click-zoom {
    width: 200px;
    height: 200px;
    object-fit: cover;
    border-radius: 5px;
    cursor: pointer;
    flex-shrink: 0;
}
.team-info h3 {
    margin: 0 0 5px 0;
    font-size: 1.3rem;
}
.team-info .position {
    font-weight: 600;
    margin-bottom: 5px;
}
.team-info .contact {
    font-size: 0.95rem;
    margin-bottom: 8px;
}
.team-info .description {
    font-size: 0.9rem;
    line-height: 1.3;
    color: #333;
}

/* ========================= */
/* RESPONSIVE FÜR HANDY */
/* ========================= */
@media (max-width: 768px) {
    .team-member {
        flex-direction: column;
        align-items: flex-start;
    }

    .team-member img.click-zoom {
        width: 100%;
        max-width: 250px;
        height: auto;
        margin-bottom: 10px;
    }
}


/* ========================= */
/* MODAL FÜR LOGOS & TEAMBILDER */
/* ========================= */
.zoom-modal {
    display: none;
    position: fixed;
    z-index: 1000;
    padding-top: 60px;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.8);
    overflow: auto;
}
.zoom-modal-content {
    margin: auto;
    display: block;
    max-width: 80%;
    max-height: 80%;
}
.zoom-close {
    position: absolute;
    top: 20px;
    right: 40px;
    color: #fff;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
}
.zoom-close:hover {
    color: #ccc;
}


/* ===================================== */
/* HEADER + FOOTER */
/* ===================================== */
/* ============================= */
/* HEADER – 3 BALKEN             */
/* ============================= */
/* Mittlerer Bereich weiß */
header.container-header {
    background: #ffffff !important;
    border-top: 40px solid var(--cassiopeia-color-primary);
    border-bottom: 40px solid var(--cassiopeia-color-primary);
    z-index: 10;
}
/* Menüschrift dunkel */
header.container-header .mod-menu > li > a {
    color: #222222 !important;
}
/* Aktiver Menüpunkt */
header.container-header .mod-menu > li.active > a,
header.container-header .mod-menu > li.current > a {
    color: #000000 !important;
    font-weight: 600;
}
/* Dropdown-Pfeil (icon-chevron-down) */
header.container-header .icon-chevron-down {
    color: #222222 !important;
}
/* Hover */
header.container-header .mod-menu > li > a:hover {
    color: var(--cassiopeia-color-primary) !important;
}
/* ============================= */
/* FOOTER – exakt wie Header-Balken */
/* ============================= */
/* Footer wie Header-Balken */
footer.container-footer,
footer.container-footer .footer {
    background: #ffffff !important; /* Mittlerer Bereich weiß */
    border-top: 40px solid var(--cassiopeia-color-primary) !important;
    border-bottom: 40px solid var(--cassiopeia-color-primary) !important;
    color: #222222 !important;
    padding: 0.02px 0 !important; /* kleineres Padding = schmaler Mittelteils */
}
/* Links */
footer.container-footer a,
footer.container-footer .footer a {
    color: #222222 !important;
}
footer.container-footer a:hover,
footer.container-footer .footer a:hover {
    color: var(--cassiopeia-color-primary) !important; /* Hover in Blau */
}
/* Kleine Texte / Copyright */
footer.container-footer p,
footer.container-footer .footer p,
footer.container-footer .footer .small {
    color: #222222 !important; /* Dunkel */
}



/* ============================= */
/* KACHELN für z.B. Fachgebiete  */
/* Bild mit Text und Link         */
/* ============================= */
.image-overlay {
  position: relative;
  display: inline-block;
  max-width: 100%;
}
.image-overlay img {
  display: block;
  width: 100%;
  height: auto;
}
.overlay-content {
  position: absolute;
  bottom: 20px;
  left: 20px;
}
.overlay-text {
  background:transparent;
  color: #ffffff;
  padding: 10px 14px;
  margin-bottom: 8px;
  font-size: 1.1rem;
  border-radius: 4px;
  font-weight: 700;         /* fett */
}
/* Button-Link */
.overlay-link {
  display: inline-block;
  background: transparent;
  color: #ffffff;
  padding: 10px 24px;
  border: 2px solid #ffffff;
  font-size: 1.1rem;
  border-radius: 30px;
  font-weight: 700;         /* fett */
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  transition: all 0.25s ease;
  text-shadow: 0 2px 6px rgba(0,0,0,0.7);
}
.overlay-link:hover {
  background: #ffffff;
  color: #000000;
  text-shadow: none;
}