/* ─────────────────────────────────────────
   RACING TEAM — Page-Specific Styles
   EEST NJT Racing Circuit
   Design-spec aligned, $250K campaign-level
───────────────────────────────────────── */

/* ═══════════════════════════════════════
   RACING DISPLAY REGISTER — scoped to display surfaces ONLY
   (§1.0 fix: the global h1–h4 900-italic !important override is deleted.
    Card/footer/nav headings return to their component weights; the heavy
    italic register is reserved for hero title, banner heading, CTA title.
    Section titles adopt it via the canonical .njt-section__title--display.)
═══════════════════════════════════════ */
.njt-hero--racing-team .njt-hero__title,
.njt-official-site-banner__heading,
.njt-cta-banner__title {
  font-family: var(--font-display);
  font-weight: 900;
  font-style: italic;
}

/* ═══════════════════════════════════════
   0. SHARED STRUCTURAL (from other pages)
═══════════════════════════════════════ */

/* ── Width Normalization ──
   Header inner: max-width 1400px, 32px side padding.
   Sections had double-padding: section 24px + container 24px = 48px.
   Fix: remove section side padding, set container to 32px.
   This aligns all content areas to the header width.
───────────────────────────────────────── */
.njt-section {
  padding-left: 0;
  padding-right: 0;
}
.njt-section .container.container--wide {
  padding-left: 32px;
  padding-right: 32px;
}

/* Official Site Banner — use container for width alignment */
.njt-official-site-banner {
  padding-left: 0;
  padding-right: 0;
}
.njt-official-site-banner .container.container--wide {
  padding-left: 32px;
  padding-right: 32px;
  text-align: center;
}

/* CTA Banner — constrain to header width.
   The banner is a centered flexbox; its container is a flex item that would
   otherwise shrink-to-fit (measured 617px). width:100% makes it span the full
   available width up to its own max-width (1400px), matching the header. */
.njt-cta-banner {
  padding-left: 0;
  padding-right: 0;
}
.njt-cta-banner .container.container--wide {
  width: 100%;
  padding-left: 32px;
  padding-right: 32px;
}

/* Section Alternation */
.njt-section--alt {
  background: linear-gradient(180deg, rgba(5,5,5,0.95) 0%, rgba(42,0,24,0.3) 50%, rgba(5,5,5,0.95) 100%);
}

/* Section subtitle */
.njt-section__subtitle {
  font-family: var(--font-body);
  font-size: 17px;
  color: var(--text-white-60);
  line-height: 1.7;
  max-width: 700px;
  margin: 12px auto 0;
}
.njt-section__header--centered {
  text-align: center;
}

/* Two-Column Layout */
.njt-two-column {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
  max-width: var(--max-w);
  margin: 0 auto;
}
.njt-two-column__content {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.njt-two-column__media {
  border-radius: var(--radius-lg);
  overflow: hidden;
  position: relative;
}

/* Text Content Block */
.njt-text-content {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--text-white-80);
  line-height: 1.7;
}
.njt-text-content p {
  margin-bottom: 16px;
}
.njt-text-content p:last-child {
  margin-bottom: 0;
}

/* (pruned: .njt-placeholder-img — unused after §1.6 instantiation) */

/* ═══════════════════════════════════════
   TEAM STORY — Premium Section
═══════════════════════════════════════ */
.njt-team-story {
  position: relative;
  overflow: hidden;
}
.njt-team-story__accent {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 20%, var(--magenta) 50%, var(--gold) 80%, transparent 100%);
  opacity: 0.6;
}

/* Credentials row */
.njt-team-story__credentials {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 4px;
}
.njt-team-story__credential {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  background: rgba(255,215,0,0.04);
  border: 1px solid rgba(255,215,0,0.1);
  border-left: 3px solid var(--gold);
  border-radius: 0 var(--radius) var(--radius) 0;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  color: var(--text-white-80);
  transition: border-color 0.3s ease, background 0.3s ease;
}
.njt-team-story__credential:hover {
  border-color: rgba(255,215,0,0.35);
  background: rgba(255,215,0,0.08);
}
.njt-team-story__credential-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,215,0,0.08);
  flex-shrink: 0;
}
.njt-team-story__credential-icon svg {
  color: var(--gold);
  width: 18px;
  height: 18px;
}

/* (pruned: .njt-team-overview__img — unused after §1.6 instantiation) */

.njt-story-carousel:hover .njt-story-carousel__slide--active {
  transform: scale(1.03);
  filter: brightness(1.1);
}
.njt-two-column__media {
  overflow: hidden;
  border-radius: var(--radius-md);
}

/* Story carousel — 4:3 locked */
.njt-story-carousel {
  position: relative;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-md);
  overflow: hidden;
}
.njt-story-carousel__slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  opacity: 0;
  visibility: hidden;
  transform: scale(1.05);
  transition: opacity 1.4s ease, transform 5s ease, visibility 0s 1.4s;
  border-radius: 0;
  z-index: 1;
}
.njt-story-carousel__slide--active {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  z-index: 3;
  transition: opacity 1.4s ease, transform 5s ease, visibility 0s 0s;
}

/* §1.2 — HUD caption bar + slide index on the story carousel */
.njt-story-carousel__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 4;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  padding: 40px 16px 16px;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.75));
  pointer-events: none;
}
.njt-story-carousel__caption-text {
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1.4;
  color: rgba(255,255,255,0.92);
  text-shadow: 0 1px 6px rgba(0,0,0,0.6);
}
.njt-story-carousel__index {
  flex-shrink: 0;
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--gold);
  background: rgba(0,0,0,0.5);
  border: 1px solid rgba(255,215,0,0.3);
  border-radius: var(--radius-pill);
  padding: 4px 12px;
  white-space: nowrap;
}

/* §1.2 — 45/55 split favouring the media column */
.njt-two-column--45-55 {
  grid-template-columns: 45fr 55fr;
}

/* ═══════════════════════════════════════
   COMPETITIONS LOGOS STRIP
═══════════════════════════════════════ */
.njt-competitions {
  margin-top: 56px;
  padding-top: 48px;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.njt-competitions__header {
  text-align: center;
  margin-bottom: 36px;
}
.njt-competitions__label {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--gold);
}
.njt-competitions__logos {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 48px;
  flex-wrap: wrap;
}
.njt-competitions__logo-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  padding: 20px 28px;
  border-radius: var(--radius-md);
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  transition: all 0.4s ease;
  min-width: 160px;
}
.njt-competitions__logo-item:hover {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,215,0,0.25);
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(255,215,0,0.08);
}
/* §1.3 — white optical logo plate (adopts the sponsors-page pattern):
   marks were muddy at .6 opacity on the dark chip; now they sit on a
   #fff contain-fit plate at full opacity, same treatment as sponsors-partners */
.njt-competitions__logo-img {
  height: 64px;
  width: 140px;
  max-width: 140px;
  object-fit: contain;
  opacity: 1;
  background: #fff;
  border-radius: 12px;
  padding: 8px 14px;
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.njt-competitions__logo-item:hover .njt-competitions__logo-img {
  box-shadow: 0 8px 24px rgba(0,0,0,0.35);
}
/* Dark plate for marks that are themselves white — the shared #fff plate would
   render them invisible. */
.njt-competitions__logo-img--dark {
  background: #14060F;
  border: 1px solid rgba(255,255,255,0.14);
}
.njt-competitions__logo-name {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 500;
  color: var(--text-white-60);
  text-align: center;
  line-height: 1.4;
  letter-spacing: 0.3px;
  transition: color 0.3s ease;
}
.njt-competitions__logo-item:hover .njt-competitions__logo-name {
  color: var(--gold);
}

/* Category badge under each logo */
.njt-competitions__logo-category {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--black);
  background: var(--gold);
  padding: 3px 10px;
  border-radius: 3px;
  white-space: nowrap;
  transition: background 0.3s ease;
}
.njt-competitions__logo-item:hover .njt-competitions__logo-category {
  background: #fff;
}

/* V4 §G8 — the hero claims three series; two of them have no logo in the corpus
   and none may be invented, so they ship as typographic cards in the same rail.
   Categories now wrap instead of forcing the row wider than the container. */
.njt-competitions__logos { align-items: stretch; gap: 24px; }
.njt-competitions__logo-item { flex: 0 1 300px; justify-content: flex-start; }
.njt-competitions__logo-category {
  white-space: normal;
  text-align: center;
  line-height: 1.45;
  max-width: 240px;
}
.njt-competitions__logo-item--type .njt-competitions__wordmark {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 64px;
  width: 140px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(212,0,121,0.24), rgba(10,0,6,0.7));
  border: 1px solid rgba(255,215,0,0.28);
  font-family: var(--font-display);
  font-weight: 900;
  font-style: italic;
  font-size: 30px;
  letter-spacing: 0.02em;
  color: var(--gold);
}
.njt-competitions__logo-item--type .njt-competitions__logo-name { color: var(--text-white-80); }

/* ═══════════════════════════════════════
   1. RACING TEAM HERO
═══════════════════════════════════════ */
.njt-hero--racing-team {
  height: auto;
  min-height: 90vh;
  clip-path: none;
  /* The copy block used to run from the padding-top straight to the section's
     bottom edge (padding-bottom: 0), so it sat hard against the floor with all the
     slack above it. The header overlays the hero's first 80px, so a top pad of
     80 + 40 and a bottom pad of 40 leave equal air above and below the group. */
  padding-top: 120px;
  padding-bottom: 40px;
}

/* Multi-layer cinematic background with photo */
.njt-hero--racing-team .njt-hero__bg {
  background: linear-gradient(160deg, #1a0010 0%, #0a0005 40%, #12000a 100%);
  animation: none;
  inset: 0;
}
/* Carousel slides */
.njt-hero__slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  opacity: 0;
  transform: scale(1.08);
  transition: opacity 1.8s ease, transform 8s ease;
  will-change: opacity, transform;
}
/* §1.1 — let the photography carry (was .4 knockdown); the scrim below
   provides the text-legibility contrast, not a global image dim */
.njt-hero__slide--active {
  opacity: 0.92;
  transform: scale(1);
}
/* Ken Burns: alternate zoom direction per slide */
.njt-hero__slide:nth-child(even).njt-hero__slide--active {
  animation: kenBurnsEven 8s ease forwards;
}
.njt-hero__slide:nth-child(odd).njt-hero__slide--active {
  animation: kenBurnsOdd 8s ease forwards;
}
@keyframes kenBurnsOdd {
  from { transform: scale(1); }
  to   { transform: scale(1.08); }
}
@keyframes kenBurnsEven {
  from { transform: scale(1.08) translateX(-1%); }
  to   { transform: scale(1) translateX(1%); }
}
/* §1.1 — left-anchored plum scrim (replaces the magenta radial knockdown).
   Reads the photo at full strength on the right, anchors the left-aligned
   text against a plum gradient for AA contrast. */
.njt-hero--racing-team::before {
  background:
    linear-gradient(90deg, rgba(42,0,24,0.9) 0%, rgba(42,0,24,0.6) 35%, rgba(42,0,24,0.28) 62%, transparent 100%),
    linear-gradient(180deg, rgba(0,0,0,0.35) 0%, transparent 30%, rgba(0,0,0,0.45) 100%);
  z-index: 2;
}

/* Glow orbs — much stronger for visibility */
.njt-hero__glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  pointer-events: none;
  z-index: 1;
}
.njt-hero__glow--gold {
  width: 600px;
  height: 600px;
  background: rgba(255,215,0,0.1);
  top: -15%;
  right: -10%;
  animation: glowPulse 6s ease-in-out infinite alternate;
}
.njt-hero__glow--magenta {
  width: 500px;
  height: 500px;
  background: rgba(212,0,121,0.12);
  bottom: -5%;
  left: -12%;
  animation: glowPulse 8s ease-in-out 2s infinite alternate;
}
@keyframes glowPulse {
  0%   { opacity: 0.5; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.2); }
}

/* Checkered flag pattern — larger, more visible */
.njt-hero__checkered {
  position: absolute;
  top: 0;
  right: 0;
  width: 480px;
  height: 480px;
  z-index: 1;
  opacity: 0.04;
  pointer-events: none;
  background-image:
    linear-gradient(45deg, #fff 25%, transparent 25%),
    linear-gradient(-45deg, #fff 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #fff 75%),
    linear-gradient(-45deg, transparent 75%, #fff 75%);
  background-size: 40px 40px;
  background-position: 0 0, 0 20px, 20px -20px, -20px 0;
  mask-image: linear-gradient(135deg, rgba(0,0,0,1) 0%, transparent 60%);
  -webkit-mask-image: linear-gradient(135deg, rgba(0,0,0,1) 0%, transparent 60%);
}

/* (§1.1 — speed-lines removed: the photography now carries the hero) */

/* Racing accent stripe at hero bottom */
.njt-hero__accent-stripe {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 4px;
  z-index: 5;
  background: linear-gradient(90deg,
    transparent 0%,
    var(--gold) 15%,
    var(--magenta) 50%,
    var(--gold) 85%,
    transparent 100%
  );
}

/* Hero content spacing — §1.1 left-anchored against the plum scrim */
.njt-hero--racing-team .njt-hero__content {
  padding-top: calc(var(--header-h) + 40px);
  padding-bottom: 64px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
}

/* Team logo badge */
.njt-hero__team-logo {
  display: inline-block;
  align-self: flex-start;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 900;
  font-style: italic;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--black);
  background: var(--btn-primary-bg);
  padding: 6px 18px;
  border-radius: 3px;
  transform: skew(-12deg);
  margin-bottom: 16px;
  box-shadow: 0 4px 20px rgba(255,215,0,0.4), 0 0 40px rgba(255,215,0,0.15);
  animation: fadeInUp 0.4s ease both;
}

/* Overline */
.njt-hero__overline {
  font-family: var(--font-display);
  font-size: 15px;
  letter-spacing: 6px;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 8px;
  animation: fadeInUp 0.4s ease 0.1s both;
}

/* Title — 2-line max */
.njt-hero--racing-team .njt-hero__title {
  font-size: var(--text-display-xl);   /* A5 / CONVENTIONS #19 — was clamp(36px, 4.5vw, 68px) */
  max-width: 800px;
  letter-spacing: -0.02em;
  /* 1.2 opened ~106px between the three display lines. At 88px that read as three
     separate headlines rather than one block. */
  line-height: 0.95;
  margin-bottom: 16px;
}
.njt-hero__title-break {
  display: none;
}
@media (min-width: 768px) {
  .njt-hero__title-break {
    display: inline;
  }
}

/* Subtitle — stronger contrast */
.njt-hero--racing-team .njt-hero__subtitle {
  color: rgba(255,255,255,0.9);
  font-weight: 400;
  font-size: clamp(16px, 1.8vw, 22px);
  max-width: 700px;
  margin-bottom: 0;
}

/* Stats strip */
.njt-hero__stats {
  display: flex;
  gap: 16px;
  margin-top: 32px;
  animation: fadeInUp 0.4s ease 0.45s both;
}
.njt-hero__stat {
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255,215,0,0.12);
  border-top: 3px solid var(--gold);
  border-radius: var(--radius-md);
  padding: 20px 32px;
  text-align: center;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.njt-hero__stat::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, rgba(255,215,0,0.06), transparent);
  pointer-events: none;
}
.njt-hero__stat:hover {
  transform: translateY(-4px);
  border-color: rgba(255,215,0,0.6);
  box-shadow: 0 12px 40px rgba(255,215,0,0.15);
}
.njt-hero__stat-number {
  font-family: var(--font-display);
  font-size: 44px;
  font-weight: 900;
  color: var(--gold);
  line-height: 1;
  text-shadow: 0 2px 16px rgba(255,215,0,0.4);
  position: relative;
}
.njt-hero__stat-label {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--text-white-60);
  margin-top: 8px;
  max-width: 160px;
  line-height: 1.35;
  position: relative;
}

/* Hero dual CTA */
.njt-hero__actions {
  display: flex;
  gap: 16px;
  margin-top: 32px;
  animation: fadeInUp 0.4s ease 0.55s both;
  flex-wrap: wrap;
}

/* Scroll indicator — hero specific */
.njt-hero--racing-team .njt-hero__scroll {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 6;
  animation: bounce 2s infinite;
  color: rgba(255,255,255,0.4);
  transition: color 0.3s ease;
}
.njt-hero--racing-team .njt-hero__scroll:hover {
  color: var(--gold);
}

/* (pruned: coaching-legends (section 2) — unused after §1.6 instantiation) */

/* ═══════════════════════════════════════
   2B. THE PROOF LAYER (V4 §G2) — Muklada + the honours board
═══════════════════════════════════════ */
.rt-proof {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(ellipse 55% 60% at 82% 18%, rgba(212,0,121,0.20) 0%, transparent 62%),
    linear-gradient(180deg, #0A0006 0%, var(--racing-plum) 55%, #0A0006 100%);
}
/* Was a 96px repeating pin-stripe that read as a table/grid ruled across the
   section. Now the Misano Race 2 rostrum itself — the exact moment the copy
   describes, with Muklada on P3 in EEST leathers under the WorldWCR backdrop, so
   the claim sits against its own evidence rather than a generic action shot.
   The copy column occupies 760px on the left, so the scrim stays near-opaque
   there and opens over the right, where she and the championship signage fall.
   Position is 64% horizontally: the rostrum is a centred three-up, and at 50%
   the second-place rider would land in the clear zone instead of her. */
.rt-proof__rails {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image:
    linear-gradient(90deg,
      rgba(10, 0, 6, 0.97) 0%,
      rgba(10, 0, 6, 0.95) 34%,
      rgba(10, 0, 6, 0.74) 58%,
      rgba(10, 0, 6, 0.46) 100%),
    url('../assets/08-racing-team/muklada-misano-worldwcr-podium-2026.webp');
  background-size: cover, cover;
  background-position: center, 64% center;
  background-repeat: no-repeat, no-repeat;
  -webkit-mask-image: linear-gradient(180deg, transparent, #000 14%, #000 86%, transparent);
  mask-image: linear-gradient(180deg, transparent, #000 14%, #000 86%, transparent);
}
.rt-proof .container { position: relative; z-index: 1; }
/* 34ch sized the headline to sit above the old left-hand column, beside the
   results panel. With that panel gone the whole section is one 760px measure, so
   the headline shares it rather than wrapping to four short lines. */
.rt-proof__top { max-width: 760px; margin-bottom: 44px; }
.rt-proof__top .njt-section__title { text-wrap: balance; }
/* Single column since the per-round results ledger moved to eest-racing.com — the
   old second track would otherwise leave half the row empty. The measure is capped
   so the prose does not run the full 1400px rail. */
.rt-proof__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  max-width: 760px;
  gap: clamp(32px, 4vw, 64px);
  align-items: start;
  margin-bottom: clamp(48px, 5vw, 72px);
}
.rt-proof__identity {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 16px 20px 16px 16px;
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, rgba(212,0,121,0.20), rgba(10,0,6,0.55));
  border: 1px solid rgba(212,0,121,0.45);
  margin-bottom: 24px;
}
.rt-proof__plate {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 74px;
  padding: 6px 12px;
  border-radius: var(--radius);
  background: var(--gold);
  color: var(--black);
  font-family: var(--font-display);
  font-weight: 900;
  font-style: italic;
  font-size: 40px;
  line-height: 1;
  letter-spacing: -0.02em;
}
.rt-proof__identity-text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rt-proof__identity-text strong { font-family: var(--font-heading); font-size: 19px; font-weight: 700; color: #fff; }
.rt-proof__identity-text span { font-family: var(--font-body); font-size: 14px; line-height: 1.5; color: var(--text-white-60); }
.rt-proof__body {
  font-family: var(--font-body);
  font-size: 16.5px;
  line-height: 1.75;
  color: var(--text-white-80);
  max-width: 58ch;
  margin: 0 0 18px;
}
.rt-proof__firsts { list-style: none; margin: 26px 0 30px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.rt-proof__firsts li {
  position: relative;
  padding-left: 26px;
  font-family: var(--font-body);
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--text-white-80);
}
.rt-proof__firsts li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 12px;
  height: 2px;
  background: var(--gold);
}
.rt-proof__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--gold);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,215,0,0.35);
  padding-bottom: 3px;
  transition: color 0.3s ease, border-color 0.3s ease;
}
.rt-proof__link svg { width: 16px; height: 16px; }
.rt-proof__link:hover { color: #fff; border-color: #fff; }
.rt-proof__link:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }

.rt-proof__record {
  padding: 32px;
  border-radius: var(--radius-lg);
  background: rgba(10,0,6,0.55);
  -webkit-backdrop-filter: blur(var(--blur-card));
  backdrop-filter: blur(var(--blur-card));
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 30px 60px rgba(0,0,0,0.45);
}
.rt-proof__record-label {
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--text-white-60);
  margin: 0 0 20px;
}
.rt-proof__ledger { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.rt-proof__row {
  display: grid;
  grid-template-columns: minmax(76px, auto) 1fr;
  gap: 20px;
  align-items: baseline;
  padding: 18px 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.rt-proof__row:first-child { border-top: 0; padding-top: 0; }
.rt-proof__pos {
  font-family: var(--font-display);
  font-weight: 900;
  font-style: italic;
  font-size: 32px;
  line-height: 0.9;
  letter-spacing: -0.02em;
  color: var(--text-white-60);
}
.rt-proof__row--hero .rt-proof__pos {
  font-size: 64px;
  color: var(--gold);
  text-shadow: 0 6px 30px rgba(255,215,0,0.22);
}
.rt-proof__meta { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.rt-proof__meta strong { font-family: var(--font-heading); font-size: 15px; font-weight: 600; line-height: 1.4; color: #fff; }
.rt-proof__row--hero .rt-proof__meta strong { font-size: 17px; }
.rt-proof__meta span { font-family: var(--font-body); font-size: 13.5px; line-height: 1.55; color: var(--text-white-60); }
.rt-proof__source {
  margin: 22px 0 0;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.08);
  font-family: var(--font-body);
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--text-white-60);
}

/* .njt-honours core PROMOTED to css/components.css §42 (A3, round 2) — same component
   as about's `.njt-honours`. Only this page's LAYOUT delta stays here. */
.njt-honours {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(24px, 3vw, 48px);
  align-items: center;
}
.njt-honours__figure-wrap { display: flex; align-items: center; gap: clamp(18px, 2vw, 28px); }

@media (max-width: 1024px) {
  .rt-proof__grid { grid-template-columns: 1fr; gap: 36px; }
  .rt-proof__top { max-width: none; }
  .njt-honours { grid-template-columns: 1fr; }
  .njt-honours__award { padding-left: 0; padding-top: 20px; border-left: 0; border-top: 1px solid rgba(255,215,0,0.35); }
}
@media (max-width: 600px) {
  .rt-proof__record { padding: 24px 20px; }
  .rt-proof__row { grid-template-columns: 1fr; gap: 6px; }
  .rt-proof__row--hero .rt-proof__pos { font-size: 54px; }
  .njt-honours__figure-wrap { flex-direction: column; align-items: flex-start; gap: 12px; }
}

/* ═══════════════════════════════════════
   3. RIDER CARDS GRID
═══════════════════════════════════════ */
.njt-riders-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: var(--max-w);
  margin: 0 auto;
}

.njt-rider-card {
  position: relative;
  background: rgba(0,0,0,0.4);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-lg);
  overflow: hidden;
  padding: 24px;
  text-align: center;
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.njt-rider-card:hover {
  transform: translateY(-8px);
  border-color: rgba(255,215,0,0.4);
  box-shadow: 0 12px 40px rgba(255,215,0,0.1);
}

/* Featured / Champion card */
.njt-rider-card--featured {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  text-align: left;
  padding: 0;
  border-color: rgba(255,215,0,0.3);
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, rgba(42,0,24,0.4) 100%);
  box-shadow: 0 0 40px rgba(255,215,0,0.06);
}
.njt-rider-card--featured .njt-rider-card__image {
  min-height: 320px;
}
.njt-rider-card--featured .njt-rider-card__image .njt-placeholder-img {
  border-radius: 0;
  min-height: 100%;
}
.njt-rider-card--featured .njt-rider-card__name,
.njt-rider-card--featured .njt-rider-card__number,
.njt-rider-card--featured .njt-rider-card__class,
.njt-rider-card--featured .njt-rider-card__achievement {
  padding-left: 0;
  padding-right: 32px;
}
.njt-rider-card--featured .njt-rider-card__name {
  font-size: 28px;
  padding-top: 32px;
}
.njt-rider-card--featured .njt-rider-card__number {
  font-size: 60px;
}
.njt-rider-card--featured .njt-rider-card__achievement {
  padding-bottom: 32px;
}
/* content column of the featured card (holds name/class/achievement) */
.njt-rider-card__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  /* V4 §G8: as a stretched flex item the class pill spanned the whole column and
     read as a filled bar rather than a chip. */
  align-items: flex-start;
  gap: 8px;
}

/* Champion number board (left column of the featured card).
   Honest by construction — it renders the VERIFIED race number, not a
   portrait we can't attribute to a specific rider. */
.njt-rider-card__plate {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 320px;
  padding: 32px;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(212,0,121,0.4) 0%, rgba(42,0,24,0.9) 100%);
}
/* checkered corner motif */
.njt-rider-card__plate::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 160px;
  height: 160px;
  opacity: 0.08;
  pointer-events: none;
  background-image:
    linear-gradient(45deg, #fff 25%, transparent 25%),
    linear-gradient(-45deg, #fff 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #fff 75%),
    linear-gradient(-45deg, transparent 75%, #fff 75%);
  background-size: 24px 24px;
  background-position: 0 0, 0 12px, 12px -12px, -12px 0;
  -webkit-mask-image: linear-gradient(225deg, #000 0%, transparent 65%);
  mask-image: linear-gradient(225deg, #000 0%, transparent 65%);
}
.njt-rider-card__plate-label {
  position: relative;
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
}
.njt-rider-card__plate-number {
  position: relative;
  font-family: var(--font-display);
  font-size: clamp(80px, 11vw, 132px);
  font-weight: 900;
  font-style: italic;
  color: #fff;
  line-height: 0.85;
  letter-spacing: -0.02em;
  text-shadow: 0 6px 30px rgba(0,0,0,0.55);
}
.njt-rider-card__plate-class {
  position: relative;
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--black);
  background: var(--gold);
  border-radius: var(--radius-pill);
  padding: 4px 14px;
}

/* ── V4 §G8: re-liveried roster cards ──
   The three non-featured riders were bare text blocks beside a fully-liveried
   champion card. They now carry the same plate language at a smaller scale:
   checkered corner, italic display numeral, class-colour rule. */
.njt-rider-card--plated {
  padding: 0;
  text-align: left;
  border-top: 3px solid var(--rider-class-colour, rgba(255,255,255,0.25));
  display: flex;
  flex-direction: column;
}
.njt-rider-card--class-p125 {
  --rider-class-colour: var(--gold);
  --rider-class-tint: rgba(255,215,0,0.12);
  --rider-class-edge: rgba(255,215,0,0.35);
}
.njt-rider-card--class-ub130 {
  --rider-class-colour: var(--magenta-300);
  --rider-class-tint: rgba(212,0,121,0.16);
  --rider-class-edge: rgba(255,77,179,0.4);
}
.njt-rider-card__plate--compact {
  min-height: 150px;
  gap: 6px;
  padding: 22px;
  background: linear-gradient(135deg, rgba(212,0,121,0.26) 0%, rgba(42,0,24,0.9) 100%);
}
.njt-rider-card__plate--compact .njt-rider-card__plate-number {
  font-size: clamp(56px, 6vw, 76px);
}
.njt-rider-card__plate--compact::before { width: 120px; height: 120px; }
.njt-rider-card--plated .njt-rider-card__body {
  gap: 6px;
  padding: 20px 22px 24px;
  align-items: flex-start;
}
.njt-rider-card--plated .njt-rider-card__name { margin-bottom: 2px; }
.njt-rider-card--plated .njt-rider-card__class {
  margin-bottom: 0;
  color: var(--rider-class-colour, var(--gold));
  border-color: var(--rider-class-edge, rgba(255,215,0,0.2));
  background: var(--rider-class-tint, rgba(255,215,0,0.1));
}

/* Badge */
.njt-rider-card__badge {
  position: absolute;
  top: 16px;
  right: 16px;
  padding: 6px 14px;
  border-radius: var(--radius-pill);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.5px;
  color: var(--black);
  background: var(--btn-primary-bg);
  box-shadow: 0 2px 12px rgba(255,215,0,0.4);
  z-index: 3;
  animation: pulseGlow 2s ease-in-out infinite;
}
.njt-rider-card__badge--talent {
  background: linear-gradient(135deg, var(--magenta), #FF4DB3);
  color: white;
  box-shadow: 0 2px 12px rgba(212,0,121,0.4);
}

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 2px 12px rgba(255,215,0,0.4); }
  50% { box-shadow: 0 4px 20px rgba(255,215,0,0.6); }
}

/* Rider image */
.njt-rider-card__image {
  margin-bottom: 16px;
  border-radius: var(--radius-md);
  overflow: hidden;
}
.njt-rider-card__image .njt-placeholder-img {
  min-height: 200px;
}

/* Rider number */
.njt-rider-card__number {
  font-family: var(--font-display);
  font-size: 40px;
  font-weight: 900;
  font-style: italic;
  color: var(--magenta);
  line-height: 1;
  margin-bottom: 4px;
  text-shadow: 0 0 15px rgba(212,0,121,0.3);
}

/* Rider name */
.njt-rider-card__name {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 18px;
  color: var(--text-white);
  margin-bottom: 4px;
}

/* Rider class */
.njt-rider-card__class {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--gold);
  margin-bottom: 12px;
  display: inline-block;
  padding: 3px 12px;
  border-radius: var(--radius-pill);
  background: rgba(255,215,0,0.1);
  border: 1px solid rgba(255,215,0,0.2);
}

/* Rider achievement */
.njt-rider-card__achievement {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--text-white-60);
  line-height: 1.5;
  margin-top: 8px;
}

/* ═══════════════════════════════════════
   4. RACE RESULTS TABLE
═══════════════════════════════════════ */
.njt-race-results {
  max-width: var(--max-w);
  margin: 0 auto;
}
.njt-race-results__season {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 900;
  font-style: italic;
  color: var(--gold);
  letter-spacing: 1px;
  margin-bottom: 4px;
}
.njt-race-results__date {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--text-white-50, rgba(255,255,255,0.5));
  letter-spacing: 0.06em;
  margin-bottom: 24px;
}
.njt-race-results__table {
  overflow-x: auto;
  border-radius: var(--radius-lg);
  border: 1px solid rgba(255,255,255,0.08);
  background: var(--black-card);
}
.njt-race-results__table table {
  width: 100%;
  border-collapse: collapse;
}
.njt-race-results__table thead {
  background: linear-gradient(135deg, rgba(212,0,121,0.3) 0%, rgba(42,0,24,0.6) 100%);
}
.njt-race-results__table th {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 13px;
  color: var(--text-white);
  padding: 14px 20px;
  text-align: left;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.njt-race-results__table td {
  padding: 14px 20px;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--text-white-80);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.njt-race-results__table tr:last-child td {
  border-bottom: none;
}
.njt-race-results__table tr:hover td {
  background: rgba(255,215,0,0.03);
}

/* Podium row highlight */
.njt-race-results__row--podium td {
  background: rgba(255,215,0,0.06);
  border-left: 3px solid var(--gold);
  font-weight: 500;
  color: var(--text-white);
}
.njt-race-results__row--podium td:first-child {
  border-left: 3px solid var(--gold);
}
/* (pruned: .njt-race-results__highlight — superseded by .njt-latest-highlight) */

/* ═══════════════════════════════════════
   5. ROAD TO MOTOGP PATHWAY
   (R2 consolidation: migrated onto the canonical .njt-journey in
   components.css — the page-scoped njt-motogp-pathway / njt-pathway-step
   clones are deleted per r2-convention-spec §Consolidation.)
═══════════════════════════════════════ */

/* (pruned: team-sponsors (section 6) — unused after §1.6 instantiation) */

/* ═══════════════════════════════════════
   7. BOTTOM CTA BANNER
═══════════════════════════════════════ */
.njt-cta-banner {
  position: relative;
  text-align: center;
  /* Horizontal padding is 0 so the inner .container--wide (max-width 1400 + 32px)
     aligns exactly with the page's section containers / header. */
  padding: 120px 0;
  min-height: 480px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-dark);
  border-top: 1px solid rgba(255,215,0,0.1);
  border-bottom: 1px solid rgba(255,215,0,0.1);
  overflow: hidden;
}
/* Video background */
.njt-cta-banner__video-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.njt-cta-banner__video-bg video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.45; /* §1.7 — lifted from .3 so the footage reads */
  filter: saturate(0.8);
}
/* Overlay on top of video — lighter middle stop (§1.7) */
.njt-cta-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(42,0,24,0.65) 0%, rgba(0,0,0,0.35) 45%, rgba(42,0,24,0.72) 100%),
    radial-gradient(ellipse at 50% 50%, rgba(255,215,0,0.06) 0%, transparent 60%);
  pointer-events: none;
}
.njt-cta-banner .container {
  position: relative;
  z-index: 2;
}
.njt-cta-banner__title {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(28px, 4.5vw, 44px);
  color: var(--text-white);
  margin-bottom: 16px;
  position: relative;
}
.njt-cta-banner__subtitle {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--text-white-60);
  margin-bottom: 32px;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  line-height: 1.6;
}
.njt-cta-banner__actions {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  position: relative;
  margin-bottom: 24px;
}

/* Social links row */
.njt-social-links {
  display: flex;
  gap: 12px;
  justify-content: center;
  position: relative;
}
.njt-social-link {
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 500;
  color: var(--text-white-60);
  text-decoration: none;
  padding: 6px 14px; /* §1.7 — shared ghost-pill padding token */
  border-radius: var(--radius-pill);
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  transition: all 0.3s ease;
}
.njt-social-link:hover {
  color: var(--gold);
  border-color: rgba(255,215,0,0.3);
  background: rgba(255,215,0,0.08);
}

/* ═══════════════════════════════════════
   8. EXTERNAL LINK SYSTEM & OFFICIAL SITE BANNER
═══════════════════════════════════════ */

/* External link icon indicator */
.njt-external-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.njt-external-link__icon {
  width: 14px;
  height: 14px;
  opacity: 0.6;
  transition: opacity 0.3s ease, transform 0.3s ease;
  flex-shrink: 0;
}
.njt-external-link:hover .njt-external-link__icon {
  opacity: 1;
  transform: translate(2px, -2px);
}

/* Official Team Site Banner — Cinematic with Background Image */
.njt-official-site-banner {
  position: relative;
  padding: 80px 0;
  overflow: hidden;
  border-top: 1px solid rgba(255,215,0,0.12);
  border-bottom: 1px solid rgba(255,215,0,0.12);
}

/* Background image layer */
.njt-official-site-banner__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.njt-official-site-banner__bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  opacity: 0.2;
  filter: saturate(0.6);
}
/* Multi-layer overlay: cinematic depth */
.njt-official-site-banner__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.75) 0%, rgba(42,0,24,0.65) 50%, rgba(0,0,0,0.8) 100%),
    radial-gradient(ellipse at 50% 50%, rgba(212,0,121,0.08) 0%, transparent 60%);
}

/* Racing stripes */
.njt-official-site-banner__stripe {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 15%, var(--magenta) 50%, var(--gold) 85%, transparent 100%);
  z-index: 3;
}
.njt-official-site-banner__stripe--bottom {
  top: auto;
  bottom: 0;
}

/* Centered layout */
.njt-official-site-banner__centered {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: var(--max-w);
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.njt-official-site-banner__badge {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid rgba(255,215,0,0.35);
  border-radius: 3px;
  padding: 5px 16px;
  margin-bottom: 20px;
  background: rgba(255,215,0,0.06);
}
/* §1.4 — capped at 32–36px so the canonical .njt-section__title (44px)
   stays the page's section register; weight/style set by the display-register rule */
.njt-official-site-banner__heading {
  font-size: clamp(26px, 3vw, 34px);
  color: var(--text-white);
  margin: 0 0 16px;
  line-height: 1.2;
}
.njt-official-site-banner__subtitle {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--text-white-60);
  margin: 0 0 40px;
  line-height: 1.7;
  max-width: 640px;
}

/* Feature grid */
.njt-official-site-banner__features {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 40px;
  width: 100%;
  max-width: 680px;
}
/* §1.4 — tightened to horizontal icon+label rows (was airy centered stacks) */
.njt-official-site-banner__feature {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--radius-md);
  text-align: left;
  transition: all 0.3s ease;
}
.njt-official-site-banner__feature:hover {
  background: rgba(255,215,0,0.06);
  border-color: rgba(255,215,0,0.25);
  transform: translateY(-3px);
}
.njt-official-site-banner__feature svg {
  color: var(--gold);
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.njt-official-site-banner__feature span {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 500;
  color: var(--text-white-80);
  line-height: 1.4;
}

/* URL below CTA */
.njt-official-site-banner__url {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 700;
  color: var(--text-white-30, rgba(255,255,255,0.3));
  letter-spacing: 1px;
  margin-top: 16px;
}

/* (pruned: .njt-official-site-banner__card — unused after §1.6 instantiation) */

/* (pruned: .btn-cta--outline-gold → promoted to css/layout.css by GOAL-V3 R1 integrator, punch 5) */

/* (pruned: compact-coach + rider-mini (section 9) — unused after §1.6 instantiation) */

/* "See all riders" link */
.njt-section__more-link {
  display: flex;
  justify-content: center;
  margin-top: 24px;
}
.njt-section__more-link a {
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 600;
  color: var(--gold);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 20px;
  border-radius: var(--radius-pill);
  border: 1px solid rgba(255,215,0,0.2);
  background: rgba(255,215,0,0.05);
  transition: all 0.3s ease;
}
.njt-section__more-link a:hover {
  border-color: rgba(255,215,0,0.5);
  background: rgba(255,215,0,0.1);
  gap: 10px;
}

/* ═══════════════════════════════════════
   10. LATEST HIGHLIGHT (replaces full table)
═══════════════════════════════════════ */
.njt-latest-highlight {
  max-width: 800px;
  margin: 48px auto 0;
  text-align: center;
}
.njt-latest-highlight__podium {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 40px 32px;
  background: linear-gradient(135deg, rgba(255,215,0,0.08) 0%, rgba(212,0,121,0.08) 100%);
  border: 1px solid rgba(255,215,0,0.2);
  border-radius: var(--radius-lg);
  position: relative;
  overflow: hidden;
}
.njt-latest-highlight__podium::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--btn-primary-bg);
}
.njt-latest-highlight__trophy {
  line-height: 1;
}
/* Lucide award mark — NOT an emoji (HOUSE-RULES §6) */
.njt-latest-highlight__trophy svg {
  width: 56px;
  height: 56px;
  color: var(--gold);
}
.njt-latest-highlight__rider {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 24px;
  color: var(--gold);
}
.njt-latest-highlight__event {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--text-white-60);
  line-height: 1.6;
}
.njt-latest-highlight__position {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 48px;
  font-weight: 900;
  font-style: italic;
  color: var(--gold);
  text-shadow: 0 2px 12px rgba(255,215,0,0.4);
  line-height: 1;
}
.njt-latest-highlight__more {
  margin-top: 24px;
}

/* ═══════════════════════════════════════
   11. HERO ENHANCED — Cinematic Background
═══════════════════════════════════════ */
/* Plum base behind the carousel — no magenta wash, so the active photo
   (now .92 opacity) reads as itself, not as a tinted texture (§1.1) */
.njt-hero--racing-team .njt-hero__bg {
  background: linear-gradient(160deg, #1a0010 0%, #0a0005 45%, #12000a 100%);
  animation: none;
  inset: 0;
}
/* The second racing stripe that used to live here is gone. Its comment claimed
   "across hero bottom", but `bottom: 14%` floated it ~134px up the photo, so it ran
   parallel to `.njt-hero__accent-stripe` (bottom: 0) — two gold→magenta rules on one
   hero. The stripe at the edge is the one that closes the section, so it stays. */

/* ═══════════════════════════════════════
   12. CHAMPION CARD — Gold Glow Enhancement
═══════════════════════════════════════ */
.njt-rider-card--featured {
  position: relative;
  animation: championGlow 3s ease-in-out infinite alternate;
}
@keyframes championGlow {
  0% { box-shadow: 0 0 30px rgba(255,215,0,0.06), 0 0 60px rgba(255,215,0,0.03); }
  100% { box-shadow: 0 0 40px rgba(255,215,0,0.12), 0 0 80px rgba(255,215,0,0.06); }
}
/* Gold accent line top */
.njt-rider-card--featured::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--btn-primary-bg);
  z-index: 2;
}
/* Subtle radial glow behind champion */
.njt-rider-card--featured::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(255,215,0,0.06) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

/* (pruned: rider-mini micro (section 13) — unused after §1.6 instantiation) */

/* (pruned: section 14 pathway-line animation — pathway migrated to .njt-journey) */

/* (pruned: floating-banner (section 15) — unused after §1.6 instantiation) */

/* ═══════════════════════════════════════
   16. SOCIAL LINKS WITH ICONS
═══════════════════════════════════════ */
.njt-social-link {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
}
.njt-social-link svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  transition: transform 0.3s ease;
}
.njt-social-link:hover svg {
  transform: scale(1.15);
}

/* ═══════════════════════════════════════
   RESPONSIVE — Racing Team
═══════════════════════════════════════ */
@media (max-width: 1023px) {
  /* Tablet gutter matches the header's 32px (D6d fix: was 24px → 8px drift) */
  .njt-section .container.container--wide {
    padding-left: 32px;
    padding-right: 32px;
  }
  .njt-official-site-banner .container.container--wide {
    padding-left: 32px;
    padding-right: 32px;
  }
  .njt-cta-banner .container.container--wide {
    padding-left: 32px;
    padding-right: 32px;
  }

  /* Hero — tablet */
  .njt-hero--racing-team {
    min-height: 80vh;
  }
  .njt-hero--racing-team .njt-hero__content {
    padding-top: calc(var(--header-h) + 28px);
    padding-bottom: 52px;
  }
  .njt-hero__glow--gold { width: 400px; height: 400px; }
  .njt-hero__glow--magenta { width: 320px; height: 320px; }
  .njt-hero__checkered { width: 280px; height: 280px; }
  .njt-hero__speed-lines { display: none; }
  .njt-hero__stats {
    gap: 16px;
    flex-wrap: wrap;
  }
  .njt-hero__stat {
    padding: 16px 20px;
  }
  .njt-hero__stat-number {
    font-size: 32px;
  }

  /* Rider grid */
  .njt-riders-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .njt-rider-card--featured {
    grid-column: 1 / -1;
  }

  /* Compact riders */
  .njt-riders-compact {
    grid-template-columns: repeat(2, 1fr);
  }

  /* (pruned: pathway tablet grid — migrated to .njt-journey canonical) */

  /* Two column */
  .njt-two-column {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  /* Official site banner — tablet */
  .njt-official-site-banner {
    padding: 56px 0;
  }
  .njt-official-site-banner__features {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  /* Mobile container padding — match header (16px) */
  .njt-section .container.container--wide {
    padding-left: 16px;
    padding-right: 16px;
  }
  .njt-official-site-banner .container.container--wide {
    padding-left: 16px;
    padding-right: 16px;
  }
  .njt-cta-banner .container.container--wide {
    padding-left: 16px;
    padding-right: 16px;
  }
  .njt-hero__content {
    padding-left: 16px;
    padding-right: 16px;
  }

  /* Hero — mobile */
  .njt-hero--racing-team {
    min-height: auto;
  }
  .njt-hero--racing-team .njt-hero__content {
    padding-top: calc(var(--header-h) + 20px);
    padding-bottom: 48px;
  }
  .njt-hero__glow,
  .njt-hero__checkered,
  .njt-hero__speed-lines { display: none; }
  .njt-hero__slide--active { opacity: 0.25; }
  .njt-hero__accent-stripe { height: 3px; }
  .njt-hero--racing-team .njt-hero__scroll { bottom: 14px; }
  .njt-hero--racing-team .njt-hero__subtitle {
    font-size: 15px;
  }
  .njt-hero__team-logo {
    font-size: 11px;
    padding: 6px 16px;
  }
  .njt-hero__overline {
    font-size: 13px;
    letter-spacing: 4px;
  }
  .njt-hero__stats {
    flex-direction: column;
    gap: 12px;
  }
  .njt-hero__stat {
    padding: 12px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .njt-hero__stat-number {
    font-size: 28px;
  }
  .njt-hero__actions {
    flex-direction: column;
    align-items: center;
  }

  /* Competitions — mobile */
  .njt-competitions {
    margin-top: 40px;
    padding-top: 32px;
  }
  .njt-competitions__logos {
    gap: 12px;
  }
  .njt-competitions__logo-item {
    min-width: calc(50% - 8px);
    padding: 14px 10px;
  }
  .njt-competitions__logo-img {
    height: 48px;
    width: 100%;
    max-width: 120px;
  }
  .njt-competitions__logo-category {
    font-size: 8px;
    padding: 2px 8px;
  }

  /* Rider grid → single col */
  .njt-riders-grid {
    grid-template-columns: 1fr;
  }
  .njt-rider-card--featured {
    grid-template-columns: 1fr;
  }
  .njt-rider-card--featured .njt-rider-card__name,
  .njt-rider-card--featured .njt-rider-card__number,
  .njt-rider-card--featured .njt-rider-card__class,
  .njt-rider-card--featured .njt-rider-card__achievement {
    padding: 0 24px;
    text-align: center;
  }
  .njt-rider-card--featured .njt-rider-card__name {
    padding-top: 20px;
    font-size: 22px;
  }
  .njt-rider-card--featured .njt-rider-card__achievement {
    padding-bottom: 24px;
  }

  /* Compact riders → 2 cols */
  .njt-riders-compact {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .njt-rider-mini__number {
    font-size: 24px;
  }

  /* Latest highlight */
  .njt-latest-highlight__podium {
    padding: 28px 20px;
  }
  .njt-latest-highlight__rider {
    font-size: 20px;
  }
  .njt-latest-highlight__position {
    font-size: 40px;
  }

  /* Credentials — compact on mobile */
  .njt-team-story__credential {
    padding: 8px 12px;
    font-size: 13px;
    gap: 10px;
  }
  .njt-team-story__credential-icon {
    width: 32px;
    height: 32px;
  }
  .njt-team-story__credential-icon svg {
    width: 16px;
    height: 16px;
  }

  /* Banner — mobile */
  .njt-official-site-banner {
    padding: 40px 0;
  }
  .njt-official-site-banner {
    padding: 48px 0;
  }
  .njt-official-site-banner__heading {
    font-size: 24px;
  }
  .njt-official-site-banner__subtitle {
    font-size: 14px;
    margin-bottom: 28px;
  }
  .njt-official-site-banner__features {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-bottom: 28px;
  }
  .njt-official-site-banner__feature {
    padding: 16px 10px;
    gap: 8px;
  }
  .njt-official-site-banner__feature span {
    font-size: 11px;
  }
  .njt-official-site-banner__cta {
    padding: 12px 28px;
    font-size: 14px;
  }
  .njt-official-site-banner__bg-img {
    opacity: 0.12;
  }

  /* Results table */
  .njt-race-results__table th,
  .njt-race-results__table td {
    padding: 10px 12px;
    font-size: 13px;
  }

  /* (pruned: pathway mobile grid — migrated to .njt-journey canonical, which
     carries its own ≤576px single-column rules in components.css) */

  /* CTA banner */
  .njt-cta-banner {
    padding-top: 64px;
    padding-bottom: 64px;
    min-height: 360px;
  }
  .njt-cta-banner__actions {
    flex-direction: column;
    align-items: center;
  }
  .njt-social-links {
    flex-wrap: wrap;
  }
}

/* ═══════════════════════════════════════
   PATHWAY TIMELINE — opaque step discs
   The connector runs edge-to-edge behind the row and the shared
   .njt-journey__icon is rgba(0,0,0,0.5), so the line read straight through every
   circle. racing-team.css is loaded only by this page, so this scopes cleanly.
═══════════════════════════════════════ */
.njt-journey__icon {
  background: #14060F;
}
