/* ==========================================================================
   Blog-Uebersicht
   ========================================================================== */

/* --- Story of the Week --------------------------------------------------- */

.blog-hero {
  min-height: 85svh;
  box-sizing: border-box;
  padding-top: var(--pad-hero);
  padding-bottom: clamp(60px, 7vw, 90px);
  display: flex; align-items: center;
  color: var(--apricot);
}
.blog-hero__raster {
  width: 100%; max-width: 1440px; margin-inline: auto;
  display: flex; flex-wrap: wrap; align-items: center;
  gap: clamp(24px, 3vw, 44px);
  animation: aufsteigen 1200ms var(--kurve) both;
}

.blog-hero__wort { flex: 0 1 clamp(210px, 23vw, 320px); min-width: 0; position: relative; z-index: 2; }
.blog-hero__eyebrow {
  margin-bottom: clamp(6px, 1vw, 14px);
  font-size: clamp(18px, 2vw, 28px);
  letter-spacing: .15em; text-transform: uppercase;
}
/* margin-top ausdruecklich auf 0: die Grundregel p + p in stil.css
   setzt 1.4em, und bei 260px Schrift sind das 364 Pixel. Im Entwurf
   steht „Week" dicht unter „Story of the". */
.blog-hero__gross {
  margin-top: 0;
  font-family: var(--schrift-headline);
  width: max-content;
  font-size: clamp(46px, 21vw, 260px); line-height: .85; letter-spacing: -.005em;
  text-transform: uppercase; white-space: nowrap;
}

/* Duerfen schrumpfen, damit die Dreierreihe bis 1024 Pixel haelt.
   Im Entwurf brach sie schon bei 1439 um, weil er bei 1440 entstanden ist. */
.blog-hero__bild { flex: 1 1 380px; min-width: 200px; position: relative; z-index: 1; }
.blog-hero__bild img { width: 100%; aspect-ratio: 3 / 4.1; object-fit: cover; }

.blog-hero__neuestes { flex: 1 1 340px; min-width: 240px; position: relative; z-index: 2; }
.blog-hero__vorschau { width: 100%; max-width: 340px; margin-bottom: clamp(18px, 2.2vw, 26px); }
.blog-hero__vorschau img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.blog-hero__titel {
  margin-bottom: clamp(14px, 1.8vw, 20px);
  font-family: var(--schrift-headline);
  font-size: clamp(26px, 2.6vw, 34px); line-height: 1.12;
  text-transform: uppercase;
  text-wrap: balance;
}
.blog-hero__teaser {
  margin-bottom: clamp(22px, 2.6vw, 30px);
  max-width: 38ch;
  font-size: 15px; line-height: 1.75;
  text-align: justify;
  color: rgb(248 204 193 / .85);
}
.blog-hero__knopf {
  /* Creme statt Apricot: auf Taubenblau sind das 5.29 statt 4.05 */
  background: var(--taubenblau); color: var(--creme);
  border: 1.5px solid color-mix(in srgb, var(--taubenblau) 70%, black);
  border-bottom-width: 5px;
  font-size: 13px; letter-spacing: .08em; text-transform: none;
  padding: 14px 30px;
}
.blog-hero__knopf:hover { opacity: .72; }

/* --- Artikelliste -------------------------------------------------------- */

.blog-liste { padding-block: clamp(80px, 10vw, 130px) clamp(70px, 9vw, 110px); }
.blog-liste__raster {
  max-width: 1280px; margin-inline: auto;
  display: flex; flex-wrap: wrap; gap: 80px;
  align-items: flex-start;
}
.blog-liste__spalte {
  flex: 1 1 560px; min-width: 0;
  display: flex; flex-direction: column;
  gap: 96px;
}
.blog-liste__leer { font-size: 18px; font-style: italic; }

.eintrag {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: clamp(28px, 3.4vw, 48px);
}
/* Jeder zweite Eintrag spiegelt Bild und Text */
.eintrag--gedreht { flex-direction: row-reverse; }

.eintrag__bild { flex: 0 1 45%; min-width: 240px; }
.eintrag__bild img {
  width: 100%; aspect-ratio: 4 / 3; max-height: 320px;
  object-fit: cover;
}
.eintrag__text { flex: 1 1 280px; min-width: 0; }
.eintrag__meta {
  margin-bottom: 12px;
  font-family: var(--schrift-meta);
  font-size: 13px; letter-spacing: .05em;
  color: var(--taubenblau-text);
}
.eintrag__titel {
  margin-bottom: 14px;
  font-size: clamp(24px, 3vw, 36px); line-height: 1.05;
  text-transform: uppercase;
}
.eintrag__titel a:hover { color: var(--taubenblau); }
.eintrag__teaser {
  margin-bottom: 18px;
  font-size: 16px; line-height: 1.7;
  color: rgb(44 66 103 / 0.88);
  /* hoechstens zwei Zeilen, der Rest wartet im Artikel */
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.eintrag__mehr {
  display: inline-flex; align-items: center; min-height: 44px;
  font-size: 15px;
  text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px;
}
.eintrag__mehr:hover { text-decoration-thickness: 2.5px; }

/* --- Seitenspalte -------------------------------------------------------- */

.blogspalte { flex: 0 1 30%; min-width: 280px; position: sticky; top: 48px; }
.blogspalte__bild { width: 100%; max-width: 230px; margin-inline: auto; }
.blogspalte__bild img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.blogspalte__name {
  margin: 16px 0 8px;
  text-align: center;
  font-family: var(--schrift-headline);
  font-size: 34px; line-height: 1.05;
}
.blogspalte__satz {
  margin-inline: auto; max-width: 34ch;
  text-align: center;
  font-family: var(--schrift-headline); font-style: italic;
  font-size: 16px; line-height: 1.55;
  color: rgb(44 66 103 / .9);
}
.blogspalte__sozial {
  display: flex; justify-content: center; gap: 8px;
  margin-top: 16px;
}
.blogspalte__sozial a {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px;
}
.blogspalte__sozial a:hover { opacity: .6; }
.blogspalte__strich { height: 1px; background: rgb(44 66 103 / .25); margin: 20px 0; }
.blogspalte__label { justify-content: center; color: var(--taubenblau-text); }
.blogspalte__kategorien {
  display: grid; gap: 4px;
  justify-items: center; text-align: center;
  font-size: 17px;
}
.blogspalte__kategorien a {
  display: inline-flex; align-items: center; min-height: 32px;
  text-underline-offset: 5px; text-decoration-thickness: 1px;
}
.blogspalte__kategorien a:hover,
.blogspalte__kategorien a[aria-current="page"] { text-decoration: underline; }

/* --- Blaettern ----------------------------------------------------------- */

.blaettern {
  max-width: 1280px;
  margin: clamp(70px, 8vw, 100px) auto 0;
  display: flex; justify-content: center; align-items: center; gap: 8px;
  font-size: 16px;
}
.blaettern a {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 44px;
  padding: 0 8px;
}
.blaettern a[aria-current="page"] {
  text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1.5px;
}
.blaettern a:not([aria-current]):hover { opacity: .6; }
.blaettern__weiter { letter-spacing: .08em; }

/* ==========================================================================
   Schmalere Schirme
   ========================================================================== */

/* Sobald die Dreierreihe umbricht, rueckt die Karte des neuesten
   Beitrags unter das Bild und ueberlappt es leicht. So wirkt der
   Umbruch gewollt statt wie ein Absturz. */
@media (max-width: 1200px) {
  .blog-hero__gross { font-size: 120px; }
  .blog-hero__neuestes { margin-top: -165px; align-self: flex-start; z-index: 6; }
  .blog-hero__vorschau img { border: 4px solid var(--navy); box-sizing: content-box; }
}

@media (max-width: 1023px) {
  .blogspalte { flex: 1 1 100%; position: static; }
  .blog-liste__raster { gap: 56px; }
  .blogspalte__label { justify-content: center; }
}

@media (max-width: 767px) {
  /* "Story of the" und "Week" stehen hier nebeneinander auf einer
     Zeile -- beide Groessen muessen also zusammen in die Breite
     passen. */
  .blog-hero { padding-top: 168px; }
  .blog-hero__wort {
    flex: 1 1 100%;
    display: flex; flex-wrap: nowrap; align-items: baseline; gap: 10px;
  }
  .blog-hero__eyebrow { margin-bottom: 0; flex: 0 0 auto; font-size: 18px; letter-spacing: .12em; }
  .blog-hero__gross { font-size: 58px; }
  .blog-hero__neuestes {
    max-width: 300px; margin-inline: auto; margin-top: -70px;
  }
  .blog-hero__vorschau { max-width: 240px; margin-bottom: 14px; }
  .blog-hero__titel { font-size: 23px; margin-bottom: 10px; }
  .blog-hero__teaser { font-size: 17px; text-align: left; margin-bottom: 20px; }

  .blog-liste__spalte { gap: 44px; }
  /* Auf schmalen Schirmen immer Bild ueber Text, kein Spiegeln */
  .eintrag--gedreht { flex-direction: row; }
  .eintrag__teaser { font-size: 17px; }
  .blog-hero__knopf { display: block; width: 100%; }
}

@media (max-width: 479px) {
  .blog-hero { padding-top: 152px; }
  .blog-hero__eyebrow { font-size: 16px; letter-spacing: .1em; }
  .blog-hero__gross { font-size: 48px; }
}
