/* ==========================================================================
   Cover By Grace — Scripture section
   Only the Scripture pages load this. Every colour, font and radius comes
   from site.css tokens; nothing new is invented here.
   Class prefix: .s-
   ========================================================================== */

/* ---------- 1. Page opener ---------- */
.s-open{padding:clamp(34px,6vw,64px) 0 0}
.s-open h1{font-size:clamp(34px,5.6vw,54px);margin:0 0 16px;max-width:22em}
.s-lede{font-size:clamp(17px,2.1vw,20px);line-height:1.66;color:var(--ink-mid);max-width:54ch;margin:0}

/* the reference + version line that sits under a chapter title */
.s-meta{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:18px 0 0;font-family:var(--sans);font-size:12px;color:var(--ink-faint);
}
.s-meta__ref{
  font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--gold-dark);
}
html[data-lang="zh"] .s-meta__ref{font-family:var(--cjk);letter-spacing:.06em;font-size:12.5px}

/* ---------- 2. Hub ---------- */
.s-hub{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.s-card__ref{
  font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-dark);margin:14px 0 0;
}
html[data-lang="zh"] .s-card__ref{font-family:var(--cjk);letter-spacing:.06em;font-size:12px}

/* ---------- 3. Verses ---------- */
.s-verses{max-width:var(--readw);font-size:19px;line-height:1.8}
.s-v{
  margin:0 0 .8em;padding-left:2em;text-indent:-2em;
  /* the number hangs in the left gutter so the prose edge stays straight */
}
.s-v:last-child{margin-bottom:0}
.s-v .verse-n{font-size:11px;margin-right:5px}
html[data-lang="zh"] .s-verses{font-size:18px;line-height:1.95}

/* a verse Vivian highlighted in the original page */
.s-v--mark{
  background:var(--gold-soft);border-radius:var(--r-sm);
  padding:.45em .8em .45em 2.6em;text-indent:-1.8em;
  box-shadow:inset 3px 0 0 var(--gold-deep);
}
.s-marknote{
  font-family:var(--sans);font-size:13px;line-height:1.6;color:var(--ink-soft);
  background:var(--gold-mist);border:1px solid var(--line-soft);border-radius:var(--r-sm);
  padding:12px 16px;margin:0 0 30px;max-width:var(--readw);
}
.s-marknote b{color:var(--ink-mid)}
html[data-lang="zh"] .s-marknote{font-family:var(--cjk)}

/* ---------- 4. Verse groups (Romans 8) ---------- */
.s-group{scroll-margin-top:86px;padding:0 0 clamp(30px,5vw,44px)}
.s-group+.s-group{border-top:1px solid var(--line-soft);padding-top:clamp(28px,4.5vw,40px)}
.s-group__label{
  font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-dark);margin:0 0 6px;
}
html[data-lang="zh"] .s-group__label{font-family:var(--cjk);letter-spacing:.08em;font-size:12px}
.s-group h2{font-size:clamp(22px,3vw,29px);margin:0 0 18px;max-width:26em}

/* ---------- 5. Jump list ---------- */
.s-layout{display:grid;gap:clamp(26px,4vw,48px);align-items:start}
.s-jump{
  border:1px solid var(--line);border-radius:var(--r);background:var(--white);
  box-shadow:var(--shadow-1);padding:4px 6px;
}
.s-jump>summary{
  list-style:none;cursor:pointer;
  font-family:var(--sans);font-size:12.5px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-mid);
  padding:12px 12px;display:flex;align-items:center;gap:9px;border-radius:var(--r-sm);
}
.s-jump>summary::-webkit-details-marker{display:none}
.s-jump>summary::after{
  content:"";margin-left:auto;width:8px;height:8px;flex:none;
  border-right:2px solid var(--ink-faint);border-bottom:2px solid var(--ink-faint);
  transform:rotate(45deg) translateY(-2px);transition:transform .2s var(--ease);
}
.s-jump[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}
.s-jump>summary:hover{background:var(--gold-soft)}
html[data-lang="zh"] .s-jump>summary{font-family:var(--cjk);letter-spacing:.04em;font-size:13.5px}
.s-jump ol{list-style:none;margin:0;padding:2px 0 8px}
.s-jump a{
  display:flex;gap:9px;align-items:baseline;text-decoration:none;
  font-family:var(--sans);font-size:13.5px;line-height:1.4;color:var(--ink-mid);
  padding:8px 12px;border-radius:var(--r-sm);border-left:2px solid transparent;
}
.s-jump a:hover{background:var(--gold-soft);color:var(--ink);border-left-color:var(--gold-deep)}
.s-jump a b{font-weight:700;color:var(--gold-dark);flex:none;font-variant-numeric:tabular-nums}
html[data-lang="zh"] .s-jump a{font-family:var(--cjk);font-size:14px}

@media (min-width:920px){
  .s-layout{grid-template-columns:232px minmax(0,1fr)}
  .s-jump{position:sticky;top:88px}
  .s-jump>summary{display:none}
}

/* ---------- 6. Videos ---------- */
.s-videos{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.s-video{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-1);overflow:hidden;display:flex;flex-direction:column;
}
.s-video__frame{
  position:relative;width:100%;aspect-ratio:16/9;background:var(--ink);
  display:block;padding:0;border:0;overflow:hidden;
}
.s-video__frame img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .3s var(--ease),opacity .3s var(--ease);
}
.s-video__frame:hover img{transform:scale(1.04);opacity:.85}
.s-video__play{
  position:absolute;inset:0;display:grid;place-items:center;
}
.s-video__play span{
  width:60px;height:60px;border-radius:999px;background:var(--gold);
  display:grid;place-items:center;box-shadow:var(--shadow-2);
  transition:transform .2s var(--ease);
}
.s-video__frame:hover .s-video__play span{transform:scale(1.08)}
.s-video__play svg{width:22px;height:22px;fill:var(--ink);margin-left:3px}
.s-video__body{padding:16px 18px 18px}
.s-video__body h3{font-size:17px;line-height:1.35;margin:0 0 6px}
.s-video__by{font-family:var(--sans);font-size:12.5px;color:var(--ink-faint);margin:0}
html[data-lang="zh"] .s-video__by{font-family:var(--cjk)}
.s-video iframe{width:100%;aspect-ratio:16/9;height:auto;border:0;display:block}
.s-videos__note{
  font-family:var(--sans);font-size:13px;color:var(--ink-soft);margin:0 0 22px;max-width:56ch;
}
html[data-lang="zh"] .s-videos__note{font-family:var(--cjk)}

/* ---------- 7. Peter — the numbered journey ---------- */
.s-journey{list-style:none;margin:0;padding:0;max-width:760px;position:relative}
.s-step{position:relative;padding:0 0 clamp(22px,4vw,34px) 62px}
/* the rail that runs down the whole journey */
.s-step::before{
  content:"";position:absolute;left:23px;top:44px;bottom:-4px;width:2px;
  background:var(--line);
}
.s-step:last-child::before{display:none}
.s-step__n{
  position:absolute;left:0;top:0;width:48px;height:48px;border-radius:999px;
  display:grid;place-items:center;
  font-family:var(--sans);font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;
  background:var(--white);color:var(--gold-dark);
  border:2px solid var(--line);box-shadow:var(--shadow-1);
}
.s-step__stage{
  font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-faint);margin:0 0 7px;padding-top:4px;
}
html[data-lang="zh"] .s-step__stage{font-family:var(--cjk);letter-spacing:.08em;font-size:12px}
.s-step__q{
  font-size:clamp(18px,2.4vw,22px);line-height:1.5;margin:0 0 10px;color:var(--ink);
}
.s-step__ref{
  display:block;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--gold-dark);margin:0;
}
html[data-lang="zh"] .s-step__ref{font-family:var(--cjk);letter-spacing:.06em;font-size:12.5px}

/* the three steps where he falls — cooler, quieter, pulled back */
.s-step--fall .s-step__n{background:var(--gold-mist);color:var(--ink-faint);border-color:var(--line-soft)}
.s-step--fall .s-step__q{color:var(--ink-soft)}
.s-step--fall .s-step__ref{color:var(--ink-faint)}
/* the steps after the restoration — filled in, warm */
.s-step--back .s-step__n{background:var(--gold);color:var(--ink);border-color:var(--gold-deep)}

/* the turn: Acts 4 */
.s-turn{
  background:var(--gold-soft);border:1px solid var(--line);border-left:5px solid var(--gold-deep);
  border-radius:var(--r);padding:clamp(24px,4vw,38px);margin:clamp(18px,3vw,26px) 0 0;
  max-width:760px;box-shadow:var(--shadow-1);
}
.s-turn__label{
  font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-dark);margin:0 0 8px;
}
html[data-lang="zh"] .s-turn__label{font-family:var(--cjk);letter-spacing:.08em;font-size:12.5px}
.s-turn h2{font-size:clamp(23px,3.2vw,31px);margin:0 0 16px}
.s-turn p{font-size:18px;line-height:1.75;margin:0 0 1em;color:var(--ink)}
.s-turn p:last-of-type{margin-bottom:0}

@media (max-width:420px){
  .s-step{padding-left:52px}
  .s-step__n{width:40px;height:40px;font-size:15px}
  .s-step::before{left:19px;top:38px}
}

/* ---------- 8. A short page, given room ---------- */
.s-quiet{padding:clamp(34px,6vw,60px) 0 0}
.s-quiet__verses{
  max-width:640px;font-size:clamp(20px,2.6vw,25px);line-height:1.68;color:var(--ink);
}
.s-quiet__verses .s-v{margin-bottom:1.1em}
.s-note{
  max-width:60ch;font-size:18px;line-height:1.75;color:var(--ink-mid);
}
.s-note p:last-child{margin-bottom:0}
.s-stamp{
  font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-faint);margin:0;
}
html[data-lang="zh"] .s-stamp{font-family:var(--cjk);letter-spacing:.08em;font-size:12.5px}

/* ---------- 9. Foot of a chapter page ---------- */
.s-next{
  border-top:1px solid var(--line);margin-top:clamp(40px,6vw,64px);
  padding-top:clamp(24px,4vw,34px);display:flex;gap:14px;flex-wrap:wrap;align-items:center;
}
.s-next__lead{
  font-family:var(--sans);font-size:12.5px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-faint);margin:0 auto 0 0;
}
html[data-lang="zh"] .s-next__lead{font-family:var(--cjk);letter-spacing:.04em;font-size:13.5px}
@media (max-width:560px){
  .s-next{flex-direction:column;align-items:stretch}
  .s-next__lead{margin:0 0 4px}
  .s-next .btn{justify-content:center}
}
