/* Shared site styles. Breakpoints preserve the static, local-file layout. */

[hidden] { display: none !important; }

.hero-grid > *, .page-layout > *, .home-dashboard > *, .directions-grid > *,
.contact-grid > *, .rental-grid > *, .track-detail-grid > *, .footer-grid > *,
.event-main, .form-row > span, .resource-grid > a { min-width: 0; }
.main-column, .side-column, .event-main, .form-row, .resource-grid { overflow-wrap: anywhere; }
.button-dark:hover { color: #171819; }
.practice-panel a.button { color: #17110e; }
.class-list summary span { margin-left: 12px; white-space: nowrap; }
.rental-card .fee-table > div { flex-wrap: wrap; }
.form-row > span:not(.pdf-icon) { flex: 1; }
.menu-toggle { cursor: pointer; min-height: 44px; }
.header-row nav a { min-height: 44px; }

.hero {
  background-color: #101112;
  background-image: linear-gradient(90deg, rgba(6,7,8,.88) 0%, rgba(6,7,8,.7) 30%, rgba(6,7,8,.12) 57%, rgba(6,7,8,.2) 78%, rgba(6,7,8,.5) 100%), url('./assets/jmx-hero.jpg');
  background-size: cover;
  background-position: center 88%;
  border-bottom: 4px solid var(--orange);
}

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  align-items: end;
  gap: 40px;
  min-height: 580px;
  padding-block: 52px;
}

.hero-copy { max-width: 530px; }
.hero-copy > p:not(.eyebrow) { max-width: 420px; font-size: 1.1rem; color: #f5f3ef; }
.hero-mobile-photo { display: none; }

.hero-note {
  align-self: end;
  background: #f0f0eb;
  color: #171819;
  border-top: 4px solid var(--orange);
  padding: 24px;
}

.hero-note > span { font-size: .75rem; letter-spacing: .13em; font-weight: 900; color: #984015; }
.hero-note strong { display: block; font-size: 1.5rem; line-height: 1.1; letter-spacing: -.04em; margin: 12px 0; }
.hero-note p { font-size: .95rem; line-height: 1.55; margin-bottom: 20px; }
.hero-note .button { width: 100%; justify-content: center; text-align: center; font-size: .875rem; }
.hero-note .button:hover { color: #171819; }

@media (max-width: 850px) {
  .hero { background-image: none; }
  .hero-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; min-height: 0; padding-block: 36px; }
  .hero-copy { max-width: none; }
  .hero-copy > p:not(.eyebrow) { max-width: 540px; }
  .hero-mobile-photo { display: block; height: clamp(230px, 42vw, 340px); overflow: hidden; margin: 26px 0 22px; }
  .hero-mobile-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 60% 82%; transform: scale(1.35); transform-origin: 60% 82%; }
  .hero-note { width: 100%; padding: 22px; }
}

/* The local tool shares typography and controls, but has no public navigation entry. */
.editor { padding-block: 45px 70px; }
.editor .wrap { max-width: 900px; }
.editor h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); margin-bottom: 10px; }
.editor-header .header-row { justify-content: space-between; }
.editor-header .button { margin-left: auto; }
.editor-event-picker { display: flex; flex-direction: column; gap: 8px; margin: 24px 0 16px; font-weight: 800; }
.editor select, .editor textarea { width: 100%; min-width: 0; background: #0d0f10; color: #fff; border: 1px solid #777; padding: 12px; font: inherit; }
.editor-panel { background: #1b1e20; border: 1px solid #444; padding: 24px; }
.editor-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid #484c4f; padding-bottom: 16px; margin-bottom: 20px; }
.editor-panel-heading h2 { font-size: 1.4rem; margin: 0; }
.editor-panel-heading .eyebrow { margin-bottom: 8px; }
.editor-panel-heading > span { font-size: .875rem; color: #bfc3c4; }
.editor-panel-heading > span.dirty { color: #ffad75; }
.bulletin-editor-label { display: block; font-weight: 800; font-size: 1.1rem; margin-bottom: 8px; }
.editor textarea { min-height: 480px; line-height: 1.55; resize: vertical; }
.editor-primary-save { width: 100%; justify-content: center; margin-top: 14px; cursor: pointer; font-size: 1rem; }
.editor-primary-save:disabled { cursor: wait; opacity: .7; }
.editor-help { color: #bfc3c4; font-size: .9rem; margin-top: 16px; }
.editor-message { border-left: 4px solid #e65d55; background: #3a2221; padding: 14px 16px; }
.editor-message.success { border-left-color: #66ba7a; background: #203326; }
@media (max-width: 700px) {
  .editor { padding-top: 30px; }
  .editor-panel { padding: 16px; }
  .editor-panel-heading { flex-direction: column; align-items: start; }
  .editor textarea { min-height: 400px; }
  .editor-header .button { margin-left: 0; }
}

:root {
  color-scheme:dark;
  --bg:#101112;
  --panel:#1c1e20;
  --panel2:#232629;
  --ink:#f5f3ef;
  --muted:#b7b9b9;
  --line:#3b3e40;
  --orange:#ff6a21;
  --blue:#5a9ff0;
  font-family:Inter,Arial,Helvetica,sans-serif;
  font-synthesis:none;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
}

body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-size:16px;
  line-height:1.55;
}

a {
  color:inherit;
}

button {
  font:inherit;
}

img {
  max-width:100%;
  height:auto;
}

h1,h2,h3,p {
  margin-top:0;
}

h1,h2,h3 {
  line-height:1.08;
  letter-spacing:-.045em;
}

h2 {
  font-size:clamp(1.75rem,3.1vw,2.7rem);
}

h3 {
  font-size:1.35rem;
}

.wrap {
  width:min(1200px,calc(100% - 40px));
  margin-inline:auto;
}

.skip-link {
  position:absolute;
  left:12px;
  top:-100px;
  z-index:100;
  background:var(--orange);
  color:#111;
  padding:10px;
}

.skip-link:focus {
  top:8px;
}

:focus-visible {
  outline:3px solid #ffb581;
  outline-offset:3px;
}

.utility {
  background:#060708;
  color:#bdbdbd;
  font-size:13px;
  border-bottom:1px solid #242526;
}

.utility-inner {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding-block:7px;
}

.utility a {
  text-decoration:none;
  color:#fff;
}

.site-header {
  background:#121314;
  border-bottom:1px solid #444;
  position:relative;
  z-index:2;
}

.header-row {
  min-height:83px;
  display:flex;
  align-items:center;
  gap:24px;
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  font-size:1.55rem;
  font-weight:950;
  letter-spacing:-.075em;
  line-height:1;
  white-space:nowrap;
}

.brand strong {
  color:var(--orange);
}

.brand small {
  display:block;
  letter-spacing:.22em;
  font-size:.46rem;
  margin-top:5px;
  color:#aab0b0;
}

.brand-mark {
  display:grid;
  place-items:center;
  width:35px;
  height:35px;
  background:var(--orange);
  color:#151515;
  transform:skew(-12deg);
  font-size:1.8rem;
  letter-spacing:-.08em;
}

.header-row nav {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:7px 15px;
  margin-left:auto;
}

.header-row nav a {
  font-size:14px;
  font-weight:800;
  text-decoration:none;
  white-space:nowrap;
  padding:9px 0;
  border-bottom:2px solid transparent;
}

.header-row nav a:hover,.header-row nav a[aria-current] {
  border-color:var(--orange);
  color:#fff;
}

.menu-toggle {
  display:none;
}

.eyebrow {
  text-transform:uppercase;
  font-weight:900;
  font-size:.75rem;
  letter-spacing:.17em;
  color:var(--orange);
  margin-bottom:12px;
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:48px;
  background:var(--orange);
  border:1px solid var(--orange);
  padding:11px 18px;
  color:#17110e;
  text-decoration:none;
  font-size:.9rem;
  font-weight:900;
  line-height:1.3;
  transition:background .2s,border-color .2s;
  text-align:center;
  max-width:100%;
}

.button:hover {
  background:#ffa263;
  border-color:#ffa263;

}

.button-ghost,.button-outline {
  background:transparent;
  color:#fff;
  border-color:#777;
}

.button-ghost:hover,.button-outline:hover {
  color:#111;
}

.button-light {
  background:#fff;
  color:#131313;
  border-color:#fff;
}

.button-dark {
  background:#171819;
  color:#fff;
  border-color:#171819;
}

.text-link,.subtle-link {
  color:#ff9b5c;
  font-weight:850;
  text-decoration:underline;
  text-underline-offset:4px;
}

.subtle-link {
  font-size:.88rem;
}

.hero h1 {
  font-size:clamp(4rem,8vw,7.2rem);
  font-weight:950;
  line-height:.85;
  letter-spacing:-.085em;
  margin-bottom:20px;
}

.hero h1 em {
  color:var(--orange);
  font-style:normal;
}

.actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:26px;
}

.home-dashboard {
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:18px;
  margin-top:28px;
}

.practice-panel,.rental-panel {
  padding:31px;
  min-height:345px;
}

.practice-panel {
  background:#212427;
  border:1px solid #45484a;
  border-top:5px solid var(--orange);
}

.practice-panel>p {
  max-width:580px;
  color:#e0e1e1;
}

.rental-panel {
  background:#b94412;
  color:#fff;
  position:relative;
  overflow:hidden;
}

.rental-panel .eyebrow {
  color:#ffe1c5;
}

.rental-panel p {
  max-width:390px;
}

.price-pills {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:25px 0 16px;
}

.price-pills span {
  border:1px solid #565a5d;
  padding:7px 11px;
  font-size:.83rem;
  color:#d1d3d3;
}

.price-pills strong {
  color:#fff;
  margin-left:7px;
}

.section-title {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:20px;
}

.section-title h2 {
  margin-bottom:0;
}

.section-title a {
  font-weight:850;
  color:#ff9b5c;
  text-underline-offset:4px;
}

.fast-section {
  padding:56px 0 75px;
}

.fast-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid #484b4c;
  border-left:1px solid #484b4c;
}

.fast-grid a {
  min-height:180px;
  position:relative;
  padding:23px;
  background:#1b1d1f;
  display:flex;
  flex-direction:column;
  text-decoration:none;
  border-right:1px solid #484b4c;
  border-bottom:1px solid #484b4c;
  transition:background .15s;
}

.fast-grid a:hover {
  background:#2c2f31;
}

.fast-grid span {
  color:var(--orange);
  font-size:.75rem;
  font-weight:950;
}

.fast-grid strong {
  font-size:1.35rem;
  letter-spacing:-.045em;
  margin-top:22px;
}

.fast-grid small {
  font-size:.85rem;
  color:#bdbfbf;
}

.tracks {
  background:#e7e6e1;
  color:#17191a;
  padding:60px 0 70px;
}

.tracks .eyebrow {
  color:#ae440e;
}

.track-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:#bdbfbd;
  border:1px solid #bdbfbd;
  margin-top:30px;
}

.track-grid>div {
  background:#e7e6e1;
  padding:24px;
}

.track-grid b {
  font-size:.72rem;
  color:#a84613;
}

.track-grid h3 {
  font-size:1.55rem;
  margin:30px 0 10px;
}

.track-grid p {
  margin:0;
  color:#444e50;
}

.page-head {
  padding:44px 0 46px;
  background:linear-gradient(105deg,#24282a,#141516);
  border-bottom:1px solid #454849;
}

.page-head h1 {
  font-size:clamp(2.5rem,6vw,5rem);
  font-weight:950;
  margin:0 0 9px;
}

.page-head p:last-child:not(.eyebrow) {
  font-size:1.05rem;
  color:#d4d6d6;
  margin:0;
}

.page-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 295px;
  gap:40px;
  padding-block:45px 80px;
}

.main-column>h2:not(:first-child) {
  margin-top:42px;
}

.main-column>p {
  color:#d0d3d3;
}

.spotlight {
  padding:30px;
  background:#222527;
  border-left:5px solid var(--orange);
  margin-bottom:30px;
}

.spotlight p {
  max-width:680px;
}

.spotlight h2 {
  margin-bottom:12px;
}

.side-column {
  background:#1d2022;
  border:1px solid #3a3e40;
  padding:24px;
  align-self:start;
}

.side-column h3 {
  margin:0 0 16px;
}

.side-column p,.side-column li {
  color:#c9cccc;
}

.side-column ol,.side-column ul {
  padding-left:20px;
}

.side-column li {
  margin:10px 0;
}

.side-column hr {
  border:0;
  border-top:1px solid #4a4d4e;
  margin:23px 0;
}

.side-column .button {
  width:100%;
  justify-content:center;
}

.info-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  border:1px solid #484b4e;
  margin:20px 0;
}

.info-grid>div {
  padding:18px;
  border-right:1px solid #484b4e;
  border-bottom:1px solid #484b4e;
  display:flex;
  flex-direction:column;
}

.info-grid span {
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:#b6babc;
  font-weight:800;
}

.info-grid strong {
  font-size:1.1rem;
}

.content-card {
  background:#1e2123;
  border:1px solid #44484b;
  padding:27px;
  margin:25px 0;
}

.content-card p {
  color:#cdd0d0;
}

.content-card h2 {
  font-size:1.9rem;
}

.split-fees {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15px;
}

.split-fees .content-card {
  margin:4px 0 0;
}

.fee-table>div {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:12px 0;
  border-bottom:1px solid #4a4d4e;
}

.fee-table>div:last-child {
  border:0;
}

.fee-table strong {
  white-space:nowrap;
  color:#fff;
}

.classes-section {
  margin-top:50px;
}

.class-list {
  border:1px solid #45494a;
  margin:10px 0;
  background:#1b1d1f;
}

.class-list summary {
  cursor:pointer;
  padding:18px 20px;
  font-size:1.15rem;
  font-weight:900;
  display:list-item;
  gap:20px;
}

.class-list summary span {
  font-size:.83rem;
  color:#c0c4c5;
  font-weight:600;
}

.class-list>div {
  padding:5px 20px 22px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.class-list>div span {
  font-size:.86rem;
  border:1px solid #424649;
  padding:7px 10px;
  background:#25292a;
}

.calendar-section {
  padding-block:38px 80px;
}

.calendar-key {
  display:flex;
  gap:22px;
  margin-bottom:22px;
  font-size:.86rem;
  font-weight:850;
}

.calendar-key span:before {
  content:'';
  display:inline-block;
  width:13px;
  height:13px;
  margin-right:9px;
  vertical-align:-1px;
}

.calendar-key .key-sx:before {
  background:var(--orange);
}

.calendar-key .key-mx:before {
  background:var(--blue);
}

.month-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}

.month {
  background:#202326;
  border:1px solid #484c4e;
  padding:15px;
}

.month h2 {
  font-size:1.28rem;
  letter-spacing:0;
  margin:2px 0 16px;
}

.days {
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:4px;
}

.days>span,.days>a {
  min-width:0;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  font-size:.85rem;
  text-decoration:none;
}

.days.weekdays {
  margin-bottom:5px;
  color:#bfc2c3;
}

.days.weekdays span {
  aspect-ratio:auto;
  font-size:.75rem;
}

.days .empty {
  background:none;
}

.days .race-day {
  font-weight:950;
  color:#111;
  border-radius:2px;
}

.days .race-day.sx,.event-date.sx {
  background:var(--orange);
}

.days .race-day.mx {
  background:var(--blue);
}

.days a:hover {
  outline:2px solid #fff;
  outline-offset:1px;
}

.calendar-list {
  padding-top:60px;
}

.calendar-list .section-title p {
  margin:0;
  color:#bfc1c2;
}

.event-list {
  border-top:1px solid #424648;
}

.event-card {
  display:flex;
  align-items:center;
  gap:22px;
  text-decoration:none;
  padding:14px;
  border-bottom:1px solid #424648;
}

.event-card:hover {
  background:#24282a;
}

.event-date {
  width:67px;
  min-width:67px;
  height:72px;
  background:var(--orange);
  color:#141414;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  line-height:1;
}

.event-card.mx .event-date {
  background:var(--blue);
}

.event-date strong,.event-date small {
  font-size:.65rem;
  font-weight:950;
  letter-spacing:.08em;
}

.event-date b {
  font-size:1.75rem;
}

.event-main {
  display:flex;
  flex-direction:column;
  line-height:1.4;
}

.event-main small {
  font-size:.69rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:#e6a27c;
  font-weight:850;
}

.event-card.mx .event-main small {
  color:#94c4ff;
}

.event-main strong {
  font-size:1.22rem;
}

.event-main span {
  font-size:.85rem;
  color:#bdc1c1;
}

.event-detail {
  background:#202326;
  border:1px solid #4b4e50;
  padding:26px;
  border-top:5px solid var(--orange);
}

.event-detail.mx {
  border-top-color:var(--blue);
}

.event-detail-head .event-type {
  font-size:.75rem;
  text-transform:uppercase;
  font-weight:950;
  letter-spacing:.13em;
  color:#ff9d66;
}

.event-detail.mx .event-type {
  color:#91c4ff;
}

.event-detail-head h2 {
  margin:8px 0 20px;
}

.event-detail .info-grid {
  margin-bottom:24px;
}

.notice {
  background:#2b2923;
  border-left:3px solid #ffb465;
  padding:14px 17px;
  font-size:.93rem;
  margin:20px 0;
  color:#f0e0cb;
}

.notice.strong {
  margin:0 0 23px;
}

.schedule-note {
  font-size:.85rem;
  color:#c1c3c3;
}

.inline-links {
  display:flex;
  flex-wrap:wrap;
  gap:16px;
}

.inline-links a {
  color:#ff9b5c;
  font-weight:800;
}

.checklist h3 {
  margin:0 0 12px;
}

.form-list {
  border-top:1px solid #454849;
}

.form-row {
  display:flex;
  align-items:center;
  gap:18px;
  padding:18px 14px;
  text-decoration:none;
  border-bottom:1px solid #454849;
}

.form-row:hover {
  background:#24282a;
}

.form-row>span:not(.pdf-icon) {
  display:flex;
  flex-direction:column;
}

.form-row strong {
  font-size:1.08rem;
}

.form-row small {
  color:#c2c4c5;
  font-size:.86rem;
}

.pdf-icon {
  width:46px;
  height:46px;
  min-width:46px;
  display:grid;
  place-items:center;
  color:#111;
  background:var(--orange);
  font-size:.73rem;
  font-weight:950;
}

.intro-band {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:34px 0;
}

.intro-band h2 {
  margin-bottom:10px;
}

.intro-band p:last-child {
  color:#c6cacb;
  margin:0;
}

.rental-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:15px;
}

.rental-card {
  background:#202326;
  border:1px solid #45494b;
  border-top:4px solid var(--orange);
  padding:24px;
}

.rental-card h2 {
  font-size:1.7rem;
  min-height:55px;
}

.rental-details {
  padding-top:42px;
}

.directions-grid,.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  padding-block:45px 80px;
}

.directions-grid .content-card,.contact-grid .content-card {
  margin:0;
}

.directions-grid iframe {
  width:100%;
  height:420px;
  border:1px solid #555;
}

.contact-grid .content-card h2 {
  overflow-wrap:anywhere;
  font-size:1.8rem;
}

.contact-grid .content-card h2 a {
  text-decoration:none;
}

.sponsors-page {
  padding-block:40px 75px;
}

.headline-sponsor {
  background:#e9e9e7;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:20px 34px;
  margin-bottom:45px;
}

.headline-sponsor .eyebrow {
  color:#964313;
}

.headline-sponsor img {
  max-width:min(360px,100%);
}

.sponsor-banner {
  display:block;
  background:white;
  width:100%;
  height:auto;
  margin:20px 0;
}

.sponsor-names {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.sponsor-names span {
  background:#252829;
  padding:7px 11px;
  border:1px solid #454849;
  font-size:.87rem;
}

.sponsors-page .content-card {
  margin-top:40px;
}

.partner-bar {
  background:#e6e7e5;
  color:#252525;
}

.partner-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
}

.partner-inner>span {
  text-transform:uppercase;
  letter-spacing:.15em;
  font-weight:900;
  font-size:.7rem;
  color:#555;
}

.partner-inner img {
  width:210px;
  height:auto;
}

.partner-inner>a:last-child {
  font-weight:850;
}

.footer {
  background:#0c0d0e;
  color:#b9bdbd;
}

.footer-grid {
  padding:50px 0;
  display:grid;
  grid-template-columns:2fr repeat(3,1fr);
  gap:35px;
}

.footer-grid h2 {
  font-size:.78rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#fff;
  margin-bottom:16px;
}

.footer-grid>div>a:not(.brand) {
  display:block;
  text-decoration:none;
  margin:8px 0;
  font-size:.85rem;
}

.footer-grid a:hover {
  color:var(--orange);
}

.footer-grid p {
  font-size:.82rem;
}

.footer-brand {
  font-size:1.5rem;
  color:#fff;
}

.footer-bottom {
  border-top:1px solid #343738;
  padding:17px 0;
  font-size:.75rem;
}

@media(max-width:850px) {
  .home-dashboard,.page-layout,.directions-grid {
    grid-template-columns:1fr;
  }

  .month-grid {
    grid-template-columns:repeat(2,1fr);
  }

  .fast-grid {
    grid-template-columns:repeat(2,1fr);
  }

  .footer-grid {
    grid-template-columns:repeat(2,1fr);
  }

  .page-layout {
    gap:20px;
  }

  .side-column {
    max-width:none;
  }
}

@media(max-width:650px) {
  .wrap {
    width:min(100% - 30px,1200px);
  }

  .utility-inner {
    justify-content:center;
  }

  .utility-inner>span {
    display:none;
  }

  .hero h1 {
    font-size:clamp(3.6rem,16vw,6rem);
  }

  .home-dashboard {
    width:100%;
    gap:0;
    margin-top:0;
  }

  .practice-panel,.rental-panel {
    padding:26px 18px;
    min-height:0;
  }

  .fast-grid,.track-grid,.month-grid,.rental-grid,.split-fees,.contact-grid {
    grid-template-columns:1fr;
  }

  .fast-section {
    padding-block:43px;
  }

  .fast-grid a {
    min-height:140px;
  }

  .tracks {
    padding-block:45px;
  }

  .track-grid h3 {
    margin-top:16px;
  }

  .section-title {
    align-items:start;
    flex-direction:column;
  }

  .page-head {
    padding-block:35px;
  }

  .page-layout {
    padding-block:28px 55px;
  }

  .intro-band {
    flex-direction:column;
    align-items:start;
  }

  .intro-band .button {
    width:100%;
  }

  .info-grid {
    grid-template-columns:1fr;
  }

  .month-grid {
    gap:10px;
  }

  .month {
    padding:15px;
  }

  .days>span,.days>a {
    font-size:.94rem;
  }

  .form-row {
    align-items:start;
    gap:12px;
  }

  .form-row strong {
    font-size:1rem;
  }

  .headline-sponsor {
    flex-direction:column;
    align-items:start;
    padding:20px;
  }

  .partner-inner {
    flex-wrap:wrap;
    justify-content:center;
    padding-block:14px;
    gap:8px 24px;
  }

  .partner-inner>span {
    width:100%;
    text-align:center;
  }

  .footer-grid {
    grid-template-columns:1fr 1fr;
    padding-block:37px;
  }

  .footer-grid>div:first-child,.footer-grid>div:last-child {
    grid-column:1/-1;
  }

  .directions-grid,.contact-grid {
    padding-block:30px 50px;
  }

  .directions-grid iframe {
    height:330px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }

  *,*:before,*:after {
    transition:none!important;
    animation:none!important;
  }
}

@media(max-width:1230px) {
  .header-row {
    flex-wrap:wrap;
    padding-block:15px;
  }

  .menu-toggle {
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-left:auto;
    color:#fff;
    background:#26282a;
    border:1px solid #6a6d6f;
    padding:8px 13px;
    font-weight:800;
  }

  .header-row nav {
    display:none;
    width:100%;
    margin:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }

  .header-row nav.open {
    display:flex;
  }

  .header-row nav a {
    font-size:.95rem;
    padding:11px 2px;
    border-bottom:1px solid #424648;
  }

  .header-row nav a[aria-current] {
    border-bottom-color:var(--orange);
  }
}

.hero .actions .button {
  min-width:175px;
}

.partner-bar {
  border-top:0;
  border-bottom:1px solid #b8babc;
}

.partner-inner {
  min-height:93px;
}

.upcoming {
  padding-top:34px;
}

.upcoming .section-title {
  margin-bottom:15px;
}

.upcoming-feature {
  display:grid;
  grid-template-columns:125px minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
  background:#25282a;
  border:1px solid #515558;
  border-left:6px solid var(--orange);
  padding:22px;
}

.upcoming-feature.mx {
  border-left-color:var(--blue);
}

.upcoming-date {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:115px;
  background:var(--orange);
  color:#151515;
  line-height:1;
}

.upcoming-feature.mx .upcoming-date {
  background:var(--blue);
}

.upcoming-date span:first-child {
  font-size:.8rem;
  letter-spacing:.11em;
  font-weight:900;
}

.upcoming-date strong {
  font-size:3.5rem;
  letter-spacing:-.08em;
}

.upcoming-date span:last-child {
  font-size:.75rem;
  font-weight:800;
}

.upcoming-detail h3 {
  font-size:clamp(1.65rem,3vw,2.6rem);
  margin:0 0 6px;
}

.upcoming-detail p:not(.eyebrow) {
  color:#d7d9d9;
  margin:0;
}

.upcoming-actions {
  display:flex;
  flex-direction:column;
  align-items:stretch;
}

.upcoming-actions .button {
  white-space:normal;
}

.upcoming-actions .text-link {
  text-align:center;
}

.forms-shortcuts {
  border:1px solid #46494b;
  border-top:0;
  background:#232628;
  padding:17px 22px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:9px 21px;
  font-size:.85rem;
}

.forms-shortcuts strong {
  color:#fff;
  margin-right:auto;
}

.forms-shortcuts a {
  color:#ffab71;
  font-weight:800;
  text-underline-offset:3px;
}

.track-links {
  display:flex;
  gap:12px 28px;
  flex-wrap:wrap;
  margin-top:22px;
}

.track-links a {
  color:#9b3b0d;
  font-weight:900;
  text-underline-offset:4px;
}

.home-sponsors {
  padding-block:58px 67px;
}

.home-sponsors .section-title {
  margin-bottom:19px;
}

.banner-scroll {
  overflow-x:auto;
  background:#fff;
}

.banner-scroll img {
  display:block;
  width:100%;
  height:auto;
}

.home-sponsors .banner-scroll img {
  min-width:760px;
}

.calendar-key .key-canceled:before {
  background:#5b5e60;
}

.race-day.canceled {
  background:#676a6b!important;
  color:white!important;
  text-decoration:line-through;
}

.event-card.canceled .event-date {
  background:#676a6b;
}

.status-label {
  font-size:.69rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#fff;
  background:#9a3932;
  padding:4px 6px;
  vertical-align:middle;
  white-space:nowrap;
}

.canceled-banner {
  background:#7b2927;
  border-left:4px solid #ee9a93;
  padding:12px;
  color:#fff;
  font-weight:800;
}

.policy-group {
  padding:20px 0;
  border-top:1px solid #45494b;
}

.policy-group h3 {
  margin-bottom:8px;
}

.policy-group ul {
  margin:0;
  padding-left:22px;
  color:#d0d3d3;
}

.policy-group li {
  margin:6px 0;
}

.shared-policies {
  margin-top:40px;
}

.event-detail h3 {
  margin:30px 0 10px;
}

.event-detail .info-grid {
  margin-top:12px;
}

.event-detail .button {
  margin-top:16px;
}

.track-photo {
  height:300px;
  overflow:hidden;
  margin:36px 0 22px;
  border:1px solid #474b4e;
}

.track-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:25% center;
}

.tracks-page {
  padding-bottom:65px;
}

.track-detail-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:15px;
}

.track-detail-grid article {
  border:1px solid #45494b;
  border-top:4px solid var(--orange);
  background:#202326;
  padding:25px;
}

.track-detail-grid article h2 {
  font-size:1.7rem;
}

.track-detail-grid article p:not(.eyebrow) {
  color:#cdd1d1;
}

.tracks-page .content-card {
  margin-top:20px;
}

.sponsor-option-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:13px;
  margin:25px 0;
}

.sponsor-option-grid>div {
  background:#25282a;
  border:1px solid #45494b;
  padding:22px;
}

.sponsor-option-grid h3 {
  margin-bottom:10px;
}

.sponsor-option-grid p {
  margin:0;
  color:#cbd0d0;
}

.sponsor-options {
  margin-top:50px;
}

.sponsors-page .banner-scroll img {
  min-width:760px;
}

.sponsors-page .sponsor-banner {
  margin:0;
}

.sponsors-page .sponsor-names {
  margin-top:18px;
}

.photo-page-card {
  margin:0;
}

.photo-page-card p {
  font-size:1.08rem;
}

.links-page {
  padding-block:40px 70px;
}

.resource-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}

.resource-grid a {
  display:flex;
  justify-content:space-between;
  gap:20px;
  text-decoration:none;
  padding:20px;
  border:1px solid #45494b;
  background:#1e2123;
}

.resource-grid a:hover {
  border-color:var(--orange);
}



@media(max-width:850px) {
  .upcoming-feature {
    grid-template-columns:95px minmax(0,1fr);
  }

  .upcoming-date {
    min-height:98px;
  }

  .upcoming-date strong {
    font-size:2.7rem;
  }

  .upcoming-actions {
    grid-column:1/-1;
    flex-direction:row;
    align-items:center;
  }

  .track-detail-grid {
    grid-template-columns:1fr;
  }
}

@media(max-width:650px) {
  .hero .actions .button {
    min-width:0;
    flex:1;
  }

  .partner-inner {
    min-height:0;
  }

  .partner-inner img {
    width:190px;
  }

  .upcoming {
    padding-top:30px;
  }

  .upcoming-feature {
    gap:14px;
    padding:14px;
  }

  .upcoming-date {
    min-height:85px;
  }

  .upcoming-date strong {
    font-size:2.25rem;
  }

  .upcoming-date span:last-child {
    font-size:.64rem;
  }

  .upcoming-detail h3 {
    font-size:1.4rem;
  }

  .upcoming-detail p:not(.eyebrow) {
    font-size:.82rem;
  }

  .upcoming-actions {
    gap:12px;
  }

  .upcoming-actions .button {
    width:auto;
  }

  .forms-shortcuts {
    align-items:start;
    flex-direction:column;
    gap:8px;
    padding:16px;
  }

  .home-sponsors {
    padding-block:42px;
  }

  .track-photo {
    height:195px;
  }

  .track-detail-grid article {
    padding:21px;
  }

  .resource-grid,.sponsor-option-grid {
    grid-template-columns:1fr;
  }

  .sponsors-page .sponsor-banner {
    max-width:none;
  }

  .footer-grid {
    gap:22px;
  }
}

.sponsor-names a {
  background:#252829;
  padding:7px 11px;
  border:1px solid #454849;
  font-size:.87rem;
  text-decoration:none;
}

.sponsor-names a:hover {
  border-color:var(--orange);
}

.sponsor-names img {
  display:inline-block;
  vertical-align:middle;
}

.photo-gallery {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:15px;
  margin-top:22px;
}

.photo-gallery figure {
  margin:0;
  background:#1e2123;
  border:1px solid #444;
}

.photo-gallery img {
  display:block;
  width:100%;
  height:270px;
  object-fit:cover;
}

.photo-gallery figcaption {
  padding:12px;
  color:#c8cbcb;
  font-size:.83rem;
}

.calendar-year {
  grid-column:1/-1;
  margin:30px 0 0;
}

@media(max-width:650px) {
  .photo-gallery {
    grid-template-columns:1fr;
  }

  .photo-gallery img {
    height:230px;
  }

  .upcoming-actions {
    flex-wrap:wrap;
  }

  .upcoming-actions .button {
    min-width:145px;
  }
}

.bring-bike {
  border-left:3px solid #ff6a21;
  padding-left:13px;
  color:#fff!important;
}

.bring-bike strong {
  display:block;
}

.practice-panel a {
  color:inherit;
  text-underline-offset:3px;
}

.home-calendar {
  padding-block:50px 34px;
}

.home-calendar .section-title {
  margin-bottom:15px;
}

.home-calendar .calendar-key {
  margin-bottom:15px;
}

.mini-months {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}

.mini-month {
  padding:16px;
}

.mini-month h3 {
  font-size:1rem;
  margin:0 0 12px;
}

.mini-dates {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.mini-event {
  display:flex;
  align-items:center;
  gap:6px;
  color:#fff;
  text-decoration:none;
  font-size:.74rem;
  padding:7px 8px;
  border:1px solid #585c5e;
  min-height:42px;
}

.mini-event strong {
  font-size:1rem;
  color:var(--orange);
}

.mini-event.mx strong {
  color:var(--blue);
}

.mini-event.canceled {
  text-decoration:line-through;
  opacity:.6;
}

.mini-event:hover,.mini-event:focus-visible {
  border-color:#fff;
}

.homepage-bulletin {
  border:1px solid #424749;
  border-top:0;
  background:#1c1f21;
  padding:23px 29px;
}

.bulletin-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:#45494b;
  border:1px solid #45494b;
}

.bulletin-grid>div {
  min-width:0;
  background:#222527;
  padding:13px 15px;
}

.bulletin-grid span {
  display:block;
  font-size:.8rem;
  color:#bdc3c3;
  text-transform:uppercase;
  letter-spacing:.055em;
}

.bulletin-grid strong {
  display:block;
  font-size:.98rem;
  line-height:1.45;
  white-space:pre-line;
  overflow-wrap:anywhere;
}

.homepage-bulletin h3,.race-bulletin h3 {
  font-size:1.3rem;
  margin:25px 0 12px;
}

.race-bulletin li,.homepage-policies li {
  margin:8px 0;
  color:#dce0df;
}

.race-bulletin ul,.homepage-policies ul {
  padding-left:21px;
}

.homepage-policies {
  margin-top:22px;
  border-top:1px solid #484b4d;
  padding-top:4px;
}

.homepage-policies h4 {
  margin:17px 0 0;
}

.homepage-policies ul {
  margin:7px 0;
}

.race-pending {
  margin:18px 0 4px;
  color:#e2e4e4;
}

.event-detail .race-bulletin {
  border-top:1px solid #4b4e50;
  margin-top:25px;
}

.upcoming-actions {
  gap:9px;
}

.upcoming-actions .button {
  text-align:center;
  justify-content:center;
}

.home-directions {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  align-items:center;
  padding-block:49px;
}

.home-directions h2 {
  font-size:2.1rem;
  margin:7px 0;
}

.home-directions p:not(.eyebrow) {
  color:#d2d5d5;
}

.home-directions iframe {
  width:100%;
  height:260px;
  border:0;
  background:#27292a;
}

.home-directions .inline-links {
  display:flex;
  flex-wrap:wrap;
  gap:12px 20px;
}

.home-directions .inline-links a {
  color:#ffae78;
}

.peewee-photo {
  margin-top:32px;
}

.peewee-photo img {
  display:block;
  width:100%;
  height:320px;
  object-fit:cover;
  object-position:center 42%;
}

.shiftone-logo {
  display:block;
  width:min(260px,80%);
  height:auto;
  max-height:150px;
  object-fit:contain;
  object-position:left center;
}

.footer-brand img {
  width:160px;
  height:auto;
  display:block;
  background:#fff;
  padding:8px;
}

.sponsor-names a,.sponsor-names span {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
}

.sponsor-names img {
  max-height:60px;
  max-width:165px;
  width:auto;
  height:auto;
  object-fit:contain;
}

@media(max-width:850px) {
  .mini-months {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .bulletin-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .home-directions {
    grid-template-columns:1fr;
  }
}

@media(max-width:650px) {
  .mini-months {
    grid-template-columns:1fr 1fr;
    gap:8px;
  }

  .mini-month {
    padding:11px;
  }

  .mini-event {
    width:100%;
    font-size:.73rem;
  }

  .home-calendar {
    padding-block:39px 28px;
  }

  .homepage-bulletin {
    padding:15px;
  }

  .bulletin-grid {
    grid-template-columns:1fr;
  }

  .upcoming-actions {
    grid-column:1/-1;
  }

  .upcoming-feature {
    grid-template-columns:76px minmax(0,1fr);
  }

  .home-directions {
    padding-block:37px;
  }

  .home-directions iframe {
    height:230px;
  }

  .peewee-photo img {
    height:220px;
  }

  .sponsor-names img {
    max-width:125px;
  }
}

.bulletin-text {
  white-space:pre-line;
  overflow-wrap:anywhere;
  line-height:1.6;
  color:#e0e3e3;
}

.section-divider {
  position:relative;
  height:1px;
  background:#3b3e40;
  border-left:68px solid var(--orange);
  margin-block:28px 0;
}

.home-calendar {
  background:#202326;
  border:1px solid #565b5e;
  border-top:4px solid var(--orange);
  padding:29px 31px 34px;
  margin-top:30px;
  margin-bottom:16px;
}

.home-calendar .section-title {
  align-items:end;
}

.home-calendar .section-title h2 {
  font-size:clamp(2.25rem,4vw,3.4rem);
  line-height:1;
  margin-bottom:0;
}

.home-calendar .section-title a {
  white-space:nowrap;
}

.home-calendar .calendar-key {
  margin:18px 0 17px;
}

.mini-month {
  background:#16191b;
  border:1px solid #555a5d;
  min-height:116px;
}

.mini-event {
  background:#232729;
  border-left:3px solid var(--orange);
}

.mini-event.mx {
  border-left-color:var(--blue);
}

.upcoming-detail .race-pending {
  margin-top:12px!important;
  color:#dadede!important;
  font-size:.88rem;
}

.home-directions {
  border-bottom:0;
}

@media(max-width:650px) {
  .section-divider {
    margin-top:20px;
  }

  .home-calendar {
    width:min(100% - 30px,1200px);
    padding:19px 14px 24px;
    margin-top:23px;
  }

  .home-calendar .section-title {
    gap:12px;
  }

  .home-calendar .section-title h2 {
    font-size:2.2rem;
  }

  .home-calendar .calendar-key {
    gap:13px;
    font-size:.77rem;
  }

  .mini-month {
    min-height:0;
  }
}

.upcoming {
  padding-block:25px 31px;
}

.upcoming .section-title h2 {
  margin-bottom:0;
}

.upcoming[hidden] {
  display:none;
}

@media(max-width:650px) {
  .upcoming {
    padding-block:22px 26px;
  }
}

.bulletin-text .bulletin-paragraph {
  white-space:pre-line;
  margin:0 0 17px;
}

.bulletin-text .bulletin-list {
  margin:0 0 18px;
  padding-left:23px;
}

.bulletin-text .bulletin-list li {
  margin:8px 0;
}

.bulletin-link {
  color:#ffad75;
  font-weight:800;
  overflow-wrap:anywhere;
  text-underline-offset:3px;
}

.homepage-bulletin>.race-bulletin:first-child h3 {
  margin-top:0;
}

@media (max-width: 380px) {
  .mini-months { grid-template-columns: minmax(0, 1fr); }
  .upcoming-actions, .upcoming-actions .button { width: 100%; }
  .hero .actions .button { flex-basis: 100%; }
}
