/*
 * LEARN UPGRADE — WAVE 1 (2026-10-18)
 * The rich lesson template: hero plate, Number Plate, step-grid,
 * failure box, try-it block, tip audio rows.
 * Token source: team/storefront-revamp-2026-10-15/DESIGN-LANGUAGE.md
 * Navy #0B1526 · orange #B93A03 · gold #C9A45C HAIRLINE ONLY (never text).
 * Plate grammar: sound-lab/marketing/visual-overhaul-2026-10-17.
 */

/* ---------- lesson hero plate ---------- */
.lesson-hero{
  position:relative;
  background:linear-gradient(180deg,#122239,#0E1A2E);
  border:1px solid rgba(201,164,92,.30);
  border-radius:18px;
  padding:36px 30px 26px;
}
.lesson-hero .eyebrow{margin-top:0}
.hero-tab{
  position:absolute;top:-6px;left:30px;width:76px;height:12px;
  background:#B93A03;border-radius:3px;
}
.ticks i{position:absolute;width:18px;height:18px;border:0 solid rgba(201,164,92,.55)}
.ticks .tl{top:8px;left:8px;border-top-width:2px;border-left-width:2px}
.ticks .tr{top:8px;right:8px;border-top-width:2px;border-right-width:2px}
.ticks .bl{bottom:8px;left:8px;border-bottom-width:2px;border-left-width:2px}
.ticks .br{bottom:8px;right:8px;border-bottom-width:2px;border-right-width:2px}

/* ---------- waveform plate (hero visual, from real demo peaks) ---------- */
.wave-plate{
  margin-top:24px;background:#060D18;
  border:1px solid rgba(201,164,92,.18);border-radius:12px;
  padding:16px 16px 10px;
}
.wave-plate svg{display:block;width:100%;height:64px}
.plate-cap{
  margin-top:9px;font-family:var(--font-label);font-size:.72rem;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted-light);
}

/* ---------- Number Plate ---------- */
.num-plate{
  margin-top:26px;background:#122239;
  border:1px solid rgba(201,164,92,.30);border-radius:16px;
  padding:22px 26px;display:flex;gap:26px;align-items:center;flex-wrap:wrap;
}
.num-label{
  font-family:var(--font-label);font-size:.72rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted-light);
}
.num-value{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(2.1rem,6vw,3.3rem);line-height:1.05;color:var(--ink-light);
  white-space:nowrap;
}
.num-value .num-unit{font-size:.42em;color:var(--accent-bright);letter-spacing:.02em}
.num-verdict{flex:1;min-width:230px;font-size:.98rem;line-height:1.55;color:var(--ink-light)}
.num-verdict strong{color:var(--accent-bright);font-weight:600}

/* ---------- step grid ---------- */
.step-grid{
  margin:22px 0 8px;background:#0E1A2E;
  border:1px solid rgba(201,164,92,.22);border-radius:14px;
  padding:16px 16px 12px;overflow-x:auto;
}
.sg-row{
  display:grid;grid-template-columns:58px repeat(16,minmax(24px,1fr));
  gap:4px;align-items:center;margin-top:4px;min-width:540px;
}
.sg-lab{
  font-family:var(--font-label);font-size:.68rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted-light);
}
.sg-cell{
  height:27px;border-radius:6px;background:rgba(245,245,247,.05);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-label);font-size:.66rem;font-weight:600;color:#060D18;
}
.sg-cell.on{background:#F5F5F7;opacity:.66}
.sg-cell.acc{background:#F5F5F7;opacity:1;box-shadow:inset 0 0 0 2px #E8622C}
.sg-cell.trav{background:#CE4405;color:#fff;opacity:1}
.sg-cell.kick{background:#1B3050;color:var(--ink-light);font-size:.55rem}
.sg-num{background:none;color:var(--muted-light);font-weight:400}
.sg-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;min-width:540px}
.sg-legend span{
  font-family:var(--font-label);font-size:.68rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted-light);
  display:inline-flex;align-items:center;gap:6px;
}
.sg-legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.sg-legend .sw-on{background:#F5F5F7;opacity:.66}
.sg-legend .sw-acc{background:#F5F5F7;box-shadow:inset 0 0 0 2px #E8622C}
.sg-legend .sw-trav{background:#CE4405}
.sg-legend .sw-kick{background:#1B3050}

/* ---------- kick anatomy timeline ---------- */
.tl-plate{
  margin:22px 0 8px;background:#0E1A2E;
  border:1px solid rgba(201,164,92,.22);border-radius:14px;padding:16px;
}
.tl-track{display:flex;gap:4px;flex-wrap:wrap}
.tl-seg{
  border-radius:9px;padding:10px 12px;background:#1B3050;color:var(--ink-light);
  flex:1 1 100px;
}
.tl-seg.hot{background:#B93A03;color:#fff}
.tl-seg b{
  display:block;font-family:var(--font-label);font-size:.7rem;
  letter-spacing:.08em;text-transform:uppercase;font-weight:600;
}
.tl-seg span{display:block;margin-top:4px;font-size:.82rem;line-height:1.4;opacity:.92}

/* ---------- failure box ---------- */
.failure-box{
  background:#0E1A2E;border:1px solid rgba(201,164,92,.22);
  border-left:3px solid #B93A03;border-radius:14px;
  padding:2px 24px 20px;margin-top:44px;
}
.failure-box h2{margin-top:12px}
.fail-tag{
  display:inline-block;margin-top:18px;font-family:var(--font-label);
  font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent-bright);
}

/* ---------- try it ---------- */
.tryit{
  margin-top:42px;background:#122239;
  border:1px solid rgba(201,164,92,.30);border-radius:16px;padding:8px 24px 14px;
}
.tryit-h{
  margin-top:16px;font-family:var(--font-label);font-size:.74rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted-light);
}
.tryit-row{
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  padding:12px 0;border-top:1px solid rgba(201,164,92,.18);
  text-decoration:none;
}
.tryit-row .t{font-family:var(--font-head);font-weight:600;color:var(--ink-light);font-size:1.02rem}
.tryit-row .d{font-size:.88rem;color:var(--muted-light);text-align:right}
.tryit-row .arr{color:var(--accent-bright);font-weight:700}
@media (hover:hover){ .tryit-row:hover .t{color:var(--accent-bright)} }

/* ---------- hear block caption (A/B pairs) ---------- */
.ab-intro{margin-top:20px}

/* ---------- tie-in card: free door line ---------- */
.learn-tiein .free-door{font-size:.9rem;line-height:1.5;color:var(--muted-light)}
.learn-tiein .free-door a{color:var(--accent-bright)}

/* ---------- tips: audio proof + lesson link ---------- */
.tip-hear{display:flex;align-items:center;gap:11px;margin-top:14px}
.tip-play{
  appearance:none;width:40px;height:40px;flex:none;border-radius:50%;
  border:1px solid rgba(201,164,92,.45);background:#1B3050;color:#F5F5F7;
  font-size:.85rem;cursor:pointer;line-height:1;
}
@media (hover:hover){ .tip-play:hover{background:#B93A03} }
.tip-hear span{font-size:.86rem;line-height:1.45;color:var(--muted-light)}
.tip-card .playlist{margin-top:16px}
.tip-lesson{margin-top:12px;font-size:.9rem}
.tip-lesson a{color:var(--accent-bright)}

@media (max-width:560px){
  .lesson-hero{padding:28px 18px 20px}
  .hero-tab{left:18px}
  .num-plate{padding:18px 18px}
  .num-verdict{min-width:0}
  .tryit{padding:6px 16px 10px}
  .tryit-row{flex-direction:column;gap:2px}
  .tryit-row .d{text-align:left}
  .failure-box{padding:2px 16px 16px}
}

/* ====================================================================
   LEARN SPACING PASS (2026-10-18) — breathing room at the banner and
   at section separators. Andrew's catch: on /learn/ the words sat
   flush against the top banner and hard under section separators.
   SPACING ONLY — no copy, no color, no layout, no link/tracker/player
   changes. Values ride the site token scale (site.css :root --space-*)
   plus the 28px card-top rhythm the .pick cards already use.
   This file loads ONLY on Learn pages; shared components below are
   additionally scoped to Learn contexts so nothing leaks off-Learn.
   ==================================================================== */

/* 1 · Index head vs the banner: .learn-head had ZERO top padding —
   the eyebrow sat flush on the header's bottom hairline (measured
   gap 0px at 390px and desktop). Articles already open at 64px
   (.learn-article padding-top); the index head now opens too. */
.learn-head{padding-top:var(--space-12)}
@media (max-width:760px){ .learn-head{padding-top:var(--space-10)} }

/* 2 · Index eyebrow -> H1: subpage.css zeroed the eyebrow's bottom
   margin, so the H1 line box touched the eyebrow's (gap 0px). */
.learn-head .eyebrow{margin-bottom:var(--space-3)}

/* 3 · Separator boxes that open with a title — .method (the index
   START HERE path box + article settings boxes): the title sat 19px
   under the box's top frame on the index. Top air unified at the
   28px card rhythm. Scoped: .method also serves non-Learn pages. */
.mtm-tab-panel .method,
.learn-article .method{padding-top:28px}

/* 4 · Link cards (Handbook / Beat Maker): the h3 sat 21px under the
   card's top frame (padding-top 20px in revamp.css, which loads
   after this file — the scoped selector outranks it). Same 28px. */
.learn-cat .learn-linkcard{padding-top:28px}

/* 5 · Listen-tab dwell panels: the title sat 17px under the panel's
   top frame (padding 16px). Raised one token step to --space-6.
   Dwell instances on non-Learn pages never load this file. */
.dwell{padding-top:var(--space-6)}

/* 6 · Article hero plate (the article's banner plate): the eyebrow
   sat 29px under the plate's top frame on mobile (padding-top 28px
   at <=560px). Desktop 36 -> 40px; mobile 28 -> 36px. */
.lesson-hero{padding-top:40px}
@media (max-width:560px){ .lesson-hero{padding-top:36px} }

/* 7 · Article try-it block: the heading sat 23px under the block's
   top frame (padding-top 8px + heading margin-top 16px). +8px. */
.tryit{padding-top:12px}
.tryit-h{margin-top:20px}
@media (max-width:560px){ .tryit{padding-top:10px} }
