/* ==========================================================================
   FIRSTPEAK STUDIO — journal.css
   The journal index + long-form article pages. Editorial, readable, on bone,
   using the High Ground tokens from v2.css. Linked after v2.css.
   ========================================================================== */

/* ---- shared: light page body under the solid masthead --------------------- */
.jbody { background: var(--bone); color: var(--granite); }
.jbody main { padding-top: 4.25rem; } /* clears the solid masthead */

/* ==========================================================================
   JOURNAL INDEX
   ========================================================================== */
.jindex-hero { background: var(--granite); color: var(--bone); }
.jindex-hero__inner { max-width: 60ch; margin-inline: auto; text-align: center;
  padding-top: clamp(3.5rem, 8vh, 6rem); padding-bottom: clamp(3.5rem, 8vh, 6rem); }
.jindex-hero__eyebrow { font-family: var(--font-display); font-weight: 600; font-size: .75rem;
  text-transform: uppercase; letter-spacing: .24em; color: var(--gold-bright); }
.jindex-hero__title { font-family: var(--font-display); font-weight: 800; letter-spacing: -.02em;
  font-size: clamp(2.1rem, 5vw, 3.4rem); line-height: 1.05; margin: .9rem 0 0; color: var(--bone); }
.jindex-hero__dek { font-family: var(--font-serif); font-size: clamp(1.05rem, 1.6vw, 1.3rem); line-height: 1.6;
  color: rgba(242,238,230,.82); max-width: 52ch; margin: 1.2rem auto 0; }

.jgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.4rem, 3vw, 2.2rem);
  padding-top: clamp(3rem, 6vh, 4.5rem); padding-bottom: clamp(4rem, 9vh, 6.5rem); }
.jcard { display: flex; flex-direction: column; background: #fff; border: 1px solid rgba(34,38,45,.1);
  border-radius: 14px; overflow: hidden; text-decoration: none; color: var(--granite);
  transition: transform var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease); }
.jcard:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -34px rgba(34,38,45,.4); }
.jcard__media { aspect-ratio: 16 / 9; overflow: hidden; background: var(--granite); }
.jcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.jcard__body { padding: 1.2rem 1.3rem 1.4rem; display: flex; flex-direction: column; flex: 1; }
.jcard__eyebrow { font-family: var(--font-display); font-weight: 700; font-size: .68rem;
  text-transform: uppercase; letter-spacing: .14em; color: var(--gold-deep); }
.jcard__title { font-family: var(--font-display); font-weight: 700; font-size: 1.18rem; line-height: 1.2;
  letter-spacing: -.01em; margin: .5rem 0 .5rem; }
.jcard__dek { font-size: .95rem; line-height: 1.55; color: var(--slate); flex: 1; }
.jcard__more { font-family: var(--font-display); font-weight: 600; font-size: .85rem; color: var(--gold-deep);
  margin-top: 1rem; }

/* ==========================================================================
   ARTICLE
   ========================================================================== */
.jheader { text-align: center; max-width: 46rem; margin-inline: auto;
  padding-top: clamp(2.6rem, 6vh, 4rem); padding-bottom: clamp(1.6rem, 3.5vh, 2.4rem); }
.jheader__eyebrow { display: inline-flex; align-items: center; gap: .6rem;
  font-family: var(--font-display); font-weight: 700; font-size: .72rem;
  text-transform: uppercase; letter-spacing: .16em; color: var(--gold-deep); text-decoration: none; }
.jheader__eyebrow:hover { color: var(--granite); }
.jheader__h1 { font-family: var(--font-display); font-weight: 800; letter-spacing: -.022em;
  font-size: clamp(1.9rem, 4.4vw, 3rem); line-height: 1.08; margin: 1rem 0 0; color: var(--granite); }
.jheader__dek { font-family: var(--font-serif); font-style: italic; font-size: clamp(1.1rem, 1.7vw, 1.35rem);
  line-height: 1.5; color: var(--slate); max-width: 44ch; margin: 1.1rem auto 0; }
.jheader__meta { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem .9rem;
  margin-top: 1.4rem; font-size: .85rem; color: var(--slate); }
.jheader__meta strong { color: var(--granite); font-weight: 600; }
.jheader__meta span::before { content: "·"; margin-right: .9rem; color: rgba(34,38,45,.4); }
.jheader__meta span:first-child::before { content: none; }

.jhero { max-width: 64rem; margin: 0 auto clamp(2rem, 4vh, 3rem);
  aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: var(--granite);
  box-shadow: 0 40px 90px -50px rgba(34,38,45,.6); }
.jhero img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---- prose --------------------------------------------------------------- */
.article { max-width: 42rem; margin-inline: auto; padding-bottom: clamp(2.5rem, 6vh, 4rem);
  font-size: 1.08rem; line-height: 1.75; color: #2c3038; }
.article > p:first-of-type { font-size: 1.18rem; line-height: 1.7; color: var(--granite); }
.article p { margin: 0 0 1.3rem; }
.article h2 { font-family: var(--font-display); font-weight: 800; letter-spacing: -.018em;
  font-size: clamp(1.45rem, 2.6vw, 1.85rem); line-height: 1.2; color: var(--granite);
  margin: 2.6rem 0 1rem; }
.article h3 { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.15rem, 1.9vw, 1.35rem);
  line-height: 1.25; color: var(--granite); margin: 2rem 0 .7rem; }
.article ul { margin: 0 0 1.3rem; padding: 0; list-style: none; }
.article ul li { position: relative; padding-left: 1.5rem; margin-bottom: .7rem; line-height: 1.6; }
.article ul li::before { content: ""; position: absolute; left: .2rem; top: .62em; width: 7px; height: 7px;
  border-radius: 50%; background: var(--gold); }
.article a { color: var(--gold-deep); text-decoration: underline; text-underline-offset: 2px;
  text-decoration-thickness: 1px; transition: color var(--t-fast); }
.article a:hover { color: var(--granite); }
.article strong { color: var(--granite); font-weight: 600; }
.article table { width: 100%; border-collapse: collapse; margin: 1.6rem 0 1.8rem; font-size: .96rem; }
.article thead th { text-align: left; font-family: var(--font-display); font-weight: 700; font-size: .8rem;
  text-transform: uppercase; letter-spacing: .06em; color: var(--gold-deep);
  padding: .7rem .8rem; border-bottom: 2px solid rgba(34,38,45,.18); }
.article tbody td { padding: .7rem .8rem; border-bottom: 1px solid rgba(34,38,45,.1); vertical-align: top; }
.article tbody tr:nth-child(odd) { background: rgba(34,38,45,.025); }
.article blockquote { margin: 1.6rem 0; padding: .4rem 0 .4rem 1.4rem; border-left: 3px solid var(--gold);
  font-family: var(--font-serif); font-style: italic; font-size: 1.15rem; color: var(--granite); }

/* ---- article FAQ --------------------------------------------------------- */
.jfaq { background: #fff; border-top: 1px solid rgba(34,38,45,.1); }
.jfaq__inner { max-width: 46rem; margin-inline: auto;
  padding-top: clamp(2.6rem, 5vh, 3.6rem); padding-bottom: clamp(2.6rem, 5vh, 3.6rem); }
.jfaq__title { font-family: var(--font-display); font-weight: 800; letter-spacing: -.02em;
  font-size: clamp(1.5rem, 2.6vw, 2rem); color: var(--granite); margin: 0 0 1.4rem; }
.jfaq__item { border-bottom: 1px solid rgba(34,38,45,.12); padding: 1.1rem 0; }
.jfaq__q { font-family: var(--font-display); font-weight: 700; font-size: 1.08rem; color: var(--granite);
  margin: 0 0 .5rem; }
.jfaq__a { font-size: 1rem; line-height: 1.65; color: var(--slate); margin: 0; }

/* ---- article CTA --------------------------------------------------------- */
.jcta { background: var(--granite); color: var(--bone); }
.jcta__inner { max-width: 52ch; margin-inline: auto; text-align: center;
  padding-top: clamp(3rem, 7vh, 5rem); padding-bottom: clamp(3rem, 7vh, 5rem); }
.jcta__eyebrow { font-family: var(--font-display); font-weight: 600; font-size: .75rem;
  text-transform: uppercase; letter-spacing: .24em; color: var(--gold-bright); }
.jcta__title { font-family: var(--font-display); font-weight: 800; letter-spacing: -.02em;
  font-size: clamp(1.6rem, 3.2vw, 2.4rem); line-height: 1.1; margin: .8rem 0 0; color: var(--bone); }
.jcta__body { font-family: var(--font-serif); font-size: 1.1rem; line-height: 1.6;
  color: rgba(242,238,230,.82); margin: 1.1rem auto 1.7rem; }

/* ---- back link ----------------------------------------------------------- */
.jback { max-width: 42rem; margin: 0 auto; padding-bottom: 2.5rem; }
.jback a { font-family: var(--font-display); font-weight: 600; font-size: .9rem; color: var(--gold-deep);
  text-decoration: none; }
.jback a:hover { color: var(--granite); }

@media (max-width: 860px) {
  .jgrid { grid-template-columns: 1fr; max-width: 26rem; margin-inline: auto; }
}
