/*  80s.css  */


/* =====================================================================
   ======================== Basics, Akzent, Fonts =======================
   ===================================================================== */

/* ======== 80er Basics ======== */
/* pink/violett/türkis neon farben für retro arcade look */
body[data-epoche="achtziger"],
.epoche-80er {
  --accent: #ff6bde; /* pink accent */
  --ui-accent: var(--brand-turquoise);
  --ui-accent-soft: color-mix(in srgb, var(--brand-turquoise) 28%, transparent);

  /* pager farben für prev/next buttons (violett) */
  --pager-accent: #b86bff;
  --pager-accent-soft: color-mix(in srgb, #b86bff 35%, transparent);
}

/* ======== Theme variablen + retro schrift ======== (Quelle: https://fonts.googleapis.com/css2?family=Press+Start+2P) */
/* Press Start 2P für authentischen 8 bit look */
.epoche-80er {
    --epoch-bg:
        linear-gradient(180deg, rgba(0,0,0,0.5), rgba(0,0,0,0.35) 35%, rgba(0,0,0,0.5)),
        url('../pics/80er.webp');
    --epoch-card-bg: rgba(10, 8, 26, 0.7);
    --epoch-card-border: rgba(255, 107, 222, 0.45); /* pink border */
    --epoch-text: #ffb7f0; /* pink text */
    --epoch-subtext: #9bd8ff; /* neon blau subtext */
    font-family: "Press Start 2P", "VT323", "Courier New", monospace;
    --epoch-font: "Press Start 2P", "VT323", "Courier New", monospace;
}


/* =====================================================================
   ============================ Accordion Menü ==========================
   ===================================================================== */

/* ======== Shell wrapper ======== */
/* vollbreite container für accordion menü */
.shell-80er {
    width: 100%;
}

/* ======== Panel fläche mit glow ======== */
/* neon dunkler gradient mit doppeltem glow (außen + innen) für arcade look */
.panel-80er {
    background: linear-gradient(145deg, rgba(10, 8, 26, 0.95), rgba(7, 6, 20, 0.9));
    border: 1px solid rgba(255, 107, 222, 0.45);
    box-shadow: 0 0 24px rgba(255,107,222,0.22), inset 0 0 12px rgba(0,255,255,0.18);
    padding: 1rem;
    display: grid;
    gap: 0.6rem;
}

/* ======== Accordion wrapper ======== (Quelle: https://getbootstrap.com/docs/5.0/components/accordion/) */
/* mehrere menüeinträge untereinander (bootstrap accordion basis) */
.accordion-80er {
    display: grid;
    gap: 0.6rem;
}

/* ======== Accordion item ======== */
/* einzelner menüeintrag mit smooth transitions für hover/state */
.menu-item {
    background: rgba(255,255,255,0.02);
    border: 1px solid rgba(255,107,222,0.4);
    overflow: hidden; /* panel inhalt wird beim zuklappen abgeschnitten */
    transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

/* ======== Hover + fokus ======== */
/* border + glow wechseln von pink zu türkis beim hover für feedback */
.menu-item:hover,
.menu-item:focus-within {
    border-color: rgba(0,255,255,0.4);
    box-shadow: 0 0 12px rgba(0,255,255,0.22);
}

/* ======== Accordion row ======== */
/* klickbare zeile (button) mit caret + text */
.menu-row {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.65rem 0.85rem;
    background: transparent;
    border: none;
    color: #ffb7f0;
    cursor: pointer;
    text-align: left;
    font-family: var(--epoch-font);
    text-shadow: 0 0 10px rgba(110,245,255,0.45); /* neon glow */
}

.menu-label {
    font-family: var(--epoch-font);
}

/* ======== Bootstrap pfeil ausblenden ======== */
/* bootstrap accordion kommt mit eigenem pfeil, hier wird eigenes caret verwendet */
.menu-row.accordion-button::after {
    display: none;
}

/* ======== Caret ======== */
/* custom pfeil (▶) der beim öffnen 90° rotiert */
.menu-caret {
    transition: transform 160ms ease;
    color: #ff6bde;
    opacity: 0.9;
    text-shadow: 0 0 10px rgba(110,245,255,0.45);
}

/* ======== Offen state ======== */
/* farbe wechselt zu türkis, caret rotiert 90° (▶ → ▼) */
.menu-row.accordion-button:not(.collapsed) {
    color: #ffb7f0;
    background: transparent;
    box-shadow: none;
}

.menu-row.accordion-button:not(.collapsed) .menu-label{
    color: #6ef5ff;
}

.menu-row.accordion-button:not(.collapsed) .menu-caret {
    color: #6ef5ff;
    opacity: 1;
    transform: rotate(90deg);
}

/* ======== Menu panel ======== */
/* panel inhalt (bild + text + buttons) wird beim zuklappen versteckt */
.menu-panel {
    overflow: hidden;
    padding: 0 0.85rem;
}

/* ======== Bild wrapper ======== */
/* responsive bildhöhe mit clamp, türkise border */
.img-80er {
    width: 100%;
    height: clamp(160px, 24vw, 220px);
    overflow: hidden;
    margin-bottom: 0.75rem;
    border: 1px solid rgba(110,245,255,0.2);
}

/* ======== Bild ======== */
/* object fit cover für einheitliche bildhöhen trotz verschiedener aspect ratios */
.img-80er img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ======== Detailtext ======== */
/* beschreibung text in hellblau */
.detail-text-80er {
    margin: 1rem;
    color: #c8d5ff;
}

/* ======== Container: route button ======== */
/* flex container für action buttons (z.B. "In Route aufnehmen") */
.detail-actions-80er {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

/* ======== Frame mit glow state ======== */
/* container mit aktivem glow state (z.B. für fokussiertes panel) */
.frame-80er {
    position: relative;
    border: 2px solid rgba(0,255,255,0.12);
    box-shadow: none;
    padding: 1.2rem 1rem 0.75rem;
    margin-bottom: 1rem;
    transition: box-shadow 0.5s ease-out, border-color 0.5s ease-out, transform 0.5s ease-out;
}

/* ======== Frame aktiv ======== */
/* leicht skaliert + glow für "active" state (z.B. bei scroll into view) */
.frame-80er.is-active {
    border-color: rgba(0,255,255,0.45);
    box-shadow: 0 0 25px rgba(0,255,255,0.35), inset 0 0 12px rgba(255,0,180,0.2);
    transform: scale(1.01);
}

/* ======== Titelgröße ======== */
/* responsive titel größe (etwas kleiner als andere epochen wegen Press Start 2P font) */
.epoche-80er .epoche-title {
    font-size: clamp(1.8rem, 5vw, 2.6rem);
}

/* ======== Typografie ======== */
/* titel + subtitle zentriert mit letter spacing für 8 bit look */
.epoche-80er .epoche-title,
.epoche-80er .epoche-subtitle {
    letter-spacing: 0.05em;
    text-align: center;
}

/* ======== Solid button ======== */
/* harte kontraste, doppelter glow (pink + türkis) für arcade look */
.epoche-80er .btn-solid {
    background: var(--epoch-text, #ffb7f0);
    color: #000 !important;
    border: 1px solid var(--epoch-text, #ffb7f0);
    box-shadow: 0 0 0 2px rgba(255,107,222,0.7), 0 0 20px rgba(0,255,255,0.5);
    text-transform: uppercase;
}

/* ======== Route toggle button ======== */
/* kompakter button (schmalere schrift, kein umbruch) */
.epoche-80er [data-action="route-toggle"]{
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  font-size: 0.8rem;
  line-height: 1.0;
  white-space: nowrap; /* kein umbruch */
}

/* ======== Button hover + focus ======== */
/* leichte helligkeit + minimaler lift für feedback */
.epoche-80er .btn-solid:hover,
.epoche-80er .btn-solid:focus-visible {
    filter: brightness(1.05);
    transform: translateY(-1px);
}

/* ======== Harte kanten ======== */
/* alle komponenten mit border radius 0 für authentischen retro look */
.epoche-80er .epoche-content,
.epoche-80er .frame-80er,
.epoche-80er .panel-80er,
.epoche-80er .menu-item,
.epoche-80er .menu-panel,
.epoche-80er .img-80er,
.epoche-80er .img-80er img,
.epoche-80er .btn-solid,
.epoche-80er .btn-ghost {
    border-radius: 0 !important;
}

/* ======== Mobile: background position fix ======== (Quelle: https://developer.mozilla.org/de/docs/Web/CSS/background-size) */
/* verhindert zoom/skalierung des backgrounds beim öffnen von accordion items */
@media (max-width: 768px), (hover: none) {
  .epoche-80er {
    background-size: cover; /* cover statt contain verhindert zoom */
    background-position: center center; /* zentriert für konsistente darstellung */
  }
}

@media (max-width: 520px){
  .img-80er {
    height: clamp(140px, 36vw, 180px);
  }
}
