/*
Theme Name: Buxton Athletic Club
Theme URI: https://buxtonac.org.uk
Author: Buxton Athletic Club
Description: Native Gutenberg rebuild of the Buxton Athletic Club website.
Version: 2.2.4
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: buxton-ac
*/

/*
 * Buxton Athletic Club — global styles
 *
 * Design tokens and the shared type system live at the top of this file.
 * Components follow in page order; route-specific additions are labelled.
 * Responsive adjustments stay beside the component they modify where possible.
 */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600&display=swap');

:root {
  --ink: #181530;
  --green: #272247;
  --deep: #181530;
  --yellow: #dcedf5;
  --cream: #f5f7f8;
  --paper: #ffffff;
  --line: rgba(24,21,48,.18);
  --muted: #69717d;
  --font-display: 'DM Sans', sans-serif;
  --font-body: 'Manrope', sans-serif;
  --text-xs: 11px;
  --text-sm: 12px;
  --text-nav: 13px;
  --text-label: 14px;
  --text-compact: 16px;
  --text-copy-small: 17px;
  --text-copy: 18px;
  --text-copy-large: 19px;
  --text-lead: 20px;
  --leading-lead: 1.55;
  --leading-copy: 1.6;
  --leading-body: 1.65;
  --leading-roomy: 1.7;
  --tracking-display: -.055em;
  --tracking-hero: -.06em;
  --tracking-label: .1em;
  --tracking-eyebrow: .15em;
}

/* Global type system */

h1,
h2,
h3,
h4,
h5,
h6,
.desktop-nav,
.nav-cta,
.button,
.eyebrow,
.hero-copy h1,
.page-hero h1,
.text-link,
.arrow-link,
.intro-grid h2,
.split-copy h2,
.section-heading h2,
.membership h2,
.contact-sidebar h2,
.pathway-card h3,
blockquote,
.kit h2,
.cta-band h2,
.safety h2,
.member-note h2,
.page-hero .hero-title-prefix,
.page-hero .hero-title,
.people-grid .person-avatar span,
.races-heading h2,
.race-story h2,
.race-card h3,
.race-hero-copy h1,
.race-info h3,
.race-dedication h2,
.gallery-heading h2,
.member-resource h2,
.records-group-title h2,
.record-table h3,
.record-rules h2,
.join-heading h2,
.joining-note h2,
.home-hero .hero-copy h2,
.mobile-menu nav>a:not(.mobile-member-link),
.mobile-member-link,
.senior-gallery-heading h2,
.carnival-results-heading h2,
.carnival-results-list strong,
.report-hero-copy h1,
.report-intro h2,
.report-thanks h2,
.report-results h2,
.report-foundation h2,
.report-stats strong,
.report-podiums h3,
.report-sponsors strong,
.report-blog-hero h1,
.report-blog-post header h2,
.brand,
.calendar-hero h1,
.calendar-month>h2,
.calendar-event time,
.calendar-event h3,
.calendar-empty h2,
.news-article h1,
.hero-subnav>p,
.hero-subnav a {
  font-family: var(--font-display);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--font-body);
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

/* Site header and navigation */

.site-header {
  height: 92px;
  display: flex;
  align-items: center;
  padding: 0 4vw;
  background: var(--cream);
  position: relative;
  z-index: 10;
  border-bottom: 1px solid var(--line);
}

.brand img {
  width: 76px;
  height: 76px;
}

.desktop-nav {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 32px;
  font-size: var(--text-label);
  font-weight: 600;
}

.desktop-nav>a:not(.nav-cta):hover {
  opacity: .55;
}

.nav-cta,
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 26px;
  padding: 14px 20px;
  border-radius: 2px;
  font-weight: 700;
}

.nav-cta {
  background: var(--green);
  color: white;
  margin-left: 8px;
}

.nav-cta span,
.button span {
  font-size: var(--text-copy);
}

.mobile-menu {
  display: none;
  margin-left: auto;
}

.mobile-menu summary {
  font-weight: 700;
}

.mobile-menu nav {
  position: absolute;
  top: 92px;
  left: 0;
  right: 0;
  background: var(--cream);
  padding: 22px 5vw;
  display: grid;
  gap: 15px;
}

/* Homepage hero */

.home-hero {
  height: calc(100vh - 92px);
  min-height: 660px;
  position: relative;
  color: white;
  overflow: hidden;
}

.hero-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
}

.hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,rgba(24,21,48,.78) 0%,rgba(24,21,48,.35) 55%,rgba(24,21,48,.08) 100%),linear-gradient(0deg,rgba(24,21,48,.28),transparent 50%);
}

.hero-copy {
  position: absolute;
  left: 6vw;
  top: 50%;
  transform: translateY(-50%);
  max-width: 780px;
}

.eyebrow {
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: var(--text-sm);
  font-weight: 700;
  margin: 0 0 22px;
}

.eyebrow.green {
  color: #6d7f96;
}

.hero-copy h1,
.page-hero h1 {
  font-size: clamp(64px,8vw,126px);
  letter-spacing: -.065em;
  line-height: .87;
  margin: 0;
  font-weight: 600;
}

.hero-copy>p:not(.eyebrow) {
  font-size: var(--text-lead);
  line-height: var(--leading-lead);
  max-width: 560px;
  margin: 32px 0;
}

.button-row {
  display: flex;
  align-items: center;
  gap: 30px;
}

.button.yellow {
  background: var(--yellow);
  color: var(--ink);
}

.button.light {
  background: var(--cream);
  color: var(--ink);
}

.button.dark {
  background: var(--deep);
  color: white;
  border: 0;
}

.text-link,
.arrow-link {
  font-weight: 700;
}

.text-link span,
.arrow-link span {
  margin-left: 18px;
}

.hero-note {
  position: absolute;
  right: 5vw;
  bottom: 42px;
  display: grid;
  gap: 5px;
  text-align: right;
}

.hero-note strong {
  font-size: var(--text-lead);
}

.hero-note span {
  font-size: var(--text-sm);
  text-transform: uppercase;
  letter-spacing: var(--tracking-label);
}

.intro-grid,
.split-copy {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 9vw;
  padding: 130px 7vw;
}

.intro-grid h2,
.split-copy h2,
.section-heading h2,
.membership h2,
.contact-sidebar h2 {
  font-size: clamp(44px,5vw,76px);
  line-height: .95;
  letter-spacing: var(--tracking-display);
  margin: 0;
}

.large-copy {
  font-size: clamp(24px,2.5vw,36px);
  line-height: 1.35;
  margin: 0 0 45px;
}

.intro-grid .large-copy {
  font-size: var(--text-copy);
  line-height: var(--leading-body);
}

.arrow-link {
  border-bottom: 1px solid var(--ink);
  padding-bottom: 8px;
}

/* Senior and junior pathways */

.pathways {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.pathway-card {
  padding: 6vw;
  color: white;
}

.pathway-card.senior {
  background: #24203f;
}

.pathway-card.junior {
  background: #dcedf5;
  color: var(--ink);
}

.card-image {
  height: 410px;
  overflow: hidden;
  position: relative;
  margin-bottom: 40px;
}

.card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.card-image span {
  position: absolute;
  right: 18px;
  top: 18px;
  background: var(--cream);
  color: var(--ink);
  padding: 10px 14px;
  font-weight: 700;
}

.pathway-card h3 {
  font-size: clamp(42px,5vw,72px);
  line-height: .95;
  letter-spacing: -.05em;
  margin: 0 0 25px;
}

.pathway-card p:not(.eyebrow) {
  font-size: var(--text-copy-small);
  line-height: var(--leading-copy);
  max-width: 520px;
}

.pathway-card a {
  display: inline-block;
  margin-top: 18px;
  border-bottom: 1px solid currentColor;
  padding-bottom: 8px;
  font-weight: 700;
}

/* Training summary */

.training-strip {
  background: var(--paper);
  padding: 80px 6vw;
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr auto;
  gap: 40px;
  align-items: center;
}

.training-strip h2 {
  font-size: 34px;
  margin: 0;
}

.session {
  border-left: 1px solid var(--line);
  padding-left: 28px;
  display: flex;
  gap: 22px;
}

.session>span {
  font-weight: 700;
  color: #6d7f96;
}

.session div {
  display: grid;
  gap: 7px;
}

.session small {
  color: var(--muted);
}

.circle-link {
  width: 54px;
  height: 54px;
  border: 1px solid var(--ink);
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 22px;
}

/* Image quote */

.quote-block {
  height: 650px;
  position: relative;
  overflow: hidden;
}

.quote-block img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.quote-block:after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(24,21,48,.4);
}

blockquote {
  position: absolute;
  z-index: 1;
  left: 8vw;
  bottom: 80px;
  color: white;
  font-size: clamp(38px,5.5vw,82px);
  line-height: 1.02;
  letter-spacing: -.05em;
  max-width: 1000px;
  margin: 0;
}

/* Internal-page heroes */

.page-hero {
  padding: 110px 7vw 90px;
  background: var(--deep);
  color: white;
  min-height: 520px;
  display: flex;
  align-items: end;
}

.page-hero>div {
  max-width: 1000px;
}

.page-hero .lead {
  font-size: var(--text-lead);
  line-height: var(--leading-lead);
  max-width: 660px;
  margin: 35px 0 0;
}

.page-hero.with-image {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 6vw;
}

.page-hero.with-image img {
  height: 400px;
  width: 100%;
  object-fit: cover;
}

.split-copy {
  background: var(--paper);
}

.split-copy>div:last-child {
  font-size: var(--text-lead);
  line-height: var(--leading-roomy);
}

.split-copy>div:last-child p:first-child {
  margin-top: 0;
}

.what-we-do,
.schedule,
.downloads {
  padding: 110px 7vw;
  background: var(--green);
  color: white;
}

.activity-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  margin-top: 50px;
}

.activity-grid article {
  border-top: 1px solid rgba(255,255,255,.35);
  padding: 28px 28px 0 0;
}

.activity-grid article+article {
  border-left: 1px solid rgba(255,255,255,.25);
  padding-left: 28px;
}

.activity-grid span {
  opacity: .6;
}

.activity-grid h3 {
  font-size: 23px;
  margin: 45px 0 12px;
}

.activity-grid p {
  line-height: var(--leading-copy);
  opacity: .8;
}

/* Committee and people lists */

.committee {
  padding: 120px 7vw;
}

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

.section-heading>p {
  max-width: 380px;
  line-height: var(--leading-copy);
}

.people-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  border-top: 1px solid var(--line);
}

.people-grid div {
  display: grid;
  gap: 6px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}

.people-grid span {
  color: var(--muted);
  font-size: var(--text-label);
}

/* Club kit */

.kit {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--yellow);
}

.kit>div {
  padding: 9vw 7vw;
}

.kit h2 {
  font-size: clamp(52px,7vw,100px);
  line-height: .86;
  letter-spacing: var(--tracking-hero);
  margin: 0 0 30px;
}

.kit p:not(.eyebrow) {
  line-height: var(--leading-body);
  max-width: 520px;
}

.kit-visual {
  display: grid;
  place-items: center;
  background: #d5e8f1;
}

.kit-visual img {
  width: 300px;
}

.kit-visual span {
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  font-size: var(--text-sm);
}

/* Calls to action */

.cta-band {
  background: var(--deep);
  color: white;
  padding: 80px 7vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

.cta-band h2 {
  font-size: clamp(40px,5vw,70px);
  letter-spacing: -.05em;
  line-height: 1;
  margin: 0;
}

.cta-band p:not(.eyebrow) {
  max-width: 600px;
  opacity: .8;
}

.schedule {
  background: var(--green);
}

.schedule>.eyebrow {
  margin-bottom: 40px;
}

.schedule-row {
  display: grid;
  grid-template-columns: 280px 1fr;
  border-top: 1px solid rgba(255,255,255,.3);
  padding: 34px 0;
}

.schedule-row>div:first-child {
  display: flex;
  gap: 50px;
  align-items: baseline;
}

.schedule-row span {
  font-size: var(--text-sm);
  letter-spacing: var(--tracking-eyebrow);
}

.schedule-row strong {
  font-size: 24px;
}

.schedule-row h3 {
  font-size: 28px;
  margin: 0 0 12px;
}

.schedule-row p {
  margin: 0;
  max-width: 700px;
  line-height: var(--leading-copy);
  opacity: .8;
}

.caveat {
  font-size: var(--text-nav);
  opacity: .65;
  margin: 25px 0 0;
}

/* Membership and pricing */

.membership {
  padding: 110px 7vw;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10vw;
  background: var(--paper);
}

.membership p:not(.eyebrow) {
  line-height: var(--leading-body);
  max-width: 500px;
  margin-bottom: 32px;
}

.price-list div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding: 26px 0;
}

.price-list strong {
  font-size: 32px;
}

.safety {
  padding: 100px 7vw;
  background: var(--yellow);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9vw;
}

.safety h2 {
  font-size: clamp(44px,5vw,74px);
  line-height: .95;
  letter-spacing: -.05em;
  margin: 0;
}

.safety>div:last-child {
  font-size: var(--text-copy-large);
  line-height: var(--leading-roomy);
}

.downloads {
  background: var(--paper);
  color: var(--ink);
}

.download-list {
  border-top: 1px solid var(--line);
}

.download-list a {
  display: grid;
  grid-template-columns: 70px 1fr 80px 30px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}

.download-list a:hover {
  background: rgba(24,21,48,.04);
}

.download-list span,
.download-list small {
  color: var(--muted);
}

.member-note {
  padding: 80px 7vw;
  background: var(--yellow);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.member-note h2 {
  font-size: 42px;
  margin: 0;
}

/* Contact page and forms */

.contact-layout {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 10vw;
  padding: 110px 7vw;
  background: var(--paper);
}

.contact-sidebar>p:not(.eyebrow) {
  line-height: var(--leading-copy);
}

.contact-sidebar>div {
  display: grid;
  gap: 5px;
  margin-top: 35px;
}

.contact-sidebar span {
  color: var(--muted);
}

form {
  display: grid;
  gap: 25px;
}

label {
  display: grid;
  gap: 9px;
  font-weight: 700;
  font-size: var(--text-label);
}

input,
select,
textarea {
  font: inherit;
  padding: 15px 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  outline: none;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--green);
}

textarea {
  border: 1px solid var(--line);
  padding: 15px;
  resize: vertical;
}

form .button {
  justify-self: start;
  cursor: pointer;
}

form small {
  color: var(--muted);
}

/* Site footer */

footer {
  background: #100e22;
  color: white;
  padding: 70px 6vw 25px;
}

.footer-top {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 60px;
}

.footer-top img {
  width: 100px;
  filter: brightness(0) invert(1);
}

.footer-top>div {
  display: grid;
  align-content: start;
  gap: 10px;
}

.footer-top h3 {
  font-size: var(--text-nav);
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  opacity: .6;
}

.footer-top a {
  font-size: var(--text-label);
}

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.15);
  margin-top: 60px;
  padding-top: 20px;
  display: flex;
  justify-content: space-between;
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-label);
  opacity: .55;
}

@media (max-width:900px) {
  .desktop-nav {
    display: none;
  }

  .mobile-menu {
    display: block;
  }

  .site-header {
    height: 78px;
  }

  .brand img {
    width: 64px;
    height: 64px;
  }

  .home-hero {
    height: 760px;
    min-height: 0;
  }

  .hero-copy {
    left: 7vw;
    right: 7vw;
  }

  .hero-copy h1 {
    font-size: 64px;
  }

  .hero-note {
    display: none;
  }

  .intro-grid,
  .split-copy,
  .page-hero.with-image,
  .membership,
  .safety,
  .contact-layout {
    grid-template-columns: 1fr;
  }

  .intro-grid,
  .split-copy {
    padding: 85px 7vw;
    gap: 45px;
  }

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

  .training-strip {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .session {
    border-left: 0;
    border-top: 1px solid var(--line);
    padding: 22px 0 0;
  }

  .page-hero {
    padding: 80px 7vw;
  }

  .page-hero h1 {
    font-size: 62px;
  }

  .page-hero.with-image img {
    height: 300px;
  }

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

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

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

  .kit-visual {
    min-height: 500px;
  }

  .schedule-row {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .section-heading {
    display: block;
  }

  .member-note,
  .cta-band {
    align-items: flex-start;
    flex-direction: column;
  }

  .footer-top {
    grid-template-columns: 1fr 1fr;
  }

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

@media (max-width:560px) {
  .hero-copy h1 {
    font-size: 51px;
  }

  .hero-copy>p:not(.eyebrow) {
    font-size: var(--text-copy-small);
  }

  .button-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .intro-grid h2,
  .split-copy h2 {
    font-size: 45px;
  }

  .large-copy {
    font-size: 22px;
  }

  .pathway-card {
    padding: 70px 7vw;
  }

  .card-image {
    height: 320px;
  }

  .training-strip {
    padding: 65px 7vw;
  }

  .quote-block {
    height: 520px;
  }

  .page-hero h1 {
    font-size: 48px;
  }

  .page-hero.with-image img {
    height: 240px;
  }

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

  .activity-grid article+article {
    border-left: 0;
    padding-left: 0;
  }

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

  .kit-visual {
    min-height: 400px;
  }

  .kit-visual img {
    width: 230px;
  }

  .schedule-row>div:first-child {
    justify-content: space-between;
  }

  .schedule-row>div:first-child strong {
    font-size: var(--text-sm);
  }

  .download-list a {
    grid-template-columns: 45px 1fr 25px;
  }

  .download-list small {
    display: none;
  }

  .footer-top {
    grid-template-columns: 1fr;
  }

  .footer-bottom {
    display: grid;
    gap: 12px;
  }
}

/* Native WordPress List block used for editable club documents */

.document-list {
  padding: 0;
  margin: 0;
  list-style: none;
  counter-reset: document;
}

.document-list>li {
  display: grid;
  grid-template-columns: 70px minmax(0,1fr) 30px;
  align-items: center;
  min-height: 68px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
  counter-increment: document;
  font-weight: 700;
}

.document-list>li::before {
  content: counter(document,decimal-leading-zero);
  color: var(--muted);
  font-weight: 400;
}

.document-list>li>a {
  display: grid;
  grid-template-columns: minmax(0,1fr) 80px;
  align-items: center;
  gap: 18px;
  min-width: 0;
}

.document-list>li>a::after {
  content: attr(data-file-type);
  color: var(--muted);
  font-size: var(--text-sm);
  font-weight: 400;
  text-transform: uppercase;
}

/* These fallbacks also show the common types inside the block editor. The
   front-end script derives any other extension automatically. */
.document-list>li>a[href*=".pdf" i]::after { content: 'PDF'; }
.document-list>li>a[href*=".doc" i]::after { content: 'DOC'; }
.document-list>li>a[href*=".docx" i]::after { content: 'DOCX'; }
.document-list>li>a[href*=".xls" i]::after { content: 'XLS'; }
.document-list>li>a[href*=".xlsx" i]::after { content: 'XLSX'; }
.document-list>li>a[href*=".csv" i]::after { content: 'CSV'; }
.document-list>li>a[href*=".zip" i]::after { content: 'ZIP'; }

.document-list>li:has(>a)::after {
  content: '→';
  justify-self: end;
  font-size: 20px;
  font-weight: 400;
}

.document-list>li:has(>a):hover {
  background: rgba(24,21,48,.04);
}

@media (max-width:560px) {
  .document-list>li {
    grid-template-columns: 45px minmax(0,1fr) 25px;
  }

  .document-list>li>a {
    grid-template-columns: minmax(0,1fr);
  }

  .document-list>li>a::after {
    display: none;
  }
}

/* Club kit */

.kit {
  min-height: 760px;
  overflow: hidden;
}

.kit-copy {
  position: relative;
  z-index: 3;
  align-self: center;
}

.kit-visual {
  position: relative;
  display: block;
  min-height: 760px;
  padding: 0;
  overflow: hidden;
  background: linear-gradient(145deg,#dcedf5 0%,#c9dfe9 100%);
}

.kit-visual img.vest-front {
  position: absolute;
  z-index: 2;
  width: min(72%,560px);
  max-width: none;
  left: 2%;
  bottom: -24%;
  filter: drop-shadow(0 28px 30px rgba(24,21,48,.18));
}

.kit-visual img.vest-back {
  position: absolute;
  z-index: 1;
  width: min(43%,330px);
  max-width: none;
  right: 5%;
  top: 7%;
  filter: drop-shadow(0 18px 22px rgba(24,21,48,.14));
}

.kit-visual span {
  position: absolute;
  z-index: 3;
  right: 6%;
  bottom: 6%;
  text-align: right;
}

@media (max-width:900px) {
  .kit {
    min-height: 0;
  }

  .kit-visual {
    min-height: 650px;
  }

  .kit-visual img.vest-front {
    width: min(68%,520px);
    left: 4%;
    bottom: -25%;
  }

  .kit-visual img.vest-back {
    width: min(38%,290px);
    right: 7%;
    top: 8%;
  }
}

@media (max-width:560px) {
  .kit-visual {
    min-height: 540px;
  }

  .kit-visual img.vest-front {
    width: 76%;
    left: -3%;
    bottom: -22%;
  }

  .kit-visual img.vest-back {
    width: 43%;
    right: 3%;
    top: 7%;
  }

  .kit-visual span {
    right: 5%;
    bottom: 5%;
    max-width: 120px;
    line-height: 1.5;
  }
}

.page-hero .hero-title-prefix {
  display: block;
  color: #fff;
  font-size: 5vw;
  line-height: .92;
  letter-spacing: var(--tracking-display);
  margin: 0 0 .18em;
}

.page-hero .hero-title {
  color: var(--yellow);
  font-size: clamp(64px,8vw,126px);
  font-weight: 600;
  line-height: .87;
  letter-spacing: -.065em;
  margin: 0;
}

@media (max-width:900px) {
  .page-hero .hero-title-prefix {
    font-size: 5vw;
  }

  .page-hero .hero-title {
    font-size: 62px;
  }
}

@media (max-width:560px) {
  .page-hero .hero-title-prefix {
    font-size: 5vw;
  }

  .page-hero .hero-title {
    font-size: 48px;
  }
}

.people-grid>.person {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 0;
}

.people-grid .person-avatar {
  width: 54px;
  height: 54px;
  min-width: 54px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  overflow: hidden;
  background: var(--yellow);
  display: grid;
  place-items: center;
}

.people-grid .person-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.people-grid .person-avatar span {
  color: var(--ink);
  font-size: var(--text-nav);
  font-weight: 700;
  letter-spacing: .04em;
}

.people-grid .person-copy {
  display: grid;
  gap: 5px;
  padding: 0;
  border: 0;
}

.additional-committee {
  margin: 32px 0 0;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  color: var(--muted);
}

.additional-committee strong {
  color: var(--ink);
}

.track-note {
  margin: 28px 0 0;
  max-width: 760px;
  font-size: var(--text-compact);
  line-height: var(--leading-body);
  color: rgba(255,255,255,.86);
}

.home-races {
  padding: 110px 7vw;
  background: var(--paper);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7vw;
}

.races-heading h2,
.race-story h2 {
  font-size: clamp(48px,6vw,88px);
  line-height: .9;
  letter-spacing: var(--tracking-display);
  margin: 0;
}

.races-heading>p:last-child {
  font-size: var(--text-copy);
  line-height: var(--leading-body);
  max-width: 440px;
  margin-top: 30px;
}

.race-card-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}

.race-card {
  min-height: 390px;
  padding: 8px 30px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  color: var(--ink);
  background: transparent;
  transition: transform .25s ease;
}

.race-card:first-child {
  padding-left: 0;
  padding-right: 38px;
  border-right: 1px solid var(--line);
}

.race-card:last-child {
  padding-right: 0;
  padding-left: 38px;
}

.race-card:hover {
  transform: translateY(-6px);
}

.race-card.half,
.race-card.carnival {
  background: transparent;
  color: var(--ink);
}

.race-date {
  font-size: var(--text-sm);
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.race-logo {
  height: 130px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 6px 0;
}

.race-logo img {
  display: block;
  max-width: 100%;
  max-height: 118px;
}

.race-card.half .race-logo img {
  filter: none;
}

.race-card.carnival .race-logo img {
  max-width: 72%;
  max-height: 92px;
}

.race-card h3 {
  font-size: 34px;
  line-height: 1;
  margin: 0 0 12px;
  letter-spacing: -.04em;
}

.race-card p {
  line-height: var(--leading-lead);
  opacity: .76;
}

.race-link {
  display: block;
  margin-top: 20px;
  font-size: var(--text-nav);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-label);
}

.race-hero {
  min-height: 680px;
  padding: 100px 7vw;
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  align-items: center;
  gap: 7vw;
  color: white;
  background: var(--deep);
  overflow: hidden;
}

.race-hero-copy h1 {
  font-size: clamp(72px,9vw,145px);
  line-height: .8;
  letter-spacing: -.07em;
  margin: 20px 0 30px;
}

.race-hero-copy>p:not(.eyebrow) {
  font-size: var(--text-lead);
  line-height: var(--leading-lead);
  max-width: 600px;
  margin-bottom: 35px;
}

.race-hero-mark {
  height: 480px;
  display: grid;
  place-items: center;
  background: var(--yellow);
  transform: rotate(3deg);
  padding: 55px;
}

.race-hero-mark img {
  max-width: 100%;
  max-height: 100%;
}

.half-hero .race-hero-mark img {
  width: 100%;
}

.carnival-hero .race-hero-mark {
  background: var(--yellow);
}

.race-facts {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  padding: 0 7vw;
  background: var(--green);
  color: white;
}

.race-facts div {
  display: grid;
  gap: 10px;
  padding: 32px;
  border-left: 1px solid rgba(255,255,255,.25);
}

.race-facts div:last-child {
  border-right: 1px solid rgba(255,255,255,.25);
}

.race-facts span {
  text-transform: uppercase;
  font-size: var(--text-xs);
  letter-spacing: .14em;
  opacity: .7;
}

.race-facts strong {
  font-size: var(--text-copy-large);
}

.race-story {
  padding: 110px 7vw;
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 9vw;
  background: var(--paper);
}

.race-story>div:last-child>p:not(.large-copy) {
  font-size: var(--text-copy-small);
  line-height: var(--leading-roomy);
  color: var(--muted);
}

.race-info {
  padding: 90px 7vw;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 1px;
  background: var(--line);
}

.race-info article {
  background: white;
  padding: 48px;
}

.race-info article>span {
  color: var(--green);
  font-size: var(--text-sm);
  letter-spacing: var(--tracking-eyebrow);
}

.race-info h3 {
  font-size: 30px;
  letter-spacing: -.04em;
  margin: 35px 0 15px;
}

.race-info p {
  line-height: var(--leading-body);
  color: var(--muted);
}

.race-dedication {
  padding: 100px 7vw;
  background: var(--yellow);
}

.race-dedication h2 {
  font-size: clamp(48px,6vw,88px);
  letter-spacing: var(--tracking-display);
  line-height: .95;
  margin: 0 0 30px;
}

.race-dedication>p:last-child {
  max-width: 800px;
  font-size: var(--text-copy-large);
  line-height: var(--leading-roomy);
}

@media (max-width:900px) {
  .home-races,
  .race-hero,
  .race-story {
    grid-template-columns: 1fr;
  }

  .race-card-grid {
    margin-top: 20px;
  }

  .race-facts {
    grid-template-columns: 1fr 1fr;
  }

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

  .race-hero-mark {
    height: 340px;
  }

  .race-info article {
    padding: 38px;
  }
}

@media (max-width:560px) {
  .home-races {
    padding: 80px 7vw;
  }

  .race-card-grid {
    grid-template-columns: 1fr;
  }

  .race-card {
    min-height: 380px;
    padding: 28px 0;
  }

  .race-card:first-child {
    padding-left: 0;
    padding-right: 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .race-card:last-child {
    padding-left: 0;
    padding-right: 0;
  }

  .race-hero {
    padding: 80px 7vw;
  }

  .race-hero-copy h1 {
    font-size: 64px;
  }

  .race-hero-mark {
    height: 260px;
    padding: 35px;
  }

  .race-facts {
    grid-template-columns: 1fr;
  }

  .race-facts div {
    border-left: 0;
    border-bottom: 1px solid rgba(255,255,255,.25);
    padding: 24px 7vw;
  }

  .race-facts div:last-child {
    border-right: 0;
  }

  .race-story {
    padding: 80px 7vw;
  }

  .race-info {
    padding: 1px 0;
  }

  .race-dedication {
    padding: 80px 7vw;
  }
}

.race-gallery {
  padding: 110px 7vw;
  background: #eef1f2;
}

.gallery-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 55px;
}

.gallery-heading h2 {
  font-size: clamp(48px,6vw,88px);
  line-height: .9;
  letter-spacing: var(--tracking-display);
  margin: 0;
  text-align: right;
}

.masonry-gallery {
  display: grid;
  grid-template-columns: repeat(12,1fr);
  grid-auto-rows: 110px;
  gap: 16px;
}

.masonry-gallery figure {
  margin: 0;
  overflow: hidden;
  background: #d9dcde;
}

.masonry-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}

.masonry-gallery figure:hover img {
  transform: scale(1.035);
}

.gallery-tall {
  grid-column: span 5;
  grid-row: span 5;
}

.gallery-wide {
  grid-column: span 7;
  grid-row: span 3;
}

.gallery-crop {
  grid-column: span 4;
  grid-row: span 3;
}

.gallery-square {
  grid-column: span 3;
  grid-row: span 3;
}

.gallery-crop.crop-left img {
  object-position: left center;
}

.gallery-crop.crop-right img {
  object-position: right center;
}

.carnival-gallery .gallery-tall {
  grid-column: span 4;
}

.carnival-gallery .gallery-wide {
  grid-column: span 8;
}

.carnival-gallery .gallery-crop {
  grid-column: span 5;
}

.carnival-gallery .gallery-square {
  grid-column: span 3;
}

@media (max-width:900px) {
  .gallery-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
  }

  .gallery-heading h2 {
    text-align: left;
  }

  .masonry-gallery {
    grid-auto-rows: 85px;
  }

  .masonry-gallery .gallery-tall {
    grid-column: span 6;
    grid-row: span 5;
  }

  .masonry-gallery .gallery-wide {
    grid-column: span 6;
    grid-row: span 3;
  }

  .masonry-gallery .gallery-crop {
    grid-column: span 6;
    grid-row: span 3;
  }

  .masonry-gallery .gallery-square {
    grid-column: span 6;
    grid-row: span 3;
  }
}

@media (max-width:560px) {
  .race-gallery {
    padding: 80px 7vw;
  }

  .masonry-gallery {
    display: block;
  }

  .masonry-gallery figure {
    height: 260px;
    margin-bottom: 12px;
  }

  .masonry-gallery figure:nth-child(2n) {
    height: 190px;
  }
}

.member-resources {
  display: block;
}

.member-resource {
  width: 100%;
  min-height: 520px;
  padding: 110px 7vw;
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  align-items: start;
  gap: 9vw;
}

.member-resource h2 {
  font-size: clamp(50px,6vw,86px);
  line-height: .88;
  letter-spacing: var(--tracking-hero);
  margin: 0;
}

.member-resource-copy {
  padding-top: 36px;
}

.member-resource-copy>p {
  font-size: var(--text-lead);
  line-height: var(--leading-roomy);
  max-width: 700px;
  margin: 0 0 34px;
}

.records-resource {
  background: var(--green);
  color: white;
}

.champs-resource {
  background: var(--yellow);
  color: var(--ink);
}

.member-resource .resource-note {
  font-size: 15px !important;
  opacity: .72;
  margin-bottom: 35px;
}

.button.dark {
  background: var(--deep);
  color: white;
}

.record-jumps {
  padding: 28px 7vw;
  background: var(--yellow);
  display: flex;
  gap: 35px;
  position: sticky;
  top: 0;
  z-index: 5;
}

.record-jumps a {
  display: inline-flex;
  align-items: center;
  gap: .35em;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: var(--text-sm);
  font-weight: 700;
}

.record-jumps a::after {
  content: "→";
  display: inline-block;
  font-size: 1.2em;
  line-height: 1;
  transition: transform .2s ease;
}

.record-jumps a:hover::after {
  transform: translateX(3px);
}

/* WordPress wraps these links in native Buttons blocks. Reset their visual
   chrome so the editor-friendly markup retains the compact jump-link design. */
.record-jumps .wp-block-buttons {
  display: flex;
  align-items: center;
  gap: 35px;
  flex-wrap: nowrap;
}

.record-jumps .wp-block-button {
  margin: 0;
}

.record-jumps .wp-block-button__link {
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
}

.records-group {
  padding: 100px 7vw;
  background: var(--paper);
}

.records-group-title {
  display: flex;
  align-items: end;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  padding-bottom: 32px;
  margin-bottom: 55px;
}

.records-group-title h2 {
  font-size: clamp(55px,7vw,100px);
  line-height: .85;
  letter-spacing: var(--tracking-hero);
  margin: 0;
}

.record-tables {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px 28px;
}

.record-table h3 {
  font-size: 34px;
  letter-spacing: -.04em;
  margin: 0 0 18px;
}

.table-scroll {
  overflow: visible;
}

.record-table table {
  border-collapse: collapse;
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  font-size: var(--text-nav);
}

.record-table th {
  text-align: left;
  text-transform: uppercase;
  letter-spacing: var(--tracking-label);
  font-size: 10px;
  color: var(--muted);
  padding: 12px 8px;
  border-bottom: 2px solid var(--ink);
}

.record-table td {
  padding: 13px 8px;
  border-bottom: 1px solid var(--line);
  overflow-wrap: anywhere;
}

.record-table th:nth-child(1) {
  width: 13%;
}

.record-table th:nth-child(2) {
  width: 15%;
}

.record-table th:nth-child(3) {
  width: 27%;
}

.record-table th:nth-child(4) {
  width: 30%;
}

.record-table th:nth-child(5) {
  width: 15%;
}

.record-table td:nth-child(2) {
  font-weight: 800;
  color: var(--green);
}

.record-table tr:hover td {
  background: white;
}

.record-mobile-list {
  display: none;
}

.record-rules {
  padding: 100px 7vw;
  background: var(--deep);
  color: white;
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 9vw;
}

.record-rules h2 {
  font-size: clamp(54px,7vw,100px);
  line-height: .85;
  letter-spacing: var(--tracking-hero);
  margin: 0;
}

.record-rules ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.record-rules li {
  padding: 22px 0;
  border-bottom: 1px solid rgba(255,255,255,.2);
  font-size: var(--text-copy-small);
  line-height: var(--leading-copy);
}

.record-rules li:before {
  content: '↗';
  color: var(--yellow);
  margin-right: 16px;
}

@media (max-width:900px) {
  .record-tables,
  .record-rules {
    grid-template-columns: 1fr;
  }

  .member-resource {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 85px 7vw;
  }

  .member-resource-copy {
    padding-top: 20px;
  }

  .record-jumps {
    position: static;
    overflow-x: auto;
    white-space: nowrap;
  }

  .records-group-title {
    align-items: flex-start;
    flex-direction: column;
    gap: 15px;
  }
}

@media (max-width:560px) {
  .member-resource {
    padding: 70px 7vw;
  }

  .member-resource-copy>p {
    font-size: var(--text-copy-small);
  }

  .records-group {
    padding: 75px 7vw;
  }

  .record-tables {
    gap: 45px;
  }

  .record-table .table-scroll {
    display: none;
  }

  .record-mobile-list {
    display: block;
    border-top: 2px solid var(--ink);
  }

  .record-mobile-list details {
    border-bottom: 1px solid var(--line);
  }

  .record-mobile-list summary {
    display: grid;
    grid-template-columns: 42px 60px minmax(0,1fr) 42px 18px;
    align-items: center;
    gap: 8px;
    padding: 15px 4px;
    cursor: pointer;
    list-style: none;
    font-size: var(--text-sm);
  }

  .record-mobile-list summary::-webkit-details-marker {
    display: none;
  }

  .record-mobile-list summary>span,
  .record-mobile-list summary>strong {
    color: var(--ink);
    font-size: var(--text-sm);
    font-weight: 700;
    line-height: 1.25;
  }

  .record-mobile-year {
    text-align: right;
  }

  .record-mobile-list summary i {
    width: 8px;
    height: 8px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    justify-self: end;
    transition: transform .2s ease;
  }

  .record-mobile-list details[open] summary i {
    transform: rotate(225deg) translate(-2px,-2px);
  }

  .record-mobile-event {
    padding: 2px 4px 16px 110px;
    color: var(--muted);
    font-size: var(--text-sm);
    line-height: 1.45;
  }

  .record-mobile-event strong {
    color: var(--ink);
  }

  .record-rules {
    padding: 75px 7vw;
  }

  .record-jumps {
    gap: 24px;
  }

  .record-jumps .wp-block-buttons {
    gap: 24px;
  }
}

.join-pathways-grid {
  padding: 20px 7vw 110px;
  background: var(--paper);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.join-card {
  padding: 70px 5vw;
  min-height: 720px;
  display: flex;
  flex-direction: column;
}

.join-heading h2 {
  font-size: clamp(48px,5vw,78px);
  line-height: .9;
  letter-spacing: var(--tracking-hero);
  margin: 0 0 48px;
}

.join-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1;
}

.join-copy>p {
  font-size: var(--text-copy-small);
  line-height: var(--leading-roomy);
  max-width: 650px;
  margin: 0 0 22px;
}

.join-copy>.button {
  margin-top: auto;
}

.senior-join {
  background: var(--green);
  color: white;
}

.junior-join {
  background: var(--yellow);
  color: var(--ink);
}

.join-fees {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  width: 100%;
  margin: 22px 0 35px;
}

.join-fees div {
  display: grid;
  gap: 8px;
  padding: 18px 12px;
  border-top: 1px solid rgba(255,255,255,.35);
  border-bottom: 1px solid rgba(255,255,255,.35);
}

.join-fees div+div {
  border-left: 1px solid rgba(255,255,255,.25);
}

.junior-join .join-fees {
  margin-bottom: 18px;
}

.junior-join .join-fees div {
  border-top-color: rgba(24,21,48,.25);
  border-bottom-color: rgba(24,21,48,.25);
}

.junior-join .join-fees div+div {
  border-left-color: rgba(24,21,48,.2);
}

.join-fees span {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .08em;
  opacity: .7;
}

.join-fees strong {
  font-size: 30px;
}

.join-copy>.join-fee-note {
  font-size: var(--text-sm);
  line-height: var(--leading-lead);
  opacity: .72;
  margin-bottom: 30px;
}

.joining-note {
  padding: 100px 7vw 80px;
  background: var(--paper);
}

.joining-note h2 {
  font-size: clamp(48px,6vw,82px);
  letter-spacing: var(--tracking-display);
  line-height: .92;
  margin: 0;
}

.joining-note>p:not(.eyebrow) {
  font-size: var(--text-copy);
  line-height: var(--leading-body);
  max-width: 650px;
  margin: 30px 0;
}

@media (max-width:900px) {
  .join-pathways-grid {
    grid-template-columns: 1fr;
    padding-bottom: 85px;
  }

  .join-card {
    min-height: 0;
    padding: 65px 7vw;
  }

  .join-copy>.button {
    margin-top: 20px;
  }
}

@media (max-width:560px) {
  .join-pathways-grid {
    padding: 10px 0 70px;
    gap: 10px;
  }

  .join-fees {
    grid-template-columns: 1fr;
  }

  .join-fees div+div {
    border-left: 0;
    border-top: 0;
  }

  .joining-note {
    padding: 75px 7vw 65px;
  }
}

.half-hero .race-hero-mark {
  padding: 28px;
  transform: rotate(1deg);
}

.half-hero .race-hero-mark img {
  width: 100%;
  max-height: none;
}

@media (max-width:560px) {
  .half-hero .race-hero-mark {
    padding: 18px;
  }
}

.half-hero + .race-facts,
.carnival-hero + .race-facts {
  background: var(--yellow);
  color: var(--ink);
}

.half-hero + .race-facts div,
.carnival-hero + .race-facts div {
  border-color: rgba(24,21,48,.2);
}

.half-hero + .race-facts span,
.carnival-hero + .race-facts span {
  color: var(--ink);
  opacity: .62;
}

@media (max-width:560px) {
  .race-facts {
    padding: 0;
  }

  .half-hero + .race-facts div,
  .carnival-hero + .race-facts div {
    border-color: rgba(24,21,48,.2);
  }
}

.race-hero.half-hero {
  grid-template-columns: .9fr 1.1fr;
  gap: 3vw;
}

.half-hero .race-hero-mark {
  height: auto;
  min-height: 480px;
  padding: 0;
  background: transparent;
  transform: none;
  overflow: visible;
}

.half-hero .race-hero-mark img {
  width: 115%;
  max-width: none;
  max-height: none;
  transform: translateX(-5%);
}

@media (max-width:900px) {
  .race-hero.half-hero {
    grid-template-columns: 1fr;
    gap: 55px;
  }

  .half-hero .race-hero-mark {
    min-height: 0;
  }

  .half-hero .race-hero-mark img {
    width: 100%;
    transform: none;
  }
}

@media (max-width:560px) {
  .race-hero.half-hero {
    gap: 35px;
  }

  .half-hero .race-hero-mark {
    height: auto;
    padding: 0;
  }
}

.carnival-hero {
  position: relative;
  display: block;
  min-height: 720px;
  padding-top: 120px;
}

.carnival-hero .race-hero-copy {
  position: relative;
  z-index: 2;
  max-width: 900px;
}

.carnival-confetti {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}

.carnival-confetti span {
  position: absolute;
  top: -12%;
  display: block;
  background: #F3D108;
  border-radius: 1px;
  animation: carnival-fall linear infinite;
}

.carnival-confetti span:nth-child(3n) {
  background: #dcedf5;
}

.carnival-confetti span:nth-child(4n) {
  border-radius: 50%;
}

.race-dedication {
  background: #F3D108;
}

@keyframes carnival-fall {
  0% {
    transform: translate3d(0,-10vh,0) rotate(0deg);
  }

  45% {
    transform: translate3d(35px,55vh,0) rotate(320deg);
  }

  100% {
    transform: translate3d(-25px,125vh,0) rotate(720deg);
  }
}

@media (max-width:900px) {
  .carnival-hero {
    min-height: 680px;
    padding-top: 100px;
  }
}

@media (max-width:560px) {
  .carnival-hero {
    min-height: 620px;
    padding-top: 85px;
  }

  .carnival-confetti span:nth-child(2n) {
    display: none;
  }
}

@media (prefers-reduced-motion:reduce) {
  .carnival-confetti span {
    animation: none;
    top: var(--confetti-top,20%);
  }

  .carnival-confetti span:nth-child(3n) {
    top: 35%;
  }

  .carnival-confetti span:nth-child(4n) {
    top: 62%;
  }

  .carnival-confetti span:nth-child(5n) {
    top: 82%;
  }
}

.carnival-confetti span:nth-child(3n) {
  background: #F3D108;
}

.home-hero .hero-copy h2 {
  color: white;
  font-size: clamp(34px,5vw,76px);
  font-weight: 600;
  line-height: .92;
  letter-spacing: var(--tracking-display);
  margin: 0 0 .22em;
}

.home-hero .hero-copy h1 {
  color: var(--yellow);
}

@media (max-width:900px) {
  .home-hero .hero-copy h2 {
    font-size: 42px;
  }
}

@media (max-width:560px) {
  .home-hero .hero-copy h2 {
    font-size: 30px;
  }
}

@media (min-width:901px) {
  .race-hero.half-hero {
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: 3vw;
  }

  .half-hero .race-hero-mark {
    min-width: 0;
    max-width: 100%;
  }

  .half-hero .race-hero-mark img {
    width: 100%;
    max-width: 100%;
    transform: none;
  }
}

@media (max-width:900px) {
  .mobile-menu {
    position: relative;
    margin-left: auto;
  }

  .mobile-menu summary {
    position: relative;
    z-index: 22;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    cursor: pointer;
    list-style: none;
    -webkit-tap-highlight-color: transparent;
  }

  .mobile-menu summary::-webkit-details-marker {
    display: none;
  }

  .mobile-menu summary::marker {
    content: '';
  }

  .menu-icon {
    position: relative;
    width: 20px;
    height: 14px;
    display: block;
  }

  .menu-icon i {
    position: absolute;
    left: 0;
    width: 20px;
    height: 1.5px;
    background: var(--ink);
    border-radius: 2px;
    transition: transform .28s cubic-bezier(.4,0,.2,1),top .28s cubic-bezier(.4,0,.2,1);
  }

  .menu-icon i:first-child {
    top: 4px;
  }

  .menu-icon i:last-child {
    top: 10px;
  }

  .mobile-menu[open] .menu-icon i:first-child {
    top: 7px;
    transform: rotate(45deg);
  }

  .mobile-menu[open] .menu-icon i:last-child {
    top: 7px;
    transform: rotate(-45deg);
  }

  .mobile-menu nav {
    position: fixed;
    z-index: 20;
    inset: 78px 0 0;
    background: #fbfbfd;
    padding: 38px 8vw 55px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    overflow-y: auto;
    border-top: 1px solid rgba(24,21,48,.08);
    animation: mobile-nav-in .28s cubic-bezier(.4,0,.2,1);
  }

  .mobile-menu nav>a:not(.mobile-member-link) {
    width: 100%;
    padding: 9px 0;
    font-size: clamp(29px,7vw,42px);
    font-weight: 600;
    line-height: 1.12;
    letter-spacing: -.04em;
  }

  .mobile-menu nav>a:not(.mobile-member-link):hover {
    opacity: .55;
  }

  .mobile-member-link {
    display: inline-flex;
    align-items: center;
    gap: 24px;
    margin-top: 32px;
    padding: 15px 19px;
    background: var(--deep);
    color: white;
    font-size: var(--text-label);
    font-weight: 700;
    border-radius: 2px;
  }

  .mobile-member-link span {
    font-size: var(--text-copy);
  }

  @keyframes mobile-nav-in {
    from {
      opacity: 0;
      transform: translateY(-12px);
    }

    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

@media (prefers-reduced-motion:reduce) {
  .menu-icon i {
    transition: none;
  }

  .mobile-menu nav {
    animation: none;
  }
}

body.menu-open {
  overflow: hidden;
}

@media (max-width:900px) {
  .mobile-menu[open] nav>a {
    opacity: 0;
    animation: mobile-link-in .38s cubic-bezier(.2,.7,.2,1) forwards;
  }

  .mobile-menu[open] nav>a:nth-child(1) {
    animation-delay: .04s;
  }

  .mobile-menu[open] nav>a:nth-child(2) {
    animation-delay: .07s;
  }

  .mobile-menu[open] nav>a:nth-child(3) {
    animation-delay: .10s;
  }

  .mobile-menu[open] nav>a:nth-child(4) {
    animation-delay: .13s;
  }

  .mobile-menu[open] nav>a:nth-child(5) {
    animation-delay: .16s;
  }

  .mobile-menu[open] nav>a:nth-child(6) {
    animation-delay: .19s;
  }

  .mobile-menu[open] nav>a:nth-child(7) {
    animation-delay: .22s;
  }

  @keyframes mobile-link-in {
    from {
      opacity: 0;
      transform: translateY(-9px);
    }

    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

@media (prefers-reduced-motion:reduce) {
  .mobile-menu[open] nav>a {
    opacity: 1;
    animation: none;
  }
}

@media (max-width:560px) {
  .race-hero.half-hero {
    padding-bottom: 0;
  }

  .half-hero .race-hero-mark {
    width: calc(100% + 14vw);
    max-width: none;
    margin-left: -7vw;
    align-self: end;
  }

  .half-hero .race-hero-mark img {
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width:560px) {
  .page-hero.with-image {
    padding-bottom: 0;
    row-gap: 42px;
  }

  .page-hero.with-image img {
    width: calc(100% + 14vw);
    max-width: none;
    height: 280px;
    margin-left: -7vw;
    align-self: end;
  }
}

.senior-gallery {
  background: var(--deep);
  color: white;
  padding: 105px 0 88px;
  overflow: hidden;
}

.senior-gallery-heading {
  padding: 0 7vw 54px;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
}

.senior-gallery-heading h2 {
  font-size: clamp(52px,6.5vw,96px);
  font-weight: 600;
  line-height: .9;
  letter-spacing: var(--tracking-hero);
  margin: 0;
  color: var(--yellow);
}

.gallery-motion-control {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.08);
  color: white;
  cursor: pointer;
  font: 600 16px/1 'DM Sans',sans-serif;
  transition: background .2s ease,transform .2s ease;
}

.gallery-motion-control:hover {
  background: rgba(255,255,255,.17);
  transform: scale(1.04);
}

.gallery-motion-control:focus-visible {
  outline: 3px solid var(--yellow);
  outline-offset: 4px;
}

.senior-gallery-window {
  width: 100%;
  overflow: hidden;
  display: grid;
  gap: 18px;
}

.senior-gallery-track {
  display: flex;
  width: max-content;
  animation: senior-gallery-scroll 200s linear infinite;
  will-change: transform;
}

.senior-gallery-track.row-2 {
  animation-duration: 232s;
}

.senior-gallery-track.mobile-gallery-row {
  display: none;
}

.senior-gallery-set {
  display: flex;
  gap: 18px;
  padding-right: 18px;
}

.senior-gallery-set figure {
  width: clamp(240px,26vw,410px);
  height: clamp(155px,17vw,265px);
  margin: 0;
  overflow: hidden;
  border-radius: 12px;
  background: #25213f;
}

.senior-gallery-set img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.senior-gallery.is-paused .senior-gallery-track {
  animation-play-state: paused;
}

@keyframes senior-gallery-scroll {
  to {
    transform: translateX(-50%);
  }
}

@media (max-width:900px) {
  .senior-gallery {
    padding: 82px 0 70px;
  }

  .senior-gallery-heading {
    padding-bottom: 40px;
  }

  .senior-gallery-window {
    gap: 12px;
  }

  .senior-gallery-set {
    gap: 12px;
    padding-right: 12px;
  }

  .senior-gallery-set figure {
    width: 36vw;
    height: 24vw;
    border-radius: 10px;
  }

  .senior-gallery-track {
    animation-duration: 164s;
  }

  .senior-gallery-track.row-2 {
    animation-duration: 192s;
  }
}

@media (max-width:560px) {
  .senior-gallery {
    padding: 72px 0 58px;
  }

  .senior-gallery-heading {
    align-items: end;
    padding: 0 7vw 34px;
  }

  .senior-gallery-heading h2 {
    font-size: 48px;
  }

  .gallery-motion-control {
    width: 46px;
    height: 46px;
    flex-basis: 46px;
  }

  .senior-gallery-window {
    gap: 10px;
  }

  .senior-gallery-set {
    gap: 10px;
    padding-right: 10px;
  }

  .senior-gallery-set figure {
    width: 42vw;
    height: 29vw;
    border-radius: 8px;
  }

  .senior-gallery-track {
    animation-duration: 144s;
  }

  .senior-gallery-track.row-2 {
    animation-duration: 168s;
  }

  .senior-gallery-track.mobile-gallery-row {
    display: flex;
    animation-duration: 156s;
  }
}

@media (prefers-reduced-motion:reduce) {
  .senior-gallery-track {
    animation: none;
    transform: none;
  }

  .senior-gallery-window {
    overflow-x: auto;
    scroll-snap-type: x proximity;
  }

  .senior-gallery-set figure {
    scroll-snap-align: center;
  }

  .senior-gallery-set[aria-hidden="true"] {
    display: none;
  }

  .gallery-motion-control {
    display: none;
  }
}

/*Image-led page heroes: Our Club, Seniors and Juniors*/

.page-hero.with-image {
  position: relative;
  isolation: isolate;
  min-height: 650px;
  padding: 105px 0 85px 7vw;
  display: grid;
  grid-template-columns: minmax(0,48%) minmax(0,52%);
  gap: 0;
  align-items: end;
  overflow: hidden;
}

.page-hero.with-image .page-hero-copy {
  position: relative;
  z-index: 2;
  max-width: 900px;
  padding-right: 2.5vw;
}

.page-hero.with-image .page-hero-media {
  position: absolute;
  z-index: 1;
  inset: 0 0 0 42%;
  overflow: hidden;
}

/* Gutenberg wraps native Image blocks in a figure. Make that wrapper fill the
   media layer so the hero image keeps the same full-height crop as React. */
.page-hero.with-image .page-hero-media>.wp-block-image {
  width: 100%;
  height: 100%;
  margin: 0;
}

.page-hero.with-image .page-hero-media:before {
  content: '';
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg,rgba(24,21,48,1) 0%,rgba(24,21,48,.95) 12%,rgba(24,21,48,.82) 28%,rgba(24,21,48,.58) 48%,rgba(24,21,48,.3) 70%,rgba(24,21,48,.12) 88%,rgba(24,21,48,.05) 100%),linear-gradient(0deg,rgba(24,21,48,.42) 0%,rgba(24,21,48,.05) 55%,rgba(24,21,48,.05) 100%);
  pointer-events: none;
}

.page-hero.with-image .page-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.01);
}

/* WordPress adds its flex-layout utility to native Columns blocks. The people
   component is intentionally a wrapping three-column grid instead. */
.people-grid.wp-block-columns {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
}

.people-grid.wp-block-columns>.wp-block-column {
  min-width: 0;
}

@media (max-width:900px) {
  .people-grid.wp-block-columns {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

@media (max-width:560px) {
  .people-grid.wp-block-columns {
    grid-template-columns: minmax(0,1fr);
  }
}

@media (max-width:900px) {
  .page-hero.with-image {
    min-height: 0;
    padding: 80px 7vw 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  .page-hero.with-image .page-hero-copy {
    z-index: 2;
    width: 100%;
    max-width: none;
    padding: 0 0 52px;
  }

  .page-hero.with-image .page-hero-media {
    position: relative;
    z-index: 1;
    inset: auto;
    width: calc(100% + 14vw);
    height: 430px;
    margin-left: -7vw;
    overflow: hidden;
  }

  .page-hero.with-image .page-hero-media:before {
    background: linear-gradient(180deg,rgba(24,21,48,1) 0%,rgba(24,21,48,.92) 12%,rgba(24,21,48,.7) 28%,rgba(24,21,48,.42) 48%,rgba(24,21,48,.2) 68%,rgba(24,21,48,.09) 86%,rgba(24,21,48,.05) 100%);
  }

  .page-hero.with-image .page-hero-media img {
    height: 100%;
    width: 100%;
    object-fit: cover;
  }
}

@media (max-width:560px) {
  .page-hero.with-image {
    padding: 68px 7vw 0;
    row-gap: 0;
  }

  .page-hero.with-image .page-hero-copy {
    padding-bottom: 36px;
  }

  .page-hero.with-image .page-hero-media {
    height: 320px;
    margin-left: -7vw;
  }

  .page-hero.with-image .page-hero-media img {
    width: 100%;
    max-width: none;
    height: 100%;
    margin: 0;
  }

  .page-hero.with-image .page-hero-media:before {
    background: linear-gradient(180deg,rgba(24,21,48,1) 0%,rgba(24,21,48,.9) 13%,rgba(24,21,48,.65) 31%,rgba(24,21,48,.38) 51%,rgba(24,21,48,.17) 72%,rgba(24,21,48,.08) 89%,rgba(24,21,48,.05) 100%);
  }
}

/*Global heading scale — 80% of the original typographic sizes*/

.hero-copy h1 {
  font-size: clamp(51.2px,6.4vw,100.8px);
}

.intro-grid h2,
.split-copy h2,
.section-heading h2,
.membership h2,
.contact-sidebar h2 {
  font-size: clamp(35.2px,4vw,60.8px);
}

.training-strip h2 {
  font-size: 27.2px;
}

.kit h2 {
  font-size: clamp(41.6px,5.6vw,80px);
}

.cta-band h2 {
  font-size: clamp(32px,4vw,56px);
}

.safety h2 {
  font-size: clamp(35.2px,4vw,59.2px);
}

.member-note h2 {
  font-size: 33.6px;
}

.page-hero .hero-title-prefix {
  font-size: clamp(35.2px,4vw,60.8px);
}

.page-hero .hero-title {
  font-size: clamp(51.2px,6.4vw,100.8px);
}

.races-heading h2,
.race-story h2,
.race-dedication h2,
.gallery-heading h2 {
  font-size: clamp(38.4px,4.8vw,70.4px);
}

.race-hero-copy h1 {
  font-size: clamp(57.6px,7.2vw,116px);
}

.member-resource h2 {
  font-size: clamp(40px,4.8vw,68.8px);
}

.records-group-title h2 {
  font-size: clamp(44px,5.6vw,80px);
}

.record-rules h2 {
  font-size: clamp(43.2px,5.6vw,80px);
}

.join-heading h2 {
  font-size: clamp(38.4px,4vw,62.4px);
}

.joining-note h2 {
  font-size: clamp(38.4px,4.8vw,65.6px);
}

.home-hero .hero-copy h2 {
  font-size: clamp(27.2px,4vw,60.8px);
}

.senior-gallery-heading h2 {
  font-size: clamp(41.6px,5.2vw,76.8px);
}

@media (max-width:900px) {
  .hero-copy h1 {
    font-size: 51.2px;
  }

  .page-hero .hero-title {
    font-size: clamp(49.6px,7vw,56px);
  }

  .home-hero .hero-copy h2 {
    font-size: 33.6px;
  }
}

@media (max-width:560px) {
  .hero-copy h1 {
    font-size: 48px;
  }

  .intro-grid h2,
  .split-copy h2 {
    font-size: 36px;
  }

  .page-hero .hero-title {
    font-size: 48px;
  }

  .race-hero-copy h1 {
    font-size: 51.2px;
  }

  .home-hero .hero-copy h2 {
    font-size: 24px;
  }

  .senior-gallery-heading h2 {
    font-size: 38.4px;
  }
}

@media (min-width:901px) {
  .intro-grid>div:last-child {
    padding-top: 34px;
  }
}

/*Carnival 4 results archive*/

.carnival-results {
  padding: 105px 7vw;
  background: var(--paper);
}

.carnival-results-heading {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: end;
  gap: 9vw;
  margin-bottom: 58px;
}

.carnival-results-heading h2 {
  font-size: clamp(38.4px,4.8vw,70.4px);
  line-height: .9;
  letter-spacing: var(--tracking-display);
  margin: 0;
}

.carnival-results-heading>p {
  max-width: 500px;
  margin: 0;
  font-size: var(--text-copy);
  line-height: var(--leading-body);
  color: var(--muted);
}

.carnival-results-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 5vw;
  border-top: 1px solid var(--line);
}

.carnival-results-list a {
  display: grid;
  grid-template-columns: 54px 1fr 52px 24px;
  align-items: center;
  gap: 14px;
  padding: 23px 0;
  border-bottom: 1px solid var(--line);
  transition: background .2s ease,padding .2s ease;
}

.carnival-results-list a:hover {
  background: rgba(24,21,48,.035);
  padding-left: 10px;
  padding-right: 10px;
}

.carnival-results-list span,
.carnival-results-list small {
  color: var(--muted);
  font-size: var(--text-sm);
}

.carnival-results-list strong {
  font-size: var(--text-copy);
}

.carnival-results-list b {
  font-size: var(--text-copy);
  font-weight: 500;
  text-align: right;
}

@media (max-width:900px) {
  .carnival-results {
    padding: 82px 7vw;
  }

  .carnival-results-heading {
    grid-template-columns: 1fr;
    gap: 28px;
    margin-bottom: 45px;
  }
}

@media (max-width:560px) {
  .carnival-results {
    padding: 72px 7vw;
  }

  .carnival-results-list {
    grid-template-columns: 1fr;
  }

  .carnival-results-list a {
    grid-template-columns: 42px 1fr 24px;
  }

  .carnival-results-list small {
    display: none;
  }

  .carnival-results-heading>p {
    font-size: var(--text-compact);
  }
}

/*Carnival 4 race report*/

.race-story-actions {
  display: flex;
  align-items: center;
  gap: 34px;
  flex-wrap: wrap;
  margin-top: 30px;
}

.report-hero {
  height: 720px;
  position: relative;
  overflow: hidden;
  color: white;
}

.report-hero>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.report-hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,rgba(24,21,48,.9) 0%,rgba(24,21,48,.55) 53%,rgba(24,21,48,.12) 100%),linear-gradient(0deg,rgba(24,21,48,.45),transparent 60%);
}

.report-hero-copy {
  position: absolute;
  left: 7vw;
  bottom: 92px;
  max-width: 850px;
}

.report-hero-copy h1 {
  font-size: clamp(58px,7.2vw,116px);
  font-weight: 600;
  line-height: .84;
  letter-spacing: -.065em;
  margin: 0;
  color: var(--yellow);
}

.report-hero-copy>p:last-child {
  max-width: 600px;
  margin: 30px 0 0;
  font-size: var(--text-copy-large);
  line-height: var(--leading-copy);
}

.report-intro,
.report-thanks {
  padding: 110px 7vw;
  background: var(--paper);
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 9vw;
}

.report-intro h2,
.report-thanks h2,
.report-results h2,
.report-foundation h2 {
  font-size: clamp(38.4px,4.8vw,70.4px);
  line-height: .9;
  letter-spacing: var(--tracking-display);
  margin: 0;
}

.report-intro>div:last-child>p:not(.large-copy),
.report-thanks>div:last-child>p:not(.large-copy) {
  font-size: var(--text-copy-small);
  line-height: var(--leading-roomy);
  color: var(--muted);
}

.report-stats {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  background: var(--yellow);
  padding: 0 7vw;
}

.report-stats div {
  min-height: 190px;
  padding: 38px 30px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-left: 1px solid rgba(24,21,48,.18);
}

.report-stats div:last-child {
  border-right: 1px solid rgba(24,21,48,.18);
}

.report-stats strong {
  font-size: clamp(36px,4vw,64px);
  letter-spacing: -.05em;
}

.report-stats span {
  max-width: 190px;
  font-size: var(--text-sm);
  text-transform: uppercase;
  letter-spacing: .12em;
  line-height: 1.5;
}

.report-results {
  padding: 105px 7vw;
  background: var(--deep);
  color: white;
}

.report-results-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 60px;
}

.report-results-heading .eyebrow {
  position: absolute;
}

.report-results-heading .button {
  margin-left: auto;
}

.report-podiums {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6vw;
}

.report-podiums article {
  border-top: 1px solid rgba(255,255,255,.32);
}

.report-podiums h3 {
  font-size: 28px;
  margin: 28px 0;
}

.podium-row {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 22px 0;
  border-top: 1px solid rgba(255,255,255,.16);
}

.podium-row>span {
  color: var(--yellow);
  font-size: var(--text-sm);
}

.podium-row>div {
  display: grid;
  gap: 6px;
}

.podium-row small {
  opacity: .62;
}

.podium-row b {
  font-size: var(--text-lead);
}

.report-foundation {
  padding: 105px 7vw;
  background: #F3D108;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 9vw;
}

.report-foundation>div:last-child {
  font-size: var(--text-copy);
  line-height: 1.72;
}

.report-foundation>div:last-child p:first-child {
  margin-top: 0;
}

.report-sponsors {
  border-top: 1px solid var(--line);
  margin-top: 38px;
}

.report-sponsors>div {
  display: grid;
  grid-template-columns: 50px 1fr;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}

.report-sponsors span {
  color: var(--muted);
  font-size: var(--text-sm);
}

.report-sponsors strong {

}

.report-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: 560px;
  gap: 2px;
  background: var(--deep);
}

.report-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width:900px) {
  .report-hero {
    height: 650px;
  }

  .report-intro,
  .report-thanks,
  .report-foundation {
    grid-template-columns: 1fr;
    gap: 42px;
    padding: 84px 7vw;
  }

  .report-stats {
    grid-template-columns: 1fr 1fr;
  }

  .report-podiums {
    grid-template-columns: 1fr;
  }

  .report-results {
    padding: 84px 7vw;
  }

  .report-gallery {
    height: 420px;
  }
}

@media (max-width:560px) {
  .race-story-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 24px;
  }

  .report-hero {
    height: 610px;
  }

  .report-hero-copy {
    bottom: 58px;
  }

  .report-hero-copy h1 {
    font-size: 51px;
  }

  .report-hero-copy>p:last-child {
    font-size: var(--text-compact);
  }

  .report-intro,
  .report-thanks,
  .report-foundation,
  .report-results {
    padding: 72px 7vw;
  }

  .report-stats {
    grid-template-columns: 1fr;
  }

  .report-stats div {
    min-height: 145px;
    border-left: 0;
    border-bottom: 1px solid rgba(24,21,48,.18);
    padding: 28px 7vw;
  }

  .report-stats div:last-child {
    border-right: 0;
  }

  .report-results-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .report-results-heading .eyebrow {
    position: static;
  }

  .report-results-heading .button {
    margin-left: 0;
  }

  .report-gallery {
    height: auto;
    grid-template-columns: 1fr;
  }

  .report-gallery img {
    height: 310px;
  }
}

/*Simplified Carnival 4 race report*/

.report-blog-hero {
  min-height: 330px;
  padding: 90px 7vw 65px;
  background: var(--deep);
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.report-blog-hero h1 {
  font-size: clamp(52px,6.4vw,98px);
  font-weight: 600;
  line-height: .88;
  letter-spacing: var(--tracking-hero);
  margin: 0;
  color: var(--yellow);
}

.report-blog-post {
  padding: 105px 7vw 120px;
  background: var(--paper);
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 9vw;
}

.report-blog-post header h2 {
  font-size: clamp(38.4px,4.8vw,70.4px);
  line-height: .9;
  letter-spacing: var(--tracking-display);
  margin: 0;
}

.report-blog-copy {
  max-width: 780px;
}

.report-blog-copy>p {
  font-size: var(--text-copy);
  line-height: 1.75;
  margin: 0 0 30px;
}

.report-blog-copy>p:first-child {
  font-size: 23px;
  line-height: var(--leading-copy);
}

.report-sponsor-logos {
  display: grid;
  grid-template-columns: repeat(5,1fr);
  gap: 14px;
  margin: 48px 0;
}

.report-sponsor-logos a {
  height: 128px;
  padding: 18px;
  background: #f5f7f8;
  display: grid;
  place-items: center;
  transition: transform .2s ease,background .2s ease;
}

.report-sponsor-logos a:hover {
  transform: translateY(-4px);
  background: var(--yellow);
}

.report-sponsor-logos img {
  max-width: 100%;
  max-height: 92px;
  object-fit: contain;
}

@media (max-width:900px) {
  .report-blog-post {
    grid-template-columns: 1fr;
    gap: 44px;
    padding: 82px 7vw;
  }

  .report-sponsor-logos {
    grid-template-columns: repeat(3,1fr);
  }
}

@media (max-width:560px) {
  .report-blog-hero {
    min-height: 260px;
    padding: 70px 7vw 48px;
  }

  .report-blog-hero h1 {
    font-size: 48px;
  }

  .report-blog-post {
    padding: 70px 7vw 82px;
  }

  .report-blog-copy>p,
  .report-blog-copy>p:first-child {
    font-size: var(--text-copy-small);
    line-height: 1.72;
  }

  .report-sponsor-logos {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin: 38px 0;
  }

  .report-sponsor-logos a {
    height: 112px;
  }
}

/*Compact sticky site navigation*/

/* Site header and navigation */

.site-header {
  height: 64px;
  position: sticky;
  top: 0;
  z-index: 100;
  padding: 0 3.5vw;
}

.brand {
  font-size: var(--text-nav);
  font-weight: 700;
  letter-spacing: .12em;
  white-space: nowrap;
}

.desktop-nav {
  gap: 26px;
  font-size: var(--text-nav);
}

.nav-cta {
  margin-left: 2px;
  padding: 10px 14px;
  gap: 16px;
  font-size: var(--text-sm);
}

.nav-cta span {
  font-size: 15px;
}

/* Homepage hero */

.home-hero {
  height: calc(100vh - 64px);
}

.home-hero-logo {
  width: 114px;
  height: 114px;
  margin: 0 0 28px;
  filter: brightness(0) invert(1);
}

@media (max-width:900px) {
  .site-header {
    height: 55px;
    padding: 0 4vw;
  }

  .brand {
    font-size: var(--text-sm);
    letter-spacing: var(--tracking-label);
  }

  .mobile-menu summary {
    width: 42px;
    height: 42px;
  }

  .mobile-menu nav {
    inset: 55px 0 0;
  }

  .home-hero {
    height: 760px;
  }

  .home-hero-logo {
    width: 104px;
    height: 104px;
    margin-bottom: 24px;
  }
}

@media (max-width:560px) {
  .brand {
    font-size: var(--text-xs);
  }

  .home-hero-logo {
    width: 92px;
    height: 92px;
    margin-bottom: 22px;
  }
}

.junior-alumni {
  background: var(--paper);
}

.junior-alumni .section-heading>p {
  max-width: 470px;
  font-size: var(--text-copy-small);
  color: var(--muted);
}

.junior-alumni .person-avatar {
  background: var(--deep);
}

.junior-alumni .person-avatar span {
  color: var(--yellow);
}

/*Translucent navigation and enlarged home mark*/

/* Site header and navigation */

.site-header {
  background: transparent;
  border-bottom-color: rgba(24,21,48,.11);
}

.site-header::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  background: rgba(245,247,248,.84);
  -webkit-backdrop-filter: blur(16px) saturate(135%);
  backdrop-filter: blur(16px) saturate(135%);
}

.home-hero-logo {
  width: 148px;
  height: 148px;
}

@media (max-width:900px) {
  .home-hero-logo {
    width: 135px;
    height: 135px;
  }
}

@media (max-width:560px) {
  .home-hero-logo {
    width: 120px;
    height: 120px;
  }
}

/*Mobile homepage hero: continuously pan and breathe across the panoramic club photograph.*/

@media (max-width:900px) {
  .home-hero .hero-photo {
    object-position: 30% 40%;
    transform: scale(1.12);
    animation: home-hero-mobile-drift 30s ease-in-out infinite alternate;
    will-change: transform,object-position;
  }

  @keyframes home-hero-mobile-drift {
    from {
      object-position: 30% 40%;
      transform: scale(1.12);
    }

    to {
      object-position: 68% 40%;
      transform: scale(1.02);
    }
  }
}

@media (max-width:900px) and (prefers-reduced-motion:reduce) {
  .home-hero .hero-photo {
    animation: none;
    object-position: center 40%;
    transform: none;
    will-change: auto;
  }
}

/*Raise homepage hero messaging slightly within the image.*/

.home-hero .hero-copy {
  top: 45%;
}

@media (min-width:901px) {
  .home-hero .hero-copy {
    top: 50%;
  }
}

/*Phone-only homepage hero positioning.*/

@media (max-width:560px) {
  .home-hero-logo {
    width: 120px;
    height: 120px;
    margin-bottom: 120px;
  }

  .home-hero .hero-copy {
    max-width: 780px;
    position: absolute;
    top: 372px;
    left: 6vw;
    transform: translateY(-50%);
  }
}

/*Consistent Material forward-arrow treatment for calls to action.*/

.cta-arrow {
  font-size: 1.2em !important;
  width: 1em;
  height: 1em;
  margin-left: .35em;
  vertical-align: -.16em;
  flex: 0 0 auto;
  transition: transform .2s ease;
}

.button:hover .cta-arrow,
.nav-cta:hover .cta-arrow,
.text-link:hover .cta-arrow,
.arrow-link:hover .cta-arrow,
.pathway-card a:hover .cta-arrow,
.race-card:hover .cta-arrow,
  .mobile-member-link:hover .cta-arrow {
  transform: translateX(3px);
}

/*Full-viewport mobile navigation, including beneath the sticky header.*/

@media (max-width:900px) {
  .site-header .brand {
    position: relative;
    z-index: 22;
  }

  .mobile-menu nav {
    inset: 0;
    padding-top: 93px;
    border-top: 0;
  }
}

.member-resource-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

@media (max-width:560px) {
  .member-resource-actions {
    align-items: flex-start;
    flex-direction: column;
  }
}

.calendar-hero {
  padding: 105px 7vw 90px;
  background: var(--deep);
  color: white;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 7vw;
}

.calendar-hero>div {
  max-width: 850px;
}

.calendar-hero h1 {
  font-size: clamp(58px,7vw,108px);
  font-weight: 600;
  line-height: .88;
  letter-spacing: var(--tracking-hero);
  margin: 0;
}

.calendar-hero>div>p:last-child {
  max-width: 650px;
  font-size: var(--text-copy-large);
  line-height: var(--leading-copy);
  margin: 30px 0 0;
}

.calendar-list {
  padding: 35px 7vw 110px;
  background: var(--paper);
}

.calendar-month {
  display: grid;
  grid-template-columns: .5fr 1.5fr;
  gap: 8vw;
  padding: 75px 0;
  border-bottom: 1px solid var(--line);
}

.calendar-month>h2 {
  position: sticky;
  top: 95px;
  align-self: start;
  font-size: clamp(35px,4vw,58px);
  line-height: .95;
  letter-spacing: -.045em;
  margin: 0;
}

.calendar-event {
  display: grid;
  grid-template-columns: 155px 1fr;
  gap: 32px;
  padding: 27px 0;
  border-top: 1px solid var(--line);
}

.calendar-event:first-child {
  border-top: 0;
  padding-top: 0;
}

.calendar-event time {
  font-size: var(--text-nav);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #6d7f96;
}

.calendar-event h3 {
  font-size: 25px;
  letter-spacing: -.025em;
  margin: 0;
}

.calendar-event p {
  max-width: 680px;
  color: var(--muted);
  line-height: var(--leading-copy);
  margin: 10px 0 0;
  white-space: pre-line;
}

.calendar-event .calendar-location {
  font-weight: 700;
  color: var(--ink);
  font-size: var(--text-label);
}

.calendar-empty {
  padding: 75px 0;
}

.calendar-empty h2 {
  font-size: 38px;
  margin: 0 0 15px;
}

.calendar-empty p {
  color: var(--muted);
}

@media (max-width:760px) {
  .calendar-hero {
    grid-template-columns: 1fr;
    align-items: start;
    padding: 75px 7vw 65px;
  }

  .calendar-hero h1 {
    font-size: 54px;
  }

  .calendar-hero .button {
    justify-self: start;
  }

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

  .calendar-month {
    grid-template-columns: 1fr;
    gap: 35px;
    padding: 58px 0;
  }

  .calendar-month>h2 {
    position: static;
  }

  .calendar-event {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .calendar-event h3 {
    font-size: 23px;
  }
}

.membership-news {
  background: var(--paper);
  padding-bottom: 95px;
}

.membership-news .section-heading {
  margin-bottom: 45px;
}

.news-list a {
  grid-template-columns: 70px 1fr 150px 30px;
}

.news-list small {
  text-align: right;
}

.news-all-link {
  margin-top: 38px;
}

.news-archive {
  padding-top: 55px;
}

.news-article {
  padding: 120px 7vw;
  background: var(--paper);
  min-height: 70vh;
}

.news-article header,
.news-article-copy,
.news-article>.arrow-link {
  display: block;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

.news-article h1 {
  font-size: clamp(52px,7vw,102px);
  line-height: .9;
  letter-spacing: var(--tracking-hero);
  margin: 0;
}

.news-standfirst {
  font-size: clamp(21px,2vw,29px);
  line-height: 1.45;
  margin: 35px 0 70px;
}

.news-article-copy {
  font-size: var(--text-copy);
  line-height: 1.75;
}

.news-article-copy p {
  margin: 0 0 28px;
}

.news-article>.arrow-link {
  margin-top: 65px;
  width: max-content;
}

@media (max-width:560px) {
  .news-list a {
    grid-template-columns: 45px 1fr 25px;
  }

  .news-list small {
    display: none;
  }

  .news-article {
    padding: 80px 7vw;
  }

  .news-article h1 {
    font-size: 48px;
  }

  .news-standfirst {
    margin-bottom: 50px;
  }
}

.page-hero.has-subnav {
  justify-content: space-between;
  gap: 7vw;
}

.hero-subnav {
  width: min(330px,27vw);
  flex: 0 0 auto;
  border-top: 1px solid rgba(255,255,255,.3);
}

.hero-subnav>p {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  opacity: .6;
  margin: 18px 0 8px;
}

.hero-subnav a {
  display: grid;
  grid-template-columns: 30px 1fr 22px;
  align-items: center;
  gap: 10px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(255,255,255,.2);
  font-size: var(--text-label);
  font-weight: 700;
}

.hero-subnav a span:first-child {
  font-size: 10px;
  opacity: .55;
}

.hero-subnav a svg {
  font-size: var(--text-copy);
  transition: transform .25s ease;
}

.hero-subnav a:hover svg {
  transform: translateX(4px);
}

#club-news,
#club-championships,
#club-records,
#documents {
  scroll-margin-top: 66px;
}

@media (max-width:900px) {
  .page-hero.has-subnav {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 48px;
  }

  .page-hero.has-subnav .page-hero-copy {
    max-width: 100%;
  }

  .hero-subnav {
    width: 100%;
    max-width: none;
  }

  .hero-subnav a {
    padding: 15px 0;
  }
}


/* WordPress integration */
body.admin-bar .site-header{top:32px}.wp-site-blocks{padding:0}.current-menu-item>a{opacity:.64}.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.bac-form-message{padding:14px 18px;margin-bottom:18px;background:#dcecf5;color:#181530}.bac-form-message.error{background:#f7d9d9}.wpcom-subscription-box,.wp-block-jetpack-subscriptions__supports-newline{display:none!important}.button svg,.nav-cta svg,.arrow-link svg{display:none!important}.button::after,.nav-cta::after,.arrow-link::after{content:'→';margin-left:.45em}.wp-block-image{margin:0}.editor-styles-wrapper{font-family:'Manrope',sans-serif;background:#f5f7f8;color:#181530}.editor-styles-wrapper>.is-root-container{max-width:none!important}.editor-styles-wrapper .wp-block{max-width:none}.editor-styles-wrapper .wp-block-columns{margin-bottom:0}.editor-styles-wrapper .wp-block-column{min-width:0}.editor-styles-wrapper .wp-block-image img{width:100%}.editor-styles-wrapper .bac-editor-element{min-height:28px}.editor-styles-wrapper .bac-editor-void{padding:12px;border:1px dashed rgba(24,21,48,.35);font-family:monospace}.editor-styles-wrapper .bac-markup-preview{overflow:auto}.editor-styles-wrapper .senior-gallery-track{animation:none!important;transform:none!important}.editor-styles-wrapper .senior-gallery-window{overflow:auto}.editor-styles-wrapper .mobile-subnav,.editor-styles-wrapper .record-jumps{position:static}@media(max-width:782px){body.admin-bar .site-header{top:46px}}
