/* ══════════════════════════════════════════════════════════
   MEDIEN — Shared styles for Galerie, Stadionmagazine, Downloads
══════════════════════════════════════════════════════════ */

/* ── Page header ── */
.md-header { padding-top: var(--nav-h); }
.md-header::before { content: 'MEDIEN'; font-size: clamp(5rem, 18vw, 14rem); }
.md-header-inner {
  max-width: 90rem; margin: 0 auto;
  padding: 3rem clamp(1.25rem, 5vw, 3rem) 2.75rem;
  position: relative; z-index: 1;
}
.md-header-title {
  font-family: 'Lippe Condensed', sans-serif;
  font-size: clamp(3rem, 7vw, 5.5rem);
  font-weight: 900; text-transform: uppercase;
  letter-spacing: .02em; line-height: .95;
  color: var(--white); margin: .5rem 0 .875rem;
}

/* ── Main layout ── */
.md-main { padding: 3.5rem 0 5rem; }
.md-wrap {
  max-width: 90rem; margin: 0 auto;
  padding: 0 clamp(1.25rem, 5vw, 3rem);
  display: flex; flex-direction: column; gap: 2.5rem;
}

/* ── Intro text ── */
.md-intro {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  align-items: flex-start;
}
.md-intro-text {
  color: var(--gray-100);
  max-width: 54rem;
  margin: 0;
}

/* ── Empty state ── */
.md-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  padding: 5rem 2rem;
  text-align: center;
  background: var(--surface);
  border: 1px solid var(--border);
  border-top: 3px solid var(--border);
}
.md-empty-icon { color: var(--gray-400); line-height: 0; }
.md-empty-icon svg { stroke: currentColor; width: 3rem; height: 3rem; }
.md-empty-title {
  font-family: 'Lippe Condensed', sans-serif;
  font-size: 1.375rem; font-weight: 900;
  text-transform: uppercase; letter-spacing: .08em;
  color: var(--gray-400); margin: 0;
}
.md-empty-body {
  font-size: 1.2rem;
  color: var(--gray-300);
  line-height: 1.7; margin: 0;
}

/* ── Downloads: category list ── */
.md-dl-categories { display: flex; flex-direction: column; gap: 1.5rem; }
.md-dl-cat {
  background: var(--surface);
  border: 1px solid var(--border);
  overflow: hidden;
}
.md-dl-cat-hdr {
  display: flex;
  flex-direction: column;
  padding: 1.25rem 1.75rem;
  border-bottom: 1px solid var(--border);
  gap: .25rem;
}
.md-dl-cat-title {
  font-family: 'Lippe Condensed', sans-serif;
  font-size: 1.25rem; font-weight: 900;
  text-transform: uppercase; letter-spacing: .06em;
  color: var(--white); margin: 0;
  display: flex; align-items: center; gap: .625rem;
}
.md-dl-cat-title::before {
  content: ''; display: block;
  width: 3px; height: 1.25rem;
  background: var(--red); flex-shrink: 0;
}
.md-dl-cat-note {
  font-size: 1.4rem;
  color: var(--muted);
  margin: 0;
}
/* Download file list */
.md-dl-list {
  list-style: none;
  margin: 0; padding: 0;
}
.md-dl-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .875rem 1.75rem;
  border-top: 1px solid var(--border);
}
.md-dl-item:first-child { border-top: none; }
.md-dl-preview {
  width: 4.5rem;
  height: 4.5rem;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: url('/images/stone-background.jpg') center/cover;
  border: 1px solid var(--border);
}
.md-dl-preview { transition: border-color .15s; }
.md-dl-preview:hover { border-color: rgba(218,0,47,.5); }
.md-dl-preview--icon {
  flex-direction: column;
  gap: .25rem;
}
.md-dl-preview--icon svg {
  width: 1.75rem;
  height: 1.75rem;
  stroke: var(--gray-100);
}
.md-dl-preview--icon span {
  font-family: 'Lippe Condensed', sans-serif;
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--gray-100);
}
.md-dl-preview-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: .5rem;
}

.md-dl-format {
  font-family: 'Lippe Condensed', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--red);
  background: rgba(218,0,47,.1);
  padding: .1rem .5rem;
  flex-shrink: 0;
  min-width: 3rem;
  text-align: center;
}
.md-dl-name {
  font-size: 1.3rem;
  color: var(--white);
  flex: 1;
}

/* Inline empty (inside a category) */
.md-empty--inline {
  background: transparent;
  border: none;
  border-top: none;
  padding: 2rem;
  flex-direction: row;
  justify-content: flex-start;
  text-align: left;
  gap: 1.2rem;
}
.md-empty-icon--sm { }
.md-empty-icon--sm svg { width: 1.375rem; height: 1.375rem; }
.md-empty-title--sm {
  font-size: 1rem !important;
  letter-spacing: .06em !important;
  color: var(--subtle) !important;
}

/* ── Download item (future use) ── */
.md-dl-item {
  display: flex; align-items: center; gap: 1.25rem;
  padding: 1rem 1.75rem;
  border-bottom: 1px solid var(--border);
  text-decoration: none;
  transition: background .15s;
}
.md-dl-item:last-child { border-bottom: none; }
.md-dl-item:hover { background: var(--surface2); }
.md-dl-item-icon {
  width: 2.25rem; height: 2.25rem; flex-shrink: 0;
  color: var(--red); line-height: 0;
}
.md-dl-item-icon svg { stroke: currentColor; width: 100%; height: 100%; }
.md-dl-item-info { flex: 1; min-width: 0; }
.md-dl-item-name {
  font-family: 'Lippe Condensed', sans-serif;
  font-size: 1.2rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: .03em;
  color: var(--white); line-height: 1.2; margin: 0 0 .15rem;
}
.md-dl-item-meta { font-size: 1.2rem; color: var(--muted); }
.md-dl-item-badge {
  font-family: 'Lippe Condensed', sans-serif;
  font-size: 1.2rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  border: 1px solid var(--border);
  padding: .1rem .5rem; flex-shrink: 0;
}

/* ── Magazine season accordion (future use) ── */
.md-season {
  border: 1px solid var(--border);
  margin-bottom: .75rem;
  background: var(--surface);
}
.md-season-btn {
  width: 100%; background: none; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.125rem 1.75rem;
  font-family: 'Lippe Condensed', sans-serif;
  font-size: 1.125rem; font-weight: 900;
  text-transform: uppercase; letter-spacing: .05em;
  color: var(--white);
  transition: background .15s;
  min-height: 52px;
}
.md-season-btn:hover { background: var(--surface2); }
.md-season-btn svg { stroke: currentColor; transition: transform .25s; flex-shrink: 0; }
.md-season.open .md-season-btn svg { transform: rotate(180deg); }
.md-season-body {
  display: grid; grid-template-rows: 0fr;
  transition: grid-template-rows .3s ease;
}
.md-season.open .md-season-body { grid-template-rows: 1fr; }
.md-season-body-inner { overflow: hidden; }
.md-season-list { padding: .5rem 1.75rem 1.25rem; display: flex; flex-direction: column; gap: .25rem; }
.md-season-issue {
  display: flex; align-items: center; gap: 1.2rem;
  padding: .625rem 0;
  border-bottom: 1px solid var(--border);
  text-decoration: none;
  font-size: 1.2rem; color: var(--subtle);
  transition: color .15s;
}
.md-season-issue:last-child { border-bottom: none; }
.md-season-issue:hover { color: var(--white); }
.md-season-issue svg { stroke: var(--red); flex-shrink: 0; fill: none; }

@media (max-width: 40rem) {
  .md-header-inner { padding: 2rem 1rem 1.75rem; }
  .md-empty { padding: 3rem 1.25rem; }
  .md-dl-cat-hdr { padding: 1rem; }

  /* Download items: 2-col grid so name/button don't get squished */
  .md-dl-item {
    display: grid;
    grid-template-columns: 3.75rem 1fr;
    grid-template-rows: auto auto auto;
    column-gap: .875rem;
    row-gap: .3rem;
    padding: .875rem 1rem;
    align-items: start;
  }
  .md-dl-preview {
    grid-row: 1 / 4;
    grid-column: 1;
    width: 3.75rem;
    height: 3.75rem;
  }
  .md-dl-format {
    grid-row: 1;
    grid-column: 2;
    align-self: center;
    margin-top: .125rem;
  }
  .md-dl-name {
    grid-row: 2;
    grid-column: 2;
    font-size: 1.15rem;
    line-height: 1.35;
  }
  .md-dl-item .btn-secondary-small {
    grid-row: 3;
    grid-column: 2;
    margin-top: .375rem;
    width: 100%;
    justify-content: center;
  }
}

/* ══════════════════════════════════════════════════════════
   STADIONMAGAZINE
══════════════════════════════════════════════════════════ */
.smz-seasons {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* ── Season: collapsible <details> ── */
.smz-season { border: 1px solid var(--border); }

.smz-season-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  cursor: pointer;
  user-select: none;
  list-style: none;
  background: var(--surface);
  transition: background .15s;
}
.smz-season-hdr::-webkit-details-marker { display: none; }
.smz-season-hdr::marker { display: none; }
.smz-season-hdr:hover { background: var(--surface2); }

.smz-season-hdr-left {
  align-items: baseline;
  gap: 1rem;
}
.smz-season-title {
  font-family: 'Lippe Condensed', sans-serif;
  font-size: clamp(1.4rem, 3vw, 1.75rem);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--white);
  margin: 0;
  display: flex;
  align-items: center;
  gap: .625rem;
}
.smz-season-title::before {
  content: '';
  display: block;
  width: 3px;
  height: 1.25rem;
  background: var(--red);
  flex-shrink: 0;
}
.smz-season-count {
  font-family: 'Lippe Condensed', sans-serif;
  font-size: 1.1rem;
  font-weight: 400;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
}
.smz-chevron {
  flex-shrink: 0;
  stroke: var(--muted);
  transition: transform .2s ease;
}
.smz-season[open] .smz-chevron { transform: rotate(180deg); }
.smz-season[open] > .smz-season-hdr { border-bottom: 1px solid var(--border); }

/* ── Issue grid ── */
.smz-grid {
  list-style: none;
  margin: 0;
  padding: 1.25rem;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 1.25rem;
}

/* Card */
.smz-card {
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--border);
  transition: border-color .2s, transform .2s;
  cursor: default;
}
.smz-card:hover {
  border-color: rgba(218,0,47,.45);
  transform: translateY(-3px);
}

/* Cover — portrait 3:4 */
.smz-cover {
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: var(--off-black);
  flex-shrink: 0;
}
.smz-cover-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}
.smz-card:hover .smz-cover-img { transform: scale(1.04); }
.smz-cover-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.smz-cover-placeholder svg {
  width: 2.5rem;
  height: 2.5rem;
  stroke: rgba(255,255,255,.12);
}

/* Card info */
.smz-card-info {
  padding: .75rem 1rem;
  display: flex;
  flex-direction: column;
  gap: .625rem;
  flex: 1;
  border-top: 1px solid var(--border);
}
.smz-card-text { display: flex; flex-direction: column; gap: .15rem; flex: 1; }
.smz-card-issue {
  font-family: 'Lippe Condensed', sans-serif;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--white);
  margin: 0;
  line-height: 1.1;
}
.smz-card-date {
  font-size: 1.2rem;
  color: var(--muted);
  margin: 0;
}
.smz-no-file {
  font-size: 1.1rem;
  color: var(--muted);
  letter-spacing: .04em;
}

@media (max-width: 40rem) {
  .smz-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 1rem; padding: 1rem; }
  .smz-season-hdr { padding: .875rem 1rem; }
}
