#race-hub-nav { display: grid !important; grid-template-columns: 1fr auto auto; align-items: center; gap: 24px; max-width: 1200px; min-height: 64px; height: auto !important; margin: 0 auto; padding: 10px 24px !important; }
#race-hub-nav .race-hub-brand { font-size: 1.1rem; font-weight: 900; letter-spacing: -.02em; text-decoration: none; white-space: nowrap; }
#race-hub-nav .race-hub-brand span:first-child { color: #3d3229 !important; }
#race-hub-nav .race-hub-brand span:last-child { color: #c2410c !important; }
#race-hub-nav .race-hub-navlinks { display: flex; align-items: center; justify-content: center; gap: 24px; font-size: .9rem; font-weight: 600; }
#race-hub-nav .race-hub-navlinks a { display: inline-flex; align-items: center; min-height: 44px; }
#race-hub-nav [data-race-download] { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 18px; background: #c2410c; color: #fff !important; border-radius: 12px; font-size: .85rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
#race-filters { margin: 28px 0 24px; padding: 24px; background: #fffcf9; border: 1px solid #e4d8c9; border-radius: 16px; }
#race-filters h2 { margin: 0 0 6px; font-size: 1.35rem; }
.race-filter-intro { font-size: .95rem; color: #57534e; margin-bottom: 20px; }
.race-location-fields { display: grid; grid-template-columns: 1fr 1fr auto; gap: 12px; align-items: end; }
.race-location-fields label { display: block; font-size: .875rem; font-weight: 700; margin-bottom: 6px; }
.race-location-fields select { display: block; width: 100%; min-height: 46px; padding: 10px 32px 10px 12px; background: #fff; color: #3d3229; border: 1px solid #b4a595; border-radius: 8px; font: inherit; font-size: .95rem; }
.race-location-fields select:disabled { color: #6b625b; background: #f2ece4; }
.race-location-fields button, .race-reset { min-height: 46px; padding: 10px 18px; border: 1px solid #b4a595; border-radius: 8px; background: #fffcf9; color: #3d3229; font: inherit; font-size: .875rem; font-weight: 700; cursor: pointer; }
#race-nearby { background: #c2410c; color: #fff; border-color: #c2410c; }
#race-nearby[aria-pressed="true"] { background: #0b1220; border-color: #0b1220; }
#race-nearby:disabled { cursor: wait; }
#race-location-status { font-size: .8rem; line-height: 1.6; margin: 12px 0 0; color: #57534e; }
#race-filters .filters { margin: 20px 0 0; gap: 8px; }
#race-filters .filter-btn { min-height: 44px; padding: 8px 15px; }
.race-filter-bottom { display: flex; gap: 16px; align-items: center; justify-content: space-between; margin-top: 16px; border-top: 1px solid #e4d8c9; padding-top: 16px; }
#race-results-summary { margin: 0; font-size: .875rem; color: #3d3229; font-weight: 600; }
.race-reset { flex-shrink: 0; background: transparent; }
#race-empty { padding: 28px; border-left: 3px solid #c2410c; background: #fff5eb; margin: 24px 0; }
#race-empty p { margin-bottom: 12px; }
.race-distance { display: block; margin-top: 10px; color: #57534e; font-size: .8rem; font-weight: 600; }
#race-archive { margin: 32px 0; padding: 20px; border: 1px solid #e4d8c9; border-radius: 12px; }
#race-archive summary { min-height: 44px; padding: 10px 0; cursor: pointer; font-weight: 700; }
#race-archive .race-grid { margin-bottom: 0; }
#race-calendars-heading small, #race-near-heading small { display: block; font-size: .875rem; font-weight: 400; color: #57534e; margin-top: 8px; }
.race-app-availability { margin: 12px 0 0; font-size: .875rem; color: #57534e; }
.race-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
#hub-next-races a { text-decoration: none; color: #fff; }
#race-hub-nav a:focus-visible, #race-filters :focus-visible, .race-card:focus-visible, .race-reset:focus-visible, #race-archive summary:focus-visible, [data-race-download]:focus-visible { outline: 3px solid #0b1220; outline-offset: 3px; }
#medias-maratones, #race-filters { scroll-margin-top: 140px; }
[hidden] { display: none !important; }
html.dark #race-filters, html.dark #race-archive { background: #111c2e; border-color: #596677; }
html.dark .site-header:has(#race-hub-nav) { background: #0b1220 !important; border-bottom-color: #334155 !important; }
html.dark #race-hub-nav .race-hub-brand span:first-child, html.dark #race-hub-nav .race-hub-navlinks a { color: #e2e8f0 !important; }
html.dark #race-hub-nav .race-hub-brand span:last-child, html.dark #race-hub-nav .race-hub-navlinks a[aria-current="page"] { color: #fb923c !important; }
html.dark .container .breadcrumb, html.dark .container .breadcrumb a { color: #cbd5e1 !important; }
html.dark #race-filters p, html.dark #race-results-summary, html.dark .race-distance, html.dark #race-calendars-heading small, html.dark #race-near-heading small, html.dark .race-app-availability { color: #cbd5e1; }
html.dark .race-location-fields select, html.dark .race-reset { color: #e2e8f0; background: #0b1220; border-color: #64748b; }
html.dark .race-location-fields select:disabled { color: #94a3b8; background: #172235; }
html.dark .race-filter-bottom { border-color: #596677; }
html.dark #race-nearby[aria-pressed="true"] { border-color: #e2e8f0; }
html.dark #race-empty { background: #172235; }
html.dark #race-hub-nav a:focus-visible, html.dark #race-filters :focus-visible, html.dark .race-card:focus-visible, html.dark .race-reset:focus-visible, html.dark #race-archive summary:focus-visible, html.dark [data-race-download]:focus-visible { outline-color: #fef7ed; }
@media (max-width: 620px) {
  #race-hub-nav { grid-template-columns: 1fr auto; gap: 4px 10px; padding: 8px 16px !important; }
  #race-hub-nav .race-hub-brand { font-size: .95rem; }
  #race-hub-nav [data-race-download] { grid-column: 2; grid-row: 1; padding: 8px 12px; font-size: .8rem; }
  #race-hub-nav .race-hub-navlinks { grid-column: 1 / -1; grid-row: 2; gap: 24px; font-size: .85rem; }
  #race-filters { padding: 18px 16px; }
  .race-location-fields { grid-template-columns: 1fr; }
  .race-filter-bottom { align-items: flex-start; flex-direction: column; gap: 10px; }
  #race-filters .filters { gap: 6px; }
  #race-filters .filter-btn { padding: 8px 12px; }
  #race-archive { padding: 12px; }
}
@media (prefers-reduced-motion: reduce) { .race-card, .race-card img, #race-filters button { transition: none; } }
