/* LageMagazin — Landing-Page-Styles (über brand-tokens.css + styles.css). */
.landing-page { max-width: 1000px; }
.landing-header {
   text-align: center;
   padding: 24px 0 36px;
   border-bottom: 1px solid color-mix(in oklab, var(--color-text) 12%, transparent);
   margin-bottom: 36px;
}
.landing-wordmark {
   font-size: 36px;
   font-weight: 800;
   letter-spacing: -0.5px;
   color: var(--color-primary);
}
@media (min-width: 720px) { .landing-wordmark { font-size: 48px; } }
.landing-tagline {
   margin: 8px 0 18px;
   font-size: 17px;
   color: var(--color-text-secondary, #666);
}
.landing-section-heading {
   font-size: 14px;
   text-transform: uppercase;
   letter-spacing: 0.8px;
   color: var(--color-text-secondary, #666);
   margin: 0 0 18px;
   font-weight: 700;
}
.episode-grid {
   display: grid;
   gap: 18px;
   grid-template-columns: 1fr;
}
@media (min-width: 720px) {
   .episode-grid { grid-template-columns: 1fr 1fr; }
}
.episode-card {
   display: block;
   background: var(--color-surface, #FFFFFF);
   border: 1px solid color-mix(in oklab, var(--color-text) 8%, transparent);
   border-radius: 14px;
   overflow: hidden;
   color: var(--color-text, #1A1A1A);
   text-decoration: none;
   transition: transform .15s ease, box-shadow .15s ease;
}
.episode-card:hover {
   transform: translateY(-2px);
   box-shadow: 0 8px 28px rgba(0,0,0,0.12);
   text-decoration: none;
}

/* Cover-Mosaik — Bilder der Primary-Artikel, 1 bis 4 Kacheln. */
.episode-cover {
   display: grid;
   gap: 2px;
   height: 200px;
   overflow: hidden;
   background: color-mix(in oklab, var(--color-text) 6%, transparent);
}
.episode-cover-img {
   width: 100%;
   height: 100%;
   /* min-*: 0 verhindert das Grid-Blowout — sonst blähen die Bilder die
      `1fr`-Zeilen (= minmax(auto,1fr)) auf ihre Eigenhöhe auf. */
   min-width: 0;
   min-height: 0;
   object-fit: cover;
   display: block;
}
.cover-1 { grid-template-columns: 1fr; }
.cover-2 { grid-template-columns: 1fr 1fr; }
.cover-3 {
   grid-template-columns: 2fr 1fr;
   grid-template-rows: 1fr 1fr;
}
.cover-3 .episode-cover-img:first-child { grid-row: 1 / span 2; }
.cover-4 {
   grid-template-columns: 1fr 1fr;
   grid-template-rows: 1fr 1fr;
}
.cover-empty {
   display: flex;
   align-items: center;
   justify-content: center;
   background: linear-gradient(135deg,
      var(--color-primary, #2C3E50),
      color-mix(in oklab, var(--color-primary, #2C3E50) 62%, #000000));
}
.episode-cover-watermark {
   font-size: 42px;
   font-weight: 800;
   letter-spacing: 1px;
   color: rgba(255, 255, 255, 0.22);
}

.episode-card-body { padding: 18px 22px 20px; }
.episode-card-meta {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 12px;
   margin-bottom: 8px;
   font-size: 13px;
   color: var(--color-text-secondary, #666);
}
.episode-card-number {
   font-weight: 700;
   color: var(--color-accent, #E67E22);
   letter-spacing: 0.3px;
}
.episode-card-title {
   margin: 0 0 4px;
   font-size: 20px;
   line-height: 1.3;
   color: var(--color-primary);
}
@media (min-width: 720px) { .episode-card-title { font-size: 22px; } }
.episode-card-topics {
   list-style: none;
   margin: 12px 0 14px;
   padding: 0;
   display: grid;
   gap: 7px;
}
.episode-card-topics li {
   position: relative;
   padding-left: 16px;
   font-size: 14px;
   line-height: 1.4;
   color: var(--color-text, #1A1A1A);
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
}
.episode-card-topics li::before {
   content: "";
   position: absolute;
   left: 0;
   top: 7px;
   width: 6px;
   height: 6px;
   border-radius: 50%;
   background: var(--color-accent, #E67E22);
}
.episode-card-stats {
   font-size: 13px;
   color: var(--color-text-secondary, #666);
}

.landing-footer {
   margin-top: 56px;
   padding-top: 24px;
   border-top: 1px solid color-mix(in oklab, var(--color-text) 12%, transparent);
   text-align: center;
   font-size: 13px;
   color: var(--color-text-secondary, #666);
}
.landing-footer a { color: var(--color-primary); }
