/* c.css — Direction C "Structured", BMX standings (Latvian red). */
:root {
  --blue:#9D2235; --blue-d:#7A1A29; --blue-t:#FBECEE;
  --ink:#0A0A0B; --ink-2:#2D3138; --muted:#6E7681;
  --bg:#FCFCFD; --paper:#FFF; --line:#E3E4E8; --line-2:#EDEEF1;
}
* { box-sizing:border-box; }
body {
  margin:0; background:var(--bg); color:var(--ink); line-height:1.6;
  font-family:"IBM Plex Sans",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3 {
  margin:0; font-family:"Space Grotesk",sans-serif; font-weight:600;
  letter-spacing:-.02em; line-height:1.05;
}
a { color:inherit; text-decoration:none; }
.shell { max-width:1140px; margin:0 auto; border-inline:1px solid var(--line); }
.topbar {
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 48px; border-bottom:1px solid var(--line);
  position:relative;
}
.brand-lock {
  display:flex; align-items:center; gap:11px; color:var(--ink);
}
.brand-mark {
  flex:none; color:var(--blue); display:grid; place-items:center;
}
.brand-mark svg { display:block; }
.brand-wrap {
  display:flex; flex-direction:column; line-height:1.1; max-width:240px;
}
.brand-co {
  font-family:"Space Grotesk",sans-serif; font-weight:600;
  font-size:17px; letter-spacing:-.01em; color:var(--ink);
}
.brand-struct {
  font-family:"IBM Plex Mono",monospace; font-weight:400;
  font-size:10px; letter-spacing:.04em; color:var(--muted);
  margin-top:3px;
}
.nav {
  display:flex; gap:24px; font-family:"IBM Plex Mono",monospace;
  font-size:13px; letter-spacing:.02em;
}
.nav a { color:var(--muted); padding:4px 0; transition:color .15s; }
.nav a:hover { color:var(--blue); }
.burger {
  display:none; flex-direction:column; gap:5px; width:42px;
  height:42px; padding:11px; background:none;
  border:1px solid var(--line); cursor:pointer;
}
.burger span {
  display:block; height:2px; background:var(--ink);
  transition:transform .2s ease, opacity .2s ease;
}
body.nav-open .burger span:nth-child(1) {
  transform:translateY(7px) rotate(45deg);
}
body.nav-open .burger span:nth-child(2) { opacity:0; }
body.nav-open .burger span:nth-child(3) {
  transform:translateY(-7px) rotate(-45deg);
}
html { scroll-behavior:smooth; }
[id] { scroll-margin-top:20px; }
.c-lang {
  display:inline-flex; gap:6px; align-items:center;
  font-family:"IBM Plex Mono",monospace; font-size:12px;
}
.c-lang a, .c-lang span.is-active {
  display:inline-flex; gap:5px; align-items:center; padding:4px 7px;
  color:var(--muted);
}
.c-lang .is-active { color:var(--ink); background:rgba(0,0,0,.05); }
.c-flag { border-radius:2px; display:block; }
.lbl {
  font-family:"IBM Plex Mono",monospace; font-size:12px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--blue);
}
.mono { font-family:"IBM Plex Mono",monospace; }

/* page head (grid blueprint) */
.hero {
  padding:64px 48px 56px; border-bottom:1px solid var(--line);
  background-image:linear-gradient(var(--line-2) 1px,transparent 1px),
    linear-gradient(90deg,var(--line-2) 1px,transparent 1px);
  background-size:56px 56px; background-position:-1px -1px;
}
.hero-eyebrow { margin:0; }
.hero-meta {
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; flex-wrap:wrap; row-gap:6px;
}
.sh-r {
  font-family:"IBM Plex Mono",monospace; font-size:12px;
  letter-spacing:.1em; color:var(--muted); white-space:nowrap;
}
.hero-title {
  margin:18px 0 0; max-width:20ch;
  font-family:"Space Grotesk",sans-serif; font-weight:600;
  font-size:clamp(34px,4.6vw,52px); letter-spacing:-.035em;
  line-height:1.03;
}
.hero-lead {
  margin:22px 0 0; font-size:17px; line-height:1.62;
  color:var(--ink-2); text-align:justify;
}
.hero-cta {
  margin:30px 0 0; display:flex; gap:12px; align-items:stretch;
  flex-wrap:wrap;
}
.hero-cta .search { flex:1 1 280px; margin-top:0; max-width:440px; }
.hero-cta .btn-dl { flex:none; }
.cta-btns { display:flex; gap:12px; flex:0 0 auto; }
.hero .note { display:block; margin-top:12px; }
.btn-dl {
  display:inline-block; text-decoration:none;
  background:var(--blue); color:#fff; border:1px solid var(--blue);
  font:inherit; font-family:"IBM Plex Mono",monospace; font-weight:500;
  font-size:13px; letter-spacing:.04em; text-transform:uppercase;
  padding:12px 22px; cursor:pointer; transition:.16s;
}
.btn-dl:hover:not(:disabled) { background:var(--blue-d); }
.btn-dl:disabled { opacity:.45; cursor:not-allowed; }
/* Secondary (Excel) — ghost button, lower visual weight than PDF+AI */
.btn-dl.btn-2 { background:var(--paper); color:var(--blue); }
.btn-dl.btn-2:hover:not(:disabled) { background:var(--blue-t); }

/* feature cards (OATS service-card language) */
.features { border-bottom:1px solid var(--line); }
.feat-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
  padding:40px 48px 48px;
}
.svc {
  position:relative; display:flex; flex-direction:column;
  padding:30px 28px 28px; border:1px solid var(--line);
  background:var(--paper);
  transition:border-color .2s ease, transform .28s ease,
    box-shadow .28s ease;
}
.svc::before {
  content:""; position:absolute; left:-1px; right:-1px; top:-1px;
  height:2px; background:var(--blue); transform:scaleX(0);
  transform-origin:left; transition:transform .4s cubic-bezier(.2,.7,.2,1);
}
.svc:hover {
  border-color:#C7C8CE; transform:translateY(-4px);
  box-shadow:0 18px 38px -28px rgba(10,10,11,.45);
}
.svc:hover::before { transform:scaleX(1); }
.svc-top {
  display:flex; align-items:flex-start; justify-content:space-between;
}
.svc-ic {
  width:54px; height:54px; flex:none; border:1px solid #EAD9DC;
  background:var(--blue-t); color:var(--blue); display:grid;
  place-items:center;
  transition:background .24s ease, color .24s ease, border-color .24s ease;
}
.svc-ic svg { width:26px; height:26px; }
.svc:hover .svc-ic {
  background:var(--blue); color:#fff; border-color:var(--blue);
}
.svc-ix {
  font-family:"IBM Plex Mono",monospace; font-size:11.5px;
  letter-spacing:.14em; color:var(--muted); padding-top:4px;
}
.svc h3 {
  margin:26px 0 0; font-family:"Space Grotesk",sans-serif; font-weight:600;
  font-size:21px; letter-spacing:-.02em;
}
.svc-cb {
  margin:12px 0 0; font-size:14.5px; line-height:1.6; color:var(--ink-2);
}
.svc-note {
  margin:10px 0 0; font-size:12px; line-height:1.5; font-style:italic;
  color:var(--muted);
}
/* Two large product-comparison cards */
.feat-grid.feat-2 { grid-template-columns:repeat(2,1fr); gap:24px; }
.prod { padding:38px 36px 36px; }
.prod-badge {
  font-family:"IBM Plex Mono",monospace; font-size:10px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--blue);
  border:1px solid var(--blue); padding:6px 11px; white-space:nowrap;
}
.prod-ix {
  display:block; margin-top:24px; font-family:"IBM Plex Mono",monospace;
  font-size:12px; letter-spacing:.14em; color:var(--muted);
}
.prod h3 {
  margin:8px 0 0; font-size:26px;
}
.prod-sub { margin:8px 0 0; font-size:15px; color:var(--muted); }
.prod-feats {
  list-style:none; margin:24px 0 0; padding:0;
  display:flex; flex-direction:column; gap:13px;
}
.prod-feats li {
  position:relative; padding-left:26px; font-size:15px; line-height:1.5;
  color:var(--ink-2);
}
.prod-feats li::before {
  content:""; position:absolute; left:2px; top:5px; width:9px; height:5px;
  border-left:2px solid var(--blue); border-bottom:2px solid var(--blue);
  transform:rotate(-45deg);
}
.prod-note {
  margin:22px 0 0; padding-top:16px; border-top:1px solid var(--line);
  font-size:12px; line-height:1.5; font-style:italic; color:var(--muted);
}
.svc-cap {
  margin-top:auto; padding-top:18px; border-top:1px solid var(--line);
  font-family:"IBM Plex Mono",monospace; font-size:10px;
  letter-spacing:.18em; text-transform:uppercase; color:var(--muted);
}
/* numbered section header (Season Rankings) — OATS section divider */
.sec-head {
  padding:56px 48px 36px; border-bottom:1px solid var(--line);
  background-image:linear-gradient(var(--line-2) 1px,transparent 1px),
    linear-gradient(90deg,var(--line-2) 1px,transparent 1px);
  background-size:56px 56px; background-position:-1px -1px;
}
.sec-meta {
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; padding-bottom:18px; margin-bottom:24px;
  border-bottom:1px solid var(--line-2);
}
.sec-title {
  margin:16px 0 0; font-family:"Space Grotesk",sans-serif;
  font-weight:600; font-size:clamp(34px,4.2vw,50px);
  letter-spacing:-.032em; line-height:1.04;
}
.sec-lead {
  margin:18px 0 0; max-width:56ch; font-size:16px; line-height:1.6;
  color:var(--ink-2);
}
/* season highlights — editorial stats row */
.highlights {
  display:grid; grid-template-columns:repeat(4, 1fr);
  border-bottom:1px solid var(--line);
}
.hl {
  display:flex; flex-direction:column; gap:8px;
  padding:30px 28px; border-right:1px solid var(--line-2);
}
.hl:nth-child(4n) { border-right:0; }
.hl:nth-child(-n+4) { border-bottom:1px solid var(--line-2); }
.hl-label {
  font-family:"IBM Plex Mono",monospace; font-size:10.5px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--blue);
}
.hl-value {
  display:flex; align-items:baseline; gap:6px;
  font-family:"Space Grotesk",sans-serif; font-weight:600;
  font-size:clamp(26px, 2.6vw, 38px); letter-spacing:-.03em;
  line-height:1; color:var(--ink);
}
/* direction reads from the glyph + weight, not bright colour */
.hl-value.up { color:var(--ink); }
.hl-unit {
  font-family:"IBM Plex Mono",monospace; font-size:14px; font-weight:400;
  letter-spacing:0; color:var(--muted);
}
.hl-name { font-size:14px; color:var(--ink-2); line-height:1.3; }
.hl-at {
  display:block; margin-top:3px; font-family:"IBM Plex Mono",monospace;
  font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted);
}
.standings { border-bottom:1px solid var(--line); }
.disclaimer {
  padding:24px 48px 0; margin:0; font-size:13px; color:var(--muted);
  line-height:1.55; text-align:justify;
}
.disclaimer strong { color:var(--ink-2); font-weight:600; }
.standings .grid2 { margin-top:24px; border-top:1px solid var(--line); }

/* search */
.search { margin-top:26px; max-width:460px; position:relative; }
.search input {
  width:100%; padding:14px 16px; font-size:16px; background:var(--paper);
  border:1px solid var(--ink); font-family:inherit;
}
.search input:focus { outline:none; border-color:var(--blue); }
.ac {
  position:absolute; left:0; right:0; top:100%; background:var(--paper);
  border:1px solid var(--line); border-top:0; z-index:5;
}
.ac button {
  display:flex; justify-content:space-between; width:100%; gap:12px;
  padding:12px 16px; background:none; border:0; cursor:pointer;
  border-top:1px solid var(--line-2); font:inherit; text-align:left;
}
.ac button:hover { background:var(--blue-t); color:var(--blue-d); }
.note { margin-top:10px; font-size:12.5px; color:var(--muted); }
.err {
  margin-top:12px; padding:11px 14px; background:var(--blue-t);
  border:1px solid #EAD9DC; color:var(--blue-d); font-size:14px;
  display:none;
}

/* standings grid: riders | clubs */
.grid2 { display:grid; grid-template-columns:1.4fr 1fr; }
.col { padding:34px 48px; border-bottom:1px solid var(--line); }
.col + .col { border-left:1px solid var(--line); }
.col h2 { font-size:24px; }
.col .cap {
  display:block; margin-top:8px; font-family:"IBM Plex Mono",monospace;
  font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted);
}
table { width:100%; border-collapse:collapse; }
.tbl-scroll {
  max-height:388px; overflow-y:hidden; margin-top:16px;
  border:1px solid var(--line);
}
.tbl-scroll:hover { overflow-y:auto; }
.clubs-hist {
  display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:32px;
}
.clubs-hist-col { min-width:0; }
.clubs-hist-h {
  margin:0; font-family:"IBM Plex Mono",monospace; font-size:11px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--blue);
}
th {
  font-family:"IBM Plex Mono",monospace; font-size:10.5px;
  letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
  text-align:left; padding:10px 8px; border-bottom:1px solid var(--line);
  position:sticky; top:0; background:var(--bg); z-index:1;
}
th.r, td.r { text-align:right; }
td {
  padding:11px 8px; border-bottom:1px solid var(--line-2); font-size:14px;
}
td.pos { font-family:"IBM Plex Mono",monospace; color:var(--blue); width:2ch; }
td.pts {
  font-family:"Space Grotesk",sans-serif; font-weight:600;
  color:var(--blue-d); text-align:right;
}
tr:hover td { background:var(--paper); }

/* records */
/* ── track records: hall-of-fame board, moving red light ── */
.rb-wrap { padding:34px 48px 40px; border-bottom:1px solid var(--line); }
.record-board { border:1px solid var(--line); background:var(--bg); }
.record-rows { background:var(--bg); }
/* each row is its own grid with an identical template, so columns
   line up down the page for easy comparison without table density */
.rr {
  display:grid; align-items:center; column-gap:30px; padding:26px 32px;
  border-top:1px solid var(--line-2);
  grid-template-columns:
    34px minmax(118px, .8fr) minmax(232px, 1.1fr) minmax(232px, 1.1fr);
}
.rr:first-child { border-top:0; }
.rr:not(.rr-head):hover { background:var(--paper); }
.rr-head > * {
  font-family:"IBM Plex Mono",monospace; font-size:10px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--blue);
}
.rr-head { padding-top:18px; padding-bottom:14px; }
.rr-logo { display:flex; }
.rr-logo .logo { width:30px; height:30px; margin:0; }
.rr-track {
  font-family:"Space Grotesk",sans-serif; font-weight:600;
  font-size:19px; letter-spacing:-.01em;
}
.rr-mark { display:flex; align-items:baseline; gap:11px; min-width:0; }
.rr-k { display:none; }
.rr-t {
  flex:none; font-family:"Space Grotesk",sans-serif; font-weight:600;
  font-size:27px; letter-spacing:-.02em; line-height:1;
  color:var(--ink); font-variant-numeric:tabular-nums;
}
.rr-who {
  font-size:14px; color:var(--muted);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.rr-yr {
  flex:none; font-family:"IBM Plex Mono",monospace; font-size:13px;
  color:var(--blue);
}
.rr-spd {
  flex:none; font-family:"IBM Plex Mono",monospace; font-size:12.5px;
  color:var(--blue); font-variant-numeric:tabular-nums;
}
.rb-source {
  display:flex; gap:14px; margin-top:18px; padding:16px 20px;
  border:1px solid var(--line); background:var(--paper);
}
.rb-source-lbl {
  flex:none; padding-top:2px; font-family:"IBM Plex Mono",monospace;
  font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue);
}
.rb-source p {
  margin:0; font-size:13px; line-height:1.55; color:var(--muted);
}

.empty { padding:48px; text-align:center; color:var(--muted); }
.foot {
  padding:28px 48px; font-family:"IBM Plex Mono",monospace; font-size:12px;
  color:var(--muted); text-align:center;
}

@media (max-width:860px) {
  .grid2 { grid-template-columns:1fr; }
  .col + .col { border-left:0; }
  .hero, .col, .rb-wrap, .foot { padding-left:24px; padding-right:24px; }
  .topbar, .sec-head, .disclaimer, .tabs, .subtabs {
    padding-left:24px; padding-right:24px;
  }
  .burger { display:flex; }
  .c-lang { margin-left:auto; }
  .nav {
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; gap:0; padding:0; z-index:20;
    background:var(--bg); border-bottom:1px solid var(--line);
    display:none;
  }
  body.nav-open .nav { display:flex; }
  .nav a { padding:16px 24px; border-top:1px solid var(--line); }
  .rb-source { flex-direction:column; gap:8px; }
  .rr-head { display:none; }
  .rr {
    grid-template-columns:auto 1fr; column-gap:14px; row-gap:8px;
    padding:20px 22px;
  }
  .rr-mark { grid-column:1 / -1; flex-wrap:wrap; }
  .rr-k {
    display:block; flex:0 0 100%; margin-bottom:1px;
    font-family:"IBM Plex Mono",monospace; font-size:9.5px;
    letter-spacing:.16em; text-transform:uppercase; color:var(--blue);
  }
  .hero { padding-top:44px; padding-bottom:40px; }
  .cta-btns { flex-direction:column; width:100%; }
  .cta-btns .btn-dl { width:100%; }
  .feat-grid, .feat-grid.feat-2 {
    grid-template-columns:1fr; padding:24px; gap:16px;
  }
  .clubs-hist { grid-template-columns:1fr; gap:24px; }
  .highlights { grid-template-columns:1fr 1fr; }
  .hl { border-right:1px solid var(--line-2); border-bottom:0; }
  .hl:nth-child(2n) { border-right:0; }
  .hl:nth-child(-n+6) { border-bottom:1px solid var(--line-2); }

  /* Standings collapse to stacked cards: full list flows with the
     page (no hover-scroll lock), each row is a two-line card. */
  .tbl-scroll {
    max-height:none; overflow-y:visible; border:0; margin-top:8px;
  }
  .st thead { display:none; }
  .st, .st tbody, .st tr, .st td { display:block; }
  .st td { padding:0; border:0; }
  .st tr:hover td { background:none; }
  .st tr {
    display:grid; align-items:baseline; column-gap:10px; row-gap:4px;
    padding:15px 2px; border-bottom:1px solid var(--line-2);
    font-size:15px;
  }
  .st td.pos { grid-area:pos; align-self:start; width:auto; }
  .st td.pts { grid-area:pts; font-size:17px; }
  .st td.mv { grid-area:mv; }
  .st td.club {
    grid-area:club; display:flex; align-items:center; gap:7px;
    color:var(--muted); font-size:13.5px;
  }
  .st-riders tr {
    grid-template-columns:auto auto 1fr auto;
    grid-template-areas:"pos name name pts" "pos mv club rnd";
  }
  .st-riders td.name { grid-area:name; font-weight:500; }
  .st-riders td.r {
    grid-area:rnd; color:var(--muted); font-size:13px;
    text-align:right;
  }
  .st-riders td.r::after { content:" " attr(data-label); }
  .st-clubs tr {
    grid-template-columns:auto 1fr auto;
    grid-template-areas:"pos club pts" "pos mv mv";
  }
}
.logo {
  width:20px; height:20px; object-fit:contain; vertical-align:middle;
  margin-right:8px; border-radius:3px;
}
.flag-sm {
  width:20px; height:14px; margin-right:8px; vertical-align:middle;
  display:inline-block;
}
/* championship selector — large cells, filled-red active state */
.tabs {
  display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr));
  gap:10px; padding:28px 48px 8px;
}
.tab {
  display:flex; flex-direction:column; gap:7px; align-items:flex-start;
  font:inherit; text-align:left; padding:16px 18px; cursor:pointer;
  background:var(--paper); border:1px solid var(--line);
  transition:background .18s ease, border-color .18s ease;
}
.tab .champ-ix {
  font-family:"IBM Plex Mono",monospace; font-size:11px;
  letter-spacing:.16em; color:var(--muted);
}
.tab .champ-name {
  font-family:"Space Grotesk",sans-serif; font-weight:600;
  font-size:17px; letter-spacing:-.015em; line-height:1.1;
  color:var(--ink);
}
.tab:hover { background:var(--blue-t); border-color:var(--blue); }
.tab.is-active { background:var(--blue); border-color:var(--blue); }
.tab.is-active .champ-ix { color:rgba(255,255,255,.7); }
.tab.is-active .champ-name { color:#fff; }
.subtabs {
  display:grid; grid-template-columns:repeat(auto-fit, minmax(96px, 1fr));
  gap:8px; padding:12px 48px 0;
}
.subtab {
  font:inherit; font-family:"IBM Plex Mono",monospace; font-size:13px;
  letter-spacing:.02em; padding:13px 10px; cursor:pointer;
  text-align:center; background:var(--paper);
  border:1px solid var(--line); color:var(--ink-2);
  transition:background .18s ease, border-color .18s ease;
}
.subtab:hover { background:var(--blue-t); border-color:var(--blue); }
.subtab.is-active {
  background:var(--blue); color:#fff; border-color:var(--blue);
}
.panel { padding-top:4px; }
/* ranking movement — typographic, not bright-coloured */
.mv { white-space:nowrap; text-align:center; }
.mv-tag {
  display:inline-block; min-width:48px; text-align:left;
  font-family:"IBM Plex Mono",monospace; font-size:12.5px;
  font-variant-numeric:tabular-nums; letter-spacing:.02em;
  color:var(--ink);
}
.mv-up { color:var(--ink); font-weight:600; }       /* gained: strong */
.mv-dn { color:var(--muted); font-weight:400; }      /* lost: receded */
.mv-eq { color:#C2C5CC; }                            /* held: faint */
.mv-new {
  min-width:0; font-size:10px; font-weight:600;
  text-transform:uppercase; letter-spacing:.12em; color:var(--ink-2);
  padding:2px 6px; border:1px solid var(--line-2); border-radius:2px;
}
