/* 2416.in journal (/blog), in the homepage's Monolog look (Nitin, 9 Oct).
   /styles.css carries the tokens, nav, footer, buttons, eyebrows, the FAQ accordion and the CTA; this file only
   adds the journal hero, the rows (drawn like the homepage case-study rows) and the article text.
   Sections sit at z-index 1 on their theme background so the footer's uncover effect slides out from under them. */

.journal-hero,
.journal-list,
.article-head,
.article-body { position: relative; z-index: 1; }
/* Section heights land on fractional pixels; bone under each edge stops the dark body showing as a hairline */
.journal-hero,
.article-head,
.article-body { box-shadow: 0 1px 0 var(--bone); }

/* ---------- Journal index: label and intro on the left, the big title on the right ---------- */
.journal-hero { padding: calc(var(--nav-h) + clamp(48px, 6vw, 104px)) var(--pad) clamp(48px, 5vw, 80px); }
.journal-hero__grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  column-gap: var(--gap);
  row-gap: 32px;
}
.journal-hero__aside {
  grid-column: 1 / span 4;
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding-top: 12px;
}
.journal-hero__intro {
  max-width: 30ch;
  color: var(--stone-dark);
  font-weight: 600;
  font-size: clamp(1.1rem, 1.4vw, 1.3rem);
  line-height: 1.16;
  letter-spacing: -0.02em;
  text-wrap: balance;
}
.journal-hero__title {
  grid-column: 5 / -1;
  font-weight: 800;
  font-size: clamp(3.1rem, 9.2vw, 8.6rem);
  line-height: 0.87;
  letter-spacing: -0.045em;
}

/* ---------- Rows: the case-study row grammar (index chip, title, dek, mono meta, underlined link) ---------- */
.journal-list { padding: clamp(24px, 3vw, 48px) var(--pad) clamp(96px, 8.33vw, 150px); }
.journal-list__rows { position: relative; display: grid; }
.journal-list__rows::after { content: ""; display: block; height: 1px; background: var(--line-on-light); }
.journal-list__eyebrow { position: absolute; left: 0; top: 25px; }
.entry {
  position: relative;
  display: grid;
  grid-template-columns: 215fr 660fr 466fr;
  column-gap: 16px;
  padding: 31px 0;
}
.entry + .entry::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 16.8%;
  height: 1px;
  background: var(--line-on-light);
}
.entry__media { grid-column: 2; display: block; aspect-ratio: 3 / 2; border-radius: 0.25rem; }
.entry__media img { transition: transform 0.9s var(--ease-out); }
.entry:hover .entry__media img { transform: scale(1.03); }
.entry__info {
  grid-column: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
}
.entry__title {
  max-width: 22ch;
  font-weight: 700;
  font-size: clamp(1.4rem, 1.8vw, 1.7rem);
  line-height: 1.02;
  letter-spacing: -0.035em;
}
.entry__title a {
  background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
  transition: background-size 0.5s var(--ease-out);
}
.entry__title a:hover,
.entry__title a:focus-visible { background-size: 100% 1px; }
.entry__dek {
  max-width: 26.5rem;
  color: #62605a;
  font-size: 1.05rem;
  line-height: 1.22;
  text-wrap: balance;
}
.entry__meta { color: var(--stone-dark); }
.entry__link {
  padding-bottom: 2px;
  border-bottom: 1px solid currentColor;
  font-weight: 600;
}

/* ---------- Article head ---------- */
.article-head { padding: calc(var(--nav-h) + clamp(40px, 5vw, 88px)) var(--pad) clamp(48px, 5vw, 80px); }
.article-head__grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  column-gap: var(--gap);
  row-gap: clamp(40px, 5vw, 72px);
}
.article-head__aside {
  grid-column: 1 / span 4;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 22px;
}
.article-back {
  border-bottom: 1px solid transparent;
  color: var(--stone-dark);
  transition: color 0.2s, border-color 0.2s;
}
.article-back:hover,
.article-back:focus-visible { color: var(--ink); border-color: currentColor; }
.article-head__main {
  grid-column: 5 / -1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}
.article-tag { color: var(--stone-dark); }
.article-title {
  max-width: 16ch;
  font-weight: 800;
  font-size: clamp(2.4rem, 5.6vw, 5.4rem);
  line-height: 0.92;
  letter-spacing: -0.045em;
}
.article-dek {
  max-width: 40ch;
  color: var(--stone-dark);
  font-weight: 600;
  font-size: clamp(1.1rem, 1.5vw, 1.4rem);
  line-height: 1.18;
  letter-spacing: -0.02em;
  text-wrap: balance;
}
.article-byline { color: var(--stone-dark); text-wrap: balance; }
.article-figure { grid-column: 5 / -1; aspect-ratio: 16 / 9; border-radius: 0.25rem; }
.article-figure img { object-position: 50% 30%; }

/* ---------- Article text: one reading column, section heads split label-left / title-right ---------- */
.article-body { padding: 0 var(--pad) clamp(96px, 8.33vw, 150px); }
.article-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  column-gap: var(--gap);
}
.article-grid > * { grid-column: 5 / span 6; }
.article-grid > :not(.article-sec) { max-width: 36rem; }
.article-answer {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 22px 26px 24px;
  border-radius: 2px;
  background: var(--bone-2);
  box-shadow: inset 2px 0 0 var(--accent, var(--ink));
}
.article-answer__label { color: var(--ink-3); }
.article-answer p + p {
  font-weight: 600;
  font-size: clamp(1.1rem, 1.35vw, 1.3rem);
  line-height: 1.25;
  letter-spacing: -0.02em;
}
.article-p {
  color: #2b2a26;
  font-size: clamp(1.08rem, 1.3vw, 1.15rem);
  line-height: 1.45;
  letter-spacing: -0.005em;
  text-wrap: pretty;
}
.article-p strong { color: var(--ink); font-weight: 700; }
.article-p a { border-bottom: 1px solid currentColor; }
.article-p + .article-p { margin-top: 1em; }
.article-answer + .article-p { margin-top: clamp(48px, 5vw, 72px); }
.article-lead {
  color: var(--ink);
  font-weight: 500;
  font-size: clamp(1.2rem, 1.55vw, 1.45rem);
  line-height: 1.26;
  letter-spacing: -0.02em;
}
.article-sec {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  column-gap: var(--gap);
  margin: clamp(64px, 7vw, 112px) 0 28px;
  padding-top: 24px;
  border-top: 1px solid var(--line-on-light);
}
.article-sec__label { grid-column: 1 / span 4; align-self: start; margin-top: 8px; }
.article-h2 {
  grid-column: 5 / span 7;
  max-width: 17ch;
  font-weight: 800;
  font-size: clamp(2rem, 3.65vw, 3.6rem);
  line-height: 0.95;
  letter-spacing: -0.04em;
}
.article-src {
  margin-top: clamp(48px, 5vw, 72px);
  padding-top: 18px;
  border-top: 1px solid var(--line-on-light);
  color: var(--stone-dark);
  font-size: 0.8rem;
  line-height: 1.55;
  letter-spacing: 0;
  text-transform: none;
}
.article-src a { border-bottom: 1px solid currentColor; }
.article-src + .article-src { margin-top: 10px; padding-top: 0; border-top: 0; }

/* The homepage FAQ aside carries the author here; its 14ch line suits a short question, not a byline */
.faq__fit p { max-width: 26ch; text-wrap: balance; }

/* ---------- Tablet ---------- */
@media (max-width: 1100px) {
  .entry { grid-template-columns: 660fr 466fr; }
  .entry__media { grid-column: 1; }
  .entry__info { grid-column: 2; }
  .entry + .entry::before { left: 0; }
  .journal-list__eyebrow { position: static; }
  .entry:first-of-type { padding-top: 20px; }
  .article-grid > * { grid-column: 1 / span 10; }
  .article-sec { grid-column: 1 / -1; row-gap: 20px; }
  .article-sec__label { grid-column: 1 / -1; margin-top: 0; }
  .article-h2 { grid-column: 1 / span 10; }
}

/* ---------- Phone: everything in one column ---------- */
@media (max-width: 767px) {
  .journal-hero__grid,
  .article-head__grid,
  .article-grid,
  .article-sec { grid-template-columns: 1fr; }
  .journal-hero__aside,
  .journal-hero__title,
  .article-head__aside,
  .article-head__main,
  .article-figure,
  .article-grid > *,
  .article-sec,
  .article-sec__label,
  .article-h2 { grid-column: 1 / -1; }
  .journal-hero__title { font-size: clamp(3rem, 15vw, 5rem); }
  .journal-hero__aside { display: contents; }
  .journal-hero__aside .eyebrow { order: -2; }
  .journal-hero__title { order: -1; }
  .article-figure { aspect-ratio: 3 / 2; }
  .article-head__aside { flex-direction: row; justify-content: space-between; align-items: center; padding-top: 0; }
  .entry { grid-template-columns: 1fr; row-gap: 20px; }
  .entry__media,
  .entry__info { grid-column: 1; }
  .article-answer { padding: 18px 18px 20px; }
}
