/* ==========================================================================
   CyclingArchives — site-wide additions
   Loaded on EVERY page right after style.css (see ca_assets()).
   Added 2026-07-19: (1) nav dropdown submenu, (2) dynamic race widget.
   Uses the theme tokens from style.css (--ca-red/-gold/-blue/-black/-bg…).
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. NAV DROPDOWN  (News ▾ → Did You Know)
   wp_nav_menu emits <ul id="menu-primary"> … <li class="menu-item-has-children">
   <a>News</a><ul class="sub-menu"><li><a>Did You Know</a></li></ul></li>
   -------------------------------------------------------------------------- */
#ca-nav #menu-primary > li,
#ca-nav .menu > li { position: relative; }

#ca-nav .menu-item-has-children > a::after {
  content: '\25BE';            /* ▾ */
  margin-left: 6px;
  font-size: .7em;
  opacity: .65;
  vertical-align: middle;
}

#ca-nav .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 210px;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  padding: 6px;
  background: var(--ca-black);
  border: 1px solid rgba(255,255,255,.12);
  border-top: 2px solid var(--ca-gold);
  border-radius: 0 0 var(--radius) var(--radius);
  box-shadow: 0 12px 28px rgba(0,0,0,.4);
  z-index: 300;
}
#ca-nav li:hover > .sub-menu,
#ca-nav li:focus-within > .sub-menu { display: flex; }

#ca-nav .sub-menu a { display: block; white-space: nowrap; border-radius: var(--radius); }

@media (max-width: 768px) {
  /* Inside the mobile drawer the submenu is a static indented list */
  #ca-nav .sub-menu {
    display: block;
    position: static;
    min-width: 0;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
  }
  #ca-nav .sub-menu a { padding-left: 44px; opacity: .82; }
  #ca-nav .menu-item-has-children > a::after { display: none; }
}

/* --------------------------------------------------------------------------
   2. RACE WIDGET  (homepage, under the hero)
   ca_race_now_widget() renders one of two states: --live or --next.
   -------------------------------------------------------------------------- */
.ca-racebar-band {
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.ca-racebar-band--live { background: #fffdf3; }   /* warm — maillot jaune energy */
.ca-racebar-band--next { background: #f3f6fc; }   /* cool — upcoming */

.ca-racebar {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 18px 0;
  border-left: 5px solid var(--ca-gold);
  padding-left: 22px;
}
.ca-racebar-band--next .ca-racebar { border-left-color: var(--ca-blue); }

/* Flag / eyebrow */
.ca-racebar-flag {
  flex: 0 0 auto;
  align-self: flex-start;
  margin-top: 3px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-head);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ca-red);
  background: rgba(204,0,0,.08);
  padding: 5px 11px;
  border-radius: 100px;
  white-space: nowrap;
}
.ca-racebar-flag--next { color: var(--ca-blue); background: rgba(27,45,79,.09); }
.ca-racebar-flag .dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--ca-red);
  box-shadow: 0 0 0 0 rgba(204,0,0,.55);
  animation: caPulse 1.6s infinite;
}
@keyframes caPulse {
  0%   { box-shadow: 0 0 0 0 rgba(204,0,0,.5); }
  70%  { box-shadow: 0 0 0 8px rgba(204,0,0,0); }
  100% { box-shadow: 0 0 0 0 rgba(204,0,0,0); }
}
@media (prefers-reduced-motion: reduce) { .ca-racebar-flag .dot { animation: none; } }

/* Main block */
.ca-racebar-main { flex: 1 1 auto; min-width: 0; }
.ca-racebar-name {
  font-family: var(--font-head);
  font-size: clamp(1.35rem, 3vw, 2rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1.05;
  color: var(--ca-text);
}
.ca-racebar-name a { color: inherit; }
.ca-racebar-name a:hover { color: var(--ca-red); text-decoration: none; }
.ca-racebar-meta {
  margin-top: 4px;
  font-size: .9rem;
  color: var(--ca-gray);
  font-weight: 500;
}
.ca-racebar-meta b { color: var(--ca-text); font-weight: 600; }

/* Live progress bar */
.ca-racebar-progress {
  margin-top: 10px;
  height: 6px;
  max-width: 340px;
  background: rgba(0,0,0,.08);
  border-radius: 100px;
  overflow: hidden;
}
.ca-racebar-progress > span {
  display: block; height: 100%;
  background: linear-gradient(90deg, var(--ca-gold), #e0a800);
  border-radius: 100px;
}

/* Side block (status / countdown + CTA) */
.ca-racebar-side {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}
.ca-racebar-status {
  font-family: var(--font-head);
  font-size: .82rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ca-gray);
}
.ca-racebar-status b { color: var(--ca-red); font-weight: 700; }
.ca-racebar-cta { padding: 10px 22px; font-size: .82rem; }
.ca-racebar-band--next .ca-racebar-cta { background: var(--ca-blue); }
.ca-racebar-band--next .ca-racebar-cta:hover { background: #16233f; }

/* Countdown */
.ca-countdown { display: flex; gap: 10px; }
.ca-cd-unit {
  min-width: 52px;
  text-align: center;
  background: var(--ca-white);
  border: 1px solid rgba(27,45,79,.15);
  border-radius: var(--radius);
  padding: 6px 4px 4px;
  box-shadow: var(--shadow);
}
.ca-cd-unit b {
  display: block;
  font-family: var(--font-head);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  color: var(--ca-blue);
  font-variant-numeric: tabular-nums;
}
.ca-cd-unit i {
  display: block;
  margin-top: 3px;
  font-style: normal;
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ca-gray);
}

/* "Up next" teaser line under a live race */
.ca-racebar-next {
  padding: 8px 0 0 27px;
  font-size: .85rem;
  color: var(--ca-gray);
}
.ca-racebar-next a { color: var(--ca-blue); font-weight: 600; }

@media (max-width: 720px) {
  .ca-racebar { flex-direction: column; align-items: stretch; gap: 14px; }
  .ca-racebar-side { align-items: stretch; }
  .ca-racebar-side .ca-racebar-cta { text-align: center; }
  .ca-countdown { justify-content: space-between; }
  .ca-cd-unit { flex: 1 1 auto; }
}

/* --- Race calendar page ([ca_race_calendar] shortcode) --- */
.ca-cal { display:flex; flex-direction:column; gap:3px; margin:6px 0 26px; }
.ca-cal-year { font-family:var(--font-head); text-transform:uppercase; letter-spacing:.08em; font-size:1.05rem; color:var(--ca-blue); margin:24px 0 8px; padding-bottom:6px; border-bottom:2px solid var(--ca-gold); }
.ca-cal-year:first-child { margin-top:4px; }
.ca-cal-row { display:grid; grid-template-columns:118px 1fr auto; align-items:center; gap:14px; padding:11px 14px; border:1px solid rgba(0,0,0,.07); border-left:3px solid transparent; border-radius:var(--radius); background:var(--ca-white); color:var(--ca-text); transition:background .15s, border-color .15s; }
.ca-cal-row:hover { background:#faf8f2; text-decoration:none; border-color:rgba(0,0,0,.16); }
.ca-cal-row.t1 { border-left-color:var(--ca-gold); }
.ca-cal-row.is-past { opacity:.5; }
.ca-cal-row.is-live { border-left-color:var(--ca-red); background:#fffdf3; }
.ca-cal-row.is-next { border-left-color:var(--ca-blue); }
.ca-cal-date { font-family:var(--font-head); font-weight:600; letter-spacing:.02em; color:var(--ca-blue); font-variant-numeric:tabular-nums; }
.ca-cal-name { font-weight:600; }
.ca-cal-type { font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ca-gray); white-space:nowrap; }
.ca-cal-badge { display:inline-block; font-family:var(--font-head); font-size:.6rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:2px 8px; border-radius:100px; vertical-align:middle; }
.ca-cal-badge.live { color:#fff; background:var(--ca-red); }
.ca-cal-badge.next { color:#fff; background:var(--ca-blue); }
@media (max-width:600px){ .ca-cal-row{ grid-template-columns:86px 1fr; } .ca-cal-type{ display:none; } }

/* --- Races hub (/races/) --- */
.ca-rhub-h { font-family:var(--font-head); text-transform:uppercase; letter-spacing:.06em; font-size:1.3rem; color:var(--ca-blue); margin:26px 0 14px; padding-bottom:8px; border-bottom:2px solid var(--ca-gold); }
.ca-rhub-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:14px; margin-bottom:12px; }
.ca-rhub-box { display:flex; flex-direction:column; gap:5px; padding:18px; background:var(--ca-white); border:1px solid rgba(0,0,0,.08); border-left:4px solid var(--ca-gold); border-radius:var(--radius); box-shadow:var(--shadow); transition:transform .15s, box-shadow .15s; }
.ca-rhub-box:hover { transform:translateY(-2px); box-shadow:0 6px 18px rgba(0,0,0,.15); text-decoration:none; }
.ca-rhub-name { font-family:var(--font-head); font-size:1.25rem; font-weight:700; text-transform:uppercase; color:var(--ca-text); line-height:1.1; }
.ca-rhub-meta { font-size:.82rem; color:var(--ca-gray); }
.ca-rhub-nick { font-size:.82rem; font-style:italic; color:var(--ca-blue); }
.ca-rhub-next { margin-top:2px; font-family:var(--font-head); font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ca-red); }

/* --- Race landing (/races/<slug>/) --- */
.ca-rl-hero { margin:6px 0 22px; padding:22px 24px; background:linear-gradient(135deg,#0A0C10,#1B2D4F); border-radius:6px; color:#fff; }
.ca-rl-eyebrow { font-family:var(--font-head); font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ca-gold); }
.ca-rl-title { font-family:var(--font-head); font-size:clamp(1.8rem,4vw,2.6rem); font-weight:700; text-transform:uppercase; color:#fff; line-height:1.05; margin:6px 0; }
.ca-rl-nick { font-style:italic; color:rgba(255,255,255,.8); margin-bottom:10px; }
.ca-rl-facts { display:flex; flex-wrap:wrap; gap:22px; margin-top:12px; }
.ca-rl-facts span { display:flex; flex-direction:column; font-size:.9rem; color:rgba(255,255,255,.92); max-width:340px; }
.ca-rl-facts b { font-family:var(--font-head); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.55); font-weight:600; margin-bottom:2px; }
.ca-rl h2 { font-family:var(--font-head); text-transform:uppercase; letter-spacing:.02em; color:var(--ca-blue); margin:26px 0 10px; }
.ca-rl-records { background:#f7f5ec; border-left:4px solid var(--ca-gold); padding:2px 18px 14px; border-radius:var(--radius); margin:18px 0; }
.ca-rl-table { width:100%; border-collapse:collapse; margin:6px 0 18px; font-size:.94rem; }
.ca-rl-table th { text-align:left; font-family:var(--font-head); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ca-gray); border-bottom:2px solid rgba(0,0,0,.12); padding:8px 10px; }
.ca-rl-table td { padding:9px 10px; border-bottom:1px solid rgba(0,0,0,.07); }
.ca-rl-table td.n { font-family:var(--font-head); font-variant-numeric:tabular-nums; color:var(--ca-blue); font-weight:600; width:1%; white-space:nowrap; }
.ca-rl-table td.y, .ca-rl-table td.team { color:var(--ca-gray); }
.ca-rl-table tbody tr:hover { background:#faf8f2; }
.ca-rl-back { margin-top:20px; font-size:.9rem; }
@media (max-width:600px){ .ca-rl-facts{ gap:14px; } }

/* --- Social share bar (single posts) — added 2026-07-19 --- */
.ca-share { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:28px 0 6px; padding-top:16px; border-top:1px solid rgba(0,0,0,.1); }
.ca-share-l { font-family:var(--font-head,sans-serif); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ca-gray,#6b6b6b); margin-right:3px; }
.ca-share a { display:inline-flex; align-items:center; font-family:var(--font-head,sans-serif); font-size:.78rem; font-weight:600; letter-spacing:.02em; padding:6px 14px; border-radius:100px; color:#fff; transition:opacity .15s, transform .15s; }
.ca-share a:hover { text-decoration:none; opacity:.9; transform:translateY(-1px); color:#fff; }
.ca-share-x { background:#0f1419; }
.ca-share-fb { background:#1877f2; }
.ca-share-wa { background:#25d366; }
.ca-share-rd { background:#ff4500; }

/* --- Live race EDITION page ([ca_race_edition]) --- */
.ca-ed-hero { margin:6px 0 20px; padding:20px 22px; background:linear-gradient(135deg,#0A0C10,#1B2D4F); border-radius:6px; color:#fff; }
.ca-ed-hero.is-live { border-left:4px solid var(--ca-red); }
.ca-ed-flag { display:inline-flex; align-items:center; gap:7px; font-family:var(--font-head); font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#fff; background:var(--ca-red); padding:3px 11px; border-radius:100px; }
.ca-ed-flag .dot { width:7px;height:7px;border-radius:50%;background:#fff;animation:caPulse 1.6s infinite; }
.ca-ed-hero h1 { font-family:var(--font-head); font-size:clamp(1.7rem,4vw,2.5rem); font-weight:700; text-transform:uppercase; color:#fff; margin:8px 0 4px; }
.ca-ed-sub { color:rgba(255,255,255,.85); font-size:1rem; }
.ca-ed-sub b { color:var(--ca-gold); }
.ca-ed-jerseys { display:flex; flex-wrap:wrap; gap:10px; margin:2px 0 18px; }
.ca-ed-jersey { display:flex; flex-direction:column; gap:2px; padding:8px 14px; border-radius:var(--radius); background:var(--ca-white); border:1px solid rgba(0,0,0,.08); border-top:3px solid var(--jc,#888); box-shadow:var(--shadow); }
.ca-ed-jersey .jl { font-family:var(--font-head); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ca-gray); }
.ca-ed-jersey .jr { font-weight:600; font-size:.92rem; }
.ca-ed-stages td.rt { font-size:.9rem; }
.ca-ed-tt { display:inline-block; margin-left:6px; font-size:.62rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ca-gray); border:1px solid rgba(0,0,0,.15); border-radius:3px; padding:0 5px; }
.ca-ed-reports { margin:6px 0 16px; padding-left:18px; }
.ca-ed-reports li { margin:5px 0; }

/* --- News single: byline + author box + navigational sidebar --- */
.ca-news-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:34px; align-items:start; max-width:var(--max-w); margin:0 auto; }
@media(max-width:900px){ .ca-news-grid{ grid-template-columns:1fr; } .ca-news-side{ position:static; } }
.ca-cat-eyebrow { display:inline-block; font-family:var(--font-head); font-size:.72rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ca-red); margin-bottom:8px; }
.ca-article-head h1 { font-family:var(--font-head); font-size:clamp(1.7rem,3.5vw,2.6rem); font-weight:700; line-height:1.12; color:var(--ca-text); margin:0 0 14px; }
.ca-byline { display:flex; align-items:center; gap:11px; padding:6px 0 18px; border-bottom:1px solid rgba(0,0,0,.09); margin-bottom:24px; }
.ca-byline-av,.ca-ab-av { border-radius:50%; flex:0 0 auto; }
.ca-byline-t { display:flex; flex-direction:column; line-height:1.45; }
.ca-byline .by { font-weight:600; font-size:.92rem; }
.ca-byline .by a { color:var(--ca-text); }
.ca-byline .role { color:var(--ca-gray); font-weight:400; }
.ca-byline .dt { font-size:.82rem; color:var(--ca-gray); }
.ca-authorbox { display:flex; gap:16px; margin:32px 0 6px; padding:20px; background:#f7f5ec; border-left:4px solid var(--ca-gold); border-radius:var(--radius); }
.ca-authorbox .ab-name { font-family:var(--font-head); font-size:1.1rem; font-weight:700; }
.ca-authorbox .ab-name a { color:var(--ca-text); }
.ca-authorbox .ab-role { display:block; font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ca-red); margin:1px 0 8px; }
.ca-authorbox p { margin:0; font-size:.92rem; color:#444; }
.ca-news-side { display:flex; flex-direction:column; gap:20px; position:sticky; top:84px; }
.ca-ns-block { background:var(--ca-white); border:1px solid rgba(0,0,0,.08); border-radius:var(--radius); padding:14px 16px; }
.ca-ns-h { font-family:var(--font-head); font-size:.74rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ca-blue); margin:0 0 10px; padding-bottom:8px; border-bottom:2px solid var(--ca-gold); }
.ca-ns-nav,.ca-ns-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.ca-ns-nav a { font-family:var(--font-head); font-size:.9rem; color:var(--ca-text); }
.ca-ns-list a { font-size:.86rem; color:var(--ca-text); line-height:1.35; }
.ca-ns-nav a:hover,.ca-ns-list a:hover { color:var(--ca-red); text-decoration:none; }
.ca-author-hero { display:flex; gap:22px; align-items:center; margin:20px 0 30px; padding:24px; background:linear-gradient(135deg,#0A0C10,#1B2D4F); border-radius:8px; color:#fff; }
.ca-author-av { border-radius:50%; border:3px solid rgba(255,255,255,.2); flex:0 0 auto; }
.ca-author-eyebrow { font-family:var(--font-head); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ca-gold); margin:0; }
.ca-author-hero h1 { font-family:var(--font-head); font-size:clamp(1.6rem,3vw,2.2rem); color:#fff; margin:4px 0; }
.ca-author-role { font-size:.9rem; color:var(--ca-gold); margin:0 0 8px; }
.ca-author-bio { color:rgba(255,255,255,.85); font-size:.95rem; max-width:640px; margin:0; }
@media(max-width:600px){ .ca-author-hero{ flex-direction:column; text-align:center; } }

/* --- Site logo (header wheel mark + wordmark) --- */
.ca-logo { display:inline-flex; align-items:center; gap:10px; }
.ca-logo-mark { width:34px; height:34px; flex:0 0 auto; display:block; }
.ca-logo-text { font-family:var(--font-head); font-weight:700; font-size:1.34rem; letter-spacing:.005em; text-transform:uppercase; line-height:1; white-space:nowrap; }
.ca-logo-text .lg-a { color:#fff; }
.ca-logo-text .lg-b { color:var(--ca-gold); }
.ca-logo:hover { text-decoration:none; }
.ca-logo:hover .lg-a { color:#fff; }
.ca-logo:hover .lg-b { color:var(--ca-gold); }
@media(max-width:520px){ .ca-logo-text{ font-size:1.06rem; } .ca-logo-mark{ width:28px; height:28px; } }

/* auto-linked entities in article bodies */
.ca-post-content .ca-ilink { color:var(--ca-blue); border-bottom:1px solid rgba(27,45,79,.28); }
.ca-post-content .ca-ilink:hover { color:var(--ca-red); border-bottom-color:var(--ca-red); text-decoration:none; }


/* footer legal / trust links */
.ca-footer-legal{display:flex;gap:10px 20px;flex-wrap:wrap;justify-content:center;margin:16px 0 6px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);width:100%}
.ca-footer-legal a{color:#9aa4b2;font-size:.82rem;text-decoration:none;transition:color .15s}
.ca-footer-legal a:hover{color:#F5C518}


/* full-width pages (default sidebar removed) */
.ca-page-main{width:100%}
.ca-page-main>.ca-post-content{max-width:768px;margin-inline:auto}
.ca-page-main.is-wide>.ca-post-content{max-width:none}


/* editorial attribution on entity (rider/team) pages */
.ca-entity-cred{margin:36px 0 6px;padding:14px 18px;border-top:2px solid rgba(245,197,24,.5);background:rgba(255,255,255,.02);border-radius:0 0 8px 8px}
.ca-entity-cred p{margin:0;font-size:.85rem;color:#9aa4b2;line-height:1.65}
.ca-entity-cred a{color:#F5C518;text-decoration:none}
.ca-entity-cred a:hover{text-decoration:underline}


/* news article featured-image hero */
.ca-article-hero{margin:6px 0 26px;border-radius:10px;overflow:hidden;background:rgba(255,255,255,.03)}
.ca-article-hero img,.ca-article-hero .ca-hero-img{width:100%;height:auto;display:block;aspect-ratio:16/9;object-fit:cover}
.ca-article-hero figcaption{font-size:.78rem;color:#8891a0;padding:8px 12px 10px}


/* teams hub — filter sidebar + grid */
.ca-thub{display:grid;grid-template-columns:242px 1fr;gap:28px;align-items:start;margin-top:8px}
.ca-thub-side{position:sticky;top:18px;display:flex;flex-direction:column;gap:16px}
.ca-thub-panel,.ca-thub-jump{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:14px 16px}
.ca-thub-panel h3,.ca-thub-jump h3{margin:0 0 8px;font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:#F5C518}
.ca-thub-lbl{display:block;font-size:.72rem;color:#8891a0;margin:12px 0 5px;text-transform:uppercase;letter-spacing:.04em}
.ca-thub-country{width:100%;padding:8px 9px;background:#0d1017;color:#e8ecf2;border:1px solid rgba(255,255,255,.14);border-radius:7px;font-size:.85rem}
.ca-thub-chips{display:flex;flex-wrap:wrap;gap:6px}
.ca-thub-chips button{padding:5px 11px;font-size:.76rem;background:transparent;color:#9aa4b2;border:1px solid rgba(255,255,255,.14);border-radius:20px;cursor:pointer;transition:all .12s}
.ca-thub-chips button.on{background:#F5C518;color:#0a0c10;border-color:#F5C518;font-weight:600}
.ca-thub-reset{margin-top:16px;width:100%;padding:8px;background:transparent;color:#9aa4b2;border:1px solid rgba(255,255,255,.14);border-radius:7px;cursor:pointer;font-size:.8rem}
.ca-thub-reset:hover{color:#F5C518;border-color:#F5C518}
.ca-thub-count{margin:14px 0 0;font-size:.8rem;color:#8891a0}
.ca-thub-count .ca-thub-n{color:#e8ecf2;font-size:1rem}
.ca-thub-jump{display:flex;flex-direction:column;gap:1px}
.ca-thub-jump a{color:#9aa4b2;text-decoration:none;font-size:.85rem;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.ca-thub-jump a:last-child{border-bottom:0}
.ca-thub-jump a:hover{color:#F5C518}
.ca-thub-empty{padding:34px;text-align:center;color:#8891a0}
@media(max-width:860px){.ca-thub{grid-template-columns:1fr}.ca-thub-side{position:static;flex-direction:row;flex-wrap:wrap}.ca-thub-panel,.ca-thub-jump{flex:1 1 240px}}


/* teams hub cards with thumbnail + archive intro */
.ca-archive-intro{max-width:760px;color:#9aa4b2;font-size:.95rem;line-height:1.7;margin:2px 0 22px}
.ca-thub-card{display:flex;flex-direction:column;overflow:hidden}
.ca-thub-thumb{display:block;width:100%;height:120px;background-size:cover;background-position:center;background-color:#151a22;border-radius:8px 8px 0 0;margin:-2px -2px 10px}
.ca-thub-noimg{background:linear-gradient(135deg,#1a2029,#0f1319)}
.ca-thub-noimg::after{content:"";position:absolute}


/* ===== rebuilt footer — multi-column ===== */
#ca-footer{background:var(--ca-black,#0A0C10);color:rgba(255,255,255,.55);padding:46px 0 26px;margin-top:auto;border-top:3px solid var(--ca-red,#E63946)}
.ca-foot-grid{display:grid;grid-template-columns:1.8fr 1fr 1fr 1.15fr;gap:38px}
.ca-foot-brand{max-width:330px}
.ca-foot-logo{display:inline-flex;align-items:center;gap:10px;margin-bottom:13px;text-decoration:none}
.ca-foot-logo .ca-logo-mark{width:34px;height:34px;flex:0 0 auto}
.ca-foot-word{font-family:var(--font-head,inherit);font-weight:800;font-size:1.18rem;text-transform:uppercase;letter-spacing:.03em;line-height:1}
.ca-foot-word .lg-a{color:#fff}
.ca-foot-word .lg-b{color:#F5C518}
.ca-foot-blurb{font-size:.85rem;line-height:1.65;color:rgba(255,255,255,.5);margin:0}
.ca-foot-col{display:flex;flex-direction:column;gap:9px}
.ca-foot-col h4{font-family:var(--font-head,inherit);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:#F5C518;margin:0 0 15px}
.ca-foot-col a{font-size:.86rem;color:rgba(255,255,255,.58);text-decoration:none;transition:color .15s}
.ca-foot-col a:hover{color:#fff}
.ca-foot-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,255,255,.08)}
.ca-copy{font-size:.8rem;color:rgba(255,255,255,.45);margin:0}
.ca-foot-langs{display:flex;gap:11px;flex-wrap:wrap}
.ca-foot-lang{font-size:1.05rem;line-height:1;opacity:.5;text-decoration:none;transition:opacity .15s;filter:grayscale(.3)}
.ca-foot-lang:hover,.ca-foot-lang.is-active{opacity:1;filter:none}
@media(max-width:820px){.ca-foot-grid{grid-template-columns:1fr 1fr;gap:30px 24px}.ca-foot-brand{grid-column:1/-1;max-width:none}}
@media(max-width:480px){.ca-foot-grid{grid-template-columns:1fr}.ca-foot-bottom{flex-direction:column;align-items:flex-start}}


/* authors index page */
.ca-authors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px;margin-top:10px}
.ca-author-card{display:flex;gap:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:20px 22px}
.ca-author-card-av{flex:0 0 auto;display:block}
.ca-author-card-av img{width:88px;height:88px;border-radius:50%;object-fit:cover;border:2px solid rgba(245,197,24,.45);display:block}
.ca-author-card-body{min-width:0}
.ca-author-card-body h2{margin:0 0 3px;font-size:1.12rem;line-height:1.2}
.ca-author-card-body h2 a{color:#fff;text-decoration:none}
.ca-author-card-body h2 a:hover{color:#F5C518}
.ca-ac-role{margin:0 0 9px;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:#F5C518;font-weight:600}
.ca-ac-bio{margin:0 0 11px;font-size:.85rem;line-height:1.6;color:#9aa4b2}
.ca-ac-link{font-size:.82rem;color:#F5C518;text-decoration:none;font-weight:600}
.ca-ac-link:hover{text-decoration:underline}
@media(max-width:520px){.ca-author-card{flex-direction:column}.ca-author-card-av img{width:72px;height:72px}}


/* ===== trust / info pages (About, Editorial, etc.) ===== */
.ca-page-body{max-width:768px}
.ca-page-hero-img{width:100%;height:300px;object-fit:cover;border-radius:12px;margin:0 0 8px;display:block}
.ca-img-credit{font-size:.72rem;color:#6b7280;margin:0 0 22px;text-align:right}
.ca-page-body .ca-lead{font-size:1.16rem;line-height:1.7;color:#c5ccd6;margin:0 0 20px}
.ca-page-body h2{font-family:var(--font-head,inherit);margin:34px 0 12px;font-size:1.45rem;color:#fff}
.ca-page-body p{line-height:1.75}
.ca-page-body ul{line-height:1.7;padding-left:20px}
.ca-keyfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;margin:24px 0 28px}
.ca-keyfact{background:rgba(245,197,24,.06);border:1px solid rgba(245,197,24,.2);border-radius:10px;padding:16px 12px;text-align:center}
.ca-keyfact b{display:block;font-family:var(--font-head,inherit);font-size:1.75rem;color:#F5C518;line-height:1;margin-bottom:5px}
.ca-keyfact span{font-size:.74rem;color:#9aa4b2;text-transform:uppercase;letter-spacing:.04em}
.ca-callout{background:rgba(255,255,255,.03);border-left:3px solid #F5C518;border-radius:0 8px 8px 0;padding:15px 20px;margin:16px 0}
.ca-callout h3{margin:0 0 6px;font-size:1.02rem;color:#fff}
.ca-callout p{margin:0;font-size:.92rem;color:#9aa4b2;line-height:1.65}
.ca-cta-box{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:26px;text-align:center;margin:30px 0}
.ca-cta-box p{margin:0 0 14px;color:#c5ccd6}
.ca-authors-foot{margin-top:28px;padding-top:20px;border-top:1px solid rgba(255,255,255,.08);font-size:.9rem;color:#9aa4b2}


/* avatar squish fix — enforce square box + cover so any aspect ratio renders clean */
.ca-byline-av{width:44px;height:44px;object-fit:cover}
.ca-ab-av{width:72px;height:72px;object-fit:cover}
.ca-author-av{width:96px;height:96px;object-fit:cover}
img.avatar{object-fit:cover}


/* ===== BBC-style section rail (news sidebar) — light theme ===== */
.ca-ns-sections{background:var(--ca-white);border:1px solid rgba(0,0,0,.08);border-radius:var(--radius);padding:8px;display:flex;flex-direction:column;box-shadow:var(--shadow)}
.ca-ns-latest{font-family:var(--font-head);font-weight:600;color:var(--ca-blue);padding:10px 12px;text-decoration:none;text-transform:uppercase;letter-spacing:.05em;font-size:.86rem;border-radius:var(--radius);border-left:3px solid transparent}
.ca-ns-latest:hover{background:#f7f5ec;color:var(--ca-red);text-decoration:none}
.ca-ns-group{margin:12px 12px 4px;font-size:.64rem;text-transform:uppercase;letter-spacing:.11em;color:var(--ca-gray);font-weight:700}
.ca-ns-sec{display:block;padding:8px 12px;border-radius:var(--radius);color:var(--ca-text);text-decoration:none;font-size:.9rem;font-family:var(--font-head);border-left:3px solid transparent}
.ca-ns-sec:hover{background:#f7f5ec;color:var(--ca-red);text-decoration:none}
.ca-ns-sec.is-active,.ca-ns-latest.is-active{background:#fdf6d8;border-left-color:var(--ca-gold);color:var(--ca-blue);font-weight:600}


/* ===== light-theme corrections (site body is #F2F2F2; earlier components were dark-styled) ===== */
.ca-thub-panel,.ca-thub-jump{background:var(--ca-white);border:1px solid rgba(0,0,0,.08)}
.ca-thub-panel h3,.ca-thub-jump h3{color:var(--ca-blue)}
.ca-thub-lbl{color:var(--ca-gray)}
.ca-thub-country{background:var(--ca-white);color:var(--ca-text);border:1px solid rgba(0,0,0,.18)}
.ca-thub-chips button{color:var(--ca-text);border-color:rgba(0,0,0,.18);background:var(--ca-white)}
.ca-thub-chips button.on{background:var(--ca-gold);color:var(--ca-black);border-color:var(--ca-gold)}
.ca-thub-reset{color:var(--ca-gray);border-color:rgba(0,0,0,.18)}
.ca-thub-reset:hover{color:var(--ca-red);border-color:var(--ca-red)}
.ca-thub-count{color:var(--ca-gray)}
.ca-thub-count .ca-thub-n{color:var(--ca-text)}
.ca-thub-jump a{color:var(--ca-text);border-bottom:1px solid rgba(0,0,0,.06)}
.ca-thub-jump a:hover{color:var(--ca-red)}
.ca-thub-empty{color:var(--ca-gray)}
.ca-rhub-meta{color:var(--ca-gray)}
.ca-rhub-nick{color:var(--ca-gray)}
/* trust / info pages */
.ca-page-body .ca-lead{color:var(--ca-text)}
.ca-page-body p{color:var(--ca-text)}
.ca-page-body h2{color:var(--ca-blue)}
.ca-callout{background:var(--ca-white);border-left:3px solid var(--ca-gold);border-top:1px solid rgba(0,0,0,.06);border-right:1px solid rgba(0,0,0,.06);border-bottom:1px solid rgba(0,0,0,.06)}
.ca-callout h3{color:var(--ca-blue)}
.ca-callout p{color:var(--ca-gray)}
.ca-cta-box{background:var(--ca-white);border:1px solid rgba(0,0,0,.1)}
.ca-cta-box p{color:var(--ca-text)}
.ca-keyfact span{color:var(--ca-gray)}
.ca-keyfact{background:#fdf6d8;border:1px solid rgba(245,197,24,.5)}
.ca-archive-intro{color:var(--ca-gray)}
.ca-authors-foot{color:var(--ca-gray);border-top:1px solid rgba(0,0,0,.1)}
.ca-img-credit{color:#8a8a8a}
/* authors index */
.ca-author-card{background:var(--ca-white);border:1px solid rgba(0,0,0,.08)}
.ca-author-card-body h2 a{color:var(--ca-text)}
.ca-author-card-body h2 a:hover{color:var(--ca-red)}
.ca-ac-role{color:var(--ca-red)}
.ca-ac-bio{color:var(--ca-gray)}
.ca-ac-link{color:var(--ca-blue)}
/* entity attribution footer */
.ca-entity-cred{background:#f7f5ec;border-top:2px solid var(--ca-gold)}
.ca-entity-cred p{color:var(--ca-gray)}
.ca-entity-cred a{color:var(--ca-red)}

/* ===== History archive hub (/history/) — light theme ===== */
.ca-hist{display:grid;grid-template-columns:250px 1fr;gap:38px;align-items:start;margin:26px 0 10px}
.ca-hist-side{position:sticky;top:84px;display:flex;flex-direction:column;gap:20px}
.ca-hist-jump,.ca-hist-explore{background:var(--ca-white);border:1px solid #e5e5e5;border-radius:10px;padding:16px 16px 18px}
.ca-hist-side h3{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;color:var(--ca-gray);margin:0 0 12px;font-weight:600}
.ca-hist-jump a{display:block;padding:8px 10px;border-radius:7px;text-decoration:none;color:var(--ca-text);border-left:3px solid transparent;transition:background .15s,border-color .15s}
.ca-hist-jump a:hover{background:#f5f3ea;border-left-color:var(--ca-gold)}
.ca-hist-jump a b{display:block;font-family:'Oswald',sans-serif;font-size:.92rem;color:var(--ca-blue);letter-spacing:.02em}
.ca-hist-jump a span{display:block;font-size:.82rem;color:var(--ca-gray)}
.ca-hist-explore a{display:block;padding:7px 0;color:var(--ca-blue);text-decoration:none;font-size:.9rem;border-bottom:1px solid #efefef}
.ca-hist-explore a:last-child{border-bottom:0}
.ca-hist-explore a:hover{color:var(--ca-red)}

.ca-hist-main{min-width:0}
.ca-hist-lead{font-size:1.12rem;line-height:1.62;color:#333;margin:0 0 30px;padding-bottom:26px;border-bottom:2px solid #e7e7e7;max-width:65ch}
.ca-hist-h{font-family:'Oswald',sans-serif;font-size:1.5rem;color:var(--ca-blue);margin:0 0 4px;letter-spacing:.01em}
.ca-hist-sub{color:var(--ca-gray);margin:0 0 18px;font-size:.96rem}

/* era cards */
.ca-hist-eras{display:flex;flex-direction:column;gap:20px;margin-bottom:46px}
.ca-hist-era{background:var(--ca-white);border:1px solid #e5e5e5;border-left:4px solid var(--ca-gold);border-radius:10px;padding:22px 26px 20px;scroll-margin-top:80px}
.ca-hist-era-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:8px}
.ca-hist-era-yrs{font-family:'Oswald',sans-serif;font-size:.92rem;font-weight:600;letter-spacing:.04em;color:var(--ca-white);background:var(--ca-blue);padding:3px 11px;border-radius:20px;white-space:nowrap}
.ca-hist-era-head h2{font-family:'Oswald',sans-serif;font-size:1.6rem;margin:0;color:var(--ca-text);line-height:1.1}
.ca-hist-era-lead{font-size:1.02rem;line-height:1.6;color:#3a3a3a;margin:0 0 14px;max-width:68ch}
.ca-hist-era-lead em{color:var(--ca-blue);font-style:italic}
.ca-hist-era-moments{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.ca-hist-era-moments li{background:#f5f3ea;border:1px solid #ece7d6;color:#4a4636;font-size:.84rem;padding:5px 11px;border-radius:16px}
.ca-hist-era-people{margin:0;font-size:.9rem;color:var(--ca-gray)}
.ca-hist-era-people span{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;color:var(--ca-red);margin-right:8px}

/* machine evolution strip */
.ca-hist-machine{margin-bottom:46px}
.ca-hist-mstrip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,1fr);gap:14px;overflow-x:auto;padding:18px 2px 8px;scroll-snap-type:x proximity}
.ca-hist-mstage{background:var(--ca-white);border:1px solid #e5e5e5;border-top:3px solid var(--ca-blue);border-radius:9px;padding:16px 16px 18px;scroll-snap-align:start;position:relative}
.ca-hist-mstage:not(:last-child)::after{content:'\2192';position:absolute;right:-11px;top:22px;color:var(--ca-gold);font-size:1.1rem;z-index:1}
.ca-hist-myr{font-family:'Oswald',sans-serif;font-weight:700;font-size:1.05rem;color:var(--ca-gold);letter-spacing:.03em}
.ca-hist-mstage h3{font-family:'Oswald',sans-serif;font-size:1.12rem;margin:2px 0 7px;color:var(--ca-text)}
.ca-hist-mstage p{font-size:.86rem;line-height:1.5;color:var(--ca-gray);margin:0}

/* milestones timeline */
.ca-hist-timeline{margin-bottom:46px}
.ca-hist-tl{list-style:none;margin:18px 0 0;padding:0 0 0 4px;position:relative}
.ca-hist-tl::before{content:'';position:absolute;left:62px;top:6px;bottom:6px;width:2px;background:#e2e2e2}
.ca-hist-tl li{display:grid;grid-template-columns:58px 1fr;gap:20px;align-items:baseline;padding:9px 0;position:relative}
.ca-hist-tl li::before{content:'';position:absolute;left:58px;top:14px;width:9px;height:9px;border-radius:50%;background:var(--ca-gold);border:2px solid var(--ca-white);box-shadow:0 0 0 1px #e2e2e2}
.ca-hist-tl-yr{font-family:'Oswald',sans-serif;font-weight:700;font-size:1rem;color:var(--ca-blue);text-align:right;font-variant-numeric:tabular-nums}
.ca-hist-tl-txt{font-size:.97rem;line-height:1.5;color:#333}

/* figures grid */
.ca-hist-fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;margin-top:4px}
.ca-hist-fcard{display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;background:var(--ca-white);border:1px solid #e5e5e5;border-radius:10px;padding:16px 10px 14px;transition:box-shadow .15s,transform .15s}
.ca-hist-fcard:hover{box-shadow:0 6px 18px rgba(27,45,79,.12);transform:translateY(-2px)}
.ca-hist-fav{width:82px;height:82px;border-radius:50%;background-size:cover;background-position:center top;background-color:#e9e7dd;margin-bottom:10px;border:2px solid #efece0}
.ca-hist-fav-noimg{background:#e9e7dd url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23c3bfae'%3E%3Cpath d='M12 12a5 5 0 100-10 5 5 0 000 10zm0 2c-5 0-9 2.5-9 6v2h18v-2c0-3.5-4-6-9-6z'/%3E%3C/svg%3E") center/48% no-repeat}
.ca-hist-fname{font-family:'Oswald',sans-serif;font-size:.98rem;color:var(--ca-text);line-height:1.2}
.ca-hist-fyr{font-size:.8rem;color:var(--ca-gray);margin-top:3px;font-variant-numeric:tabular-nums}
.ca-hist-more{margin:20px 0 0}
.ca-hist-more a{color:var(--ca-red);text-decoration:none;font-weight:600;font-size:.95rem}

/* history-desk posts */
.ca-hist-posts{margin-top:40px;padding-top:30px;border-top:2px solid #e7e7e7}

@media(max-width:900px){
	.ca-hist{grid-template-columns:1fr;gap:20px}
	.ca-hist-side{position:static;flex-direction:row;flex-wrap:wrap}
	.ca-hist-jump,.ca-hist-explore{flex:1 1 260px}
	.ca-hist-jump{display:flex;flex-wrap:wrap;gap:6px}
	.ca-hist-jump h3,.ca-hist-explore h3{flex-basis:100%}
	.ca-hist-jump a{flex:1 1 130px;border-left:0;border-bottom:2px solid transparent}
	.ca-hist-jump a:hover{border-left:0;border-bottom-color:var(--ca-gold)}
}

/* ===== generic category/discipline archive — section rail + grid ===== */
.ca-arch{display:grid;grid-template-columns:240px 1fr;gap:34px;align-items:start;margin:24px 0 10px}
.ca-arch-side{position:sticky;top:84px;align-self:start}
.ca-arch-main{min-width:0}
.ca-arch-intro{font-size:1.06rem;line-height:1.62;color:#3a3a3a;margin:0 0 24px;padding-bottom:20px;border-bottom:2px solid #e7e7e7;max-width:68ch}
.ca-arch-empty{background:var(--ca-white);border:1px solid #e5e5e5;border-radius:12px;padding:46px 34px;text-align:center;margin-top:6px}
.ca-arch-empty h2{font-family:'Oswald',sans-serif;font-size:1.5rem;color:var(--ca-blue);margin:0 0 12px;letter-spacing:.01em}
.ca-arch-empty p{color:var(--ca-gray);max-width:56ch;margin:0 auto;line-height:1.65}
.ca-arch-empty a{color:var(--ca-red);text-decoration:none;font-weight:600}
.ca-arch-empty a:hover{text-decoration:underline}
@media(max-width:900px){
	.ca-arch{grid-template-columns:1fr;gap:18px}
	.ca-arch-side{position:static}
}

/* ===== homepage "Explore by Discipline" band ===== */
.ca-disc-band{background:var(--ca-white);border-top:1px solid #e9e9e9;border-bottom:1px solid #e9e9e9;padding:30px 0;margin:8px 0 4px}
.ca-disc-h{font-family:'Oswald',sans-serif;font-size:1.05rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ca-gray);margin:0 0 16px;font-weight:600}
.ca-disc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(184px,1fr));gap:12px}
.ca-disc-card{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--ca-bg);border:1px solid #e4e4e4;border-radius:9px;padding:14px 16px;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s}
.ca-disc-card:hover{border-color:var(--ca-gold);transform:translateY(-2px);box-shadow:0 6px 16px rgba(27,45,79,.1)}
.ca-disc-name{font-family:'Oswald',sans-serif;font-size:1.02rem;color:var(--ca-text);letter-spacing:.01em;line-height:1.15}
.ca-disc-go{color:var(--ca-gold);font-weight:700;transition:transform .15s}
.ca-disc-card:hover .ca-disc-go{transform:translateX(3px)}
@media(max-width:640px){.ca-disc-grid{grid-template-columns:1fr 1fr}}

/* ===== geo footer: 3-col (brand + 2 localized link columns) ===== */
.ca-foot-grid.is-geo{grid-template-columns:1.7fr 1fr 1fr}
@media(max-width:760px){.ca-foot-grid.is-geo{grid-template-columns:1fr}}

/* ===== header nav: compact + wrap so long localized labels never overflow ===== */
.ca-header-inner{height:auto;min-height:64px;padding:8px 0}
#ca-nav{flex:1 1 auto;min-width:0}
#ca-nav ul{flex-wrap:wrap;justify-content:flex-end;row-gap:3px}
#ca-nav a{font-size:.82rem;letter-spacing:.05em;padding:7px 11px}

/* ===== race calendar gender + discipline filters ===== */
.ca-cal-filters{display:flex;flex-wrap:wrap;gap:20px;margin:0 0 20px;padding-bottom:16px;border-bottom:2px solid #e7e7e7}
.ca-cal-fgroup{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ca-cal-flabel{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.07em;font-size:.72rem;color:var(--ca-gray);margin-right:2px}
.ca-cal-fgroup button{border:1px solid #ddd;background:#f7f7f7;color:#444;border-radius:999px;padding:5px 13px;font-size:.85rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.ca-cal-fgroup button:hover{background:#ececec}
.ca-cal-fgroup button.on{background:var(--ca-red);border-color:var(--ca-red);color:#fff;font-weight:600}
.ca-cal-gtag{display:inline-block;font-size:.6rem;font-weight:700;line-height:1;padding:2px 5px;border-radius:4px;vertical-align:middle;margin-left:6px;letter-spacing:.03em}
.ca-cal-gtag.w{background:#e6007e;color:#fff}
.ca-cal-gtag.x{background:var(--ca-blue);color:#fff}
