.rallies-body {
  margin: 0;
  background: #fbf9f5;
  color: #243d35;
  font: 16px/1.6 Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}
.rallies-main {
  box-sizing: border-box;
  max-width: 1184px;
  margin: 0 auto;
  padding: clamp(38px, 6vw, 78px) clamp(20px, 4vw, 48px);
}
.rallies-main * { box-sizing: border-box; }
.rallies-main :is(h1, h2, h3, p, dl, dd) { margin: 0; }
.rallies-main :is(h1, h2, h3) {
  line-height: 1.12;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.rallies-main h1 { font-size: clamp(45px, 5.4vw, 74px); font-weight: 650; }
.rallies-main h2 { font-size: clamp(25px, 3vw, 36px); font-weight: 600; }
.rallies-main h3 { font-size: 20px; font-weight: 600; }
.rallies-main a { color: #284b42; text-underline-offset: 4px; }
.rallies-main a:hover { color: #874259; }
.rallies-main [id] { scroll-margin-top: 15px; }
.rally-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(30px, 6vw, 84px);
}
.rally-overview p { margin-top: 12px; max-width: 58ch; color: #506258; }
.rally-overview .rally-lead {
  margin-top: 20px;
  font-size: clamp(18px, 1.8vw, 23px);
  line-height: 1.48;
  color: #344e43;
}
.rally-overview h2 { margin-top: clamp(25px, 3vw, 38px); font-size: 23px; }
.rally-link { display: inline-block; padding: 10px 0; margin-top: 4px; font-weight: 650; }
.rally-season {
  padding: clamp(24px, 3.2vw, 42px);
  border-radius: 16px;
  background: #284b42;
  color: #fff;
}
.rally-season h2 { font-size: clamp(30px, 3.2vw, 44px); }
.rally-season .rally-dates { margin-top: 7px; color: #ecf0e9; font-size: 17px; }
.rally-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 10px;
  padding-top: 20px;
}
.rally-price strong {
  font-size: clamp(46px, 4.7vw, 64px);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -.065em;
  color: #f4df9e;
}
.rally-price span { font-weight: 550; }
.rally-season .rally-format { margin-top: 16px; line-height: 1.53; color: #edf0eb; }
.rally-registration { margin-top: 19px; }
.rally-season .rally-registration a {
  display: inline-block;
  border-radius: 8px;
  padding: 11px 17px;
  background: #f3e2ad;
  color: #213f36;
  font-weight: 700;
  text-decoration: none;
}
.rally-season .rally-registration a:hover { background: #fff1c7; text-decoration: underline; }
.rally-shortcuts {
  display: flex;
  flex-wrap: wrap;
  column-gap: 16px;
  padding-top: 12px;
  margin-top: 19px;
  border-top: 1px solid #708a7f;
}
.rally-season .rally-shortcuts a { padding: 4px 0; color: #f6f4e9; font-size: 14px; }
.rally-season a:focus-visible { outline-color: #fff; }
.rally-rules, .rally-resources {
  padding-top: clamp(25px, 3vw, 38px);
  margin-top: clamp(34px, 5vw, 65px);
  border-top: 1px solid #ccd4c9;
}
.rally-rule-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
  margin: 24px 0 8px;
}
.rally-rule-grid p { margin-top: 9px; color: #506258; }
.rally-rules .rally-link + .rally-link { margin-left: 24px; }
.rally-awards {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(24px, 5vw, 70px);
  margin-top: clamp(28px, 4vw, 52px);
  padding: clamp(25px, 3.8vw, 48px);
  background: #edede3;
  border-radius: 16px;
}
.rally-awards-summary > p { margin-top: 14px; }
.rally-awards-summary .rally-announcement { margin-top: 24px; }
.rally-announcement strong { font-size: 22px; }
.rally-awards-summary .rally-giving {
  font-size: 15px;
  padding-top: 14px;
  margin-top: 20px;
  border-top: 1px solid #c5cdc1;
  color: #506258;
}
.rally-award-list > div {
  padding: 11px 0;
  border-top: 1px solid #c5cdc1;
}
.rally-award-list > div:first-child { padding-top: 0; border: 0; }
.rally-award-list > div:last-child { padding-bottom: 0; }
.rally-award-list dt { color: #284b42; font-weight: 680; }
.rally-award-list dd { color: #506258; }
.rally-downloads {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 20px;
}
.rally-downloads a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px 18px;
  padding: 15px 18px;
  border-radius: 8px;
  border: 1px solid #bfcac1;
  font-weight: 650;
  text-decoration: none;
}
.rally-downloads a:hover { background: #f0f1e9; }
.rally-downloads a span:first-child { text-decoration: underline; }
.rally-downloads a span:last-child { flex: none; color: #506258; font-size: 13px; font-weight: 500; }
.rally-resources .rally-member-note { margin-top: 22px; max-width: 79ch; color: #506258; }
@media (max-width: 760px) {
  .rally-intro, .rally-rule-grid, .rally-awards, .rally-downloads { grid-template-columns: minmax(0, 1fr); }
  .rally-rule-grid { gap: 21px; }
  .rally-downloads { gap: 10px; }
  .rally-rules .rally-link { display: block; width: fit-content; }
  .rally-rules .rally-link + .rally-link { margin-left: 0; }
  .rally-award-list > div:first-child { border-top: 1px solid #c5cdc1; padding-top: 11px; }
}
@media (max-width: 390px) {
  .rally-downloads a { align-items: start; flex-direction: column; gap: 0; }
}
