/* ============================================================
   v3 — News & Press · an editorial list of coverage.
   Same items as the home news marquee (content/site.json → news),
   laid out as full-width rows: date · source, headline + excerpt,
   and a rounded thumbnail, each linking out. Light, typographic.
   ============================================================ */

.press { padding-inline: clamp(var(--margin), 2.5vw, 3rem); padding-bottom: clamp(4rem, 3rem + 4vw, 8rem); }

/* —— masthead —— */
.press__head { padding: clamp(0.5rem, 0.2rem + 1.5vw, 2.4rem) 0 clamp(1.6rem, 1rem + 2vw, 3.2rem);
  border-bottom: 1px solid var(--ink); }
.press__title { font-family: var(--display); font-weight: 700; font-size: clamp(2.6rem, 0.8rem + 9vw, 8rem);
  line-height: 0.92; letter-spacing: -0.035em; color: var(--ink); text-wrap: balance; }
.press__sub { margin-top: clamp(0.8rem, 0.5rem + 1vw, 1.6rem); font-family: var(--display); font-weight: 300;
  font-size: clamp(1.1rem, 0.85rem + 1vw, 1.9rem); line-height: 1.25; color: var(--ink-soft); }
.press__sub em { font-style: normal; color: var(--ink); }

/* —— list —— */
.press__list { display: block; list-style: none; margin: 0; padding: 0; }
.prow { border-bottom: 1px solid var(--line); }
.prow__link { display: grid; grid-template-columns: clamp(78px, 8vw, 140px) 1fr clamp(300px, 40vw, 600px);
  gap: clamp(1.2rem, 0.5rem + 3vw, 4rem); align-items: start; color: var(--ink);
  padding: clamp(1.6rem, 1rem + 2vw, 3.2rem) 0; }

/* left — source + date */
.prow__meta { display: flex; flex-direction: column; gap: 0.35rem; font-family: var(--mono); font-size: var(--t-cap);
  letter-spacing: 0.03em; padding-top: 0.35rem; }
.prow__source { text-transform: uppercase; color: var(--ink); }
.prow__date { color: var(--ink-mute); }

/* middle — headline + excerpt + read */
.prow__title { font-family: var(--display); font-weight: 600; font-size: clamp(1.5rem, 0.9rem + 2.3vw, 3.1rem);
  line-height: 1.04; letter-spacing: -0.022em; color: var(--ink); text-wrap: balance; transition: opacity 0.3s ease; }
.prow__excerpt { margin-top: clamp(0.7rem, 0.5rem + 0.6vw, 1.1rem); max-width: 54ch; color: var(--ink-soft);
  font-family: var(--sans); font-size: clamp(0.95rem, 0.9rem + 0.2vw, 1.05rem); line-height: 1.5; }
.prow__more { display: inline-flex; align-items: baseline; gap: 0.35em; margin-top: clamp(0.9rem, 0.6rem + 0.8vw, 1.4rem);
  font-family: var(--mono); font-size: var(--t-cap); text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink); }
.prow__more span { display: inline-block; transition: transform 0.35s var(--ease-out-expo); }
.prow:hover .prow__more span { transform: translate(3px, -3px); }
.prow:hover .prow__title { opacity: 0.55; }

/* right — thumbnail */
.prow__media { position: relative; border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 10;
  background: var(--paper-2); }
.prow__media img { width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 0.7s var(--ease-out-expo); }
.prow:hover .prow__media img { transform: scale(1.045); }
.prow.is-noimg .prow__media { background: var(--ink); }
.prow.is-noimg .prow__media::after { content: attr(data-src); }

@media (max-width: 860px) {
  .prow__link { grid-template-columns: clamp(70px, 16vw, 120px) 1fr; }
  .prow__media { grid-column: 1 / -1; grid-row: 1; aspect-ratio: 16 / 9; }   /* image on top */
  .prow__meta { grid-column: 1; }
}
@media (max-width: 540px) {
  .prow__link { grid-template-columns: 1fr; gap: 0.9rem; }
  .prow__meta { flex-direction: row; gap: 0.8em; }
}
