/* Generic content patterns */
.mcm-content-lead {
  max-width: 840px;
  color: var(--mcm-muted);
  font-size: clamp(1.08rem, 1.45vw, 1.3rem);
}




.mcm-info-panel {
  --mcm-eyebrow-accent: var(--mcm-yellow);
  min-width: 0;
  padding: clamp(24px, 2.6vw, 36px);
  background: var(--mcm-bg);
  border-left: 6px solid var(--mcm-yellow);
  overflow: hidden;
}
.mcm-info-panel--ink { background: var(--mcm-ink); color: #fff; }
.mcm-info-panel--ink h2,
.mcm-info-panel--ink h3,
.mcm-info-panel--ink strong { color: #fff; }
.mcm-info-panel h2 { margin: 0 0 20px; font-size: clamp(1.8rem, 2vw, 2.25rem); line-height: 1; overflow-wrap: normal; word-break: normal; }
.mcm-info-panel h3 { font-size: clamp(1.45rem, 2vw, 1.9rem); }
.mcm-info-panel .mcm-icon-list { gap: 0; }
.mcm-info-panel .mcm-icon-list li { grid-template-columns: 18px minmax(0, 1fr); gap: 9px; padding: 7px 0; }
.mcm-info-panel .mcm-icon-list .mcm-icon { width: 18px; height: 18px; margin-top: 4px; font-size: 11px; }
.mcm-icon-list { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; }
.mcm-icon-list li { display: grid; grid-template-columns: 24px 1fr; gap: 11px; align-items: start; }
.mcm-icon-list .mcm-icon { margin-top: 4px; color: var(--mcm-yellow-strong); }
.mcm-icon-list--light .mcm-icon { color: var(--mcm-yellow); }
.mcm-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--mcm-ink);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
}
.mcm-link-arrow .mcm-icon { transition: transform var(--mcm-duration); }
.mcm-link-arrow:hover .mcm-icon { transform: translateX(5px); }
.mcm-prose {
  --mcm-content-full-width: 100%;
  --mcm-content-full-margin: 0px;
  color: var(--mcm-text);
}
.mcm-prose > * { max-width: 840px; }
.mcm-prose > .mcm-wide,
.mcm-prose > .mcm-gallery-row { max-width: none; }
.mcm-prose h2 { margin-top: 1.15em; font-size: clamp(2.35rem, 4.2vw, 4.1rem); }
.mcm-prose h3 { margin-top: 1.25em; }
.mcm-prose :where(a:not(.mcm-button):not(.mcm-link-arrow)) { color: var(--mcm-ink); font-weight: 600; }
.mcm-prose blockquote {
  position: relative;
  margin: 40px 0;
  padding: 34px 34px 34px 92px;
  background: var(--mcm-yellow);
  color: var(--mcm-ink);
  font-family: var(--mcm-font-display);
  font-size: clamp(1.65rem, 2.7vw, 2.65rem);
  font-weight: 700;
  line-height: 1.05;
  text-transform: uppercase;
}
.mcm-prose blockquote .mcm-icon { position: absolute; top: 34px; left: 34px; width: 38px; height: 38px; font-size: 30px; }
.mcm-dropcap::first-letter {
  float: left;
  margin: .08em .13em 0 0;
  color: var(--mcm-ink);
  font-family: var(--mcm-font-display);
  font-size: 4.6em;
  font-weight: 800;
  line-height: .75;
}
.mcm-gallery-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-block: 34px; }
.mcm-gallery-row a { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.mcm-gallery-row img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--mcm-ease); }
.mcm-gallery-row a:hover img { transform: scale(1.04); }
.mcm-gallery-row__icon { position: absolute; right: 12px; bottom: 12px; display: grid; place-items: center; width: 42px; height: 42px; background: var(--mcm-yellow); color: var(--mcm-ink); }

/* Home: training preview */
.mcm-training-feature { position: relative; background: var(--mcm-bg); }
.mcm-training-feature__visual { position: relative; min-height: 590px; overflow: hidden; }
.mcm-training-feature__visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mcm-training-feature__play {
  text-decoration: none;
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  display: grid;
  place-items: center;
  width: 104px;
  height: 104px;
  border: 0;
  background: var(--mcm-yellow);
  color: var(--mcm-ink);
  cursor: pointer;
  transform: translate(-50%, -50%);
  transition: background var(--mcm-duration), color var(--mcm-duration), transform var(--mcm-duration);
}
.mcm-training-feature__play:hover, .mcm-training-feature__play:focus-visible { text-decoration: none; background: var(--mcm-ink); color: #fff; transform: translate(-50%, -50%) scale(1.04); }
.mcm-training-feature__play .mcm-icon { width: 34px; height: 34px; font-size: 30px; }
.mcm-training-feature__content {
  display: flex;
  min-height: 590px;
  flex-direction: column;
  justify-content: center;
  padding: clamp(40px, 7vw, 110px);
  background: var(--mcm-bg);
}
.mcm-training-feature__content h2 { font-size: clamp(3.1rem, 5.2vw, 5.6rem); }
.mcm-training-feature__sessions { display: grid; gap: 1px; margin: 30px 0 36px; background: var(--mcm-border); border: 1px solid var(--mcm-border); }
.mcm-training-feature__session { display: grid; grid-template-columns: 78px 1fr; gap: 20px; padding: 18px 20px; background: #fff; }
.mcm-training-feature__session time { color: var(--mcm-ink); font-family: var(--mcm-font-display); font-size: 1.45rem; font-weight: 700; }
.mcm-training-feature__session strong { display: block; }
.mcm-training-feature__session small { display: block; color: var(--mcm-muted); }

/* Home: club pulse / feature strip */
.mcm-pulse-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); background: var(--mcm-ink); color: #fff; }
.mcm-pulse-strip__item { display: grid; grid-template-columns: 58px 1fr; gap: 18px; padding: 32px clamp(22px, 4vw, 52px); border-right: 1px solid rgba(255,255,255,.14); }
.mcm-pulse-strip__item:last-child { border-right: 0; }
.mcm-pulse-strip__icon { display: grid; place-items: center; width: 58px; height: 58px; background: var(--mcm-yellow); color: var(--mcm-ink); }
.mcm-pulse-strip h3 { margin: 0 0 7px; color: #fff; font-size: 1.55rem; }
.mcm-pulse-strip p { margin: 0; color: rgba(255,255,255,.68); font-size: .88rem; }

/* News archive */
.mcm-featured-post {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(430px, .9fr);
  min-height: 560px;
  background: var(--mcm-ink);
  color: #fff;
  overflow: hidden;
}
.mcm-featured-post__media { position: relative; min-height: 560px; overflow: hidden; }
.mcm-featured-post__media::after { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 72%, rgba(34,34,33,.34)); content: ""; }
.mcm-featured-post__media img { width: 100%; height: 100%; object-fit: cover; }
.mcm-featured-post__content { position: relative; display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: clamp(40px, 4.4vw, 66px); }
.mcm-featured-post__content::before { position: absolute; top: 0; bottom: 0; left: 0; width: 5px; background: var(--mcm-yellow); content: ""; }
.mcm-featured-post__content h2 { max-width: 620px; margin: 18px 0 20px; color: #fff; font-size: clamp(2.35rem, 3.2vw, 3.8rem); line-height: .94; hyphens: auto; overflow-wrap: normal; word-break: normal; }
.mcm-featured-post__content p { color: rgba(255,255,255,.72); }
.mcm-featured-post__content .mcm-meta { color: rgba(255,255,255,.64); }
.mcm-news-grid { align-items: stretch; }
.mcm-news-grid [data-filter-item][hidden] { display: none; }









/* Article detail */
.mcm-article-header h1 {
  margin: 18px 0 20px;
  color: #fff;
  font-size: clamp(1.85rem, 4.4vw, 4.75rem);
  line-height: 1;
  width: 100%;
  max-width: none;
  text-wrap: wrap;
  -webkit-hyphens: none;
  hyphens: none;
  overflow-wrap: anywhere;
}
.mcm-article-layout { align-items: start; }
.mcm-article-main { min-width: 0; }
.mcm-article-sidebar { position: sticky; top: calc(var(--mcm-header-height) + 30px); display: grid; gap: 24px; }
.mcm-sidebar-box { padding: 26px; background: var(--mcm-bg); border-top: 5px solid var(--mcm-yellow-strong); }
.mcm-sidebar-box h3 { font-size: 1.5rem; }







.mcm-author-box { display: flex; align-items: center; gap: 28px; margin-top: 24px; padding: 28px; background: var(--mcm-bg); }
.mcm-prose > .mcm-author-box { width: 100%; max-width: 840px; }
.mcm-author-box__mark { display: grid; width: 112px; height: 112px; flex: 0 0 112px; place-items: center; background: var(--mcm-yellow); color: var(--mcm-ink); font-family: var(--mcm-font-display); font-size: 2.2rem; font-weight: 800; }
.mcm-author-box__content { display: grid; min-width: 0; align-content: center; gap: 8px; }
.mcm-author-box__content .mcm-eyebrow { margin: 0; }
.mcm-prose .mcm-author-box__content h2 { margin: 0; font-size: clamp(2.15rem, 3.5vw, 3.35rem); line-height: .98; }
.mcm-author-box__content > p:last-child { margin: 0; }
.mcm-post-nav { width: 100%; margin-top: 1px; background: var(--mcm-ink); }
.mcm-post-nav__inner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mcm-post-nav__inner--single { grid-template-columns: minmax(0, 1fr); }
.mcm-post-nav__item {
  display: flex;
  min-height: 154px;
  align-items: center;
  background: var(--mcm-ink);
  color: #fff;
  text-decoration: none;
  transition: background var(--mcm-duration), color var(--mcm-duration);
}
.mcm-post-nav__item:hover { background: var(--mcm-yellow); color: var(--mcm-ink); }
.mcm-post-nav__content {
  display: block;
  width: min(calc(100% - var(--mcm-gutter)), calc(var(--mcm-container) / 2));
  padding-block: 30px;
}
.mcm-post-nav__item--prev .mcm-post-nav__content { margin-left: auto; padding-right: clamp(24px, 3vw, 48px); text-align: left; }
.mcm-post-nav__item--next .mcm-post-nav__content { margin-right: auto; padding-left: clamp(24px, 3vw, 48px); text-align: right; }
.mcm-post-nav__inner--single .mcm-post-nav__content { width: min(100% - (2 * var(--mcm-gutter)), var(--mcm-container)); margin-inline: auto; padding-inline: 0; }
.mcm-post-nav small { display: block; margin-bottom: 10px; color: var(--mcm-yellow); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; transition: color var(--mcm-duration); }
.mcm-post-nav strong { display: block; color: #fff; font-family: var(--mcm-font-display); font-size: 1.6rem; line-height: 1.05; text-transform: uppercase; transition: color var(--mcm-duration); }
.mcm-post-nav__item:hover small,
.mcm-post-nav__item:hover strong { color: var(--mcm-ink); }
.mcm-post-nav--standalone { margin-bottom: 0; }
.mcm-post-nav-spacer { height: clamp(64px, 8vw, 112px); background: #fff; }

/* Events archive */

.mcm-event-status { position: absolute; z-index: 3; top: 18px; right: 18px; }
.mcm-event-card--compact { min-height: 400px; }
.mcm-event-card--compact .mcm-event-card__content { padding: 32px; }
.mcm-event-card--compact h3 { font-size: clamp(2rem, 3.5vw, 3.6rem); }





/* Event detail */
.mcm-event-detail-hero { position: relative; min-height: 630px; display: grid; align-items: end; overflow: hidden; background: var(--mcm-ink); color: #fff; }
.mcm-event-detail-hero::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15,15,14,.74) 0%, rgba(15,15,14,.46) 48%, rgba(15,15,14,.16) 100%); content: ""; }
.mcm-event-detail-hero__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.mcm-event-detail-hero__inner { position: relative; z-index: 2; padding-block: clamp(80px, 10vw, 130px); }
.mcm-event-detail-hero h1 { max-width: 1200px; text-wrap: wrap; hyphens: manual; color: #fff; font-size: clamp(3.7rem, 7vw, 7.2rem); }
.mcm-event-detail-hero__lead { max-width: 680px; color: rgba(255,255,255,.82); font-size: 1.16rem; }
.mcm-event-facts { position: relative; z-index: 3; margin-top: -48px; }
.mcm-event-facts__grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); background: #fff; box-shadow: var(--mcm-shadow-float); }
.mcm-event-fact { min-height: 132px; padding: 24px; border-right: 1px solid var(--mcm-border); }
.mcm-event-fact:last-child { border-right: 0; }
.mcm-event-fact .mcm-icon { margin-bottom: 15px; color: var(--mcm-yellow-strong); }
.mcm-event-fact small { display: block; color: var(--mcm-muted); font-size: .69rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.mcm-event-fact strong { display: block; margin-top: 4px; font-family: var(--mcm-font-display); font-size: 1.35rem; line-height: 1.1; text-transform: uppercase; }
.mcm-event-sidebar { align-self: start; grid-column-end: -1; }
.mcm-event-intro__heading { margin-bottom: 24px; }
.mcm-event-intro__heading h2 { margin: 0; }
.mcm-event-intro__logo { display: block; width: auto; max-width: min(100%, 320px); height: auto; max-height: 160px; object-fit: contain; object-position: left center; margin: 0 0 24px; }
.mcm-event-nav-toggle,
.mcm-event-nav-drawer { display: none; }
.mcm-event-nav-drawer__panel h2 { min-width: 0; margin: 0; color: #fff; font-size: 1.65rem; line-height: 1; }
.mcm-event-nav-drawer__links { display: grid; gap: 1px; margin: 28px 0; background: rgba(255,255,255,.12); }
.mcm-event-nav-drawer__links a {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 16px;
  background: var(--mcm-ink);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}
.mcm-event-nav-drawer__links a:hover { background: #2c2c2a; color: var(--mcm-yellow); }
#programm,
#distanzen,
#teilnehmerliste,
#ergebnisse,
#strecke,
#impressionen,
#faq { scroll-margin-top: calc(var(--mcm-header-height) + 18px); }
.mcm-timeline { position: relative; display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.mcm-timeline::before { position: absolute; top: 7px; bottom: 18px; left: 115px; width: 2px; background: var(--mcm-border-dark); content: ""; }
.mcm-timeline__item { position: relative; display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 56px; min-height: 0; padding-bottom: 34px; }
.mcm-timeline__item:last-child { padding-bottom: 0; }
.mcm-timeline__time { padding-top: 1px; color: var(--mcm-ink); font-family: var(--mcm-font-display); font-size: 1.45rem; font-weight: 700; line-height: 1; text-align: right; }
.mcm-timeline__content { position: relative; min-width: 0; padding: 0; }
.mcm-timeline__content::before { position: absolute; top: 1px; left: -28px; width: 16px; height: 16px; background: var(--mcm-yellow); border: 4px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px var(--mcm-border-dark); content: ""; transform: translateX(-50%); }
.mcm-timeline__content h3 { margin: 0 0 6px; font-size: clamp(1.8rem, 2.4vw, 2.5rem); line-height: .98; }
.mcm-timeline__content p { margin-bottom: 0; }
.mcm-event-competitions { width: 100%; border-collapse: collapse; table-layout: fixed; border: 1px solid var(--mcm-border); background: var(--mcm-surface); }
.mcm-event-competitions th, .mcm-event-competitions td { padding: 20px 24px; border-bottom: 1px solid var(--mcm-border); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.mcm-event-competitions thead { background: var(--mcm-ink); color: #fff; }
.mcm-event-competitions thead th { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.mcm-event-competitions thead th:nth-child(1) { width: 16%; }
.mcm-event-competitions thead th:nth-child(2) { width: 38%; }
.mcm-event-competitions thead th:nth-child(3) { width: 28%; }
.mcm-event-competitions thead th:nth-child(4) { width: 18%; }
.mcm-event-competitions tbody th { color: var(--mcm-ink); font-weight: 700; }
.mcm-event-competitions tbody tr:nth-child(even) { background: var(--mcm-bg); }
.mcm-event-competitions__label { display: none; }
.mcm-race-result-section .mcm-section-head h2 { font-size: var(--mcm-step-3); }
.mcm-race-result { min-width: 0; }
.mcm-race-result__status { display: flex; align-items: center; gap: 14px; }
.mcm-race-result__content { width: 100%; min-width: 0; max-width: 100%; overflow-x: auto; background: var(--mcm-surface); }
.mcm-race-result__content:empty { display: none; }

/* Trainer archive and detail */
.mcm-trainer-grid > :has(> [data-filter-item][hidden]) { display: none; }
.mcm-trainer-detail-hero { background: var(--mcm-bg); }
.mcm-trainer-detail-hero__grid { display: grid; grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr); min-height: 680px; }
.mcm-trainer-detail-hero__media { position: relative; overflow: hidden; background: var(--mcm-bg-2); }
.mcm-trainer-detail-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mcm-trainer-detail-hero__content { display: flex; flex-direction: column; justify-content: center; padding: clamp(42px, 7vw, 110px); }
.mcm-trainer-detail-hero h1 { font-size: clamp(4.4rem, 8vw, 8.7rem); }
.mcm-trainer-detail-hero__role { margin: 0 0 26px; color: #756c00; font-size: .8rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.mcm-trainer-contact { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.mcm-trainer-expertise { background: var(--mcm-surface); }
.mcm-trainer-expertise__layout { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); align-items: start; gap: clamp(32px,4vw,64px); }
.mcm-trainer-expertise__intro { min-width: 0; max-width: 560px; }
.mcm-trainer-expertise__intro h2 { margin-bottom: 0; font-size: clamp(2.15rem, 3.8vw, 3.65rem); line-height: 1.06; }
.mcm-trainer-expertise__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.mcm-trainer-expertise-card { display: grid; min-width: 0; grid-template-columns: 48px minmax(0,1fr); align-items: start; gap: 16px; min-height: 138px; padding: 22px; border: 1px solid var(--mcm-border); background: #fff; }
.mcm-trainer-expertise-card__icon { display: grid; width: 48px; height: 48px; place-items: center; background: var(--mcm-yellow); color: var(--mcm-ink); font-size: 1.25rem; }
.mcm-trainer-expertise-card p { margin: 3px 0 8px; color: var(--mcm-muted); font-size: .69rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.mcm-trainer-expertise-card h3 { margin: 0; font-size: clamp(1.35rem, 1.7vw, 1.85rem); line-height: 1.12; text-wrap: wrap; }
.mcm-assigned-sessions { display: grid; gap: 1px; background: var(--mcm-border); border: 1px solid var(--mcm-border); }
.mcm-assigned-session { display: grid; grid-template-columns: 130px minmax(190px,.7fr) minmax(0,1fr) 46px; align-items: center; gap: 24px; padding: 22px; background: #fff; transition: background var(--mcm-duration-fast), color var(--mcm-duration-fast); }
.mcm-assigned-session:hover { background: var(--mcm-yellow-soft); }
.mcm-assigned-session time { font-family: var(--mcm-font-display); font-size: 1.45rem; font-weight: 700; }
.mcm-assigned-session strong { display: block; }
.mcm-assigned-session span { color: var(--mcm-muted); font-size: .82rem; }
.mcm-assigned-session__open { display: grid; width: 42px; height: 42px; place-items: center; background: var(--mcm-ink); color: #fff !important; }
.mcm-assigned-session:hover .mcm-assigned-session__open { background: var(--mcm-yellow); color: var(--mcm-ink) !important; }

/* About page */
.mcm-about-story { align-items: center; }
.mcm-about-story__media { position: relative; min-height: 650px; }
.mcm-about-story__media img { position: absolute; width: 76%; height: 78%; object-fit: cover; }
.mcm-about-story__media img:first-child { top: 0; left: 0; }
.mcm-about-story__media img:last-child { right: 0; bottom: 0; width: 58%; height: 58%; border: 16px solid #fff; }
.mcm-value-card { min-height: 100%; padding: 34px; background: var(--mcm-surface, #fff); border-top: 6px solid var(--mcm-yellow-strong); }
.mcm-value-card__number { color: var(--mcm-border); font-family: var(--mcm-font-display); font-size: 5rem; font-weight: 800; line-height: .8; }
.mcm-value-card h3 { margin: 24px 0 12px; }
.mcm-board-card { display: grid; min-height: 250px; align-content: end; padding: 30px; background: var(--mcm-ink); color: #fff; }
.mcm-board-card:nth-child(2) { background: var(--mcm-yellow); color: var(--mcm-ink); }
.mcm-board-card h3 { margin: 0 0 7px; color: inherit; }
.mcm-board-card p { margin: 0; color: inherit; opacity: .72; }
.mcm-history-timeline { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); border-top: 1px solid var(--mcm-border-dark); }
.mcm-history-item { position: relative; padding: 36px 28px 0 0; }
.mcm-history-item::before { position: absolute; top: -9px; left: 0; width: 18px; height: 18px; background: var(--mcm-yellow); border: 4px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px var(--mcm-border-dark); content: ""; }
.mcm-history-item time { display:block; margin-bottom:12px; color: var(--mcm-yellow); font-family: var(--mcm-font-display); font-size: 2.5rem; font-weight: 800; line-height:1; }
.mcm-history-item p { margin:0; color: rgba(255,255,255,.82); font-size: .98rem; line-height:1.65; }

/* Gallery */
.mcm-gallery-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-flow: dense;
  grid-auto-rows: 8px;
  gap: 16px;
}
.mcm-gallery-tile {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  overflow: hidden;
  grid-column: span 3;
  aspect-ratio: 4 / 3;
  background: var(--mcm-bg-2);
  color: #fff;
  text-decoration: none;
  isolation: isolate;
}
.mcm-gallery-tile--tall { grid-column: span 3; aspect-ratio: 3 / 4; }
.mcm-gallery-tile--wide { grid-column: span 6; aspect-ratio: 16 / 9; }
.mcm-gallery-tile--video { grid-column: span 6; aspect-ratio: 16 / 9; }
.mcm-gallery-tile[hidden] { display: none; }
.mcm-gallery-tile::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.02) 32%, rgba(0,0,0,.84) 100%); content: ""; transition: opacity var(--mcm-duration); }
.mcm-gallery-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 650ms var(--mcm-ease), filter 650ms var(--mcm-ease); }
.mcm-gallery-tile__caption { position: absolute; z-index: 3; right: 20px; bottom: 18px; left: 20px; }
.mcm-gallery-tile__caption strong { display: block; color: #fff; font-family: var(--mcm-font-display); font-size: 1.45rem; line-height: 1; text-transform: uppercase; }
.mcm-gallery-tile__caption small { display: block; margin-top: 5px; color: rgba(255,255,255,.82); font-size: .74rem; line-height: 1.4; }
.mcm-gallery-tile__zoom,
.mcm-gallery-tile__play {
  position: absolute;
  z-index: 4;
  display: grid;
  place-items: center;
  background: var(--mcm-yellow);
  color: var(--mcm-ink);
  transition: opacity var(--mcm-duration), transform var(--mcm-duration), background var(--mcm-duration);
}
.mcm-gallery-tile__zoom { top: 16px; right: 16px; width: 46px; height: 46px; opacity: 0; transform: translateY(-8px); }
.mcm-gallery-tile__play { top: 50%; left: 50%; width: 76px; height: 76px; border: 8px solid rgba(255,255,255,.26); border-radius: 50%; background-clip: padding-box; font-size: 1.2rem; transform: translate(-50%, -50%); }
.mcm-gallery-tile__type { position: absolute; z-index: 4; top: 16px; left: 16px; display: inline-flex; align-items: center; gap: 7px; min-height: 30px; padding: 6px 10px; background: rgba(20,20,18,.82); color: #fff; font-size: .67rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.mcm-gallery-tile:hover img { filter: saturate(1.08); transform: scale(1.045); }
.mcm-gallery-tile:hover::after { opacity: .94; }
.mcm-gallery-tile:hover .mcm-gallery-tile__zoom { opacity: 1; transform: translateY(0); }
.mcm-gallery-tile:hover .mcm-gallery-tile__play { background: #fff; }
.mcm-gallery-tile:focus-visible { outline: 4px solid var(--mcm-yellow); outline-offset: 3px; }

/* Membership */
.mcm-pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 24px; }
.mcm-price-card { display: flex; flex-direction: column; min-width: 0; padding: clamp(22px, 3vw, 32px); border: 1px solid var(--mcm-border); border-top: 4px solid var(--mcm-yellow); background: var(--mcm-surface); }
.mcm-price-card h3 { min-height: 2.2em; font-size: clamp(1.55rem, 2.4vw, 2rem); line-height: 1.1; hyphens: auto; }
.mcm-price-card__price { display: grid; gap: 4px; padding-block: 16px; border-bottom: 1px solid var(--mcm-border); }
.mcm-price-card__price strong { font-family: var(--mcm-font-display); font-size: clamp(2rem, 3vw, 2.8rem); line-height: 1.1; }
.mcm-price-card__price span { color: var(--mcm-muted); font-size: .85rem; }
.mcm-price-card ul { padding-left: 1.2em; }
.mcm-price-card .mcm-button { width: 100%; margin-top: auto; }
.mcm-membership-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(250px, 1fr); gap: 32px; align-items: start; }
.mcm-membership-form { min-width: 0; padding: clamp(22px, 4vw, 46px); border: 1px solid var(--mcm-border); background: var(--mcm-surface); }
.mcm-membership-form__title { font-size: clamp(1.55rem, 2.8vw, 2.5rem); line-height: 1.12; margin-bottom: 24px; hyphens: auto; }
.mcm-membership-form .mcm-form-grid { min-width: 0; }
.mcm-membership-form .mcm-input, .mcm-membership-form .mcm-select, .mcm-membership-form .mcm-textarea { min-width: 0; width: 100%; }
.mcm-membership-form [data-membership-guardian] .mcm-help-text { margin: 6px 0 0; }
.mcm-membership-aside { min-width: 0; padding: clamp(24px, 3vw, 32px); border-left: 4px solid var(--mcm-yellow); background: var(--mcm-surface); }
.mcm-membership-aside h3 { font-size: clamp(1.6rem, 2.2vw, 2rem); line-height: 1.1; }
.mcm-membership-aside .mcm-button { width: 100%; }
@media (max-width: 900px) { .mcm-membership-layout { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .mcm-membership-form .mcm-form-grid { grid-template-columns: minmax(0, 1fr); } .mcm-membership-form [data-contact-submit] { width: 100%; } }

/* Contact */
.mcm-contact-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); gap: 1px; background: var(--mcm-border); border: 1px solid var(--mcm-border); }
.mcm-contact-form { padding: clamp(34px, 5vw, 70px); background: #fff; }
.mcm-contact-aside { display: flex; flex-direction: column; justify-content: center; padding: clamp(34px, 5vw, 70px); background: var(--mcm-bg); }
.mcm-contact-aside h2 { font-size: clamp(2.8rem, 4.2vw, 4.4rem); }
.mcm-contact-card { display: grid; grid-template-columns: 50px 1fr; gap: 16px; margin-top: 22px; }
.mcm-contact-card__icon { display: grid; place-items: center; width: 50px; height: 50px; background: var(--mcm-yellow); color: var(--mcm-ink); }
.mcm-contact-card strong { display: block; }
.mcm-contact-card a { color: var(--mcm-text); text-decoration: none; }
.mcm-contact-card a:hover { color: #6f6600; }
.mcm-contact-socials { margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--mcm-border); }
.mcm-contact-socials__label { margin: 0 0 12px; color: var(--mcm-ink); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.mcm-contact-socials__grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(145px,1fr)); gap: 10px; }
.mcm-contact-social { display: flex; min-height: 56px; align-items: center; gap: 12px; padding: 0 14px 0 0; border: 1px solid var(--mcm-border-dark); background: #fff; color: var(--mcm-ink); font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; transition: background var(--mcm-duration), border-color var(--mcm-duration), color var(--mcm-duration); }
.mcm-contact-social__icon { display: grid; width: 54px; min-width: 54px; height: 54px; place-items: center; overflow: hidden; background: var(--mcm-yellow); color: var(--mcm-ink); font-size: 1.05rem; transition: background var(--mcm-duration), color var(--mcm-duration); }
.mcm-contact-social__icon > .mcm-icon { display: grid; width: 22px; min-width: 22px; height: 22px; flex-basis: 22px; place-items: center; margin: 0; font-size: 20px; }
.mcm-contact-social__icon svg { width: 22px; height: 22px; }
.mcm-contact-social__icon .mcm-icon--custom > i { display: grid; width: 1em; height: 1em; place-items: center; }
.mcm-contact-social__icon .mcm-icon--custom > i::before { display: block; margin: 0; line-height: 1; }
.mcm-contact-social:hover,
.mcm-contact-social:focus-visible { border-color: var(--mcm-ink); background: var(--mcm-ink); color: #fff; }
.mcm-contact-social:hover .mcm-contact-social__icon,
.mcm-contact-social:focus-visible .mcm-contact-social__icon { background: var(--mcm-yellow); color: var(--mcm-ink); }
.mcm-form-status { min-height: 24px; margin-top: 14px; color: var(--mcm-success); font-size: .88rem; }

/* Partners */
.mcm-partner-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1px; background: var(--mcm-border); border: 1px solid var(--mcm-border); }
.mcm-partner-card { display: grid; min-height: 230px; place-items: center; padding: 30px; background: #fff; text-align: center; text-decoration: none; transition: background var(--mcm-duration); }
.mcm-partner-card:hover { background: var(--mcm-yellow-soft); }
.mcm-partner-card__mark { display: grid; min-width: 150px; min-height: 78px; place-items: center; padding: 15px; border: 2px solid var(--mcm-ink); color: var(--mcm-ink); font-family: var(--mcm-font-display); font-size: 1.45rem; font-weight: 800; line-height: 1; text-transform: uppercase; }
.mcm-partner-card p { margin: 18px 0 0; color: var(--mcm-muted); font-size: .8rem; }

/* Legal pages */
.mcm-legal { max-width: 920px; }
.mcm-legal h2 { margin-top: 1.6em; font-size: clamp(2.2rem, 4vw, 3.7rem); }
.mcm-legal h3 { margin-top: 1.5em; }

/* 404 */
.mcm-error-page { display: grid; min-height: calc(100svh - var(--mcm-header-height)); padding-block: clamp(48px, 6vw, 88px); place-items: center; background: var(--mcm-bg); text-align: center; }
.mcm-error-page__inner { display: flex; flex-direction: column; align-items: center; gap: 24px; max-width: 920px; }
.mcm-error-page__code { display: block; color: var(--mcm-ink); font-family: var(--mcm-font-display); font-size: clamp(5rem, 12vw, 9rem); font-weight: 800; line-height: .9; letter-spacing: -.03em; }
.mcm-error-page__inner > * { margin: 0; }
.mcm-error-page .mcm-eyebrow { justify-content: center; }
.mcm-error-page h1 { font-size: clamp(2.6rem, 5.5vw, 5rem); }
.mcm-error-page .mcm-content-lead { max-width: 720px; color: var(--mcm-text); }
.mcm-error-page .mcm-cluster { justify-content: center; }

/* Style guide */








/* Training groups: one clear row per group */
.mcm-training-group-list { display: grid; gap: 1px; background: var(--mcm-border); border: 1px solid var(--mcm-border); }
.mcm-training-group-item { display: grid; grid-template-columns: 170px minmax(220px, .7fr) minmax(0, 1.3fr); align-items: center; gap: 28px; min-height: 126px; padding: 26px 30px; border-left: 5px solid var(--mcm-yellow-strong); background: #fff; }
.mcm-training-group-item__badge { align-self: center; }
.mcm-training-group-item h3 { margin: 0; font-size: clamp(1.75rem, 2.5vw, 2.5rem); }
.mcm-training-group-item p { margin: 0; color: var(--mcm-muted); }

/* Responsive pages */
@media (max-width: 1099px) {
  .mcm-training-group-item { grid-template-columns: 150px minmax(200px,.75fr) minmax(0,1.25fr); gap: 22px; }
  
  .mcm-training-feature__visual,
  .mcm-training-feature__content { min-height: 560px; }
  .mcm-featured-post { grid-template-columns: 1fr; }
  .mcm-featured-post__media { min-height: 420px; }
  .mcm-featured-post__content { min-height: 0; padding: 42px clamp(30px, 6vw, 58px) 50px; }
  .mcm-featured-post__content::before { width: 100%; height: 5px; right: 0; bottom: auto; }
  .mcm-article-sidebar { position: static; }
  .mcm-event-facts__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .mcm-event-fact:nth-child(2) { border-right: 0; }
  .mcm-event-fact:nth-child(-n/**/+2) { border-bottom: 1px solid var(--mcm-border); }
  .mcm-trainer-detail-hero__grid { grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr); }
  .mcm-history-timeline { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 40px 0; }
  .mcm-gallery-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .mcm-gallery-tile { grid-column: span 2; }
  .mcm-gallery-tile--wide,
  .mcm-gallery-tile--video { grid-column: span 4; }
  .mcm-contact-layout { grid-template-columns: 1fr; }
  .mcm-partner-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

@media (max-width: 767px) {
  .mcm-training-group-item { grid-template-columns: 1fr; gap: 12px; min-height: 0; padding: 24px; }
  .mcm-prose blockquote { padding: 78px 24px 28px; }
  .mcm-prose blockquote .mcm-icon { top: 25px; left: 24px; }
  .mcm-gallery-row { grid-template-columns: 1fr; }
  .mcm-training-feature__visual,
  .mcm-training-feature__content { min-height: 480px; }
  .mcm-training-feature__content { padding: 42px 24px; }
  .mcm-training-feature__play { width: 82px; height: 82px; }
  .mcm-pulse-strip { grid-template-columns: 1fr; }
  .mcm-pulse-strip__item { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.14); }
  .mcm-pulse-strip__item:last-child { border-bottom: 0; }
  .mcm-featured-post__media { min-height: 310px; }
  .mcm-featured-post__content { min-height: 0; padding: 32px 24px 40px; }
  .mcm-featured-post__content h2 { font-size: clamp(2.15rem, 9vw, 3rem); }
  .mcm-author-box { align-items: flex-start; flex-direction: column; gap: 20px; }
  .mcm-author-box__mark { width: 82px; height: 82px; flex-basis: 82px; font-size: 1.65rem; }
  .mcm-post-nav__inner { grid-template-columns: 1fr; }
  .mcm-post-nav__content,
  .mcm-post-nav__item--prev .mcm-post-nav__content,
  .mcm-post-nav__item--next .mcm-post-nav__content {
    width: min(100% - (2 * var(--mcm-gutter)), var(--mcm-container));
    margin-inline: auto;
    padding-inline: 0;
    text-align: left;
  }
  
  .mcm-event-detail-hero { min-height: 610px; }
  .mcm-event-detail-hero h1 { max-width: 100%; font-size: clamp(3rem, 13vw, 4.3rem); line-height: .88; overflow-wrap: anywhere; }
  .mcm-event-detail-hero::after { background: linear-gradient(180deg, rgba(15,15,14,.25), rgba(15,15,14,.9)); }
  .mcm-event-facts { margin-top: 0; }
  .mcm-event-facts__grid { grid-template-columns: 1fr; box-shadow: none; }
  .mcm-event-fact { border-right: 0; border-bottom: 1px solid var(--mcm-border); }
  .mcm-event-fact:last-child { border-bottom: 0; }
  .mcm-event-inline-nav { display: none; }
  .mcm-event-sidebar .mcm-sidebar-box { margin-top: 0 !important; }
  .mcm-event-nav-toggle {
    position: fixed;
    z-index: 960;
    bottom: 16px;
    left: 16px;
    display: inline-flex;
    min-height: 52px;
    align-items: center;
    gap: 10px;
    padding: 12px 17px;
    border: 0;
    background: var(--mcm-yellow);
    color: var(--mcm-ink);
    box-shadow: 0 12px 34px rgba(0,0,0,.22);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity var(--mcm-duration), transform var(--mcm-duration), background var(--mcm-duration);
  }
  .mcm-event-nav-toggle:hover { background: #fff36b; }
  body.mcm-event-nav-open .mcm-event-nav-toggle { opacity: 0; pointer-events: none; transform: translateY(12px); }
  .mcm-event-nav-drawer {
    position: fixed;
    z-index: 1600;
    inset: 0;
    display: block;
    visibility: hidden;
    pointer-events: none;
  }
  .mcm-event-nav-drawer.is-open { visibility: visible; pointer-events: auto; }
  .mcm-event-nav-drawer__backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: rgba(0,0,0,.66);
    opacity: 0;
    cursor: pointer;
    transition: opacity var(--mcm-duration);
  }
  .mcm-event-nav-drawer.is-open .mcm-event-nav-drawer__backdrop { opacity: 1; }
  .mcm-event-nav-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    width: min(88vw, 390px);
    height: 100%;
    flex-direction: column;
    overflow-y: auto;
    padding: 24px;
    background: var(--mcm-ink);
    color: #fff;
    box-shadow: -18px 0 50px rgba(0,0,0,.25);
    transform: translateX(100%);
    transition: transform 320ms var(--mcm-ease);
  }
  .mcm-event-nav-drawer.is-open .mcm-event-nav-drawer__panel { transform: translateX(0); }
  .mcm-event-nav-drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.14); }
  .mcm-event-nav-drawer__close { display: grid; width: 46px; height: 46px; flex: 0 0 46px; place-items: center; border: 1px solid var(--mcm-yellow); background: var(--mcm-yellow); color: var(--mcm-ink); cursor: pointer; transition: opacity var(--mcm-duration-fast); }
  .mcm-event-nav-drawer__close:hover { opacity: .5; transform: none; }
  .mcm-event-nav-drawer__external { margin-top: auto; }
  .mcm-event-competitions, .mcm-event-competitions tbody { display: block; }
  .mcm-event-competitions thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .mcm-event-competitions tbody tr { display: block; padding: 16px; border-bottom: 1px solid var(--mcm-border); }
  .mcm-event-competitions tbody tr:last-child { border-bottom: 0; }
  .mcm-event-competitions tbody th, .mcm-event-competitions tbody td { display: grid; grid-template-columns: 90px minmax(0,1fr); gap: 12px; padding: 6px 0; border: 0; }
  .mcm-event-competitions__label { display: block; color: var(--mcm-ink); font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
  .mcm-race-result .mcm-cluster > .mcm-button { width: 100%; }
  .mcm-error-page .mcm-cluster { width: 100%; }
  .mcm-error-page .mcm-button { width: 100%; }
  .mcm-timeline::before { left: 77px; }
  .mcm-timeline__item { grid-template-columns: 58px minmax(0, 1fr); gap: 48px; padding-bottom: 30px; }
  .mcm-timeline__time { font-size: 1.25rem; }
  .mcm-timeline__content h3 { font-size: clamp(1.65rem, 7.2vw, 2.15rem); }
  .mcm-trainer-detail-hero__grid { grid-template-columns: 1fr; }
  .mcm-trainer-detail-hero__media { min-height: 520px; }
  .mcm-trainer-detail-hero__content { min-width: 0; padding: 48px 24px 60px; }
  .mcm-trainer-detail-hero h1 { max-width: 100%; font-size: clamp(3rem, 13vw, 4.3rem); line-height: .9; overflow-wrap: anywhere; }
  .mcm-trainer-expertise__layout { grid-template-columns: 1fr; }
  .mcm-trainer-expertise__grid { grid-template-columns: 1fr; }
  .mcm-assigned-session { grid-template-columns: 1fr auto; gap: 8px 18px; }
  .mcm-assigned-session > :not(.mcm-assigned-session__open) { grid-column: 1; }
  .mcm-assigned-session__open { grid-column: 2; grid-row: 1 / span 3; align-self: center; }
  .mcm-about-story__media { min-height: 510px; margin-bottom: 32px; }
  .mcm-history-timeline { grid-template-columns: 1fr; gap: 36px; border-top: 0; border-left: 1px solid var(--mcm-border-dark); }
  .mcm-history-item { padding: 0 0 0 32px; }
  .mcm-history-item::before { top: 7px; left: -9px; }
  .mcm-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .mcm-gallery-tile,
  .mcm-gallery-tile--tall { grid-column: span 1; }
  .mcm-gallery-tile--wide,
  .mcm-gallery-tile--video { grid-column: span 2; }
  .mcm-gallery-tile__play { width: 66px; height: 66px; border-width: 7px; }
  .mcm-partner-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  
}

@media (max-width: 479px) {
  .mcm-gallery-grid { grid-template-columns: 1fr; }
  .mcm-gallery-tile,
  .mcm-gallery-tile--tall,
  .mcm-gallery-tile--wide,
  .mcm-gallery-tile--video { grid-column: 1; }
  .mcm-partner-grid { grid-template-columns: 1fr; }
  
}

/* Additional event archive area */
.mcm-event-more { background: var(--mcm-yellow); color: var(--mcm-ink); }
.mcm-event-more h2,
.mcm-event-more h3,
.mcm-event-more strong,
.mcm-event-more .mcm-eyebrow { color: var(--mcm-ink); }
.mcm-event-more__layout { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); gap: clamp(44px, 6vw, 92px); align-items: start; }
.mcm-event-more__intro { max-width: 540px; }
.mcm-event-more__intro h2 { max-width: 520px; margin-bottom: 24px; }
.mcm-event-more__intro .mcm-content-lead { max-width: 520px; margin: 0; color: var(--mcm-ink); }
.mcm-event-more__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.mcm-event-more__card { position: relative; display: flex; min-width: 0; min-height: 260px; flex-direction: column; padding: clamp(24px, 3vw, 34px); border: 1px solid rgba(34,34,33,.18); border-top: 5px solid var(--mcm-sport-color, var(--mcm-ink)); background: rgba(255,255,255,.72); }
.mcm-event-more__card-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 30px; }
.mcm-event-more__tag { display: inline-flex; min-height: 32px; align-items: center; padding: 7px 11px; background: var(--mcm-ink); color: #fff; font-size: .68rem; font-weight: 800; letter-spacing: .08em; line-height: 1.1; text-transform: uppercase; }
.mcm-event-more__icon { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border: 1px solid rgba(34,34,33,.24); color: var(--mcm-ink); }
.mcm-event-more__card h3 { margin: 0 0 12px; font-size: clamp(1.8rem, 2.5vw, 2.45rem); line-height: .98; }
.mcm-event-more__card > p { margin: 0; color: rgba(34,34,33,.76); }
.mcm-event-more__location { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 10px; align-items: start; margin-top: auto; padding-top: 28px; }
.mcm-event-more__location > .mcm-icon { margin-top: 3px; color: var(--mcm-ink); }
.mcm-event-more__location strong,
.mcm-event-more__location span { display: block; }
.mcm-event-more__location strong { font-size: .86rem; }
.mcm-event-more__location span { margin-top: 3px; color: rgba(34,34,33,.66); font-size: .78rem; line-height: 1.45; }

@media (max-width: 1099px) {
  .mcm-event-more__layout { grid-template-columns: 1fr; gap: 34px; }
  .mcm-event-more__intro { max-width: 780px; }
}
@media (max-width: 699px) {
  .mcm-event-more__cards { grid-template-columns: 1fr; }
  .mcm-event-more__card { min-height: 0; }
}

/* Native OpenStreetMap component */
.mcm-osm-map { position:relative; min-height:var(--mcm-map-height,500px); overflow:hidden; background:var(--mcm-bg-2); border:1px solid var(--mcm-border); isolation:isolate; }
.mcm-osm-map__viewport { position:relative; min-height:var(--mcm-map-height,500px); }
.mcm-osm-map__canvas { position:absolute; inset:0; overflow:hidden; background:#d9dee0; cursor:grab; touch-action:none; outline:0; }
.mcm-osm-map__canvas.is-dragging { cursor:grabbing; }
.mcm-osm-map__canvas:focus-visible { box-shadow:inset 0 0 0 3px var(--mcm-yellow-strong); }
.mcm-osm-map__tiles { position:absolute; inset:0; overflow:hidden; }
.mcm-osm-map__tiles img { position:absolute; width:256px; height:256px; max-width:none; user-select:none; -webkit-user-drag:none; }
.mcm-osm-map__tiles img.is-error { opacity:.12; }
.mcm-osm-map__marker { position:absolute; z-index:8; top:0; left:0; display:block; width:48px; height:48px; visibility:hidden; pointer-events:none; will-change:transform; }
.mcm-osm-map__marker-pin { display:grid; width:48px; height:48px; place-items:center; border:4px solid #fff; border-radius:50% 50% 50% 0; background:var(--mcm-yellow); color:var(--mcm-ink); box-shadow:0 8px 22px rgba(0,0,0,.28); font-size:1.2rem; transform:rotate(-45deg); transform-origin:center; }
.mcm-osm-map__marker-pin .mcm-icon { transform:rotate(45deg); }
.mcm-osm-map__controls { position:absolute; z-index:9; top:18px; right:18px; display:grid; gap:1px; overflow:hidden; border:1px solid rgba(34,34,33,.22); background:rgba(34,34,33,.22); box-shadow:0 10px 28px rgba(0,0,0,.18); }
.mcm-osm-map__controls button { display:grid; width:44px; height:44px; place-items:center; border:0; background:#fff; color:var(--mcm-ink); cursor:pointer; transition:background var(--mcm-duration),color var(--mcm-duration); }
.mcm-osm-map__controls button:hover:not(:disabled) { background:var(--mcm-yellow); }
.mcm-osm-map__controls button:disabled { opacity:.4; cursor:not-allowed; }
.mcm-osm-map__gesture-hint { position:absolute; z-index:6; top:18px; left:50%; display:flex; align-items:center; gap:10px; max-width:calc(100% - 36px); padding:10px 15px; background:rgba(34,34,33,.92); color:#fff; font-size:.78rem; font-weight:700; opacity:0; pointer-events:none; transform:translate(-50%,-8px); transition:opacity .2s,transform .2s; }
.mcm-osm-map__gesture-hint.is-visible { opacity:1; transform:translate(-50%,0); }
.mcm-osm-map__hint-touch { display:none; }
.mcm-osm-map__card { position:absolute; z-index:5; top:50%; left:clamp(24px,5vw,60px); display:grid; width:min(430px,calc(100% - 48px)); grid-template-columns:54px minmax(0,1fr); gap:18px; padding:26px; background:#fff; border-left:5px solid var(--mcm-yellow); box-shadow:0 18px 52px rgba(0,0,0,.18); transform:translateY(-50%); }
.mcm-osm-map__icon { display:grid; width:54px; height:54px; place-items:center; background:var(--mcm-yellow); color:var(--mcm-ink); font-size:1.2rem; }
.mcm-osm-map__content { min-width:0; }
.mcm-osm-map__content h3 { margin:0 0 7px; font-size:clamp(1.55rem,2.4vw,2.1rem); }
.mcm-osm-map__content p { margin:0 0 13px; color:var(--mcm-muted); }
.mcm-osm-map__credit { position:absolute; z-index:7; right:8px; bottom:6px; margin:0; padding:3px 6px; background:rgba(255,255,255,.92); font-size:.68rem; }
.mcm-osm-map__credit a { color:var(--mcm-text); }
.mcm-anchor-target { position:relative; top:calc(-1 * var(--mcm-header-height)); display:block; visibility:hidden; }

@media (hover:none), (pointer:coarse) { .mcm-osm-map__hint-desktop { display:none; } .mcm-osm-map__hint-touch { display:inline; } }
@media (max-width:767px) {
  .mcm-osm-map, .mcm-osm-map__viewport { min-height:auto; }
  .mcm-osm-map__canvas { position:relative; height:clamp(360px,90vw,470px); }
  .mcm-osm-map__card { position:relative; top:auto; left:auto; width:100%; grid-template-columns:48px minmax(0,1fr); gap:14px; padding:22px; border-top:1px solid var(--mcm-border); box-shadow:none; transform:none; }
  .mcm-osm-map__icon { width:48px; height:48px; }
  .mcm-osm-map__credit { top:calc(clamp(360px,90vw,470px) - 24px); bottom:auto; }
}

/* Records and rankings */
.mcm-records-archive__intro { width: min(100%, 920px); margin: 0 0 34px; }
.mcm-records-table { overflow: hidden; border: 1px solid var(--mcm-border); border-top: 5px solid var(--mcm-yellow); background: #fff; }
.mcm-records-table__head,
.mcm-record-row { display: grid; grid-template-columns: 72px minmax(220px, 1.8fr) minmax(150px, 1.15fr) minmax(130px, .9fr) minmax(110px, .75fr) 82px; align-items: center; }
.mcm-records-table__head { min-height: 58px; background: var(--mcm-ink); color: #fff; font-size: .69rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.mcm-records-table__head > span,
.mcm-record-row > * { min-width: 0; padding: 15px 18px; }
.mcm-record-row { min-height: 82px; border-bottom: 1px solid var(--mcm-border); color: var(--mcm-muted); transition: background var(--mcm-duration), color var(--mcm-duration); }
.mcm-record-row:last-child { border-bottom: 0; }
.mcm-record-row:hover { background: var(--mcm-bg); }
.mcm-record-row__rank { color: var(--mcm-ink); font-family: var(--mcm-font-display); font-size: 1.8rem; font-weight: 800; text-align: center; }
.mcm-record-row__athlete { display: grid; grid-template-columns: minmax(0, auto) 18px; align-items: center; justify-content: start; column-gap: 8px; }
.mcm-record-row__athlete a { min-width: 0; color: var(--mcm-ink); font-family: var(--mcm-font-display); font-size: 1.35rem; font-weight: 700; line-height: 1.05; text-decoration: none; text-transform: uppercase; }
.mcm-record-row__athlete a:hover { color: #6f6600; }
.mcm-record-row__athlete small { grid-column: 1 / -1; margin-top: 5px; color: var(--mcm-muted); font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.mcm-record-row__verified { color: #748826; }
.mcm-record-row__performance { color: var(--mcm-ink); font-family: var(--mcm-font-display); font-size: 1.4rem; line-height: 1; }
.mcm-records-root--compact .mcm-record-row { min-height: 70px; }
.mcm-records-root--compact .mcm-records-table__head,
.mcm-records-root--compact .mcm-record-row { grid-template-columns: 62px minmax(190px, 1.8fr) minmax(135px, 1.05fr) minmax(120px, .9fr) minmax(96px, .7fr) 72px; }
.mcm-home-records .mcm-section-head h2 { color: #fff; }
.mcm-home-records .mcm-section-head__link { color: var(--mcm-yellow); }
.mcm-home-records .mcm-records-table { border-color: rgba(255,255,255,.16); background: #292928; }
.mcm-home-records .mcm-records-table__head { background: #111; }
.mcm-home-records .mcm-record-row { border-color: rgba(255,255,255,.12); color: rgba(255,255,255,.72); }
.mcm-home-records .mcm-record-row:hover { background: rgba(255,255,255,.05); }
.mcm-home-records .mcm-record-row__rank,
.mcm-home-records .mcm-record-row__athlete a,
.mcm-home-records .mcm-record-row__performance { color: #fff; }
.mcm-home-records .mcm-record-row__athlete small { color: rgba(255,255,255,.54); }
.mcm-record-detail__headline { margin-bottom: 34px; }
.mcm-record-detail__headline h2 { font-size: clamp(4rem, 8vw, 7.5rem); }
.mcm-record-detail__image { margin: 0 0 36px; }
.mcm-record-detail__image img { width: 100%; }
.mcm-record-detail__facts { position: sticky; top: calc(var(--mcm-header-height) + 24px); padding: 34px; border-top: 5px solid var(--mcm-yellow); background: var(--mcm-bg); }
.mcm-record-detail__facts dl { display: grid; gap: 0; margin: 24px 0 0; }
.mcm-record-detail__facts dl > div { display: grid; grid-template-columns: minmax(100px, .85fr) minmax(0, 1.15fr); gap: 16px; padding: 13px 0; border-top: 1px solid var(--mcm-border); }
.mcm-record-detail__facts dt { color: var(--mcm-muted); font-size: .73rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.mcm-record-detail__facts dd { margin: 0; color: var(--mcm-ink); font-weight: 700; }
.mcm-record-detail__verified { display: inline-flex; align-items: center; gap: 8px; margin: 22px 0 0; color: #596d12; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

@media (max-width: 1099px) {
  .mcm-records-table { overflow-x: auto; }
  .mcm-records-table__head,
  .mcm-record-row { min-width: 960px; }
  .mcm-record-detail__facts { position: static; }
}
@media (max-width: 767px) {
  .mcm-records-table { overflow: visible; border-right: 0; border-left: 0; }
  .mcm-records-table__head { display: none; }
  .mcm-record-row,
  .mcm-records-root--compact .mcm-record-row { display: grid; min-width: 0; grid-template-columns: 1fr 1fr; gap: 0; padding: 16px; }
  .mcm-record-row > *,
  .mcm-records-root--compact .mcm-record-row > * { display: grid; align-content: start; gap: 5px; padding: 10px; }
  .mcm-record-row > *::before { color: var(--mcm-muted); content: attr(data-label); font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
  .mcm-record-row__rank { text-align: left; }
  .mcm-record-row__athlete { grid-column: 1 / -1; grid-template-columns: minmax(0, auto) 18px; }
  .mcm-record-row__athlete::before { grid-column: 1 / -1; }
  .mcm-home-records .mcm-record-row > *::before { color: rgba(255,255,255,.5); }
  .mcm-record-detail__facts { padding: 26px 22px; }
  .mcm-record-detail__facts dl > div { grid-template-columns: 1fr; gap: 4px; }
}

/* v1.7: homepage record contrast, partner slider and honorary members */
.mcm-home-records .mcm-eyebrow { color: var(--mcm-yellow); }
.mcm-partner-carousel__item { flex-basis: calc((100% - (3 * var(--mcm-grid-gap))) / 4); }
.mcm-partner-slider .mcm-partner-card { height: 100%; min-height: 210px; }
.mcm-partner-card__logo { display: grid; min-height: 90px; place-items: center; }
.mcm-partner-card__logo img { display: block; width: auto; max-width: min(220px, 100%); height: auto; max-height: 90px; object-fit: contain; }

.mcm-honorary-card { display: flex; min-height: 100%; flex-direction: column; border: 1px solid var(--mcm-border); background: #fff; }
.mcm-honorary-card__media { position: relative; display: grid; aspect-ratio: 4 / 4.5; place-items: center; overflow: hidden; background: var(--mcm-ink); color: var(--mcm-yellow); font-family: var(--mcm-font-display); font-size: clamp(6rem, 15vw, 11rem); font-weight: 800; text-decoration: none; }
.mcm-honorary-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--mcm-ease); }
.mcm-honorary-card:hover .mcm-honorary-card__media img { transform: scale(1.04); }
.mcm-honorary-card__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 28px; }
.mcm-honorary-card__body h2 { margin: 18px 0 8px; font-size: clamp(2rem, 3vw, 2.8rem); }
.mcm-honorary-card__body h2 a { color: var(--mcm-ink); text-decoration: none; }
.mcm-honorary-card__body h2 a:hover { color: #6f6600; }
.mcm-honorary-card__honor { margin: 0 0 14px; color: var(--mcm-ink); font-weight: 700; }
.mcm-honorary-card__body > p:not(.mcm-badge):not(.mcm-honorary-card__honor) { color: var(--mcm-muted); }
.mcm-honorary-card__body .mcm-link-arrow { margin-top: auto; padding-top: 18px; }
body.single-mcm_honorary main { overflow: visible; }
.mcm-honorary-detail { overflow: visible; }
.mcm-honorary-detail__layout {
  display: grid;
  grid-template-columns: minmax(300px, .78fr) minmax(0, 1.22fr);
  gap: clamp(40px, 5.5vw, 86px);
  align-items: start;
}
.mcm-honorary-detail__aside,
.mcm-honorary-detail__content { min-width: 0; align-self: start; }
.mcm-honorary-detail__aside { position: sticky; top: calc(var(--mcm-header-height, 96px) + 24px); display: flex; height: max-content; flex-direction: column; }
.mcm-honorary-detail__media {
  display: grid;
  aspect-ratio: 4 / 5;
  margin: 0;
  min-height: 0;
  place-items: center;
  overflow: hidden;
  background: var(--mcm-ink);
  color: var(--mcm-yellow);
  font-family: var(--mcm-font-display);
  font-size: clamp(8rem, 18vw, 15rem);
  font-weight: 800;
  border: 1px solid var(--mcm-border);
  border-bottom: 0;
}
.mcm-honorary-detail__media img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.mcm-honorary-detail__facts { margin: 0; padding: 26px; border: 1px solid var(--mcm-border); border-top: 0; border-left: 5px solid var(--mcm-yellow); background: var(--mcm-bg); }
.mcm-honorary-detail__facts .mcm-eyebrow { margin-bottom: 18px; }
.mcm-honorary-detail__facts dl { display: grid; margin: 0; }
.mcm-honorary-detail__facts dl > div { display: grid; grid-template-columns: minmax(120px, .72fr) minmax(0, 1.28fr); gap: 16px; padding-block: 12px; border-bottom: 1px solid var(--mcm-border); }
.mcm-honorary-detail__facts dl > div:last-child { border-bottom: 0; }
.mcm-honorary-detail__facts dt { color: var(--mcm-muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.mcm-honorary-detail__facts dd { min-width: 0; margin: 0; color: var(--mcm-text); overflow-wrap: anywhere; }
.mcm-honorary-detail__content { padding: 0; }
.mcm-honorary-detail__content > .mcm-eyebrow { margin-bottom: 18px; }
.mcm-honorary-detail__content h2 { max-width: 760px; margin-bottom: 26px; font-size: clamp(3rem, 5vw, 5.5rem); }
.mcm-honorary-detail__actions { margin: 34px 0 0; }

@media (max-width: 1199px) {
  .mcm-partner-carousel__item { flex-basis: calc((100% - var(--mcm-grid-gap)) / 2); }
}
@media (max-width: 899px) {
  .mcm-honorary-detail__layout { grid-template-columns: 1fr; gap: 36px; }
  .mcm-honorary-detail__aside { position: static; top: auto; }
}
@media (max-width: 767px) {
  .mcm-partner-carousel__item { flex-basis: 86%; }
  .mcm-honorary-detail__layout { grid-template-columns: 1fr; gap: 34px; }
  .mcm-honorary-detail__facts dl > div { grid-template-columns: 1fr; gap: 4px; }
  .mcm-honorary-detail__actions .mcm-button { width: 100%; }
}



/* v1.18: grouped partner cards remain independent and evenly spaced. */
.mcm-partner-groups .mcm-partner-grid {
  gap: clamp(18px, 2vw, 28px);
  border: 0;
  background: transparent;
}
.mcm-partner-groups .mcm-partner-card {
  border: 1px solid var(--mcm-border);
  background: #fff;
}
.mcm-partner-groups .mcm-partner-card:hover { border-color: var(--mcm-ink); background: var(--mcm-yellow-soft); }

/* Recurring training entries inside the event archive. */
.mcm-event-more__intro .mcm-link-arrow { display: inline-flex; margin-top: 28px; color: var(--mcm-ink); }
.mcm-event-more__card.mcm-training-card { cursor: pointer; }
.mcm-event-more__card.mcm-training-card::after {
  position: absolute;
  right: 26px;
  bottom: 24px;
  width: 9px;
  height: 9px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  content: "";
  transform: rotate(45deg);
}
.mcm-event-more__card.mcm-training-card:hover,
.mcm-event-more__card.mcm-training-card:focus-visible { border-color: var(--mcm-ink); background: #fff; }

@media (max-width: 560px) { .mcm-contact-socials__grid { grid-template-columns: 1fr; } }
