/* Minden elem méretébe beleszámítjuk a paddinget és a bordert */
* {
  box-sizing: border-box;
}

/* 
   1. CSS VÁLTOZÓK
   */

:root {
  --hintergrund: #111318;
  --karten-hintergrund: #1d2129;
  --text: #f4f4f4;
  --text-sekundaer: #b8bdc7;

  --akzent: #6c3fd1;

  --radius: 14px;
  --abstand: 20px;
}

/* 
   2. ALAP OLDAL
    */

body {
  font-family: system-ui, sans-serif;

  background: var(--hintergrund);
  color: var(--text);

  margin: 0;
  padding: 24px;
}

/* 
   3. FEJLÉC
    */

.seitenkopf {
  max-width: 1100px;
  margin: 0 auto 32px;
}

.seitenkopf h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
  margin-bottom: 8px;
}

.seitenkopf p {
  color: var(--text-sekundaer);
  max-width: 650px;
  line-height: 1.6;
}

/* 
   4. GRID
    */

.legion-raster {
  display: grid;

  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));

  gap: var(--abstand);

  max-width: 1100px;

  margin: 0 auto;
}

/* 
   5. KÁRTYA
    */

.legion-karte {
  display: flex;

  flex-direction: column;

  position: relative;

  background: var(--karten-hintergrund);

  border-radius: var(--radius);

  overflow: hidden;

  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);

  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

/* Hover esetén picit felemelkedik */
.legion-karte:hover {
  transform: translateY(-4px);

  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.5);
}

/* 
   6. KÉP
    */

.legion-bild {
  width: 100%;

  height: 220px;

  object-fit: cover;

  display: block;
}

/* 
   7. BADGE
    */

.badge {
  position: absolute;

  top: 12px;
  right: 12px;

  background: var(--akzent);

  color: white;

  padding: 5px 10px;

  border-radius: 999px;

  font-size: 12px;
  font-weight: bold;

  z-index: 1;
}

/* 
   8. KÁRTYA TARTALMA
    */

.karten-inhalt {
  padding: 20px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.legion-name {
  margin-top: 0;

  font-size: 24px;
}

.primarch {
  color: var(--akzent);
}

.beschreibung {
  color: var(--text-sekundaer);

  line-height: 1.5;

  min-height: 72px;
}

/* 
   9. GOMB
    */

.waehlen {
  display: block;
  text-align: center;
  text-decoration: none;
  margin-top: auto;
  width: 100%;

  border: 0;

  background: var(--akzent);

  color: white;

  font: inherit;
  font-weight: bold;

  padding: 12px 16px;

  border-radius: 8px;

  cursor: pointer;

  transition:
    background 0.2s ease,
    transform 0.2s ease;
}

/* Egér ráhúzás */
.waehlen:hover {
  background: #5330a8;

  transform: translateY(-2px);
}

/* Billentyűzetes használat */
.waehlen:focus-visible {
  outline: 3px solid white;

  outline-offset: 3px;
}

/* 
   10. PSEUDO-ELEMENT
    */

.primarch::after {
  content: " ⚔";

  color: var(--text-sekundaer);
}

/* 
   11. EGYEDI CHAPTER SZÍNEK
    */

.dark-angels {
  --akzent: #24734c;
}

.imperial-fists {
  --akzent: #d6a900;
}

.blood-angels {
  --akzent: #b5222a;
}

.ultramarines {
  --akzent: #2757b5;
}

.space-wolves {
  --akzent: #657d91;
}
/* FAQ - Häufig gestellte Fragen */

.faq {
  max-width: 1100px;
  margin: 48px auto 0;
}

.faq-eintrag {
  margin-bottom: 12px;
  background: var(--karten-hintergrund);
  border-radius: var(--radius);
}

.faq-frage {
  padding: 20px;
  font-weight: bold;
  cursor: pointer;
}

.faq-frage:focus-visible {
  outline: 3px solid var(--text);
  outline-offset: 3px;
  border-radius: var(--radius);
}

.faq-antwort {
  margin: 0;
  padding: 0 20px 20px;
  color: var(--text-sekundaer);
  line-height: 1.6;
}

/* Klappbares Menü */

.klappmenue {
  margin-top: 20px;
}

.menue-schalter {
  width: fit-content;
  padding: 12px 16px;
  background: var(--karten-hintergrund);
  border-radius: var(--radius);
  font-weight: bold;
  cursor: pointer;
}

.menue-liste {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
}

.menue-liste a {
  display: block;
  padding: 12px 16px;
  background: var(--karten-hintergrund);
  color: var(--text);
  border-radius: var(--radius);
  text-decoration: none;
}

.menue-liste a:hover {
  text-decoration: underline;
}

.menue-schalter:focus-visible,
.menue-liste a:focus-visible {
  outline: 3px solid var(--text);
  outline-offset: 3px;
}

/* Detailseite – Einstieg und Datenkasten */

.detailseite {
  max-width: 1100px;
  margin: 0 auto;
}

.detail-einstieg {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 32px;
  align-items: start;
}

.detail-beschreibung {
  color: var(--text-sekundaer);
  line-height: 1.7;
}

.datenkasten {
  background: var(--karten-hintergrund);
  border-radius: var(--radius);
  overflow: hidden;
}

.datenkasten h2 {
  margin: 0;
  padding: 16px;
  border-top: 4px solid var(--akzent);
  text-align: center;
}

.datenkasten-bild {
  display: block;
  width: 100%;
  height: auto;
}

.datenkasten-liste {
  margin: 0;
  padding: 20px;
}

.datenkasten-liste dt {
  font-weight: bold;
}

.datenkasten-liste dd {
  margin: 4px 0 16px;
  color: var(--text-sekundaer);
}

@media (max-width: 700px) {
  .detail-einstieg {
    grid-template-columns: 1fr;
  }
}

/* Bildausschnitt der Chapter-Karten */

.blood-angels .legion-bild {
  object-position: center 25%;
}

.imperial-fists .legion-bild {
  object-position: center top;
}

/* Inhaltsverzeichnis */

.inhaltsverzeichnis {
  max-width: 420px;
  margin: 24px 0;
  background: var(--karten-hintergrund);
  border: 1px solid var(--text-sekundaer);
  border-radius: var(--radius);
}

.inhalt-schalter {
  padding: 16px;
  font-weight: bold;
  cursor: pointer;
}

.inhaltsverzeichnis[open] > .inhalt-schalter {
  border-bottom: 1px solid var(--text-sekundaer);
}

.inhalt-liste {
  margin: 0;
  padding: 16px 20px 16px 44px;
}

.inhalt-liste li + li {
  margin-top: 10px;
}

.inhalt-liste a {
  color: var(--text);
  text-decoration: none;
}

.inhalt-liste a:hover {
  text-decoration: underline;
}

.inhalt-schalter:focus-visible,
.inhalt-liste a:focus-visible {
  outline: 3px solid var(--text);
  outline-offset: 3px;
}

/* Bilder in den Textabschnitten */

.abschnitt-abbildung {
  max-width: 360px;
  margin: 24px 0;
}

.abschnitt-abbildung img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius);
}

.abschnitt-abbildung figcaption {
  margin-top: 8px;
  color: var(--text-sekundaer);
  font-size: 0.875rem;
  line-height: 1.5;
}

/* Galerie */

.galerie {
  margin-top: 48px;
}

.galerie-raster {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: var(--abstand);
}

.galerie-eintrag {
  margin: 0;
  overflow: hidden;
  background: var(--karten-hintergrund);
  border-radius: var(--radius);
}

.galerie-eintrag img {
  display: block;
  width: 100%;
  height: 240px;
  object-fit: contain;
}

.galerie-eintrag figcaption {
  padding: 16px;
  color: var(--text-sekundaer);
  font-size: 0.875rem;
  line-height: 1.5;
}

/* Bildbetrachter */

.galerie-link {
  display: block;
  cursor: zoom-in;
}

.galerie-link:focus-visible {
  outline: 3px solid var(--text);
  outline-offset: -3px;
}

.bildbetrachter {
  box-sizing: border-box;
  width: min(1100px, 94vw);
  max-width: 94vw;
  max-height: 94vh;
  padding: 64px 20px 20px;
  border: 1px solid var(--text-sekundaer);
  border-radius: var(--radius);
  background: var(--karten-hintergrund);
  color: var(--text);
}

.bildbetrachter::backdrop {
  background: rgba(0, 0, 0, 0.85);
}

.bildbetrachter-inhalt {
  margin: 0;
}

.bildbetrachter-bild {
  display: block;
  width: 100%;
  height: auto;
  max-height: 65vh;
  object-fit: contain;
}

.bildbetrachter-text {
  margin-top: 16px;
  text-align: center;
  line-height: 1.5;
}

.bildbetrachter button {
  position: absolute;
  top: 12px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--text-sekundaer);
  border-radius: 8px;
  background: var(--hintergrund);
  color: var(--text);
  font: inherit;
  font-size: 1.5rem;
  cursor: pointer;
}

.bildbetrachter-schliessen {
  right: 12px;
}

.bildbetrachter-zurueck {
  left: 12px;
}

.bildbetrachter-weiter {
  left: 68px;
}

.bildbetrachter button:hover {
  background: #353b47;
}

.bildbetrachter button:focus-visible {
  outline: 3px solid var(--text);
  outline-offset: 3px;
}
