/* ===== Final Optimiert: about.css ===== */

/* Zentrierung nur für große Screens */
.viewport-center {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  min-height: calc(100vh - 150px);
  box-sizing: border-box;
  width: 100%;
}

/* Content-Container */
.content-container {
  max-width: 700px;
  margin: 0 auto;
}

/* Inhalt außerhalb der Boxen – unverändert */
.description,
.sound-description {
  color: #fff;
  font-size: 1.18em;
  line-height: 1.6;
  margin-bottom: 1.1em;
}

.band-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  justify-content: center;
  margin-bottom: 2em;
}

.member-card {
  border: 1.5px solid #ff5e00;
  border-radius: 14px;
  padding: 18px 22px 12px 22px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.11);
  flex: 1 1 220px;
  max-width: 320px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: left;
  transition: box-shadow 0.3s;
}

.member-card:hover {
  box-shadow: 0 12px 56px 6px rgba(255,110,50,0.38),
              0 0 0 3.5px rgba(255,94,0,0.13),
              0 0 32px 8px #ff6f38bb inset;
}

.member-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 0.5em;
}

.member-icon {
  font-size: 3em;
  flex-shrink: 0;
}

.member-info {
  display: flex;
  flex-direction: column;
}

.member-name {
  font-size: 1.8em;
  font-weight: 700;
  color: #ffe5c3;
  margin: 0 0 0.2em 0;
}

.member-role {
  font-size: 1.4em;
  font-style: italic;
  color: #ff5e00;
  margin: 0;
}

.member-description {
  color: #eee;
  font-size: 1.2em;
  line-height: 1.7;
}

/* Links in den Musiker-Boxen explizit gestalten */
.member-description a {
  color: #ff5e00;        /* Akzentfarbe */
  font-weight: 600;
  text-decoration: none;
}
.member-description a:hover {
  text-decoration: underline;
}

.sound-section {
  margin-top: 3.5em;
  margin-bottom: 2em;
}

/* ===== Neuer Setlist-Abschnitt ===== */
.setlist-section {
  margin: 3.5em 0 2em 0;
}
.setlist-section h2.section-title {
  /* nutzt automatisch dieselben Styles wie andere Abschnittsüberschriften */
}
.setlist-section p {
  color: #fff;
  font-size: 1.18em;
  line-height: 1.6;
}

/* Neutralisierung von Top-Abständen */
main > *:first-child,
main > *:first-child > *:first-child,
main > *:first-child > *:first-child > *:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* ============================================= */
/* 📱📲💻🖥 RESPONSIVE BREAKPOINTS – 5 STUFEN BASIS */
/* ============================================= */

/* 📱 XS – bis 480px */
@media (max-width: 480px) {
  .viewport-center {
    justify-content: flex-start;
    min-height: auto;
  }
  .member-name {
    font-size: 1.4em;
  }
  .member-role {
    font-size: 1.1em;
  }
  .member-description {
    font-size: 1em;
  }
}

/* 📲 SM – 481px bis 768px */
@media (min-width: 481px) and (max-width: 768px) {
  .viewport-center {
    justify-content: flex-start;
    min-height: auto;
  }
  .member-name {
    font-size: 1.5em;
  }
  .member-role {
    font-size: 1.2em;
  }
  .member-description {
    font-size: 1.05em;
  }
}

/* 💻 MD – 769px bis 1023px */
@media (min-width: 769px) and (max-width: 1023px) {
  .viewport-center {
    justify-content: flex-start;
    min-height: auto;
  }
  .member-name {
    font-size: 1.6em;
  }
  .member-role {
    font-size: 1.3em;
  }
  .member-description {
    font-size: 1.1em;
  }
}

/* 🖥 LG – 1024px bis 1440px */
@media (min-width: 1024px) and (max-width: 1440px) {
  /* keine speziellen Regeln erforderlich – Platzhalter für Konsistenz */
}

/* 🖥📺 XL – ab 1441px */
@media (min-width: 1441px) {
  /* keine speziellen Regeln erforderlich – Platzhalter für Konsistenz */
}
