/* =====================================================================
   THE RACE SCOOP: STREAMLINED REVAMP (Oct 29 2026 draft)
   Loaded LAST on every page so it wins over styles.css.
   Look: the Race Scoop social style. Black, yellow, blue, pink.
   Bold condensed type (Anton), brush words (Permanent Marker).
   No AI character art. Front-end only: no form, backend or script changes.
   ===================================================================== */

:root{
  --rs-black:#000000;
  --rs-ink:#0B0B0B;
  --rs-yellow:#FFDD00;
  --rs-blue:#1A82FF;
  --rs-pink:#FF2EA6;
  --rs-pink-deep:#C2006F;
  --rs-white:#FFFFFF;
  --rs-gray:#4A4A4A;

  /* Remap the existing site tokens so every older section follows along. */
  --navy:#000000;
  --navy-deep:#000000;
  --pink:#FF2EA6;
  --pink-deep:#C2006F;
  --yellow:#FFDD00;
  --yellow-deep:#C9A800;
  --cream:#F4F4F4;
  --ink:#0B0B0B;
  --gray:#4A4A4A;
  --radius:0px;
  --font-head:'Anton','Oswald','Arial Narrow',sans-serif;
  --font-script:'Permanent Marker',cursive;
}

body{ background:#fff; color:var(--rs-ink); }

/* ---------- Type ---------- */
h1,h2,h3,h4{
  font-family:'Anton','Oswald','Arial Narrow',sans-serif !important;
  font-weight:400 !important;
  letter-spacing:.01em;
  line-height:.98;
}
h1{ font-size:clamp(44px,7vw,92px); }
h2{ font-size:clamp(36px,5vw,64px); }
.eyebrow{ font-family:'Anton',sans-serif; font-weight:400; letter-spacing:.12em; font-size:14px; color:var(--rs-pink-deep); }
.rs-script{ font-family:'Permanent Marker',cursive; text-transform:none; letter-spacing:0; }
.rs-brush{ display:block; height:18px; width:min(440px,90%); margin:10px 0 0; background:none; }
.rs-brush svg{ display:block; width:100%; height:100%; }

/* ---------- Buttons: square, bold, no pills ---------- */
.btn{
  border-radius:0 !important;
  font-family:'Anton',sans-serif !important; font-weight:400 !important;
  letter-spacing:.05em; font-size:17px; padding:14px 26px;
  box-shadow:none !important;
}
.btn:hover{ transform:translateY(-2px); }
.btn-pink{ background:var(--rs-pink); color:#000; }
.btn-yellow{ background:var(--rs-yellow); color:#000; }
.btn-ghost,.btn-outline{ background:transparent; border:3px solid currentColor; }
.btn-blue{ background:var(--rs-blue); color:#000; }
.btn-black{ background:#000; color:#fff; }

/* ---------- Sections ---------- */
.section-navy,.page-hero{ background:#000 !important; color:#fff; }
.section-navy .lede,.page-hero .lede{ color:#E6E6E6 !important; }
.section-pink{ background:var(--rs-pink) !important; color:#000 !important; }
.section-pink h2,.section-pink h3,.section-pink .lede,.section-pink p{ color:#000 !important; }
.section-pink .eyebrow{ color:#000 !important; }
.section-cream{ background:#F4F4F4 !important; }
.page-hero{ padding:56px 0 48px; border-bottom:8px solid var(--rs-yellow); }
.page-hero h1{ color:#fff !important; }
.page-hero h1[style]{ color:#fff !important; }
.page-hero .eyebrow{ color:var(--rs-yellow) !important; }
.page-hero .crumb,.page-hero .crumb a{ color:#BDBDBD !important; }
.ombre-divider{ height:10px !important; background:linear-gradient(90deg,var(--rs-yellow) 0 33%,var(--rs-blue) 33% 66%,var(--rs-pink) 66% 100%) !important; }
.stripe-bar{ display:none !important; }

/* ---------- Cards: flat, bold borders ---------- */
.card{ border-radius:0 !important; border:3px solid #000 !important; box-shadow:none !important; }
.card-tag,.badge{ border-radius:0 !important; background:var(--rs-yellow) !important; color:#000 !important; font-family:'Anton',sans-serif !important; font-weight:400 !important; }
.card-body h3{ font-size:26px; }

/* ---------- AI character art: removed sitewide ---------- */
.guide-hero-art,.page-hero-icon,.ryg-page-art,.gear-thumb,.hero-img-wrap,
.ryg-cta,.shop-entrance-icon,.trainer-hero-art-wrap,
img[src*="assets/scene/"]:not(.rs-keep){ display:none !important; }
/* Card art becomes a colour band so the card's own label still shows. */
.card-media[style*="assets/scene"]{
  background-image:none !important; height:auto !important; min-height:72px;
  background-color:var(--rs-yellow) !important;
}
.grid > a:nth-child(3n+2) .card-media[style*="assets/scene"],
.grid > div:nth-child(3n+2) .card-media[style*="assets/scene"]{ background-color:var(--rs-blue) !important; }
.grid > a:nth-child(3n+3) .card-media[style*="assets/scene"],
.grid > div:nth-child(3n+3) .card-media[style*="assets/scene"]{ background-color:var(--rs-pink) !important; }

/* =====================================================================
   HEADER: logo, 4-item nav, Shop, Give the Scoop
   Keeps the class hooks js/main.js uses (.site-header .header-top
   .nav-toggle .main-nav#siteMenu .nav-item .nav-menu) so the mobile
   drawer and dropdowns keep working.
   ===================================================================== */
.rs-header.site-header{ background:#000 !important; border-bottom:6px solid var(--rs-yellow) !important; }
.rs-header .header-top{ max-width:1240px; padding:12px 20px; gap:12px 24px; flex-wrap:nowrap; }
.rs-header .logo{ order:1 !important; margin-left:0 !important; display:flex; align-items:center; gap:10px; color:#fff; text-decoration:none; margin-right:auto; }
.rs-header .logo img{ height:38px !important; width:auto; border-radius:0 !important; }
.rs-header .rs-wordmark{ font-family:'Anton',sans-serif; font-size:24px; letter-spacing:.02em; color:#fff; line-height:1; white-space:nowrap; }
.rs-header .nav-toggle{ order:0; border-radius:0 !important; border:2px solid #fff !important; color:#fff; background:transparent; font-family:'Anton',sans-serif; letter-spacing:.06em; }
.rs-actions{ order:3; display:flex; align-items:center; gap:10px; flex-shrink:0; }
.rs-shop{ display:flex; align-items:center; gap:6px; color:#fff !important; font-family:'Anton',sans-serif; font-size:17px; letter-spacing:.05em; padding:10px 8px; text-decoration:none !important; }
.rs-shop:hover{ color:var(--rs-yellow) !important; }
.rs-give{ background:var(--rs-pink); color:#000 !important; font-family:'Anton',sans-serif; font-size:17px; letter-spacing:.05em; padding:11px 18px; text-decoration:none !important; white-space:nowrap; }
.rs-give:hover{ background:var(--rs-yellow); }

.rs-header .main-nav > .nav-item > .nav-item-label{ font-family:'Anton',sans-serif !important; font-weight:400 !important; font-size:19px !important; letter-spacing:.05em; color:#fff !important; }
.rs-header .main-nav > .nav-item > .nav-item-label:hover{ color:var(--rs-yellow) !important; }
.rs-header .nav-menu{ border-radius:0 !important; border:3px solid #000; }
.rs-header .nav-menu a{ font-family:'Anton',sans-serif !important; font-weight:400 !important; font-size:16px !important; letter-spacing:.04em; color:#000 !important; border-radius:0 !important; }
.rs-header .nav-menu a:hover{ background:var(--rs-yellow) !important; color:#000 !important; }
.rs-header .nav-menu .rs-menu-label{ display:block; padding:8px 12px 2px; font-family:'Archivo','Work Sans',sans-serif; font-size:11px; font-weight:800; letter-spacing:.12em; color:#6B6B6B; text-transform:uppercase; }

@media (min-width: 960px){
  .rs-header .nav-toggle{ display:none !important; }
  .rs-header .main-nav{
    display:flex !important; position:static !important; flex-direction:row !important; flex-wrap:nowrap !important;
    background:transparent !important; box-shadow:none !important; padding:0 !important; max-height:none !important; overflow:visible !important;
    gap:4px; width:auto !important;
  }
  .rs-header .main-nav > .nav-item{ width:auto !important; display:block !important; position:relative; }
  .rs-header .main-nav > .nav-item > .nav-item-label{ padding:10px 12px !important; display:block; }
  .rs-header .main-nav > .nav-item > .nav-menu{ position:absolute !important; top:100% !important; left:0; min-width:260px; background:#fff !important; box-shadow:0 18px 36px rgba(0,0,0,.35) !important; max-width:none !important; margin:0 !important; }
  .rs-header .main-nav .site-search{ order:9; margin-left:6px; width:auto !important; margin-bottom:0 !important; }
  .rs-header .main-nav .site-search-toggle{ width:auto !important; }
  .rs-header .main-nav .site-search-toggle-label{ display:none; }
  .rs-header .main-nav .site-search-panel{ position:absolute !important; right:0; left:auto; width:420px !important; }
  .rs-header .main-nav > .nav-item.rs-mobile-only{ display:none !important; }
  .rs-header .main-nav{ order:2; margin-left:auto; }
}
@media (max-width: 959px){
  .rs-header .header-top{ flex-wrap:wrap; }
  .rs-header .main-nav.open{ background:#000 !important; }
  .rs-header .main-nav .nav-menu{ background:#111 !important; border:0; }
  .rs-header .main-nav .nav-menu a{ color:#fff !important; }
  .rs-header .main-nav .nav-menu a:hover{ color:#000 !important; }
  .rs-header .nav-menu .rs-menu-label{ color:#9A9A9A; }
}
@media (max-width: 560px){
  .rs-header .rs-wordmark{ font-size:18px; }
  .rs-header .logo img{ height:30px !important; }
  .rs-shop span{ display:none; }
  .rs-give{ font-size:15px; padding:9px 12px; }
}

/* =====================================================================
   FOOTER
   ===================================================================== */
.rs-footer.site-footer{ background:#000 !important; color:#fff; padding:0 !important; border-top:0 !important; }
.rs-footer .rs-footer-cta{ background:var(--rs-pink); color:#000; }
.rs-footer .rs-footer-cta .wrap{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:20px; padding-top:44px; padding-bottom:44px; }
.rs-footer .rs-footer-cta p{ margin:0; font-family:'Anton',sans-serif; font-size:clamp(34px,5vw,56px); line-height:.95; text-transform:uppercase; }
.rs-footer .rs-footer-main .wrap{ padding-top:44px; padding-bottom:24px; display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:28px; }
.rs-footer h4{ font-family:'Anton',sans-serif !important; color:var(--rs-yellow); font-size:18px; letter-spacing:.06em; margin:0 0 10px; }
.rs-footer ul{ list-style:none; margin:0; padding:0; }
.rs-footer li{ margin:0 0 8px; }
.rs-footer li a,.rs-footer .footer-legal a{ color:#E6E6E6 !important; text-decoration:none !important; font-weight:600; }
.rs-footer li a:hover,.rs-footer .footer-legal a:hover{ color:var(--rs-yellow) !important; }
.rs-footer .rs-sign{ font-family:'Anton',sans-serif; font-size:30px; line-height:1; text-transform:uppercase; margin:14px 0 0; }
.rs-footer .rs-sign .rs-script{ color:var(--rs-yellow); }
.rs-footer .footer-legal{ border-top:1px solid #2A2A2A; }
.rs-footer .footer-legal .wrap{ display:flex; flex-wrap:wrap; gap:8px 18px; padding-top:18px; padding-bottom:18px; font-size:13px; }
.rs-footer .footer-legal .rs-copy{ color:#9A9A9A; margin-left:auto; }
.rs-footer .social-row a{ border-color:#444; color:#fff; }

/* =====================================================================
   NEW SHARED BLOCKS
   ===================================================================== */
.rs-hero{ background:#000; color:#fff; }
.rs-hero .wrap{ display:flex; flex-wrap:wrap; align-items:center; gap:24px 40px; padding-top:56px; padding-bottom:64px; }
.rs-hero-letter{ flex:0 1 260px; font-family:'Anton',sans-serif; font-size:clamp(180px,26vw,380px); line-height:.8; color:var(--rs-pink); user-select:none; }
.rs-hero-copy{ flex:1 1 520px; min-width:0; }
.rs-hero h1{ color:#fff; margin:0; font-size:clamp(56px,8.4vw,116px); line-height:.9; }
.rs-hero h1 .rs-script{ color:var(--rs-yellow); font-size:.86em; }
.rs-hero .rs-sub{ font-size:21px; line-height:1.45; color:#E6E6E6; max-width:580px; margin:26px 0 0; }
.rs-hero-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }

.rs-band{ padding:64px 0; }
.rs-band-yellow{ background:var(--rs-yellow); color:#000; }
.rs-band-blue{ background:var(--rs-blue); color:#000; }
.rs-band-black{ background:#000; color:#fff; }
.rs-band-white{ background:#fff; color:#000; }
.rs-band h2{ margin:0 0 8px; }
.rs-band-blue h2{ color:#fff; }
.rs-band-blue h2 .rs-y{ color:var(--rs-yellow); }
.rs-band-black h2{ color:#fff; }
.rs-band .rs-lede{ font-size:18px; line-height:1.5; max-width:640px; margin:10px 0 0; font-weight:500; }
.rs-band-black .rs-lede{ color:#E6E6E6; }

.rs-tiles{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin-top:28px; }
.rs-tile{ display:flex; flex-direction:column; justify-content:space-between; min-height:200px; padding:22px; text-decoration:none !important; color:#000 !important; transition:transform .15s ease; }
.rs-tile:hover{ transform:translateY(-3px); }
.rs-tile .rs-tile-letter{ font-family:'Anton',sans-serif; font-size:96px; line-height:.8; }
.rs-tile .rs-tile-name{ font-family:'Anton',sans-serif; font-size:30px; line-height:1; text-transform:uppercase; }
.rs-tile .rs-tile-sub{ font-size:15px; font-weight:600; margin-top:6px; }
.rs-t-yellow{ background:var(--rs-yellow); }
.rs-t-blue{ background:var(--rs-blue); }
.rs-t-pink{ background:var(--rs-pink); }
.rs-t-white{ background:#fff; }
.rs-t-black{ background:#000; color:#fff !important; }

.rs-scoopbar{ background:var(--rs-yellow); color:#000; border-bottom:4px solid #000; }
.rs-scoopbar .wrap{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px 24px; padding-top:22px; padding-bottom:22px; }
.rs-scoopbar p{ margin:0; font-family:'Anton',sans-serif; font-size:clamp(24px,3vw,34px); line-height:1; text-transform:uppercase; }
.rs-scoopbar p .rs-script{ font-size:.9em; }
.rs-scoopbar .rs-scoopbar-actions{ display:flex; flex-wrap:wrap; gap:10px; }

.rs-quicklinks{ background:#000; }
.rs-quicklinks .wrap{ display:flex; flex-wrap:wrap; gap:10px; padding-top:18px; padding-bottom:18px; }
.rs-quicklinks a{ background:#fff; color:#000 !important; font-family:'Anton',sans-serif; font-size:17px; letter-spacing:.04em; padding:10px 16px; text-decoration:none !important; text-transform:uppercase; }
.rs-quicklinks a:hover{ background:var(--rs-yellow); }
.rs-quicklinks a.rs-ql-pink{ background:var(--rs-pink); }

/* Give the Scoop chooser */
.rs-choose{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; margin-top:28px; }
.rs-choose a{ display:flex; flex-direction:column; gap:8px; padding:24px; min-height:150px; text-decoration:none !important; color:#000 !important; border:3px solid #000; background:#fff; transition:transform .15s ease, background .15s ease; }
.rs-choose a:hover{ transform:translateY(-3px); background:var(--rs-yellow); }
.rs-choose a strong{ font-family:'Anton',sans-serif; font-weight:400; font-size:30px; line-height:1; text-transform:uppercase; }
.rs-choose a span{ font-size:16px; line-height:1.45; font-weight:500; }
.rs-choose a em{ font-style:normal; font-family:'Anton',sans-serif; font-size:15px; letter-spacing:.06em; color:var(--rs-pink-deep); margin-top:auto; }
.rs-choose a.rs-c-main{ background:var(--rs-pink); }
.rs-choose a.rs-c-main em{ color:#000; }

/* Homepage review cards rendered by js/home-recent-reviews.js */
.home-review-strip{ background:var(--rs-yellow) !important; }
.home-review-strip .card{ background:#000 !important; color:#fff !important; }
.home-review-strip .card *{ color:#fff; }
.home-review-strip .card .card-tag{ color:#000 !important; }

/* Signup box */
.signup-box{ background:#000 !important; border-radius:0 !important; }
.signup-box h2{ color:#fff !important; }
.signup-form input[type=email]{ border-radius:0 !important; }

/* Links inside copy */
p a,.lede a,li a{ color:var(--rs-pink-deep); }
.section-navy p a,.page-hero p a,.rs-band-black p a{ color:var(--rs-yellow); }

/* Phone header: one row. Menu, R, Give the Scoop. Shop lives in the drawer. */
@media (max-width: 959px){
  .rs-header .header-top{ flex-wrap:nowrap !important; gap:10px; padding:10px 14px; }
  .rs-header .logo{ margin-right:auto; }
}
@media (max-width: 560px){
  .rs-header .nav-toggle-label{ display:none; }
  .rs-header .nav-toggle{ padding:8px 12px !important; }
  .rs-shop{ display:none !important; }
  .rs-header .rs-wordmark{ font-size:17px; }
  .rs-hero-letter{ display:none; }
  .rs-hero .wrap{ padding-top:36px; padding-bottom:44px; }
  .rs-tile{ min-height:150px; }
  .rs-tile .rs-tile-letter{ font-size:64px; }
}

/* White cards sitting on black sections keep dark headings. */
.section-navy .card h3,.section-navy .card h4,.page-hero .card h3{ color:#000 !important; }
.rs-scoopbar .wrap{ padding-top:20px !important; padding-bottom:20px !important; }
.section-pink a{ color:#000 !important; text-decoration:underline; }
.page-hero [style*="14176B"]{ color:#fff !important; }
.partner-tile-2{ color:#000 !important; }
.section-white .signoff[style*="yellow"]{ color:var(--rs-pink-deep) !important; }
.rs-band-blue h2 .rs-y{ color:#000 !important; }
@media (min-width: 960px) and (hover: hover){
  .rs-header .main-nav > .nav-item:hover > .nav-menu{ display:block !important; }
}

/* Oct 29: bigger S, less empty space in the homepage hero. */
.rs-hero .wrap{ flex-wrap:nowrap; align-items:center; gap:0 36px; padding-top:28px; padding-bottom:40px; }
.rs-hero-letter{ flex:0 0 auto; font-size:clamp(300px,40vw,600px); line-height:.76; margin-left:-6px; }
.rs-hero h1{ font-size:clamp(60px,8.6vw,124px); }
.rs-tile{ min-height:180px; padding:18px 22px; }
.rs-tile .rs-tile-letter{ font-size:150px; line-height:.76; margin-left:-4px; }
@media (max-width: 760px){
  .rs-hero .wrap{ flex-wrap:wrap; gap:8px; padding-top:20px; }
  .rs-hero-letter{ display:block !important; font-size:250px; line-height:.76; }
  .rs-tile .rs-tile-letter{ font-size:110px; }
}
.rs-hero h1{ font-size:clamp(60px,10.5vw,152px); }
.rs-hero .rs-sub{ max-width:640px; }
.rs-tile .rs-tile-letter{ line-height:.9; margin-bottom:8px; }
@media (max-width: 760px){
  .rs-hero .wrap{ flex-wrap:nowrap; align-items:flex-start; gap:12px; padding-top:22px; }
  .rs-hero-letter{ font-size:230px; line-height:.74; }
  .rs-hero h1{ font-size:48px; margin-top:4px; }
  .rs-hero .rs-sub{ font-size:17px; margin-top:18px; }
  .rs-hero-actions .btn{ font-size:15px; padding:12px 16px; }
}
@media (min-width: 761px){
  .rs-hero-letter{ font-size:clamp(300px,50vw,720px); }
  .rs-hero h1{ font-size:clamp(60px,12vw,176px); }
  .rs-hero .rs-sub{ font-size:22px; }
}

/* =====================================================================
   Oct 29 round 3
   ===================================================================== */
/* Page heroes: giant initial letter like the social posts. */
.page-hero .wrap.rs-ph{ display:flex; align-items:center; gap:0 32px; }
.rs-ph-letter{ flex:0 0 auto; font-family:'Anton',sans-serif; font-size:clamp(150px,19vw,280px); line-height:.76; user-select:none; }
.rs-ph-copy{ flex:1 1 auto; min-width:0; }
.rs-ph-copy .rs-brush{ margin:6px 0 14px; }
@media (max-width: 640px){
  .page-hero .wrap.rs-ph{ align-items:flex-start; gap:0 14px; }
  .rs-ph-letter{ font-size:120px; }
  .page-hero h1{ font-size:40px; }
}

/* Medals: big and loud on every review. */
.rv-emoji{ display:inline-block; font-size:2.1em; line-height:1; vertical-align:middle; margin-right:4px; }
.rv-score{ font-family:'Anton',sans-serif !important; font-weight:400 !important; font-size:30px !important; color:#000 !important; line-height:1.1; }
.rv-score .rv-emoji{ font-size:56px; }
.rv-rating-a{ font-family:'Anton',sans-serif; font-size:22px; }
.rv-rating-a .rv-emoji{ font-size:38px; }
.rsp-tier{ font-family:'Anton',sans-serif !important; font-size:34px !important; color:#000 !important; }
.rsp-tier .rv-emoji{ font-size:72px; }
.rsp-score-num{ font-family:'Anton',sans-serif !important; font-size:64px !important; }
.rv-community-mini{ font-size:17px; }
.rv-community-mini .rv-emoji{ font-size:40px; }
.home-review-medal{ font-family:'Anton',sans-serif; font-size:24px; }
.home-review-medal .rv-emoji{ font-size:54px; }

/* Card colour bands rotate so no two neighbours match. */
.grid > *:nth-child(9n+1) .card-media[style*="assets/scene"],
.grid > *:nth-child(9n+5) .card-media[style*="assets/scene"],
.grid > *:nth-child(9n+9) .card-media[style*="assets/scene"]{ background-color:#FFDD00 !important; }
.grid > *:nth-child(9n+2) .card-media[style*="assets/scene"],
.grid > *:nth-child(9n+6) .card-media[style*="assets/scene"],
.grid > *:nth-child(9n+7) .card-media[style*="assets/scene"]{ background-color:#1A82FF !important; }
.grid > *:nth-child(9n+3) .card-media[style*="assets/scene"],
.grid > *:nth-child(9n+4) .card-media[style*="assets/scene"],
.grid > *:nth-child(9n+8) .card-media[style*="assets/scene"]{ background-color:#FF2EA6 !important; }

/* City label on trainer and club cards: black chip, readable on any colour. */
.card-city{ background:#000 !important; color:#fff !important; border-radius:0 !important; font-family:'Anton',sans-serif !important; font-weight:400 !important; font-size:15px !important; letter-spacing:.06em; padding:6px 10px !important; }

/* Shop sits in the nav at the same size as Races, Gear, Community, Tips. */
.rs-shop{ font-size:19px !important; padding:10px 12px !important; text-transform:uppercase; }
.rs-shop svg{ width:18px; height:18px; }

/* Packing checklist on Tips */
#packing #essentials-checklist{ border:3px solid #000 !important; }
#packing .pack-list-heading{ font-family:'Anton',sans-serif; font-weight:400; font-size:22px; }
.section-white .btn-ghost,.rs-band-white .btn-ghost{ color:#000 !important; }
.rv-score-row{ flex-wrap:wrap; }
.rv-score{ white-space:nowrap; font-size:26px !important; }
.home-review-medal{ display:flex !important; align-items:center; gap:8px; margin-bottom:12px; }

/* Oct 29 round 4: page-hero letters match the homepage S. */
.page-hero .wrap.rs-ph{ flex-wrap:nowrap; align-items:center; gap:0 36px; }
.rs-ph-letter{ font-size:clamp(300px,50vw,720px) !important; line-height:.76; margin-left:-6px; }
.page-hero h1{ font-size:clamp(48px,6.4vw,96px) !important; }
@media (max-width: 760px){
  .page-hero .wrap.rs-ph{ align-items:flex-start; gap:0 12px; }
  .rs-ph-letter{ font-size:230px !important; line-height:.74; }
  .page-hero h1{ font-size:40px !important; }
}

/* Rate Your Race: big medal buttons. */
.quick-rate .rating-row .medal-picker button{ font-size:48px !important; min-height:110px !important; gap:6px !important; border-radius:0 !important; border:3px solid #000 !important; background:#fff; }
.quick-rate .rating-row .medal-picker button .rating-label{ font:400 17px/1.1 'Anton',sans-serif !important; letter-spacing:.05em; text-transform:uppercase; color:#000; }
.quick-rate .rating-row .medal-picker button.selected{ background:var(--rs-yellow) !important; border-color:#000 !important; }
.medal-picker button{ font-size:30px; border-radius:0 !important; }
@media (max-width: 640px){
  .quick-rate .rating-row .medal-picker button{ font-size:38px !important; min-height:92px !important; }
  .quick-rate .rating-row .medal-picker button .rating-label{ font-size:14px !important; }
}
@media (max-width: 760px){
  .rs-ph-letter{ font-size:170px !important; }
  .page-hero h1{ font-size:36px !important; }
}
.quick-rate .rating-row .medal-picker button.selected{ background:#000 !important; border-color:#000 !important; }
.quick-rate .rating-row .medal-picker button.selected .rating-label{ color:#FFDD00 !important; }
@media (max-width: 640px){
  .quick-rate .rating-row .medal-picker{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:8px !important; }
  .quick-rate .rating-row .medal-picker button{ font-size:46px !important; min-height:104px !important; }
  .quick-rate .rating-row .medal-picker button .rating-label{ font-size:17px !important; }
}

/* =====================================================================
   Oct 29 morning: character pass. Logo DNA on the site:
   distressed giant letters, pink speed slashes, banner sign-off.
   ===================================================================== */
.rs-win{ color:#fff; }
.rs-brush-hero{ width:min(620px,95%) !important; height:22px !important; }

/* Distressed texture on the giant letters (display type only, never body text). */
.rs-hero-letter,.rs-ph-letter,.rs-tile-letter{
  -webkit-mask-image:url(../assets/brand/distress-mask.png?v=2); mask-image:url(../assets/brand/distress-mask.png?v=2);
  -webkit-mask-size:520px 520px; mask-size:520px 520px; -webkit-mask-repeat:repeat; mask-repeat:repeat;
}
/* Speed slashes from the R logo, in the letter's own colour. */
.rs-hero-letter,.rs-ph-letter{ position:relative; padding-left:.3em; }
.rs-hero-letter::before,.rs-ph-letter::before{
  content:""; position:absolute; left:0; top:24%; width:.46em; height:.46em;
  background:currentColor;
  -webkit-mask:url(../assets/brand/speed-slashes.svg) center/contain no-repeat; mask:url(../assets/brand/speed-slashes.svg) center/contain no-repeat;
}

/* About band: the stacked logo on its own light ground. */
.rs-about{ background:#F3F2F3; color:#000; border-top:6px solid #000; border-bottom:6px solid #000; }
.rs-about .wrap{ display:flex; flex-wrap:wrap; align-items:center; gap:24px 48px; padding-top:64px; padding-bottom:64px; }
.rs-about-copy{ flex:1 1 440px; min-width:0; }
.rs-about-copy h2{ font-size:clamp(44px,6vw,80px); margin:6px 0 16px; }
.rs-about-copy .rs-pink{ color:#C2006F; }
.rs-about-copy p{ font-size:18px; line-height:1.55; max-width:600px; margin:0 0 14px; color:#1A1A1A; }
.rs-about-copy .btn{ margin-top:8px; }
.rs-about-logo{ flex:0 1 460px; }
.rs-about-logo img{ width:100%; height:auto; }

/* Athlete Invitation band */
.rs-invite{ background:#000; color:#fff; }
.rs-invite .wrap{ display:flex; flex-wrap:wrap; align-items:center; gap:28px 56px; padding-top:64px; padding-bottom:64px; }
.rs-invite-cover{ flex:0 0 auto; border:0; padding:0; background:none; cursor:pointer; transform:rotate(-3deg); box-shadow:14px 14px 0 #FFDD00; transition:transform .15s ease; }
.rs-invite-cover:hover{ transform:rotate(0deg) scale(1.02); }
.rs-invite-cover img{ width:min(300px,70vw); height:auto; display:block; }
.rs-invite-copy{ flex:1 1 380px; min-width:0; }
.rs-invite-copy h2{ color:#fff; font-size:clamp(42px,5.5vw,76px); margin:6px 0 14px; }
.rs-invite-copy h2 .rs-script{ color:#FF2EA6; }
.rs-invite-copy .eyebrow{ color:#FFDD00; }
.rs-invite-copy p{ font-size:18px; color:#E6E6E6; margin:0 0 20px; }

/* Footer: the banner logo signs off every page. */
.rs-footer-banner{ background:#000; border-bottom:1px solid #222; }
.rs-footer-banner .wrap{ padding-top:40px; padding-bottom:28px; }
.rs-footer-banner img{ width:min(720px,100%); height:auto; display:block; }

/* Tips: clean yellow, blue, pink repeat. */
.grid > *:nth-child(3n+1) .card-media[style*="assets/scene"]{ background-color:#FFDD00 !important; }
.grid > *:nth-child(3n+2) .card-media[style*="assets/scene"]{ background-color:#1A82FF !important; }
.grid > *:nth-child(3n+3) .card-media[style*="assets/scene"]{ background-color:#FF2EA6 !important; }

/* Packing checklist restyle */
#packing #essentials-checklist summary h3{ font-size:clamp(30px,4vw,44px) !important; }
#packing .pack-list-heading{ display:inline-block; background:#000; color:#FFDD00; padding:7px 14px; font-size:20px !important; margin:0 0 12px; }
#packing .grid > div:nth-child(2) .pack-list-heading{ color:#fff; background:#1A82FF; }
#packing .pack-checklist li{ border-bottom:1px solid #E6E6E6; padding:9px 0; }
#packing .pack-checklist label{ display:flex; gap:12px; align-items:flex-start; font-size:16px; line-height:1.45; cursor:pointer; }
#packing .pack-checklist input[type=checkbox]{ width:24px; height:24px; flex:0 0 24px; accent-color:#FF2EA6; margin:0; }
#packing .pack-checklist input:checked + span{ text-decoration:line-through; color:#777; }
#packing .checklist-actions .btn{ border:3px solid #000 !important; color:#000 !important; background:#fff !important; }
@media (min-width: 761px){
  .rs-hero-letter{ font-size:clamp(300px,42vw,600px) !important; }
  .rs-hero h1{ font-size:clamp(60px,9.4vw,132px) !important; }
}
/* Finer distress, closer to the logo. */
.rs-hero-letter,.rs-ph-letter,.rs-tile-letter{ -webkit-mask-size:340px 340px; mask-size:340px 340px; }

/* Phones: letter + headline side by side, the rest full width underneath. */
@media (max-width: 760px){
  .rs-hero .wrap{ display:grid !important; grid-template-columns:auto 1fr; column-gap:12px; align-items:start; }
  .rs-hero-copy{ display:contents; }
  .rs-hero-letter{ grid-column:1; grid-row:1 / span 2; }
  .rs-hero h1{ grid-column:2; grid-row:1; align-self:center; }
  .rs-hero .rs-brush{ grid-column:2; grid-row:2; }
  .rs-hero .rs-sub,.rs-hero .rs-hero-actions{ grid-column:1 / -1; }
  .page-hero .wrap.rs-ph{ display:grid !important; grid-template-columns:auto 1fr; column-gap:12px; align-items:start; }
  .rs-ph-copy{ display:contents; }
  .rs-ph-letter{ grid-column:1; grid-row:1 / span 4; align-self:start; }
  .rs-ph-copy > .crumb,.rs-ph-copy > .eyebrow,.rs-ph-copy > h1,.rs-ph-copy > .rs-brush{ grid-column:2; }
  .rs-ph-copy > *:not(.crumb):not(.eyebrow):not(h1):not(.rs-brush){ grid-column:1 / -1; }
}

/* FINISHERS: front and centre. */
.rs-finishers{ background:#FFDD00; color:#000; border-top:6px solid #000; border-bottom:6px solid #000; }
.rs-finishers .wrap{ display:flex; flex-wrap:wrap; align-items:center; gap:16px 48px; padding-top:56px; padding-bottom:56px; }
.rs-fin-medal{ font-size:clamp(140px,18vw,240px); line-height:1; flex:0 0 auto; transform:rotate(-8deg); }
.rs-fin-copy{ flex:1 1 440px; min-width:0; }
.rs-fin-copy .eyebrow{ color:#000; }
.rs-fin-copy h2{ font-size:clamp(46px,6.5vw,92px); margin:4px 0 12px; }
.rs-fin-copy h2 .rs-script{ color:#C2006F; }
.rs-fin-copy p{ font-size:19px; line-height:1.5; max-width:620px; margin:0 0 20px; font-weight:500; }
.rs-fin-actions{ display:flex; flex-wrap:wrap; gap:12px; }
.rs-fin-actions .btn-ghost{ color:#000 !important; }
.rs-choose a.rs-c-fin{ background:#000; color:#fff !important; }
.rs-choose a.rs-c-fin em{ color:#FFDD00; }
.rs-choose a.rs-c-fin:hover{ background:#1A1A1A; }
.rs-header .rs-nav-fin > .nav-item-label{ color:#FFDD00 !important; }
@media (max-width: 760px){
  .rs-finishers .wrap{ padding-top:40px; padding-bottom:40px; }
  .rs-fin-medal{ font-size:110px; }
}
.rs-fin-medal{ display:flex; align-items:center; justify-content:center; background:#000; border-radius:50%; width:clamp(200px,24vw,300px); height:clamp(200px,24vw,300px); font-size:clamp(120px,15vw,190px); box-shadow:12px 12px 0 #FF2EA6; }
@media (max-width: 760px){ .rs-fin-medal{ width:150px; height:150px; font-size:96px; } }

/* Oct 29 fix: no slashes, no clipped tops, clean tile letters. */
.rs-hero-letter::before,.rs-ph-letter::before{ display:none !important; content:none !important; }
.rs-hero-letter,.rs-ph-letter{ padding-left:0 !important; line-height:1.08 !important; margin-top:-.1em; margin-bottom:-.12em;
  -webkit-mask-size:700px 700px; mask-size:700px 700px; }
.rs-tile-letter{ -webkit-mask-image:none !important; mask-image:none !important; line-height:1 !important; margin:-.06em 0 6px !important; }

/* Homepage v46: banner as the hero. */
.rs-visually-hidden{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.rs-banner-hero{ background:#000; color:#fff; }
.rs-banner-hero .wrap{ padding-top:36px; padding-bottom:56px; }
.rs-banner-img{ display:block; width:100%; max-width:1180px; height:auto; margin:0 0 8px -1%; }
.rs-banner-hero .rs-sub{ font-size:21px; line-height:1.45; color:#E6E6E6; max-width:640px; margin:6px 0 0; }
.rs-banner-hero .rs-hero-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
body#homepage .rs-footer-banner{ display:none; }
@media (max-width: 760px){
  .rs-banner-hero .wrap{ padding-top:20px; padding-bottom:40px; }
  .rs-banner-img{ width:118%; max-width:none; margin-left:-4%; }
  .rs-banner-hero .rs-sub{ font-size:17px; }
}

/* Slim signup inside the last homepage band. */
.rs-signup-slim{ margin-top:40px; padding-top:28px; border-top:3px solid #000; display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; }
.rs-signup-label{ margin:0; font-family:'Anton',sans-serif; font-size:26px; text-transform:uppercase; color:#000; }
.rs-signup-slim .signup-form{ display:flex; flex-wrap:wrap; gap:10px; flex:1 1 380px; margin:0; }
.rs-signup-slim .signup-form input[type=email]{ flex:1 1 220px; min-width:0; padding:14px; border:3px solid #000; border-radius:0; font-size:16px; }
.rs-signup-slim .signup-form .btn{ background:#000 !important; color:#fff !important; }
.rs-signup-slim .form-success{ flex-basis:100%; font-weight:700; color:#000; }
.rs-banner-hero{ overflow:hidden; }
@media (max-width: 760px){ .rs-banner-img{ width:100% !important; margin-left:0 !important; } }

/* =====================================================================
   v47: light logo hero, tighter homepage, Zetta, HydraPatch callouts
   ===================================================================== */
.rs-light-hero{ background:#fff; color:#000; border-bottom:6px solid #000; }
.rs-light-hero .wrap{ padding-top:28px; padding-bottom:36px; }
.rs-light-hero .rs-banner-img{ width:100%; max-width:1180px; height:auto; display:block; margin:0 auto 6px; }
.rs-light-row{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 32px; }
.rs-light-hero .rs-sub{ font-size:20px; line-height:1.45; color:#1A1A1A; max-width:620px; margin:0; }
.rs-light-hero .rs-hero-actions{ display:flex; flex-wrap:wrap; gap:12px; margin:0; }

/* Homepage is shorter: tighter bands. */
body#homepage .rs-band{ padding:44px 0; }
body#homepage .rs-tiles{ margin-top:22px; }
body#homepage .rs-tile{ min-height:150px; }
body#homepage .rs-invite .wrap,body#homepage .rs-finishers .wrap{ padding-top:44px; padding-bottom:44px; }
body#homepage .home-review-strip .wrap{ padding-top:44px; padding-bottom:44px; }
body#homepage .rs-newhere .rs-tile{ min-height:120px; }
body#homepage .rs-signup-slim{ margin-top:28px; padding-top:22px; }

/* FINISHERS on blue with a real finisher. */
.rs-fin-blue{ background:#1A82FF !important; color:#000; }
.rs-fin-blue .rs-fin-copy h2{ color:#fff; }
.rs-fin-blue .rs-fin-copy h2 .rs-script{ color:#FFDD00; }
.rs-fin-blue .rs-fin-copy p{ color:#000; }
.rs-fin-photo{ flex:0 0 auto; margin:0; transform:rotate(-3deg); background:#fff; padding:10px 10px 12px; box-shadow:12px 12px 0 #000; }
.rs-fin-photo img{ display:block; width:min(260px,62vw); height:auto; }
.rs-fin-photo figcaption{ font-family:'Anton',sans-serif; font-size:15px; letter-spacing:.04em; text-transform:uppercase; margin-top:8px; color:#000; }
.rs-fin-quote{ margin:0 0 14px; font-family:'Anton',sans-serif; font-size:clamp(24px,2.6vw,32px); line-height:1.1; color:#000; text-transform:uppercase; }
.rs-fin-quote cite{ display:block; font-family:'Archivo',sans-serif; font-style:normal; font-weight:700; font-size:14px; text-transform:none; margin-top:6px; }

/* New Here tiles + slim signup on white */
.rs-newhere .rs-signup-slim{ border-top-color:#000; }

/* Featured finisher card on the FINISHERS page */
.rs-featured-finisher{ display:flex; flex-wrap:wrap; gap:24px 36px; align-items:flex-start; background:#FFDD00; color:#000; border:4px solid #000; padding:28px; margin:8px 0 40px; }
.rs-ff-photos{ display:flex; gap:12px; flex:0 1 420px; }
.rs-ff-photos img{ width:50%; height:auto; display:block; border:3px solid #000; object-fit:cover; }
.rs-ff-copy{ flex:1 1 360px; min-width:0; }
.rs-ff-tag{ display:inline-block; background:#000; color:#FFDD00; font-family:'Anton',sans-serif; letter-spacing:.06em; padding:6px 12px; text-transform:uppercase; }
.rs-ff-copy h2{ font-size:clamp(40px,5vw,64px); margin:12px 0 4px; color:#000; }
.rs-ff-race{ font-weight:800; margin:0 0 14px; }
.rs-ff-copy blockquote{ margin:0 0 14px; font-family:'Anton',sans-serif; font-size:28px; line-height:1.1; text-transform:uppercase; color:#C2006F; }
.rs-ff-copy p{ font-size:17px; line-height:1.55; }
.rs-ff-sign{ font-family:'Anton',sans-serif; font-size:24px; text-transform:uppercase; }
.rs-ff-handle{ color:#000 !important; font-weight:800; }

/* Race Scoop x HydraPatch callouts */
.card-media.rs-hp{ background-color:#1A82FF !important; display:flex !important; align-items:center; justify-content:center; min-height:96px !important; padding:16px !important; }
.rs-hp-label{ font-family:'Anton',sans-serif; font-size:clamp(24px,2.6vw,34px); color:#fff; text-transform:uppercase; letter-spacing:.02em; text-align:center; line-height:1.05; }
.rs-hp-bar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 16px; background:#1A82FF; color:#fff !important; text-decoration:none !important; font-family:'Anton',sans-serif; font-size:clamp(24px,3vw,36px); text-transform:uppercase; padding:16px 20px; margin:0 0 16px; }
.rs-hp-bar span{ background:#000; color:#FFDD00; font-size:17px; letter-spacing:.06em; padding:6px 12px; }
.rs-hp-bar:hover{ background:#000; }

/* Distress: real worn-ink texture, tile size tuned. */
.rs-hero-letter,.rs-ph-letter{ -webkit-mask-image:url(../assets/brand/distress-mask.png?v=3) !important; mask-image:url(../assets/brand/distress-mask.png?v=3) !important; -webkit-mask-size:900px 900px !important; mask-size:900px 900px !important; }

@media (max-width: 760px){
  .rs-light-hero .wrap{ padding-top:18px; padding-bottom:28px; }
  .rs-light-hero .rs-sub{ font-size:17px; }
  .rs-featured-finisher{ padding:18px; }
  .rs-ff-photos{ flex-basis:100%; }
}
.rs-fin-blue .rs-fin-copy h2 .rs-script{ color:#000 !important; }

/* v47b: crisp logo from the print file + live-text Showing Up Is Winning. */
.rs-logo-row{ display:flex; align-items:center; justify-content:center; gap:20px 48px; margin:0 auto 18px; max-width:1180px; }
.rs-logo-crisp{ display:block; width:min(720px,62%); height:auto; }
.rs-suiw{ margin:0; font-family:'Anton',sans-serif; font-weight:400; text-transform:uppercase; font-size:clamp(46px,6.6vw,96px); line-height:.9; transform:skewX(-10deg); letter-spacing:.005em; }
.rs-suiw-pink{ color:#FC026E; }
.rs-suiw-blue{ color:#0125BA; }
.rs-suiw-brush{ display:block; width:100%; height:20px; margin-top:8px; }
.rs-suiw-brush svg{ display:block; width:100%; height:100%; }
@media (max-width: 760px){
  .rs-logo-row{ gap:10px 16px; }
  .rs-logo-crisp{ width:64%; }
  .rs-suiw{ font-size:clamp(28px,8vw,44px); }
  .rs-suiw-brush{ height:12px; }
}
.rs-light-hero{ padding:0 !important; }
@media (max-width: 760px){ .rs-suiw{ font-size:7.2vw !important; } .rs-logo-row{ gap:8px 12px; } }

/* Athlete Invitation: clickable areas on each page of the flip-through. */
.inv-stage{ position:relative; display:inline-block; line-height:0; }
.inv-hot{ position:absolute; inset:0; }
.inv-hot a{ position:absolute; display:block; border-radius:4px; transition:box-shadow .15s ease, background .15s ease; }
.inv-hot a:hover,.inv-hot a:focus-visible{ box-shadow:0 0 0 3px #FFDD00; background:rgba(255,221,0,.12); outline:none; }
.inv-pdf{ border:2px solid #fff; color:#fff !important; border-radius:999px; padding:10px 18px; font-weight:800; text-decoration:none !important; }

/* How we rate: dookie to gold (2026-10-29) */
.rs-scale h2{ font-family:'Anton','Oswald',sans-serif; text-transform:uppercase; font-size:clamp(2rem,5vw,3.4rem); line-height:1; margin:0 0 12px; color:#fff; }
.rs-scale h2 .rs-script{ color:#FFDD00 !important; display:inline-block; }
.rs-scale-lede{ max-width:720px; font-size:1.05rem; margin:0 0 24px; color:#fff; }
.rs-scale-list{ list-style:none; margin:0 0 26px; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.rs-scale-list li{ background:#fff; color:#000; border:3px solid #000; padding:18px 16px; display:flex; flex-direction:column; gap:6px; position:relative; }
.rs-scale-list .rs-s1{ border-top:10px solid #8B5A2B; }
.rs-scale-list .rs-s2{ border-top:10px solid #CD7F32; }
.rs-scale-list .rs-s3{ border-top:10px solid #A8A9AD; }
.rs-scale-list .rs-s4{ border-top:10px solid #FFDD00; }
.rs-scale-emoji{ font-size:3rem; line-height:1; }
.rs-scale-list strong{ font-family:'Anton','Oswald',sans-serif; text-transform:uppercase; font-size:1.6rem; letter-spacing:.02em; }
.rs-scale-list em{ position:absolute; top:12px; right:14px; font-style:normal; font-family:'Anton','Oswald',sans-serif; font-size:2rem; color:#FF2EA6; }
.rs-scale-list span:last-child{ font-size:.98rem; }
@media (max-width:760px){ .rs-scale-list{ grid-template-columns:repeat(2,minmax(0,1fr)); } .rs-scale-emoji{ font-size:2.4rem; } }
.rs-featured-finisher[hidden]{ display:none !important; }
@media (min-width:1100px){ .rs-footer-main .wrap{ grid-template-columns:repeat(5,minmax(0,1fr)) auto; gap:24px; } }
