/* /courses/classes — the new design arm.
 *
 * Self-contained: classes.php sets $pageCssOverride, so this replaces the
 * page's stylesheet list and nothing here has to out-specify offline-classes.css.
 * head.php prepends chrome-flat.css for the header and footer.
 *
 * Same language as the other new arms — radius 0, 2px ink borders, no shadow,
 * no gradient. A schedule of real classes reads better as a printed timetable
 * than as a wall of floating cards.
 */

:root{
  --cl-ink:#0a0a0a; --cl-paper:#fff; --cl-dim:#6b7280; --cl-lab:#9aa1ab; --cl-hair:#e6e6e6;
  --cl-sunk:#f6f6f4; --cl-hot:#b4470f; --cl-in:#0f7a4a;
  --cl-font:'Be Vietnam Pro',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --cl-pad:clamp(20px,5vw,72px);
}
.cl2-page{font-family:var(--cl-font);color:var(--cl-ink);background:var(--cl-paper);
  font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
.cl2-page *{box-sizing:border-box}
.cl2-in{max-width:1240px;margin:0 auto;padding-left:var(--cl-pad);padding-right:var(--cl-pad)}
.cl2-anchor{display:block;height:0;scroll-margin-top:var(--cf-h,75px)}

/* ── hero ─────────────────────────────────────────────────────────────── */
.cl2-hero{background:var(--cl-ink);color:#fff;padding:clamp(40px,6vw,76px) 0}
.cl2-kick{display:block;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  font-weight:800;color:rgba(255,255,255,.6)}
.cl2-h1{font-size:clamp(30px,5.6vw,58px);line-height:1.02;letter-spacing:-.045em;font-weight:800;
  margin:14px 0 0;color:#fff;max-width:16ch}
.cl2-lead{font-size:clamp(14.5px,1.6vw,18px);line-height:1.5;margin:16px 0 0;max-width:54ch;
  color:rgba(255,255,255,.82)}
.cl2-facts{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:22px;
  font-size:13px;color:rgba(255,255,255,.7)}
.cl2-facts b{color:#fff;font-weight:800;font-size:16px;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;margin-right:5px}
.cl2-hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}

/* ── buttons ──────────────────────────────────────────────────────────── */
.cl2-btn{display:inline-flex;align-items:center;justify-content:center;font-family:inherit;
  font-size:13px;font-weight:800;letter-spacing:-.01em;padding:11px 18px;border-radius:0;
  border:2px solid currentColor;text-decoration:none;cursor:pointer;line-height:1.2;
  background:transparent;color:#fff}
.cl2-hero .cl2-btn{color:#fff}
.cl2-btn-on{background:#fff;color:var(--cl-ink);border-color:#fff}
/* Scoped to the hero on purpose. `.cl2-hero .cl2-btn` is (0,2,0) and plain
   `.cl2-btn-on` is (0,1,0), so the ghost-button colour won and painted white
   text on the white filled button — an invisible CTA that still carries
   data-ab-cta, which would have been recorded as a design that nobody clicks
   rather than a button nobody could see. */
.cl2-hero .cl2-btn-on{color:var(--cl-ink)}
.cl2-btn-on:hover{background:#eee}
.cl2-btn-inv{background:var(--cl-ink);color:#fff;border-color:var(--cl-ink)}
.cl2-btn-sm{font-size:12px;padding:8px 13px}
/* Outside the hero the default button is ink on paper. */
.cl2-sec .cl2-btn,.cl2-empty .cl2-btn{color:var(--cl-ink);border-color:var(--cl-ink)}
.cl2-sec .cl2-btn-on,.cl2-empty .cl2-btn-on{background:var(--cl-ink);color:#fff}
.cl2-sec .cl2-btn-on:hover{background:#333}

/* ── tabs ─────────────────────────────────────────────────────────────── */
.cl2-tabs{border-bottom:2px solid var(--cl-ink);background:var(--cl-paper);
  position:sticky;top:var(--cf-h,75px);z-index:20}
.cl2-tabs-in{display:flex;gap:0;overflow-x:auto;scrollbar-width:none}
.cl2-tabs-in::-webkit-scrollbar{display:none}
.cl2-tab{font-family:inherit;font-size:12.5px;font-weight:800;letter-spacing:.02em;
  padding:14px 18px;border:0;border-bottom:3px solid transparent;background:none;
  color:var(--cl-dim);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:7px}
.cl2-tab.active{color:var(--cl-ink);border-bottom-color:var(--cl-ink)}
.cl2-tab-b{font-size:10.5px;font-weight:800;background:var(--cl-hot);color:#fff;padding:1px 6px}

/* ── sections ─────────────────────────────────────────────────────────── */
.cl2-sec{padding:clamp(28px,4vw,48px) 0}
.cl2-next-sec{padding-bottom:0}
.cl2-eyebrow{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:800;
  color:var(--cl-lab);margin-bottom:12px}

/* ── organizer stats ──────────────────────────────────────────────────── */
.cl2-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  border:2px solid var(--cl-ink);margin-bottom:26px}
.cl2-stat{padding:16px 18px;border-right:2px solid var(--cl-ink)}
.cl2-stat:last-child{border-right:0}
.cl2-stat b{display:block;font-size:26px;font-weight:800;letter-spacing:-.035em;
  font-variant-numeric:tabular-nums;line-height:1.1}
.cl2-stat span{display:block;font-size:11px;letter-spacing:.13em;text-transform:uppercase;
  font-weight:700;color:var(--cl-lab);margin-top:4px}
.cl2-stat.warn b{color:var(--cl-hot)}
@media (max-width:720px){
  .cl2-stats{grid-template-columns:1fr 1fr}
  .cl2-stat{border-bottom:2px solid var(--cl-ink)}
  .cl2-stat:nth-child(2n){border-right:0}
}

/* ── the soonest class ────────────────────────────────────────────────── */
.cl2-next{display:flex;gap:clamp(16px,3vw,36px);align-items:stretch;justify-content:space-between;
  border:3px solid var(--cl-ink);padding:clamp(18px,3vw,28px);text-decoration:none;
  color:var(--cl-ink);flex-wrap:wrap}
.cl2-next:hover{background:var(--cl-sunk)}
.cl2-next-l{flex:1 1 320px;min-width:0}
.cl2-next h2{font-size:clamp(20px,2.6vw,30px);line-height:1.1;letter-spacing:-.035em;
  font-weight:800;margin:10px 0 0}
.cl2-next-sub{font-size:13.5px;color:var(--cl-dim);margin:6px 0 0}
.cl2-next-r{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;
  justify-content:flex-end;gap:9px}
.cl2-seat b{font-size:30px;font-weight:800;letter-spacing:-.04em;line-height:1;
  font-variant-numeric:tabular-nums}
.cl2-seat span{font-size:11.5px;color:var(--cl-lab);margin-left:6px}
.cl2-joined{font-size:12.5px;color:var(--cl-dim)}

/* ── filters ──────────────────────────────────────────────────────────── */
.cl2-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.cl2-search{flex:1 1 240px;min-width:0;font-family:inherit;font-size:13.5px;padding:10px 13px;
  border:2px solid var(--cl-ink);border-radius:0;background:var(--cl-paper);color:var(--cl-ink)}
.cl2-search::placeholder{color:var(--cl-lab)}
.cl2-chips{display:flex;gap:2px;flex-wrap:wrap}
.cl2-chip{font-family:inherit;font-size:12.5px;font-weight:700;padding:8px 13px;
  border:2px solid var(--cl-hair);border-radius:0;background:var(--cl-paper);color:var(--cl-dim);
  cursor:pointer;white-space:nowrap}
.cl2-chip:hover{border-color:var(--cl-ink);color:var(--cl-ink)}
.cl2-chip.on{background:var(--cl-ink);border-color:var(--cl-ink);color:#fff}
.cl2-chip.warn{border-color:var(--cl-hot);color:var(--cl-hot)}
.cl2-sort{font-family:inherit;font-size:12.5px;font-weight:700;padding:9px 12px;
  border:2px solid var(--cl-ink);border-radius:0;background:var(--cl-paper);color:var(--cl-ink);
  cursor:pointer}
.cl2-count{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
  color:var(--cl-lab);margin:0 0 16px}

/* ── cards ────────────────────────────────────────────────────────────── */
.cl2-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:0;border-top:2px solid var(--cl-ink);border-left:2px solid var(--cl-ink)}
.cl2-card{border-right:2px solid var(--cl-ink);border-bottom:2px solid var(--cl-ink);
  min-width:0;background:var(--cl-paper)}
.cl2-card-link{display:block;text-decoration:none;color:var(--cl-ink)}
.cl2-card-link:hover{background:var(--cl-sunk)}
.cl2-card-b{padding:16px 18px 18px;display:flex;flex-direction:column;height:100%}
.cl2-tagrow{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:9px}
.cl2-tag{font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;
  padding:3px 7px;border:1px solid var(--cl-hair);color:var(--cl-dim)}
.cl2-tag-hot{border-color:var(--cl-hot);color:var(--cl-hot)}
.cl2-tag-in{border-color:var(--cl-in);color:var(--cl-in)}
.cl2-tag-full{border-color:var(--cl-lab);color:var(--cl-lab)}
.cl2-tag-warn{border-color:var(--cl-hot);color:var(--cl-hot)}
.cl2-tag-published{border-color:var(--cl-in);color:var(--cl-in)}
.cl2-tag-draft{border-color:var(--cl-lab);color:var(--cl-lab)}
.cl2-card h3{font-size:16px;line-height:1.22;letter-spacing:-.02em;font-weight:800;margin:0}
.cl2-sub{font-size:12.5px;color:var(--cl-dim);margin:6px 0 0}
.cl2-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--cl-dim);
  margin-top:11px}
.cl2-foot{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  margin-top:auto;padding-top:14px}
.cl2-price{font-size:14px;font-weight:800;letter-spacing:-.02em}
.cl2-seats{font-size:12px;font-weight:700;color:var(--cl-dim)}
.cl2-seats.low{color:var(--cl-hot)}
.cl2-card-act{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:14px}
.cl2-attn{font-size:12px;font-weight:700;color:var(--cl-hot);text-decoration:none;
  border-bottom:1px solid currentColor}

/* ── empty states ─────────────────────────────────────────────────────── */
.cl2-empty{border:2px solid var(--cl-ink);padding:clamp(22px,4vw,38px);text-align:left}
.cl2-empty h2{font-size:clamp(19px,2.4vw,26px);letter-spacing:-.03em;font-weight:800;margin:0}
.cl2-empty p{font-size:14.5px;color:var(--cl-dim);margin:10px 0 0;max-width:60ch}
.cl2-empty .cl2-btn{margin-top:18px}
.cl2-steps{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.cl2-steps li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--cl-dim);
  border:1px solid var(--cl-hair);padding:8px 12px}
.cl2-steps b{font-weight:800;color:var(--cl-ink)}

/* ── tail strip ───────────────────────────────────────────────────────── */
.cl2-strip{background:var(--cl-sunk);border-top:2px solid var(--cl-ink);
  padding:clamp(26px,4vw,44px) 0;margin-top:clamp(28px,4vw,48px)}
.cl2-strip-alt{background:var(--cl-paper)}
.cl2-strip-in{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.cl2-strip h2{font-size:clamp(19px,2.4vw,27px);letter-spacing:-.03em;line-height:1.12;
  font-weight:800;margin:0;max-width:22ch}
.cl2-strip p{font-size:14px;color:var(--cl-dim);margin:8px 0 0;max-width:52ch}

@media (max-width:560px){
  .cl2-next-r{width:100%;flex-direction:row;align-items:center;justify-content:space-between}
  .cl2-grid{grid-template-columns:1fr}
}
