:root {
  --bg: var(--color-page);
  --paper: var(--color-surface);
  --ink: var(--color-text);
  --muted: var(--color-text-muted);
  --line: var(--color-border);
  --soft: var(--color-surface-soft);
  --red: var(--color-accent);
  --red-dark: var(--color-accent-hover);
  --dark: var(--color-surface-dark);
  --dark-2: var(--color-surface-dark-raised);
  --max: 1440px;
  --unit: 8px;
  --space-2: calc(var(--unit) * 2);
  --space-3: calc(var(--unit) * 3);
  --space-4: calc(var(--unit) * 4);
  --space-6: calc(var(--unit) * 6);
  --space-8: calc(var(--unit) * 8);
  --pad: clamp(24px, 4vw, 64px);
  --display: "Inter", "Manrope", sans-serif;
  --sans: "Manrope", "Inter", sans-serif;
}

/* Moto clubs */
.clubs-page { background:var(--color-page); color:var(--color-text); min-height:100vh; }
.clubs-shell { width:min(1240px,calc(100% - 48px)); margin:0 auto; }
.clubs-hero { padding:170px 0 82px; color:var(--color-text-inverse); background:linear-gradient(120deg,var(--color-surface-dark) 0%,var(--color-surface-dark-raised) 72%,var(--color-accent-hover) 100%); }
.clubs-eyebrow,.clubs-kicker { margin:0 0 16px; color:var(--color-accent); font:800 11px/1 Inter,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.clubs-hero>div>p:last-child { max-width:720px; margin:28px 0 0; color:var(--color-text-inverse-muted); font:500 18px/1.55 Inter,sans-serif; }
.clubs-directory>header { display:flex; justify-content:space-between; align-items:end; }
.clubs-directory h2 { margin:0; font:800 42px/1 Manrope,sans-serif; letter-spacing:-.045em; }
.clubs-directory>header>p { margin:0; color:var(--color-text-secondary); font:500 14px Inter,sans-serif; }
.clubs-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.club-card { background:var(--color-surface); }
.club-card__link { display:block; height:100%; color:inherit; text-decoration:none;  }

.club-card__media { display:grid; place-items:center; min-height:210px; background:var(--color-surface-dark); text-decoration:none; }
.club-card__media img { width:100%; height:210px; object-fit:contain; background:var(--color-surface); }

.club-card__body,.club-card__title,.club-card__place,.club-card__contact { display:block; }
.club-card__contact { margin:6px 0; color:var(--color-text-secondary); font:500 14px/1.45 Inter,sans-serif; }
.club-card h2 a,.club-card__more { color:inherit; text-decoration:none; }
.club-card p { margin:6px 0; color:var(--color-text-secondary); font:500 14px/1.45 Inter,sans-serif; }
.club-card__place { color:var(--color-text)!important; font-weight:700!important; }
.club-card__more { display:inline-block; margin-top:20px; color:var(--color-accent); font:800 11px Inter,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.club-detail { padding:150px 0 20px; }
.club-detail nav { margin-bottom:60px; }
.club-detail nav a { color:var(--color-text-secondary); font:700 12px Inter,sans-serif; text-decoration:none; text-transform:uppercase; }
.club-detail__layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr); align-items:start; }
.club-detail__logo { max-width:520px; max-height:420px; margin:42px 0 0; object-fit:contain; background:var(--color-surface); }
.club-contacts { padding:30px; color:var(--color-text-inverse); background:var(--color-surface-dark); }
.club-detail__sidebar { display: grid; gap: 24px; min-width: 0; }
.club-contacts h2 { margin:0 0 25px; font:800 26px Manrope,sans-serif; }
.club-contacts p { margin:0; padding:16px 0; border-top:1px solid var(--color-border-dark); font:500 14px/1.55 Manrope,sans-serif; overflow-wrap:anywhere; }
.club-contacts span { display:block; margin-bottom:6px; color:var(--color-text-inverse-muted); font:800 10px Manrope,sans-serif; letter-spacing:normal; text-transform:none; }
.club-contacts a { color:var(--color-text-inverse); text-decoration-color:var(--color-accent); text-underline-offset:4px; }
@media(max-width:900px){.clubs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.club-detail__layout{grid-template-columns:1fr}.club-contacts{max-width:520px}}
@media(max-width:620px){.clubs-shell{width:min(100% - 24px,1240px)}.clubs-hero{padding:132px 0 56px}.clubs-directory>header{display:block}.clubs-directory>header>p{margin-top:14px}.clubs-grid{grid-template-columns:1fr}.club-detail nav{margin-bottom:40px}.club-card__media,.club-card__media img{height:190px;min-height:190px}}
.club-change-application { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(0,1.5fr); gap:54px; margin-top:80px; padding:48px; color:var(--color-text-inverse); background:var(--color-surface-dark); }
.club-change-application__intro h2 { margin:0; font:800 36px/1.05 Manrope,sans-serif; letter-spacing:-.045em; }
.club-change-application__intro>p:last-child { color:var(--color-text-inverse-muted); font:500 15px/1.6 Inter,sans-serif; }
.club-change-form { display:grid; grid-template-columns:1fr 1fr; }
.club-change-form__field { display:block; }
.club-change-form__field>span { display:block; margin-bottom:7px; color:var(--color-text-inverse-muted); font:700 10px Inter,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.club-change-form input:not([type=checkbox]),.club-change-form textarea { width:100%; box-sizing:border-box; padding:12px 13px; border:1px solid var(--color-border-dark); border-radius:0; outline:0; background:var(--color-surface-dark-raised); color:var(--color-text-inverse); font:500 14px/1.4 Inter,sans-serif; }
.club-change-form__field--changes,.club-change-form__field--consent,.club-change-form button { grid-column:1/-1; }
.club-change-form__field--consent { display:flex; gap:10px; align-items:flex-start; }
.club-change-form__field--consent>span { order:2; margin:2px 0 0; }
.club-change-form input[type=checkbox] { accent-color:var(--color-accent); }
.club-change-form button { justify-self:start; }
@media(max-width:900px){.club-change-application{grid-template-columns:1fr}}
@media(max-width:620px){.club-change-application{margin-top:54px;padding:28px 18px}.club-change-form{grid-template-columns:1fr}.club-change-form__field--changes,.club-change-form__field--consent,.club-change-form button{grid-column:auto}.club-change-form button{width:100%}}

.moto-icon { flex: 0 0 auto; -webkit-mask: center / contain no-repeat url('/templates/template75/img/icons/arrow-left.svg'); mask: center / contain no-repeat url('/templates/template75/img/icons/arrow-left.svg'); }
.moto-icon--arrow-right { transform: rotate(180deg); }

/* Video archive */
.video-page { min-height: 70vh; background: var(--color-page); color: var(--color-text); }
.video-shell { width: min(100% - 40px, 1380px); margin-inline: auto; }
.video-hero { padding: 168px 0 64px; color: var(--color-text-inverse); background: var(--color-surface-dark); }
.video-eyebrow { margin: 0 0 20px; color: var(--color-accent); font: 800 11px/1.3 Inter,sans-serif; letter-spacing: .09em; text-transform: uppercase; }
.video-hero p:last-child { max-width: 650px; margin: 28px 0 0; color: var(--color-text-inverse-muted); font-size: 18px; }
.video-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 20px; }
.video-card { min-width: 0; background: var(--color-surface); }
.video-card__media { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; background: var(--color-surface-dark); }
.video-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.video-card__play { position: absolute; left: 20px; bottom: 18px; display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; color: var(--color-text-inverse); background: var(--color-accent); font-size: 16px; }
.video-card__body { padding: 22px; }
.video-card time, .video-detail time { color: var(--color-text-muted); font: 700 11px Inter,sans-serif; letter-spacing: .06em; }
.video-card h2 { margin: 12px 0 10px; font-size: clamp(20px, 2vw, 27px); line-height: 1.05; }
.video-card h2 a { color: inherit; text-decoration: none; }
.video-card__summary { display: -webkit-box; overflow: hidden; color: var(--color-text-secondary); font-size: 14px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.video-detail__nav { margin-bottom: 42px; }
.video-detail__nav a { display: inline-flex; align-items: center; gap: 7px; color: var(--color-accent); font: 800 12px Inter,sans-serif; text-decoration: none; text-transform: uppercase; }
.gallery-page { min-height: 100vh; background: var(--color-page); color: var(--color-text); }
.gallery-shell { width: min(1440px, calc(100% - 48px)); margin: 0 auto; }
.gallery-hero { padding: 154px 0 54px; background: var(--color-surface-dark); color: var(--color-text-inverse); }
.gallery-eyebrow { color: var(--color-accent); font: 800 12px Inter,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.gallery-date { margin: 18px 0 0; color: var(--color-text-inverse-muted); font: 500 14px/1.5 Manrope,sans-serif; }
.gallery-back { margin-top: 24px; }
.gallery-feed { padding: 48px 0 80px; }
.gallery-album-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gallery-album { color: inherit; background: var(--color-surface); text-decoration: none; }

.gallery-album__media { display: grid; aspect-ratio: 4/3; place-items: center; overflow: hidden; background: var(--color-surface-dark); color: var(--color-accent); font: 800 28px Inter,sans-serif; }
.gallery-album__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }

.gallery-album p { margin: 0; color: var(--color-text-muted); font-size: 13px; }
.gallery-photo-grid { columns: 4 260px; column-gap: 16px; }
.gallery-page--album .gallery-album-ad { display: flex; margin-top: 24px; }
.gallery-photo { position: relative; display: block; break-inside: avoid; margin-bottom: 16px; overflow: hidden; background: var(--color-surface-dark); }
.gallery-photo img { display: block; width: 100%; height: auto; transition: transform .3s ease; }
@media (max-width: 900px) { .gallery-album-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 560px) { .gallery-shell { width: min(100% - 32px,1440px); } .gallery-album-grid { grid-template-columns: 1fr; } .gallery-photo-grid { columns: 2 140px; column-gap: 10px; } .gallery-photo { margin-bottom: 10px; } }
.gallery-lightbox-open { overflow: hidden; }
.gallery-lightbox { position: fixed; inset: 0; z-index: 10000; display: grid; visibility: hidden; place-items: center; opacity: 0; transition: opacity .22s ease, visibility .22s ease; }
.gallery-lightbox.is-open { visibility: visible; opacity: 1; }
.gallery-lightbox__backdrop { position: absolute; inset: 0; background: rgba(var(--color-dark-rgb), 0.82); backdrop-filter: blur(5px); }
.gallery-lightbox__stage { position: relative; z-index: 1; display: grid; width: min(96vw,1600px); height: min(92vh,1000px); grid-template-columns: 64px minmax(0,1fr) 64px; align-items: center; gap: 16px; }
.gallery-lightbox figure { display: grid; min-width: 0; height: 100%; margin: 0; grid-template-rows: minmax(0,1fr) auto; }
.gallery-lightbox figure img { align-self: center; justify-self: center; max-width: 100%; max-height: calc(92vh - 58px); object-fit: contain; box-shadow: 0 18px 70px rgba(var(--color-shadow-rgb), 0.38); transition: opacity .18s ease; }
.gallery-lightbox figure img.is-loading { opacity: .35; }
.gallery-lightbox figcaption { display: flex; min-height: 42px; align-items: center; justify-content: flex-end; padding-top: 12px; color: var(--color-text-inverse); font-size: 13px; }
.gallery-lightbox figcaption b { flex: 0 0 auto; color: var(--color-text-inverse-muted); font: 700 12px Inter,sans-serif; }
.gallery-lightbox button { border: 0; color: var(--color-text-inverse); background: rgba(var(--color-white-rgb), 0.12); cursor: pointer; transition: color .18s ease, background .18s ease, transform .18s ease; }
.gallery-lightbox button:hover { color: var(--color-text-inverse); background: var(--color-accent-hover); }
.gallery-lightbox__arrow { width: 56px; height: 56px; place-items: center; border-radius: 50%; font-size: 22px; }
.gallery-lightbox__close { position: absolute; top: 0; right: 0; z-index: 2; width: 48px; height: 48px; border-radius: 50%; font-size: 32px; line-height: 1; }
@media (max-width: 700px) { .gallery-lightbox__stage { width: 100vw; height: 100svh; padding: 58px 12px 14px; grid-template-columns: minmax(0,1fr); gap: 6px; } .gallery-lightbox__close { top: 10px; right: 12px; } .gallery-lightbox figure img { max-height: calc(100svh - 120px); } }
@media (prefers-reduced-motion: reduce) { .gallery-lightbox, .gallery-lightbox figure img, .gallery-lightbox button { transition: none; } }
.video-detail header { max-width: 980px; }
.video-detail__lead, .video-detail__content { max-width: 900px; color: var(--color-text); }
.video-player { position: relative; width: 100%; margin: 42px 0; aspect-ratio: 16/9; overflow: hidden; background: var(--color-surface-dark); }
.video-player iframe { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border: 0; background: var(--color-surface-dark); }
@media (max-width: 900px) { .video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .video-shell { width: min(100% - 24px, 1380px); } .video-hero { padding: 128px 0 46px; } .video-hero p:last-child { font-size: 15px; } .video-grid { grid-template-columns: 1fr; gap: 18px; } }

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--bg);
  font-family: var(--sans);
  letter-spacing: 0;
  overflow-x: hidden;
}

body.menu-open {
  overflow: hidden;
}

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

main,
section,
article,
aside,
figure,
form,
nav,
div {
  min-width: 0;
}

h1,
h2,
h3,
p,
a,
strong,
span {
  overflow-wrap: break-word;
}

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

button,
input {
  font: inherit;
}

a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 3px solid var(--red);
  outline-offset: 3px;
}

.site-header {
  --header-logo-height: 52px;
  --header-logo-width: 220px;
  position: fixed;
  z-index: 20;
  top: 0;
  left: 0;
  right: 0;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: var(--space-3);
  align-items: center;
  padding: 0 var(--pad);
  color: var(--paper);
  background: var(--color-surface-dark-translucent);
  border-bottom: 1px solid var(--color-border-inverse);
  backdrop-filter: blur(18px);
}

.brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--header-logo-width) + var(--header-logo-height));
  min-height: calc(var(--header-logo-height) * 2);
  padding: calc(var(--header-logo-height) * 0.5);
  color: var(--paper);
  font-family: var(--display);
  font-size: 32px;
  font-weight: 900;
  letter-spacing: 0;
}

.brand img {
  width: var(--header-logo-width);
  height: auto;
  max-height: var(--header-logo-height);
  object-fit: contain;
}

.nav-strip {
  display: flex;
  gap: clamp(16px, 1.4vw, 24px);
  justify-content: center;
  flex-wrap: wrap;
  overflow: visible;
  color: var(--color-text-inverse-muted);
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
}

.nav-strip a,
.header-action {
  transition: color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.nav-strip a:hover,
.header-action:hover {
  color: var(--red);
}

.nav-account {
  display: none;
}

.header-controls {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-self: end;
}

.header-subscribe {
  position: relative;
}

.header-action {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  padding: 12px 16px;
  border: 1px solid var(--color-border-inverse);
  border-radius: 999px;
  font-size: 12px;
  text-transform: uppercase;
}

.header-cart svg {
  display: block;
  flex: 0 0 auto;
}

.header-account {
  gap: 8px;
}

.header-account svg {
  flex: 0 0 auto;
}

.subscribe-popover {
  position: absolute;
  top: calc(100% + 18px);
  right: 0;
  width: min(430px, calc(100vw - (var(--pad) * 2)));
  padding: 18px;
  color: var(--paper);
  background: rgba(var(--color-dark-rgb), 0.94);
  border: 1px solid var(--color-border-inverse);
  border-radius: 8px;
  box-shadow: 0 28px 90px rgba(var(--color-shadow-rgb), 0.38);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px);
  transition: opacity 180ms ease, transform 180ms ease;
}

.subscribe-popover::before {
  content: "";
  position: absolute;
  top: -18px;
  left: 0;
  right: 0;
  height: 18px;
}

.header-subscribe:hover .subscribe-popover,
.header-subscribe:focus-within .subscribe-popover {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.popover-copy {
  display: grid;
  gap: 8px;
  margin-bottom: 16px;
}

.popover-copy span {
  color: var(--red);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.popover-copy strong {
  max-width: 340px;
  color: var(--paper);
  font-size: 22px;
  line-height: 1.08;
}

.magazine-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 16px;
}

.magazine-strip img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 6px;
}

.subscribe-popover .text-link {
  color: var(--paper);
}

.subscribe-popover .text-link::after {
  content: none;
}

.menu-toggle {
  position: relative;
  display: none;
  width: 44px;
  height: 44px;
  place-items: center;
  justify-self: end;
  padding: 0;
  color: var(--paper);
  background: transparent;
  border: 1px solid var(--color-border-inverse);
  border-radius: 50%;
  cursor: pointer;
}

.menu-toggle span:not(.sr-only) {
  position: absolute;
  left: 50%;
  top: 50%;
  display: block;
  width: 18px;
  height: 2px;
  background: currentColor;
  transform: translate(-50%, -5px);
  transition: transform 180ms ease;
}

.menu-toggle span:nth-child(2) {
  transform: translate(-50%, 0);
}

.menu-toggle span:nth-child(3) {
  transform: translate(-50%, 5px);
}

.menu-toggle[aria-expanded="true"] span:first-child {
  transform: translate(-50%, 0) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
  transform: translate(-50%, 0);
}

.menu-toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translate(-50%, 0) rotate(-45deg);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.hero {
  position: relative;
  min-height: 88svh;
  display: grid;
  align-items: end;
  isolation: isolate;
  overflow: hidden;
  color: var(--paper);
  background: var(--dark);
}

.hero-image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 112%;
  object-fit: cover;
  transform: translateY(var(--parallax, 0));
}

.hero-shade {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(var(--color-dark-rgb), 0.14), rgba(var(--color-dark-rgb), 0.62)),
    linear-gradient(90deg, rgba(var(--color-dark-rgb), 0.72), rgba(var(--color-dark-rgb), 0.06) 70%);
}

.hero-content {
  width: min(1080px, 100%);
  padding: clamp(120px, 18vh, 176px) var(--pad) 184px;
}

.kicker {
  margin: 0 0 18px;
  color: var(--red);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

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

h1,
h2 {
  font-family: var(--display);
  font-weight: 700;
  letter-spacing: 0;
}

h1 {
  max-width: 1040px;
  margin-bottom: var(--space-3);
  font-size: clamp(38px, 6.5vw, 98px);
  line-height: 0.96;
}

.hero-logo {
  display: block;
  width: clamp(180px, 24vw, 360px);
  height: auto;
  margin-bottom: var(--space-2);
  filter: brightness(0) invert(1);
}

h2 {
  margin-bottom: var(--space-3);
  max-width: 900px;
  font-size: clamp(30px, 3.8vw, 56px);
  line-height: 1.14;
  text-wrap: balance;
}

h3 {
  font-size: clamp(22px, 2.2vw, 34px);
  line-height: 1.08;
  letter-spacing: 0;
}

.hero-lead {
  max-width: 680px;
  color: var(--color-text-inverse-muted);
  font-size: clamp(18px, 2vw, 28px);
  line-height: 1.28;
}

.hero-row,
.kit-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.button.primary:hover {
  background: var(--red-dark);
}

.button.ghost.dark {
  color: var(--ink);
  border-color: var(--line);
}

.hero-index {
  position: absolute;
  right: var(--pad);
  bottom: var(--space-3);
  display: grid;
  grid-template-columns: repeat(3, minmax(132px, 1fr));
  gap: var(--space-2);
  width: min(620px, calc(100% - var(--pad) * 2));
  color: var(--color-text-inverse-muted);
  font-size: 12px;
}

.hero-index .hero-stat {
  position: relative;
  overflow: hidden;
  display: grid;
  min-height: 104px;
  align-content: end;
  gap: 8px;
  padding: var(--space-2);
  color: var(--color-text-inverse-muted);
  background: rgba(var(--color-dark-rgb), 0.42);
  border: 1px solid var(--color-border-inverse);
  border-radius: 8px;
  backdrop-filter: blur(16px);
  opacity: 0;
  transform: translateY(18px) scale(0.98);
  transition: opacity 520ms ease, transform 520ms ease, border-color 520ms ease;
}

.hero-index.is-animated .hero-stat {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.hero-index.is-animated .hero-stat:nth-child(2) {
  transition-delay: 260ms;
}

.hero-index.is-animated .hero-stat:nth-child(3) {
  transition-delay: 560ms;
}

.hero-index .hero-stat::before {
  content: "";
  position: absolute;
  inset: auto 16px 14px 16px;
  height: 2px;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 720ms ease;
}

.hero-index.is-animated .hero-stat::before {
  transform: scaleX(1);
}

.hero-index strong {
  color: var(--paper);
  font-family: var(--display);
  font-size: clamp(34px, 4.4vw, 58px);
  font-weight: 900;
  line-height: 0.9;
}

.section {
  width: min(var(--max), 100%);
  margin: 0 auto;
  padding: clamp(80px, 9vw, 120px) var(--pad);
}

.section-heading {
  display: grid;
  grid-template-columns: minmax(130px, 0.25fr) 1fr;
  gap: clamp(24px, 3vw, 40px);
  align-items: start;
  margin-bottom: clamp(36px, 6vw, 82px);
}

.section-heading .kicker {
  padding-top: 12px;
  border-top: 2px solid var(--red);
}

.now-section {
  padding-top: clamp(72px, 9vw, 128px);
  padding-bottom: clamp(72px, 9vw, 128px);
}

.now-board {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  gap: var(--space-2);
  align-items: stretch;
}

.now-lead,
.history-card {
  overflow: hidden;
  border-radius: 8px;
  background: var(--paper);
}

.now-lead {
  display: grid;
  grid-row: span 2;
  grid-template-rows: minmax(320px, 48vh) auto;
  border: 1px solid var(--line);
}

.now-lead img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.now-lead > div {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-4);
}

.now-lead h3 {
  max-width: 760px;
  margin: 0;
}

.now-lead p,
.history-card p,
.ticker p {
  color: var(--muted);
  line-height: 1.5;
}

.ticker {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
}

.ticker article {
  min-width: 0;
  padding: var(--space-3);
  color: var(--paper);
  background: var(--ink);
  border-radius: 8px;
}

.ticker span {
  display: block;
  margin-bottom: var(--space-3);
  color: var(--red);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.ticker strong {
  display: block;
  font-size: clamp(20px, 2vw, 30px);
  line-height: 1.18;
}

.ticker p {
  margin: var(--space-2) 0 0;
  color: var(--color-text-inverse-muted);
  font-size: 14px;
}

.history-card {
  padding: var(--space-4);
  border: 1px solid var(--line);
}

.history-card h3 {
  margin-bottom: var(--space-2);
}

.history-line {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  margin-top: var(--space-4);
  padding-bottom: 34px;
  background: var(--line);
  border: 1px solid var(--line);
  overflow: hidden;
}

.history-line span {
  min-height: 72px;
  display: grid;
  place-items: center;
  padding: 8px;
  background: var(--bg);
  color: var(--ink);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  text-align: center;
  transition: opacity 420ms ease, transform 420ms ease;
}

.history-card.timeline-active .history-line span {
  opacity: 1;
  transform: translateY(0);
}

.history-card.timeline-active .history-line span:nth-child(2) {
  transition-delay: 420ms;
}

.history-card.timeline-active .history-line span:nth-child(3) {
  transition-delay: 840ms;
}

.history-card.timeline-active .history-line span:nth-child(4) {
  transition-delay: 1260ms;
}

.history-card.timeline-active .history-line span:nth-child(5) {
  transition-delay: 1680ms;
}

.history-line span:first-child,
.history-line span:nth-child(5) {
  color: var(--paper);
  background: var(--red);
}

.history-bike {
  --bike-width: 58px;
  position: absolute;
  left: 0;
  bottom: 5px;
  width: var(--bike-width);
  color: var(--red);
  opacity: 0;
  transform: translateX(0);
}

.history-bike img {
  display: block;
  width: 100%;
  height: auto;
}

.history-card.timeline-active .history-bike {
  opacity: 1;
  animation: rideTimeline 2.1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes rideTimeline {
  from {
    left: 0;
  }

  to {
    left: calc(100% - var(--bike-width));
  }
}

.feature-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-2);
  align-items: stretch;
}

.main-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: end;
  min-height: auto;
  padding: clamp(32px, 5vw, 64px);
  color: var(--paper);
  background: var(--dark);
  border-radius: 8px;
}

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

.main-feature p {
  max-width: 620px;
  color: var(--color-text-inverse-muted);
  font-size: 20px;
  line-height: 1.45;
}

.feature-meta {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  margin: 0;
  background: rgba(var(--color-white-rgb), 0.18);
  border: 1px solid var(--color-border-inverse);
}

.feature-meta span {
  display: grid;
  min-height: 96px;
  align-content: end;
  gap: 8px;
  padding: var(--space-2);
  color: var(--color-text-inverse-muted);
  background: var(--dark-2);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.feature-meta strong {
  color: var(--paper);
  font-size: clamp(24px, 3vw, 42px);
  line-height: 0.95;
}

.text-link {
  display: inline-flex;
  width: max-content;
  align-items: center;
  gap: 10px;
  color: var(--red);
  font-weight: 800;
}

.text-link::after {
  content: "→";
}

.feature-photo {
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
}

.feature-photo img,
.archive-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms ease;
}

.feature-photo:hover img,
.archive-image:hover {
  transform: scale(1.035);
}

figcaption {
  padding: 12px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.feature-photo-editorial {
  position: relative;
  min-height: clamp(360px, 48vw, 620px);
}

.feature-photo-editorial figcaption {
  position: absolute;
  left: var(--space-3);
  right: var(--space-3);
  bottom: var(--space-3);
  display: grid;
  gap: 8px;
  padding: var(--space-3);
  color: var(--paper);
  background: rgba(var(--color-dark-rgb), 0.72);
  border-radius: 8px;
  backdrop-filter: blur(16px);
}

.feature-photo-editorial figcaption span {
  color: var(--red);
  font-weight: 900;
  text-transform: uppercase;
}

.feature-photo-editorial figcaption strong {
  max-width: 520px;
  font-size: clamp(18px, 2vw, 28px);
  line-height: 1.1;
}

.catalog-section {
  padding-top: clamp(72px, 10vw, 144px);
}

.catalog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-2);
}

.catalog-card {
  background: var(--paper);
}

.catalog-card img {
  width: 100%;
  height: 260px;
  object-fit: cover;
}

.catalog-card > div {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-3);
}

.catalog-card h3 {
  margin: 0;
}

.catalog-card p {
  color: var(--muted);
  line-height: 1.5;
}

.catalog-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.catalog-links a {
  padding: 9px 12px;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.catalog-links a:hover {
  color: var(--paper);
  background: var(--red);
  border-color: var(--red);
}

.masonry {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-auto-rows: 112px;
  gap: var(--space-2);
}

.story {
  position: relative;
  isolation: isolate;
  display: grid;
  align-content: end;
  min-height: 100%;
  overflow: hidden;
  padding: var(--space-3);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  transition: transform 220ms ease, border-color 220ms ease;
}

.story:hover {
  border-color: var(--red);
}

.story-large {
  grid-column: span 4;
  grid-row: span 5;
  color: var(--paper);
  background: var(--dark);
}

.story img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  transition: transform 700ms ease;
}

.story::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(var(--color-dark-rgb), 0.05), rgba(var(--color-dark-rgb), 0.78));
  opacity: 0;
}

.story:has(img) {
  color: var(--paper);
  border-color: var(--color-border-inverse);
}

.story:has(img)::after {
  opacity: 1;
}

.story-large img,
.story-wide img {
  height: 100%;
}

.story-copy {
  display: grid;
  gap: var(--space-2);
}

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

.story-small {
  grid-column: span 2;
  grid-row: span 2;
}

.story-wide {
  grid-column: span 4;
  grid-row: span 3;
}

.story h3 {
  margin: 0;
}

.story p {
  max-width: 560px;
  margin-bottom: 0;
  color: var(--color-text-inverse-muted);
}

.tag {
  display: inline-flex;
  width: max-content;
  align-items: center;
  min-height: 28px;
  padding: 6px 10px;
  color: var(--red);
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.dark-section {
  width: 100%;
  max-width: none;
  color: var(--paper);
  background: var(--dark);
}

.dark-section > * {
  max-width: var(--max);
  margin-left: auto;
  margin-right: auto;
}

.split {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(28px, 6vw, 90px);
  padding-left: var(--pad);
  padding-right: var(--pad);
}

.sticky-copy {
  position: sticky;
  top: 110px;
  align-self: start;
}

.sticky-copy p {
  max-width: 460px;
  color: var(--color-text-inverse-muted);
  font-size: 18px;
  line-height: 1.55;
}

.video-stack {
  display: grid;
  gap: var(--space-2);
}

.video-tile {
  position: relative;
  isolation: isolate;
  min-height: 292px;
  display: grid;
  align-content: space-between;
  padding: var(--space-3);
  background: var(--dark-2);
}

.video-tile::before,
.video-tile::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
}

.video-tile::before {
  background-image: var(--tile-image);
  background-size: cover;
  background-position: center;
}

.video-tile::after {
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(var(--color-dark-rgb), 0.12), rgba(var(--color-dark-rgb), 0.86)),
    linear-gradient(90deg, rgba(var(--color-dark-rgb), 0.56), rgba(var(--color-dark-rgb), 0.08));
}

.video-tile span {
  display: inline-grid;
  width: 56px;
  height: 56px;
  place-items: center;
  margin: auto 0 var(--space-4);
  color: var(--paper);
  background: var(--red);
  border-radius: 50%;
}

.video-tile .video-play::before {
  content: "";
}

.video-tile em {
  width: max-content;
  max-width: 100%;
  padding: 8px 10px;
  color: var(--paper);
  background: rgba(var(--color-dark-rgb), 0.62);
  border: 1px solid var(--color-border-inverse);
  border-radius: 999px;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
  text-transform: uppercase;
  backdrop-filter: blur(12px);
}

.video-tile p {
  margin: var(--space-2) 0 0;
  color: var(--color-text-inverse-muted);
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
}

.calendar-shell {
  display: grid;
  width: min(calc(100% - 48px), 1500px);
  margin-inline: auto;
  grid-template-columns: minmax(440px, .82fr) minmax(0, 1.18fr);
  gap: var(--space-3);
  align-items: stretch;
}

.calendar-panel {
  position: sticky;
  top: 116px;
  display: grid;
  gap: var(--space-3);
  padding: var(--space-3);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  height: 100%;
  box-sizing: border-box;
}

.calendar-topline {
  display: flex;
  justify-content: space-between;
  gap: var(--space-2);
  align-items: center;
}

.calendar-topline span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.calendar-topline strong {
  color: var(--red);
  font-family: var(--display);
  font-size: clamp(44px, 5vw, 78px);
  line-height: 0.9;
}

.month-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}

.month-grid span,
.month-grid button {
  min-height: 52px;
  display: grid;
  place-items: center;
  padding: 0;
  color: var(--ink);
  background: var(--bg);
  border: 0;
  font: inherit;
  font-size: 12px;
  font-weight: 900;
}

.month-grid span {
  color: var(--muted);
  background: var(--paper);
  text-transform: uppercase;
}

.month-grid button {
  cursor: pointer;
  transition: background 180ms ease, color 180ms ease, box-shadow 180ms ease;
}

.month-grid button.has-event {
  position: relative;
  color: var(--paper);
  background: var(--ink);
}

.month-grid button.has-event::after {
  content: "";
  position: absolute;
  bottom: 9px;
  width: 6px;
  height: 6px;
  background: var(--red);
  border-radius: 50%;
}

.month-grid button.next-month {
  color: var(--muted);
}

.month-grid button.is-active {
  color: var(--paper);
  background: var(--red);
  box-shadow: inset 0 0 0 2px var(--ink);
}

.filters {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px;
  align-items: flex-start;
}

.chip {
  min-height: 38px;
  padding: 9px 14px;
  color: var(--ink);
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 999px;
  cursor: pointer;
}

.chip.active,
.chip:hover {
  color: var(--paper);
  background: var(--red);
  border-color: var(--red);
}

.calendar-grid article.is-hidden {
  display: none;
}

.calendar-grid .calendar-selected.is-hidden {
  display: none;
}

.calendar-agenda {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
  border: 0;
}

.calendar-agenda article {
  display: flex;
  flex-direction: column;
  min-height: 330px;
  padding: 0;
  background: var(--paper);
}

.calendar-agenda article img {
  width: 100%;
  height: 180px;
  margin: 0 0 var(--space-2);
  object-fit: cover;
}

.calendar-agenda article time,
.calendar-agenda article h3,
.calendar-agenda article p {
  margin-left: var(--space-3);
  margin-right: var(--space-3);
}

.calendar-agenda time {
  display: block;
  margin-bottom: 12px;
  color: var(--red);
  font-weight: 900;
}
.now-section > .section-heading,
.editorial-board > .section-heading,
.calendar-section > .section-heading { position: relative; }
.now-section > .section-heading .text-link,
.calendar-section > .section-heading .text-link { justify-self: end; align-self: end; white-space: nowrap; }
.ticker strong { font-size: clamp(16px, 1.6vw, 23px); }
.ticker p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.story h3 { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.story p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.story-copy .text-link { color: var(--red); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.sticky-copy .button { margin-top: 22px; }
.calendar-agenda article { min-height: 0; }
.calendar-agenda article img { height: 142px; }
.calendar-agenda article time { display: inline-flex; width: max-content; margin-top: 4px; padding: 6px 9px; color: var(--paper); background: var(--red); font-size: 11px; letter-spacing: .05em; }
.calendar-agenda article h3 { margin-top: 10px; font-size: clamp(18px, 2vw, 25px); line-height: 1.08; }
.calendar-agenda article h3 a { color: inherit; text-decoration: none; }
.calendar-agenda article p { display: -webkit-box; overflow: hidden; margin-bottom: 18px; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.archive-gallery-card { display: flex; flex-direction: column; text-decoration: none; }
.archive-gallery-card img { height: 190px; }
.archive-gallery-card h3 { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.archive-gallery__footer { display: flex; justify-content: center; margin-top: 28px; }
.video-section .split { display: block; }
.video-section .sticky-copy { position: static; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 28px; align-items: end; margin-bottom: 28px; }
.video-section .sticky-copy .kicker,
.video-section .sticky-copy h2,
.video-section .sticky-copy p { grid-column: 1; }
.video-section .sticky-copy .button { grid-column: 2; grid-row: 1 / span 3; align-self: center; margin: 0; }
.video-section .sticky-copy .button { grid-row: 2; }
.video-section .video-stack { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.video-section .video-tile { min-height: 260px; }
.video-section .video-tile .video-play { position: absolute; top: 50%; left: 24px; z-index: 2; margin: 0; transform: translateY(-50%); }
.video-card-home .video-tile { display: grid; min-height: 220px; }
.video-card-home .video-play { top: 50%; left: 50%; transform: translate(-50%, -50%); }
.video-section .video-card-home .video-tile .video-play { top: 50%; left: 50%; right: auto; bottom: auto; transform: translate(-50%, -50%); }
.video-card-home h3 { margin: 12px 0 0; font: 800 20px/1.1 Manrope,sans-serif; }
.video-card-home h3 a { color: inherit; text-decoration: none; }
.video-card-home p { margin: 7px 0 0; color: var(--color-text-inverse-muted); font-size: 11px; font-weight: 800; }
.calendar-agenda__heading { grid-column: 1 / -1; }
.calendar-agenda__heading h3 { margin: 0; color: var(--ink); font: 800 clamp(24px, 3vw, 38px)/1 Manrope,sans-serif; text-transform: uppercase; }
.calendar-agenda__heading .kicker { margin-bottom: 8px; }
.calendar-agenda__more { grid-column: 1 / -1; justify-self: start; }
.calendar-agenda { grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; }
.calendar-agenda article { width: 100%; }
.calendar-shell > .calendar-agenda { min-width: 0; }
.calendar-month-arrow { display: inline-grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: transparent; cursor: pointer; font-size: 25px; line-height: 34px; }
.calendar-month-arrow:hover { color: var(--paper); background: var(--red); border-color: var(--red); }
.calendar-topline [data-home-calendar-label] { flex: 1; color: var(--ink); font: 800 clamp(22px, 3vw, 34px)/1 Manrope,sans-serif; text-transform: none; }
.calendar-topline [data-home-calendar-year] { display: none; }
.calendar-agenda__actions { display: flex; flex-wrap: wrap; grid-column: 1 / -1; gap: 10px; }
.month-grid button.is-muted { color: var(--color-text-muted); background: var(--color-page); }
.ad-slot--bottom { width: min(calc(100% - 48px), 760px); min-height: 110px; margin: 28px auto; }
.merch-section { background: var(--paper); }
.merch-section .section-heading { align-items: end; }
.merch-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); }
.merch-card { display: block; color: var(--ink); background: var(--color-surface); text-decoration: none; }
.merch-card img { width: 100%; height: 220px; object-fit: cover; }
.merch-card span, .merch-card h3 { display: block; margin-inline: var(--space-3); }
.merch-card span { margin-top: var(--space-3); color: var(--red); font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.merch-card h3 { margin-top: 8px; margin-bottom: var(--space-3); font: 800 21px/1.1 Manrope,sans-serif; }
@media (max-width: 620px) { .merch-grid { grid-template-columns: 1fr; } }
.archive-gallery-card .text-link { color: var(--red); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.archive-gallery .catalog-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.calendar-many-link { position: absolute; right: 7px; bottom: 7px; z-index: 2; padding: 3px 5px; color: var(--paper); background: var(--red); border-radius: 4px; font-size: 8px; font-weight: 900; line-height: 1.1; text-decoration: none; text-transform: uppercase; }
.month-grid button { position: relative; }
.month-grid button.has-event { box-shadow: inset 0 -3px 0 var(--red); }
.month-grid button.has-event:hover { box-shadow: inset 0 -3px 0 var(--paper); }
.ad-slot { display: grid; gap: 7px; place-items: center; margin: 0 auto; padding: 34px 24px; color: var(--muted); border: 1px dashed var(--color-border-strong); background: linear-gradient(135deg, rgba(var(--color-dark-rgb), 0.025), var(--color-surface-translucent)); text-align: center; }
.ad-slot--wide { width: min(calc(100% - 48px), 970px); min-height: 150px; }
.ad-slot--inline { width: min(calc(100% - 48px), 760px); min-height: 110px; margin-top: 18px; margin-bottom: 18px; }
.ad-slot--banner { width: min(calc(100% - 48px), 728px); min-height: 72px; margin-top: 28px; margin-bottom: 28px; padding-block: 22px; }
.ad-slot span { color: var(--red); font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.ad-slot strong { color: var(--ink); font: 800 clamp(18px, 2.6vw, 28px)/1.1 Manrope,sans-serif; }
.ad-slot small { font-size: 11px; }

.calendar-recommendation {
  grid-column: 1 / -1;
  min-height: 260px;
  padding: clamp(28px, 5vw, 56px);
  border: 1px solid var(--line);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(var(--color-accent-rgb), 0.1), transparent 48%),
    var(--paper);
}

.calendar-selected {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(260px, 0.88fr) 1fr;
  min-height: 360px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
}

.calendar-selected img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
}

.calendar-selected div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(28px, 5vw, 56px);
}

.calendar-selected time {
  margin-bottom: 16px;
  color: var(--red);
  font-weight: 900;
}

.calendar-selected h3 {
  max-width: 640px;
  font-size: clamp(32px, 4.8vw, 68px);
  line-height: 0.98;
}

.calendar-selected p {
  max-width: 560px;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.55;
}

.calendar-recommendation.is-hidden {
  display: none;
}

.calendar-recommendation span {
  display: inline-block;
  margin-bottom: 18px;
  color: var(--red);
  font-weight: 900;
  text-transform: uppercase;
}

.calendar-recommendation h3 {
  max-width: 720px;
  font-size: clamp(28px, 4vw, 54px);
  line-height: 1;
}

.expedition {
  position: relative;
  display: grid;
  align-items: end;
  min-height: 760px;
  max-width: none;
  padding: 0;
  overflow: hidden;
  color: var(--paper);
}

.expedition::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(var(--color-dark-rgb), 0.04), rgba(var(--color-dark-rgb), 0.72));
}

.expedition img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 108%;
  object-fit: cover;
  transform: translateY(calc(var(--parallax, 0) * -0.5));
}

.expedition-copy {
  position: relative;
  z-index: 1;
  max-width: 760px;
  padding: 0 var(--pad) 86px;
}

.people-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.person {
  overflow: hidden;
  min-height: 190px;
  padding: 0;
  border-top: 2px solid var(--red);
  background: var(--paper);
}

.person img {
  width: 100%;
  height: 170px;
  margin: 0 0 22px;
  object-fit: cover;
}

.person strong {
  display: block;
  margin-left: 22px;
  margin-right: 22px;
  margin-bottom: 16px;
  font-size: 28px;
}

.person span {
  display: block;
  margin-left: 22px;
  margin-right: 22px;
  padding-bottom: 22px;
  color: var(--muted);
}

.production {
  display: block;
  width: 100%;
  max-width: none;
  color: var(--paper);
  background: var(--dark);
}

.production-heading {
  display: grid;
  grid-template-columns: minmax(160px, 0.32fr) 1fr;
  gap: clamp(24px, 4vw, 56px);
  max-width: var(--max);
  margin: 0 auto clamp(36px, 6vw, 76px);
}

.production-heading .kicker {
  padding-top: 12px;
  border-top: 2px solid var(--red);
}

.production-heading h2 {
  max-width: 880px;
}

.production-heading p:last-child {
  max-width: 720px;
  color: var(--color-text-inverse-muted);
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1.45;
}

.production-steps {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--space-2);
  max-width: var(--max);
  margin: 0 auto;
}

.production-step {
  min-height: 260px;
  padding: clamp(22px, 3vw, 38px);
  border: 1px solid var(--color-border-inverse);
  border-radius: 8px;
  background: var(--color-surface-dark);
}

.production-step span {
  display: block;
  margin-bottom: clamp(34px, 7vw, 90px);
  color: transparent;
  -webkit-text-stroke: 1px var(--red);
  paint-order: stroke fill;
  text-shadow: none;
  line-height: 1;
  font-size: clamp(42px, 6vw, 96px);
  font-weight: 900;
}

.production-step h3 {
  max-width: 540px;
  color: var(--paper);
}

.production-step p {
  max-width: 560px;
  margin-bottom: 0;
  color: var(--color-text-inverse-muted);
  font-size: 16px;
  line-height: 1.55;
}

.production-step.step-wide {
  grid-column: span 4;
}

.production-step.step-media,
.production-step:not(.step-wide):not(.step-media) {
  grid-column: span 2;
}

.production-step.step-media {
  min-height: 360px;
  padding: 0;
  overflow: hidden;
}

.production-step.step-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.data-section {
  max-width: none;
  color: var(--paper);
  background: var(--ink);
}

.data-section .section-heading {
  max-width: var(--max);
  margin-left: auto;
  margin-right: auto;
}

.data-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
}

.data-kicker img {
  width: 108px;
  height: auto;
}

.data-board {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr 0.8fr 1.2fr;
  gap: var(--space-2);
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.metric,
.bar-card {
  min-height: 280px;
  padding: var(--space-3);
  border: 1px solid var(--color-border-inverse);
  border-radius: 8px;
  background: var(--dark-2);
}

.metric {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.metric-main {
  background: var(--red);
}

.metric span {
  font-family: var(--display);
  font-size: clamp(72px, 8vw, 132px);
  font-weight: 900;
  line-height: 0.9;
}

.metric p,
.bar-card p {
  max-width: 260px;
  margin: 0;
  color: var(--color-text-inverse-muted);
  font-weight: 700;
  line-height: 1.35;
}

.bar-card {
  display: grid;
  align-content: end;
  gap: var(--space-2);
}

.bar-card h3 {
  margin-bottom: var(--space-2);
}

.bar-card div {
  min-height: 42px;
  background: rgba(var(--color-white-rgb), 0.1);
  border-radius: 999px;
}

.bar-card span {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  width: 100%;
  min-width: 0;
  height: 42px;
  align-items: center;
  padding: 0 var(--space-2);
  color: var(--paper);
  background: transparent;
  border-radius: inherit;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
}

.bar-card span::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  z-index: -1;
  width: var(--value);
  background: var(--red);
  border-radius: inherit;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
}

.data-section.bars-active .bar-card span::before {
  transform: scaleX(1);
}

.data-section.bars-active .bar-card div:nth-of-type(2) span::before {
  transition-delay: 140ms;
}

.data-section.bars-active .bar-card div:nth-of-type(3) span::before {
  transition-delay: 280ms;
}

.partners .section-heading {
  padding-left: var(--pad);
  padding-right: var(--pad);
}

.partner-formats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  padding-left: var(--pad);
  padding-right: var(--pad);
}

.format {
  min-height: 260px;
  padding: 24px;
  border: 1px solid var(--color-border-inverse);
  border-radius: 8px;
  background: var(--dark-2);
}

.format p {
  color: var(--color-text-inverse-muted);
  line-height: 1.5;
}

.archive {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(30px, 7vw, 96px);
  align-items: center;
}

.archive-copy p {
  max-width: 460px;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.55;
}

.archive-image {
  max-height: 740px;
  border-radius: 8px;
}

.horizontal-section {
  max-width: none;
}

.horizontal-section .section-heading {
  max-width: var(--max);
  margin-left: auto;
  margin-right: auto;
}

.rail {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-2);
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.rail article {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 320px;
  padding: 26px;
  color: var(--paper);
  background: var(--dark);
  border-radius: 8px;
}

.rail article::before,
.rail article::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
}

.rail article::before {
  background-image: var(--rail-image);
  background-size: cover;
  background-position: center;
  transition: transform 700ms ease;
}

.rail article::after {
  z-index: -1;
  background: linear-gradient(180deg, rgba(var(--color-dark-rgb), 0.14), rgba(var(--color-dark-rgb), 0.82));
}

.rail article:hover::before {
  transform: scale(1.06);
}

.rail span {
  color: var(--red);
  font-weight: 900;
  text-transform: uppercase;
}

.subscribe {
  max-width: none;
  background: var(--soft);
}

.subscribe-panel {
  display: grid;
  grid-template-columns: 1fr minmax(320px, 0.8fr);
  gap: 34px;
  align-items: end;
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.subscribe-form {
  display: grid;
}

.subscribe-form label {
  display: grid;
  gap: 8px;
  color: var(--muted);
}

.subscribe-form input {
  width: 100%;
  min-height: 54px;
  padding: 0 16px;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.site-footer {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 28px;
  align-items: center;
  padding: 36px var(--pad);
  color: var(--color-text-inverse-muted);
  background: var(--dark);
}

.footer-brand {
  display: inline-flex;
  width: 154px;
  align-items: center;
}

.footer-brand img {
  width: 100%;
  height: auto;
}

.site-footer .footer-brand img {
  filter: brightness(0) invert(1);
}

.footer-note {
  display: inline-flex;
  max-width: 360px;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

.footer-note img {
  width: 72px;
  height: auto;
}

.site-footer nav {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  justify-content: center;
}

.inner-body {
  background: var(--paper);
}

.inner-header {
  background: rgba(var(--color-dark-rgb), 0.86);
}

.inner-hero {
  min-height: 78svh;
  display: grid;
  align-content: end;
  padding: 160px var(--pad) 90px;
  color: var(--paper);
  background: var(--dark);
}

.inner-hero h1 {
  max-width: 1180px;
  font-size: clamp(36px, 6vw, 82px);
  line-height: 1;
}

.inner-layout {
  max-width: var(--max);
}

.article-shell {
  display: grid;
  gap: 34px;
}

.article-shell header {
  max-width: 980px;
}

.lead {
  max-width: 720px;
  color: var(--muted);
  font-size: clamp(19px, 2vw, 28px);
  line-height: 1.35;
}

.article-shell > img {
  width: 100%;
  max-height: 720px;
  object-fit: cover;
  border-radius: 8px;
}

.article-columns {
  display: grid;
  grid-template-columns: 260px minmax(0, 720px);
  gap: clamp(28px, 6vw, 88px);
  align-items: start;
}

.article-columns aside {
  display: grid;
  gap: 8px;
  padding-top: 14px;
  border-top: 2px solid var(--red);
}

.article-columns aside span {
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
}

.article-columns aside strong {
  margin-bottom: 18px;
}

.article-columns p {
  font-family: var(--sans);
  font-size: clamp(22px, 2.2vw, 32px);
  line-height: 1.42;
}

.event-page {
  padding-left: 0;
  padding-right: 0;
}

.event-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 28px;
  align-items: end;
  padding-left: var(--pad);
  padding-right: var(--pad);
}

.event-inner p {
  max-width: 560px;
  color: var(--color-text-inverse-muted);
  font-size: 20px;
  line-height: 1.45;
}

.event-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.request-grid,
.partner-case {
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  gap: clamp(28px, 6vw, 90px);
  align-items: start;
}

.request-form {
  display: grid;
  padding: clamp(24px, 4vw, 42px);
  background: var(--soft);
  border-radius: 8px;
}

.request-form label {
  display: grid;
  gap: 8px;
  color: var(--muted);
}

.request-form input {
  min-height: 54px;
  padding: 0 16px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.partner-case img {
  width: 100%;
  min-height: 520px;
  object-fit: cover;
  border-radius: 8px;
}

.partner-case p {
  max-width: 560px;
  color: var(--muted);
  font-size: 20px;
  line-height: 1.5;
}

@media (max-width: 1020px) {
  .site-header {
    grid-template-columns: auto 1fr;
  }

  .header-controls {
    display: none;
  }

  .menu-toggle {
    display: grid;
  }

  .nav-strip {
    position: absolute;
    top: calc((var(--header-logo-height) * 2) + 8px);
    left: var(--pad);
    right: var(--pad);
    z-index: 1;
    height: calc(100vh - ((var(--header-logo-height) * 2) + 8px));
    height: calc(100svh - ((var(--header-logo-height) * 2) + 8px));
    height: calc(100dvh - ((var(--header-logo-height) * 2) + 8px));
    display: grid;
    grid-auto-rows: min-content;
    justify-content: stretch;
    align-content: start;
    max-height: none;
    padding: var(--space-3);
    overflow-x: hidden;
    overflow-y: auto;
    color: var(--paper);
    background: rgba(var(--color-dark-rgb), 0.96);
    border: 1px solid var(--color-border-inverse);
    border-radius: 8px;
    box-shadow: 0 24px 80px rgba(var(--color-shadow-rgb), 0.34);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-12px);
    transition: opacity 180ms ease, transform 180ms ease;
    white-space: normal;
  }

  .nav-strip.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  .nav-strip a {
    display: block;
    padding: 14px 0;
    border-bottom: 1px solid var(--color-border-inverse);
    font-size: 18px;
  }

  .nav-strip .nav-account {
    display: block;
    color: var(--red);
  }

  .hero-index {
    left: var(--pad);
    right: var(--pad);
    width: auto;
  }

  .feature-grid,
  .split,
  .now-board,
  .calendar-shell,
  .production,
  .archive,
  .subscribe-panel,
  .article-columns,
  .event-inner,
  .request-grid,
  .partner-case {
    grid-template-columns: 1fr;
  }

  .main-feature {
    min-height: 460px;
  }

  .calendar-agenda,
  .catalog-grid,
  .people-row,
  .partner-formats,
  .ticker,
  .rail,
  .data-board {
    grid-template-columns: repeat(2, 1fr);
  }

  .filters {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .production-heading {
    grid-template-columns: 1fr;
  }

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

  .production-step,
  .production-step.step-large,
  .production-step.step-wide,
  .production-step.step-media,
  .production-step:not(.step-wide):not(.step-media) {
    grid-column: span 1;
  }

  .sticky-copy {
    position: static;
  }
}

@media (max-width: 720px) {
  :root {
    --pad: 20px;
  }

  .site-header {
    --header-logo-height: 32px;
    --header-logo-width: 136px;
    min-height: 68px;
    padding-top: 0;
    padding-bottom: 0;
    background: rgba(var(--color-dark-rgb), 0.76);
  }

  .brand {
    width: auto;
    min-height: 68px;
    padding: 16px 0;
  }

  .menu-toggle {
    z-index: 2;
    width: 48px;
    height: 48px;
    border-radius: 50%;
  }

  .menu-toggle span:not(.sr-only) {
    transition: transform 180ms ease, opacity 180ms ease;
  }

  .menu-toggle[aria-expanded="true"] span:first-child {
    transform: translate(-50%, 0) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
    transform: translate(-50%, 0);
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translate(-50%, 0) rotate(-45deg);
  }

  .nav-strip {
    top: 68px;
    left: 0;
    right: 0;
    bottom: auto;
    width: 100%;
    height: calc(100vh - 68px);
    height: calc(100svh - 68px);
    height: calc(100dvh - 68px);
    align-content: start;
    justify-content: stretch;
    grid-template-columns: minmax(0, 1fr);
    max-height: none;
    padding: 20px;
    border: 0;
    border-top: 1px solid var(--color-border-inverse);
    border-radius: 0;
    background: rgba(var(--color-dark-rgb), 0.98);
  }

  .nav-strip a {
    width: 100%;
    min-height: 52px;
    display: flex;
    align-items: center;
    padding: 12px 4px;
    font-size: 17px;
  }

  .section {
    padding-top: 64px;
    padding-bottom: 64px;
  }

  .hero {
    min-height: max(680px, 100svh);
  }

  .hero-content {
    width: 100%;
    padding-top: 116px;
    padding-bottom: 178px;
  }

  .hero-logo {
    width: min(220px, 62vw);
  }

  h1 {
    font-size: clamp(34px, 11vw, 52px);
    line-height: 0.98;
  }

  h2 {
    font-size: clamp(30px, 9vw, 42px);
    line-height: 1.05;
  }

  h3 {
    font-size: clamp(22px, 7vw, 30px);
  }

  .hero-lead {
    font-size: 17px;
    line-height: 1.4;
  }

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

  .hero-row .button {
    width: 100%;
  }

  .hero-index {
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    font-size: 11px;
  }

  .hero-index .hero-stat {
    min-width: 0;
    min-height: 92px;
    padding: 10px;
  }

  .hero-index strong {
    font-size: 25px;
  }

  .hero-index .hero-stat::before {
    display: none;
  }

  .section-heading {
    grid-template-columns: 1fr;
    gap: 8px;
    margin-bottom: 36px;
  }

  .section-heading h2,
  .production-heading h2,
  .archive-copy,
  .sticky-copy,
  .expedition-copy {
    max-width: none;
    width: 100%;
  }

  .main-feature {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 24px;
  }

  .main-feature p,
  .production-heading p:last-child,
  .archive-copy p,
  .sticky-copy p {
    max-width: none;
    font-size: 17px;
    line-height: 1.55;
  }

  .main-feature .text-link {
    width: 100%;
    min-height: 44px;
  }

  .masonry,
  .calendar-agenda,
  .catalog-grid,
  .people-row,
  .partner-formats,
  .ticker,
  .data-board {
    grid-template-columns: 1fr;
  }

  .masonry {
    grid-auto-rows: auto;
  }

  .now-lead {
    grid-template-rows: 220px auto;
  }

  .now-lead > div,
  .history-card {
    padding: var(--space-3);
  }

  .history-line {
    grid-template-columns: repeat(5, minmax(72px, 1fr));
    overflow-x: auto;
    padding-bottom: 32px;
    scrollbar-width: thin;
  }

  .history-line span {
    min-height: 64px;
  }

  .history-bike {
    --bike-width: 44px;
    bottom: 3px;
  }

  .story,
  .story-large,
  .story-tall,
  .story-small,
  .story-wide {
    grid-column: auto;
    grid-row: auto;
    min-height: 230px;
  }

  .story {
    padding: 20px;
  }

  .story img,
  .story-large img,
  .story-wide img {
    height: 100%;
  }

  .calendar-panel {
    position: static;
    padding: 16px;
  }

  .calendar-topline {
    align-items: center;
  }

  .calendar-topline strong {
    font-size: 42px;
  }

  .month-grid span,
  .month-grid button {
    min-height: 44px;
  }

  .filters {
    flex-wrap: nowrap;
    margin-left: -16px;
    margin-right: -16px;
    padding: 0 16px 4px;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .filters::-webkit-scrollbar {
    display: none;
  }

  .chip {
    min-height: 44px;
    flex: 0 0 auto;
  }

  .calendar-agenda article {
    min-height: 0;
  }

  .calendar-agenda article img {
    height: 190px;
  }

  .calendar-selected {
    grid-template-columns: 1fr;
  }

  .calendar-selected img {
    min-height: 220px;
    height: 220px;
  }

  .calendar-selected div,
  .calendar-recommendation {
    padding: 24px;
  }

  .calendar-selected h3,
  .calendar-recommendation h3 {
    max-width: none;
    font-size: clamp(28px, 9vw, 40px);
    overflow-wrap: anywhere;
  }

  .production-steps {
    grid-template-columns: 1fr;
  }

  .production-step {
    min-height: 220px;
    padding: 24px;
  }

  .production-step span {
    margin-bottom: 36px;
    font-size: 52px;
  }

  .production-step p,
  .format p {
    max-width: none;
  }

  .production-step.step-media {
    min-height: 280px;
  }

  .feature-meta {
    grid-template-columns: 1fr;
  }

  .feature-meta span {
    min-height: 82px;
  }

  .catalog-card img {
    height: 220px;
  }

  .metric,
  .bar-card {
    min-height: 220px;
  }

  .expedition {
    min-height: 580px;
  }

  .expedition-copy {
    padding-left: var(--pad);
    padding-right: var(--pad);
    padding-bottom: 48px;
  }

  .people-row {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: minmax(250px, 78vw);
    overflow-x: auto;
    padding-bottom: 12px;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
  }

  .person {
    scroll-snap-align: start;
  }

  .person img {
    height: 210px;
  }

  .rail {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: minmax(280px, 84vw);
    overflow-x: auto;
    padding-bottom: 16px;
    scroll-snap-type: x mandatory;
  }

  .rail article {
    scroll-snap-align: start;
  }

  .site-footer {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .site-footer nav {
    justify-content: flex-start;
  }

  .subscribe-panel {
    padding-left: 0;
    padding-right: 0;
  }

  .subscribe-panel h2 {
    max-width: none;
  }

  .subscribe-form .button {
    width: 100%;
  }

  .site-footer {
    padding-top: 44px;
    padding-bottom: 44px;
  }

  .site-footer nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    gap: 0;
  }

  .site-footer nav a {
    min-height: 48px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--color-border-inverse);
  }
}

.news-page {
  min-height: 70vh;
  padding: calc(104px + 64px) 0 96px;
  background: var(--color-page);
  color: var(--ink, var(--color-text));
}

.news-shell {
  width: min(var(--max), 100%);
  margin: 0 auto;
  padding-right: var(--pad);
  padding-left: var(--pad);
}

.news-eyebrow {
  color: var(--color-accent);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.news-breadcrumbs [aria-current="page"] {
  min-width: 0;
}

.news-card__date,
.news-article__date {
  color: inherit;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.55;
  text-transform: none;
}

.news-hero h1,
.news-article h1 {
  max-width: 1000px;
  margin: 10px 0 18px;
  font-size: clamp(44px, 8vw, 104px);
  line-height: .94;
  letter-spacing: -.02em;
}

.news-hero__lead,
.news-article__dek {
  max-width: 760px;
  font-size: clamp(18px, 2vw, 25px);
  line-height: 1.45;
}

.news-rubrics {
  display: flex;
  gap: 10px;
  margin-top: 38px;
  padding-top: 22px;
  overflow-x: auto;
  border-top: 1px solid var(--color-border);
  scrollbar-width: thin;
}

.news-rubrics a,
.news-card__tags a,
.article-rubrics a {
  color: inherit;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}

.news-rubrics a {
  padding: 11px 16px;
  border: 1px solid var(--color-border-strong);
  border-radius: 999px;
}

.news-rubrics a:hover,
.news-rubrics a[aria-current="page"] {
  color: var(--color-text-inverse);
  background: var(--color-surface-dark);
  border-color: var(--color-border-strong);
}

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

.news-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  min-height: 310px;
  padding: 18px 18px 30px;
  overflow: hidden;
  background: var(--color-surface-translucent);
  border: 1px solid var(--color-border);
  border-radius: 18px;
  box-shadow: 0 14px 40px rgba(var(--color-shadow-rgb), 0.06);
  transition: opacity 650ms ease, transform 650ms cubic-bezier(.2, .7, .2, 1), box-shadow 320ms ease, border-color 320ms ease;
  transition-delay: calc(var(--news-index, 0) * 70ms);
}

.news-card.reveal.is-visible:hover {
  border-color: rgba(var(--color-accent-rgb), 0.35);
  box-shadow: 0 24px 64px rgba(var(--color-shadow-rgb), 0.14);
}

.news-card__media {
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--color-surface-dark);
  border-radius: 11px;
}

.news-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms cubic-bezier(.2, .7, .2, 1), filter 400ms ease;
}

.news-card:hover .news-card__media img {
  transform: scale(1.035);
  filter: contrast(1.04);
}

.news-card__media:has(.moto-media-placeholder) {
  background: var(--color-surface-dark-raised);
}

/* Shared logo fallback for card media without a photograph. */
img.moto-media-placeholder,
.news-card__media img.moto-media-placeholder {
  width: min(42%, 150px);
  height: auto;
  object-fit: contain;
  transform: none;
  filter: none;
}

.news-card__body {
  min-width: 0;
  padding-top: 30px;
}

.news-card:first-child:not(.article-feed-card) {
  width: 100vw;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr);
  min-height: 390px;
  margin-left: calc(50% - 50vw);
  padding: 54px max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad))) 64px;
  background: var(--color-surface-dark);
  color: var(--color-text-inverse);
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.news-card:first-child:not(.article-feed-card)::after {
  position: absolute;
  inset: 0;
  z-index: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(110deg, rgba(var(--color-accent-rgb), 0.12), transparent 42%);
}

.news-card:first-child:not(.article-feed-card) > * {
  position: relative;
  z-index: 1;
}

.news-card:first-child:not(.article-feed-card).reveal.is-visible:hover {
  box-shadow: none;
}

.news-card:first-child:not(.article-feed-card) .news-card__media {
  aspect-ratio: 21 / 9;
  border-radius: 16px;
}

.news-card:first-child:not(.article-feed-card) h2 {
  max-width: 100%;
  font-size: clamp(32px, 4.2vw, 58px);
  line-height: 1;
}

.news-card h2 a {
  background-image: linear-gradient(currentColor, currentColor);
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 0 2px;
  transition: color 220ms ease, background-size 320ms ease;
}

.news-card:hover h2 a {
  background-size: 100% 2px;
}

.news-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}

.news-card__tags a,
.article-rubrics a {
  padding: 7px 10px;
  color: var(--color-accent);
  border: 1px solid currentColor;
  border-radius: 999px;
}

.news-card:first-child:not(.article-feed-card) .news-card__tags a {
  color: var(--color-text-inverse);
}

.news-card:nth-child(2n) {
  border-right: 1px solid var(--color-border);
}

.news-card__body {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.news-card h2 {
  margin: 20px 0 14px;
  font-size: clamp(24px, 3vw, 38px);
  line-height: 1.05;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
}

.news-card h2 a,
.news-card__more,
.news-article__back {
  color: inherit;
  text-decoration: none;
}

.news-card__summary {
  max-width: 60ch;
  line-height: 1.55;
}

.news-card__summary > :last-child,
.news-article__dek > :last-child {
  margin-bottom: 0;
}

.news-card__more {
  align-self: flex-start;
  margin-top: auto;
  padding-top: 24px;
  font-weight: 800;
  border-bottom: 2px solid var(--color-accent);
}

.news-article__shell {
  max-width: var(--max);
}

.news-article__nav {
  display: flex;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--color-border);
}

.news-article__header {
  max-width: 1240px;
}

.news-article__header .news-article__dek {
  max-width: 920px;
}

.news-article__content {
  width: min(980px, 100%);
  max-width: none;
}

.news-article__content img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 34px 0;
}

.news-article__content iframe,
.news-article__content video {
  display: block;
  width: 100%;
  max-width: 100%;
  border: 0;
}

.news-article__content table {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  -webkit-overflow-scrolling: touch;
}

.news-article__content pre {
  max-width: 100%;
  padding: 16px;
  overflow-x: auto;
  white-space: pre-wrap;
}

.news-article__content a {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}

.news-article__cover {
  display: block;
  width: auto;
  max-width: min(920px, 100%);
  height: auto;
  max-height: 520px;
  margin-top: 42px;
  object-fit: contain;
}

.news-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 6px;
}

.moto-store .news-pagination {
  margin-bottom: 48px;
}

.news-pagination a,
.news-pagination span {
  display: grid;
  place-items: center;
  color: inherit;
  text-decoration: none;
}

.news-pagination__page,
.news-pagination__control {
  min-width: 44px;
  height: 44px;
  padding: 0 12px;
  border: 1px solid var(--color-border-strong);
  border-radius: 999px;
  background: var(--color-surface-translucent);
  font-size: 14px;
  font-weight: 800;
  transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

.news-pagination a:hover,
.news-pagination span[aria-current="page"] {
  color: var(--color-text-inverse);
  background: var(--color-accent-hover);
  border-color: var(--color-accent-hover);
}

.news-pagination__control {
  font-size: 20px;
}

.news-pagination__ellipsis {
  width: 28px;
  height: 44px;
  color: var(--color-text-muted);
  font-weight: 800;
}

@media (max-width: 720px) {
  .news-page {
    padding: calc(68px + 36px) 0 64px;
  }

  .news-hero h1,
  .news-article h1 {
    margin-top: 8px;
    margin-bottom: 16px;
    font-size: clamp(42px, 15vw, 62px);
    line-height: .98;
    overflow-wrap: anywhere;
  }

  .news-hero__lead,
  .news-article__dek {
    width: 100%;
    max-width: none;
    font-size: 17px;
    line-height: 1.55;
  }

  .news-rubrics {
    gap: 8px;
    margin-top: 28px;
    margin-right: calc(var(--pad) * -1);
    margin-left: calc(var(--pad) * -1);
    padding: 18px var(--pad) 8px;
    scroll-padding-inline: var(--pad);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .news-rubrics::-webkit-scrollbar {
    display: none;
  }

  .news-rubrics a {
    flex: 0 0 auto;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding: 10px 15px;
  }

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

  .news-article__nav {
    padding-bottom: 14px;
  }

  .news-article__content {
    width: 100%;
  }

  .news-article__content img {
    width: auto;
    max-width: 100%;
    margin: 26px auto;
  }

  .news-article__content blockquote {
    margin: 28px 0;
    padding: 4px 0 4px 18px;
    border-left: 3px solid var(--color-accent);
  }

  .news-article__cover {
    max-height: none;
    margin-top: 30px;
    border-radius: 12px;
  }

  .news-card,
  .news-card:nth-child(2n) {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 12px 12px 24px;
    border-radius: 14px;
    border-right: 1px solid var(--color-border);
  }

  .news-card__media {
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  .news-card__body {
    padding: 22px 2px 0;
  }

  .news-card__tags {
    gap: 6px;
    margin-bottom: 14px;
  }

  .news-card__tags a {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    white-space: normal;
  }

  .news-card h2 {
    margin: 14px 0 12px;
    font-size: clamp(25px, 8vw, 34px);
    line-height: 1.08;
  }

  .news-card__summary {
    width: 100%;
    max-width: none;
    font-size: 16px;
    line-height: 1.6;
  }

  .news-card__more {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding-top: 16px;
  }

  .news-card:first-child:not(.article-feed-card) {
    width: auto;
    grid-template-columns: 1fr;
    min-height: 0;
    margin-right: calc(var(--pad) * -1);
    margin-left: calc(var(--pad) * -1);
    padding: 24px var(--pad) 34px;
    border: 0;
  }

  .news-card:first-child:not(.article-feed-card) .news-card__media {
    aspect-ratio: 16 / 10;
  }

  .news-card:first-child:not(.article-feed-card) .news-card__body {
    padding: 24px 0 0;
  }

  .news-card:first-child:not(.article-feed-card) h2 {
    font-size: clamp(30px, 9.5vw, 42px);
    line-height: 1.04;
  }

  .news-pagination {
    justify-content: flex-start;
    gap: 5px;
  }

  .news-pagination__page,
  .news-pagination__control {
    min-width: 42px;
    height: 42px;
    padding: 0 10px;
  }

  .news-pagination__ellipsis {
    width: 20px;
    height: 42px;
  }
}

@media (hover: none) {

  .story:hover img,
  .catalog-card:hover img,
  .archive-image:hover,
  .rail article:hover::before {
    transform: none;
  }
}

@media (max-width: 390px) {
  :root {
    --pad: 16px;
  }

  .hero-content {
    padding-bottom: 174px;
  }

  .hero-row {
    grid-template-columns: 1fr;
  }

  .hero-index {
    gap: 5px;
  }

  .hero-index .hero-stat {
    min-height: 88px;
    padding: 8px;
    font-size: 9px;
  }

  .hero-index strong {
    font-size: 22px;
  }

  .hero-index .hero-stat {
    line-height: 1.25;
  }

  .button,
  .event-actions .button,
  .expedition-copy .button {
    width: 100%;
  }

  .feature-photo-editorial {
    min-height: 430px;
  }

  .feature-photo-editorial figcaption {
    left: 12px;
    right: 12px;
    bottom: 12px;
    padding: 16px;
  }

  .history-line {
    grid-template-columns: repeat(5, minmax(68px, 1fr));
  }

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

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  .history-bike {
    display: none;
  }

  .bar-card span::before {
    transform: scaleX(1);
  }
}

/* Articles */
.articles-page {
  --articles-ink: var(--color-text);
  --articles-red: var(--color-accent);
  min-height: 70vh;
  padding: calc(104px + 64px) 0 96px;
  color: var(--articles-ink);
  background: var(--color-page);
}

.articles-shell {
  width: min(var(--max), 100%);
  margin: 0 auto;
  padding-right: var(--pad);
  padding-left: var(--pad);
}

.articles-hero {
  padding: 0 0 58px;
}

.articles-eyebrow {
  margin: 0 0 18px;
  color: var(--color-accent);
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.articles-eyebrow a {
  color: inherit;
}

.articles-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  padding-top: 24px;
  border-top: 1px solid var(--color-border);
}

.articles-section-heading .articles-eyebrow {
  margin: 0;
}

.articles-section-heading > p:last-child {
  margin: 0 0 5px;
  color: var(--color-text-secondary);
}

.article-sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.article-section-card {
  position: relative;
  min-height: 310px;
  padding: 30px;
  color: var(--articles-ink);
  background: var(--color-surface-translucent);
  display: flex;
  flex-direction: column;
  text-decoration: none;
}

.article-section-card:first-child {
  grid-column: 1 / -1;
  min-height: 390px;
  color: var(--color-text-inverse);
  background: var(--color-surface-dark);
  border: 0;
  box-shadow: none;
}

.article-section-card:first-child::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(110deg, rgba(var(--color-accent-rgb), 0.2), transparent 52%);
}

.article-section-card:first-child > * {
  position: relative;
  z-index: 1;
}

.article-section-card__number {
  display: inline-block;
  align-self: flex-start;
  color: var(--color-text-inverse);
  font-family: var(--sans);
  font-size: clamp(64px, 7vw, 104px);
  font-weight: 800;
  line-height: .82;
  letter-spacing: -.04em;
  -webkit-text-stroke: 2px var(--articles-red);
  -webkit-text-fill-color: var(--color-text-inverse);
  text-stroke: 2px var(--articles-red);
  paint-order: stroke fill;
  transition: color 280ms ease, transform 450ms cubic-bezier(.2,.75,.25,1);
}

.article-section-card:first-child .article-section-card__number {
  color: var(--color-text);
  -webkit-text-fill-color: var(--color-text);
}

@supports not (-webkit-text-stroke: 1px #000) {
  .article-section-card__number {
    color: var(--articles-red);
  }
}

.article-section-card.reveal.is-visible:hover .article-section-card__number {
  transform: translateX(5px);
}

.article-section-card h3 {
  margin: auto 0 16px;
}

.article-section-card p {
  max-width: 540px;
  margin: 0 0 26px;
  color: var(--color-text-secondary);
  font-size: 16px;
  line-height: 1.45;
}

.article-section-card:first-child p {
  color: var(--color-text-inverse-muted);
}

.article-section-card__more,
.article-card__more,
.article-detail__nav a {
  font: 700 12px/1.2 var(--sans);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.article-section-card__more {
  align-self: flex-start;
  color: inherit;
  border-bottom: 2px solid var(--articles-red);
}

.articles-feed {
  border-top: 1px solid var(--color-border);
}

.articles-feed__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.news-feed-ad { display: none; grid-column: 1 / -1; align-items: center; justify-content: center; box-sizing: border-box; min-width: 0; min-height: 150px; padding: 24px; border: 1px dashed var(--color-border-strong); border-radius: var(--ds-card-radius, 18px); background: var(--color-surface-soft); color: var(--color-text-muted); text-align: center; font: 500 14px/1.5 var(--sans); }
@media (min-width: 901px) {
  .clubs-feed-ad--desktop { display: flex; }
}
@media (min-width: 621px) and (max-width: 900px) {
  .clubs-feed-ad--tablet { display: flex; }
}
@media (max-width: 620px) {
  .clubs-feed-ad--mobile { display: flex; min-height: 100px; }
}
@media (min-width: 901px) {
  .gallery-feed-ad--desktop { display: flex; }
}
@media (min-width: 561px) and (max-width: 900px) {
  .gallery-feed-ad--tablet { display: flex; }
}
@media (max-width: 560px) {
  .gallery-feed-ad--mobile { display: flex; min-height: 100px; }
}
@media (min-width: 1101px) {
  .news-feed-ad--desktop { display: flex; }
}
@media (min-width: 721px) and (max-width: 1100px) {
  .news-feed-ad--tablet { display: flex; }
}
@media (max-width: 720px) {
  .news-feed-ad--mobile { display: flex; min-height: 100px; }
}

.articles-feed__grid .news-card {
  transition-duration: 300ms, 300ms, 200ms, 200ms;
  transition-delay: calc(var(--news-index, 0) * 40ms);
}

.articles-feed__grid .news-card h2 {
  font-size: clamp(22px, 2vw, 30px);
  overflow-wrap: anywhere;
}

/* Standard news cards use the calendar card's compact typography and spacing. */
.articles-feed__grid .news-card.article-feed-card {
  background: var(--color-surface);
}

.news-card.article-feed-card .news-card__body {
  flex: 1;
}

.news-card.article-feed-card .news-card__date {
  color: var(--color-accent);
}

.news-card.article-feed-card .news-card__summary {
  max-width: none;
  color: var(--color-text-secondary);
}

.news-card.article-feed-card .news-card__summary > * {
  margin-block: 0;
}

@media (max-width: 1100px) {
  .articles-feed__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .articles-feed__grid { grid-template-columns: minmax(0, 1fr); }
}

.articles-section-heading--feed {
  margin-bottom: 42px;
  padding-top: 0;
  border-top: 0;
}

.article-feed-card__tags span {
  padding: 7px 10px;
  color: var(--color-text-muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  border: 1px solid currentColor;
  border-radius: 999px;
}

.articles-pagination {
  flex-wrap: wrap;
}

.article-rubrics {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 34px;
}

.article-card__tags span {
  padding: 9px 12px;
  color: var(--color-text);
  border: 1px solid var(--color-border-strong);
  font: 700 11px/1 var(--sans);
  text-decoration: none;
  text-transform: uppercase;
  transition: color .25s ease, border-color .25s ease, background-color .25s ease;
}

.article-rubrics a {
  transition: color .25s ease, border-color .25s ease, background-color .25s ease;
}

.article-rubrics a:hover,
.article-rubrics a.is-active,
.article-rubrics a[aria-current="page"] {
  color: var(--color-text-inverse);
  border-color: var(--articles-red);
  background: var(--articles-red);
}

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

.article-card {
  grid-column: span 4;
  background: var(--color-surface);
}

.article-card__media {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--color-surface-dark-raised);
}

.article-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s cubic-bezier(.2,.75,.25,1);
}

.article-card__body {
  padding: 25px 26px 28px;
}

.article-card__meta {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: var(--color-text-secondary);
  font: 700 11px/1.2 var(--sans);
  text-transform: uppercase;
}

.article-card h2 {
  margin: 18px 0;
  font-size: clamp(25px, 2.2vw, 38px);
  line-height: 1.02;
  letter-spacing: -.01em;
  overflow-wrap: anywhere;
}

.article-card h2 a {
  color: inherit;
  text-decoration: none;
}

.article-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 17px;
}

.article-card__tags span {
  padding: 7px 9px;
  color: var(--articles-red);
  border-color: var(--color-border);
}

.article-card__summary {
  max-height: 6.1em;
  overflow: hidden;
  color: var(--color-text-secondary);
  line-height: 1.52;
}

.article-card__summary > :last-child,
.article-detail__lead > :last-child {
  margin-bottom: 0;
}

.article-card__more {
  display: inline-block;
  margin-top: 18px;
  color: var(--articles-red);
}

.article-detail__shell {
  max-width: var(--max);
}

.article-detail__nav {
  display: flex;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--color-border);
}

.article-detail__nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0 16px;
  color: var(--articles-ink);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid var(--color-border-strong);
  border-radius: 999px;
  transition: color 220ms ease, background-color 220ms ease, border-color 220ms ease;
}

.article-detail__nav a:hover {
  color: var(--color-text-inverse);
  background: var(--color-surface-dark);
  border-color: var(--color-border-strong);
}

.article-detail__header {
  max-width: 1240px;
}

.article-detail__header time {
  color: var(--color-text-muted);
}

.article-detail__byline {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: -8px 0 26px;
  color: var(--color-text);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.45;
}

.article-detail__byline span {
  color: var(--articles-red);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.article-detail__lead {
  max-width: 920px;
}

.article-detail__cover {
  display: block;
  width: auto;
  max-width: min(920px, 100%);
  height: auto;
  max-height: 520px;
  margin-top: 48px;
  object-fit: contain;
}

.article-detail__content {
  width: min(980px, 100%);
  max-width: none;
  margin: 64px 0 0;
}

.article-detail__content img,
.article-detail__content iframe,
.article-detail__content video {
  max-width: 100%;
  height: auto;
}

.article-detail__content iframe,
.article-detail__content video {
  display: block;
  width: 100%;
  border: 0;
}

.article-detail__content table {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  -webkit-overflow-scrolling: touch;
}

.article-detail__content pre {
  max-width: 100%;
  padding: 16px;
  overflow-x: auto;
  white-space: pre-wrap;
}

.article-detail__content a {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}

.article-detail__content img {
  display: block;
  margin: 34px 0;
}

.article-detail__content > div {
  margin-bottom: 1.05em;
}

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

  .article-card {
    grid-column: span 6;
  }
}

@media (max-width: 620px) {
  .video-section .sticky-copy { display: block; }
  .video-section .sticky-copy .button { margin-top: 18px; }
  .video-section .video-stack { grid-template-columns: 1fr; }
  .archive-gallery .catalog-grid { grid-template-columns: 1fr; }

  .articles-hero {
    padding: 40px 0;
  }

  .article-card {
    grid-column: 1 / -1;
  }

  .article-section-card {
    min-height: 270px;
  }

  .article-section-card__number {
    font-size: 62px;
    -webkit-text-stroke-width: 1.5px;
  }
}

@media (max-width: 720px) {
  .articles-page {
    padding: calc(68px + 36px) 0 64px;
  }

  .articles-hero {
    padding: 0 0 36px;
  }

  .articles-hero__lead,
  .article-detail__lead {
    width: 100%;
    max-width: none;
  }

  .article-rubrics {
    flex-wrap: nowrap;
    gap: 8px;
    margin-right: calc(var(--pad) * -1);
    margin-left: calc(var(--pad) * -1);
    padding: 0 var(--pad) 8px;
    overflow-x: auto;
    scroll-padding-inline: var(--pad);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .article-rubrics::-webkit-scrollbar {
    display: none;
  }

  .article-rubrics a {
    flex: 0 0 auto;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  .article-sections {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .article-section-card,
  .article-section-card:first-child {
    grid-column: 1;
    min-height: 250px;
    padding: 24px;
  }

  .article-section-card p {
    max-width: none;
    margin-bottom: 22px;
    font-size: 16px;
    line-height: 1.55;
  }

  .article-section-card__more,
  .article-card__more {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  .articles-section-heading {
    display: block;
  }

  .articles-section-heading > p:last-child {
    margin-top: 12px;
  }

  .article-card {
    grid-column: 1 / -1;
  }

  .article-card__body {
    padding: 22px 20px 24px;
  }

  .article-card__meta {
    gap: 12px;
    flex-wrap: wrap;
  }

  .article-card h2 {
    margin: 15px 0;
    font-size: clamp(26px, 8.5vw, 36px);
    line-height: 1.08;
  }

  .article-card__summary {
    max-height: none;
    width: 100%;
    font-size: 16px;
    line-height: 1.6;
  }

  .article-card__tags span,
  .article-feed-card__tags span {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    white-space: normal;
  }

  .article-detail__nav {
    padding-bottom: 14px;
  }

  .article-detail__nav a {
    min-height: 44px;
  }

  .article-detail__cover {
    max-height: none;
    margin-top: 30px;
    border-radius: 12px;
  }

  .article-detail__content {
    width: 100%;
  }

  .article-detail__content img {
    width: auto;
    max-width: 100%;
    margin: 26px auto;
  }

  .article-detail__content blockquote {
    margin: 28px 0;
    padding: 4px 0 4px 18px;
    border-left: 3px solid var(--articles-red);
  }
}
/* Homepage motocalendar promo */
.calendar-section { padding-top: clamp(72px, 9vw, 128px); padding-bottom: clamp(72px, 9vw, 128px); }
.home-calendar-promo { position: relative; min-height: 610px; overflow: hidden; border-radius: 22px; background: var(--color-surface-dark); color: var(--color-text-inverse); box-shadow: 0 24px 70px rgba(var(--color-shadow-rgb), 0.16); }
.home-calendar-promo__image, .home-calendar-promo__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.home-calendar-promo__image { object-fit: cover; object-position: center 42%; transition: transform .7s ease; }
.home-calendar-promo:hover .home-calendar-promo__image { transform: scale(1.015); }
.home-calendar-promo__shade { background: linear-gradient(90deg, rgba(var(--color-dark-rgb), 0.94) 0%, rgba(var(--color-dark-rgb), 0.72) 48%, rgba(var(--color-dark-rgb), 0.2) 100%), linear-gradient(0deg, rgba(var(--color-dark-rgb), 0.78), transparent 64%); }
.home-calendar-promo__content { position: relative; z-index: 1; display: flex; min-height: 610px; max-width: 790px; box-sizing: border-box; padding: clamp(42px, 7vw, 88px); flex-direction: column; justify-content: center; }
.home-calendar-promo__eyebrow { margin: 0 0 18px; color: var(--color-error); font: 700 12px/1.3 Inter,sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.home-calendar-promo h2 { max-width: 720px; margin: 0; color: var(--color-text-inverse); font: 800 clamp(42px, 6.4vw, 82px)/.96 Manrope,sans-serif; letter-spacing: -.045em; text-transform: none; }
.home-calendar-promo__lead { max-width: 650px; margin: 26px 0 0; color: var(--color-text-inverse-muted); font: 500 clamp(17px, 2vw, 21px)/1.55 Manrope,sans-serif; }
.home-calendar-promo__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin-top: 34px; }
.home-calendar-promo__submit { color: var(--color-text-inverse); font: 700 13px/1.3 Inter,sans-serif; text-decoration: none; border-bottom: 1px solid var(--color-border-inverse-strong); }
.home-calendar-promo__submit:hover { border-color: var(--color-error); }
.home-calendar-promo__stats { position: absolute; z-index: 2; right: clamp(26px, 5vw, 68px); bottom: clamp(24px, 4vw, 50px); display: grid; grid-template-columns: repeat(3, minmax(112px, 1fr)); gap: clamp(18px, 3vw, 38px); padding: 22px 26px; border: 1px solid var(--color-border-inverse); border-radius: 16px; background: rgba(var(--color-dark-rgb), 0.62); backdrop-filter: blur(12px); }
.home-calendar-promo__stats p { margin: 0; }
.home-calendar-promo__stats strong, .home-calendar-promo__stats span { display: block; }
.home-calendar-promo__stats strong { color: var(--color-text-inverse); font: 800 30px/1 Manrope,sans-serif; }
.home-calendar-promo__stats span { max-width: 110px; margin-top: 7px; color: var(--color-text-inverse-muted); font: 600 10px/1.35 Inter,sans-serif; }
@media (max-width: 900px) {
  .home-calendar-promo { min-height: 680px; }
  .home-calendar-promo__content { min-height: 540px; padding-bottom: 150px; }
  .home-calendar-promo__stats { right: 28px; bottom: 28px; left: 28px; }
}
@media (max-width: 620px) {
  .calendar-section { padding-inline: 12px; }
  .home-calendar-promo { min-height: 660px; border-radius: 16px; }
  .home-calendar-promo__image { object-position: 58% center; }
  .home-calendar-promo__shade { background: linear-gradient(90deg, rgba(var(--color-dark-rgb), 0.93), rgba(var(--color-dark-rgb), 0.5)), linear-gradient(0deg, rgba(var(--color-dark-rgb), 0.9), transparent 66%); }
  .home-calendar-promo__content { min-height: 510px; padding: 42px 24px 164px; justify-content: flex-start; }
  .home-calendar-promo h2 { font-size: clamp(38px, 12vw, 54px); }
  .home-calendar-promo__lead { margin-top: 20px; font-size: 16px; }
  .home-calendar-promo__actions { align-items: flex-start; flex-direction: column; margin-top: 28px; }
  .home-calendar-promo__stats { right: 16px; bottom: 16px; left: 16px; grid-template-columns: repeat(3, 1fr); gap: 10px; padding: 18px 14px; }
  .home-calendar-promo__stats strong { font-size: 25px; }
  .home-calendar-promo__stats span { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) { .home-calendar-promo__image { transition: none; } .home-calendar-promo:hover .home-calendar-promo__image { transform: none; } }

/* Motocalendar */
.calendar-page { min-height: 70vh; background: var(--color-page); color: var(--color-text); padding: 104px 0 72px; }
.calendar-page .calendar-shell { display: block; width: min(calc(100% - 48px), 1240px); margin-inline: auto; }
.calendar-hero { padding: 72px 0 54px; background: var(--color-surface-dark); color: var(--color-text-inverse); }
.calendar-hero h1, .calendar-event h1 { margin: 0; font: 800 clamp(40px, 7vw, 86px)/.96 Manrope, sans-serif; letter-spacing: -.045em; }
.calendar-lead { max-width: 760px; margin: 24px 0 0; font: 500 clamp(17px, 2vw, 22px)/1.55 Manrope, sans-serif; color: var(--color-text-inverse-muted); }
.calendar-hero__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 190px)); gap: 28px; margin-top: 42px; }
.calendar-hero__stats p { margin: 0; }
.calendar-hero__stats strong, .calendar-hero__stats span { display: block; }
.calendar-hero__stats strong { color: var(--color-text-inverse); font: 800 34px/1 Manrope, sans-serif; }
.calendar-hero__stats span { margin-top: 8px; color: var(--color-text-inverse-muted); font: 600 12px/1.4 Inter, sans-serif; }
.calendar-page__shell { padding-top: 34px; }
.calendar-feed { margin-bottom: 52px; }
.calendar-feed--upcoming { margin-top: 72px; padding-top: 52px; border-top: 1px solid var(--color-border); }
.calendar-feed--latest { margin: 72px 0 8px; padding-top: 52px; border-top: 1px solid var(--color-border); }
.calendar-section-heading { display: flex; justify-content: space-between; align-items: end; }
.calendar-section-heading > p { max-width: 460px; margin: 0; color: var(--color-text-secondary); font: 500 14px/1.6 Inter, sans-serif; }
.calendar-browser { padding: clamp(22px, 4vw, 42px); border-radius: 20px; background: var(--color-surface); box-shadow: 0 16px 50px rgba(var(--color-shadow-rgb), 0.07); }
.calendar-filters { margin-top: 32px; padding: 24px 28px; border: 1px solid var(--color-border); border-radius: 16px; background: var(--color-surface-soft); }
.calendar-toolbar { display: grid; grid-template-columns: repeat(3, minmax(125px, .55fr)) minmax(220px, 1fr); gap: 12px; align-items: end; }
.calendar-toolbar label span { display: block; margin-bottom: 7px; color: var(--color-text-secondary); font: 700 10px Inter,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.calendar-toolbar select, .calendar-toolbar input { width: 100%; min-height: 42px; padding: 9px 12px; border: 1px solid var(--color-border); border-radius: 9px; background: var(--color-page); font: 600 13px Inter,sans-serif; }
.calendar-view-toggle { display: flex; padding: 3px; border-radius: 10px; background: var(--color-surface-soft); }
.calendar-view-toggle button { min-height: 36px; padding: 7px 12px; border: 0; border-radius: 8px; background: transparent; cursor: pointer; font: 700 12px Inter,sans-serif; }
.calendar-view-toggle button.is-active { color: var(--color-text-inverse); background: var(--color-surface-dark); }
.calendar-browser__nav { display: grid; grid-template-columns: 56px 1fr 56px; align-items: center; gap: 20px; }
.calendar-browser__arrow { width: 56px; height: 56px; border: 1px solid var(--color-border); border-radius: 50%; background: var(--color-surface); color: var(--color-text); cursor: pointer; font-size: 24px; transition: .2s ease; }
.calendar-browser__arrow:hover { color: var(--color-text-inverse); background: var(--color-accent-hover); border-color: var(--color-accent-hover); }
.calendar-browser__heading { display: flex; justify-content: center; align-items: baseline; gap: 16px; text-align: center; }
.calendar-browser__heading label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.calendar-browser__heading h2 { margin: 0; font: 800 clamp(30px, 4vw, 52px)/1 Manrope,sans-serif; text-transform: capitalize; }
.calendar-browser__heading select { padding: 8px 34px 8px 12px; border: 1px solid var(--color-border); border-radius: 10px; background: var(--color-page); font: 800 16px Inter,sans-serif; }
.calendar-months { display: grid; grid-template-columns: repeat(12, 1fr); gap: 6px; margin: 30px 0 22px; }
.calendar-months button { min-height: 38px; padding: 6px; border: 0; border-radius: 8px; background: var(--color-page); cursor: pointer; font: 700 12px Inter,sans-serif; }
.calendar-months button.is-active { color: var(--color-text-inverse); background: var(--color-surface-dark); }
.calendar-weekdays, .calendar-month-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 7px; }
.calendar-weekdays span { padding: 8px; color: var(--color-text-muted); text-align: center; font: 700 11px Inter,sans-serif; text-transform: uppercase; }
.calendar-day { position: relative; min-height: 76px; padding: 12px; border: 1px solid var(--color-border); border-radius: 12px; color: var(--color-text); background: var(--color-page); text-align: left; font: 800 15px Inter,sans-serif; }
button.calendar-day { cursor: pointer; }
button.calendar-day:hover, .calendar-day.is-selected { color: var(--color-text-inverse); background: var(--color-accent-hover); border-color: var(--color-accent-hover); }
.calendar-day.is-today { border: 2px solid var(--color-accent); box-shadow: inset 0 0 0 3px var(--color-surface); }
.calendar-day.is-today b::after { content: "Сегодня"; display: block; margin-top: 7px; color: var(--color-accent); font: 700 9px Inter,sans-serif; text-transform: uppercase; }
.calendar-day.is-today:hover b::after, .calendar-day.is-today.is-selected b::after { color: var(--color-text-inverse); }
.calendar-day.is-muted { color: var(--color-text-muted); background: transparent; }
.calendar-day__count { position: absolute; right: 8px; bottom: 8px; display: grid; place-items: center; min-width: 23px; height: 23px; padding: 0 6px; border-radius: 12px; color: var(--color-text-inverse); background: var(--color-surface-dark); font-size: 11px; }
.calendar-results__header { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin: 48px 0 22px; }
.calendar-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.calendar-grid.is-list { grid-template-columns: 1fr; }
.calendar-grid.is-list .calendar-card { display: grid; grid-template-columns: minmax(220px, 32%) 1fr; }
.calendar-grid.is-list .calendar-card__media { aspect-ratio: auto; min-height: 240px; }
.calendar-card { display: flex; flex-direction: column; background: transparent; cursor: pointer; }
.calendar-card:focus-visible { outline: 3px solid var(--color-accent); }
.calendar-card.is-hidden { display: none; }
.calendar-card__media { position: relative; display: grid; place-items: center; aspect-ratio: 16/9; overflow: hidden; background: var(--color-surface-dark-raised); color: var(--color-text-inverse); font: 800 28px Manrope, sans-serif; text-decoration: none; }
.calendar-card__media img { width: 100%; height: 100%; object-fit: cover; }
.calendar-card__media img.calendar-card__placeholder { width: min(42%, 150px); height: auto; object-fit: contain; }
.calendar-card__verified { position: absolute; z-index: 1; top: 14px; left: 14px; max-width: calc(100% - 28px); box-sizing: border-box; padding: 7px 10px; border: 1px solid var(--color-border-inverse); border-radius: 999px; color: var(--color-text-inverse); background: rgba(var(--color-accent-rgb), 0.92); box-shadow: 0 5px 18px rgba(var(--color-shadow-rgb), 0.2); font: 800 9px/1.2 Inter,sans-serif; letter-spacing: .04em; text-transform: uppercase; backdrop-filter: blur(5px); }
.calendar-card__body { display: flex; flex: 1; flex-direction: column; }
.calendar-card h2 a { color: inherit; text-decoration: none; }
.calendar-empty { margin-top: 20px; padding: 55px; border: 1px dashed var(--color-border-strong); border-radius: 18px; text-align: center; background: var(--color-surface); }
.calendar-empty h2 { margin: 0 0 10px; font: 800 28px Manrope, sans-serif; }
.calendar-empty h3 { margin: 0 0 10px; font: 800 23px Manrope, sans-serif; }
.calendar-empty p { margin: 0; color: var(--color-text-secondary); }
.calendar-empty--compact { margin-top: 0; padding: 32px; }
.calendar-empty.is-hidden { display: none; }
.calendar-event { padding: 64px 0; }
.calendar-event__shell { max-width: 1240px; }
.calendar-event__header, .calendar-event__content { width: 100%; }
.calendar-event__nav { margin-bottom: 38px; }
.calendar-event__nav a { color: var(--color-accent); font: 700 14px Inter, sans-serif; }
.calendar-event__badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.calendar-event__badges span { padding: 7px 11px; border-radius: 999px; color: var(--color-text-inverse); background: var(--color-surface-dark); font: 700 10px Inter,sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.calendar-event__badges span:first-child { background: var(--color-accent); }
.calendar-event__badges .calendar-event__badge--verified { color: var(--color-text-inverse); background: var(--color-accent); border: 1px solid var(--color-accent); letter-spacing: .03em; }
.calendar-event h1 { color: var(--color-text); font-size: clamp(38px, 6vw, 72px); }
.calendar-event__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 32px 0; }
.calendar-event__facts p { margin: 0; padding: 18px; border-radius: 14px; background: var(--color-surface); font: 500 14px/1.5 Inter, sans-serif; }
.calendar-event__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 30px; }
.calendar-event__actions button, .calendar-event__actions a { padding: 12px 17px; border: 1px solid var(--color-border-strong); border-radius: 999px; color: var(--color-text); background: transparent; cursor: pointer; font: 700 12px Inter,sans-serif; text-decoration: none; }
.calendar-event__calendar { position: relative; }
.calendar-event__actions .calendar-event__calendar-toggle { color: var(--color-text-inverse); background: var(--color-accent); border-color: var(--color-accent); }
.calendar-event__calendar-menu { position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; min-width: 260px; padding: 7px; border: 1px solid var(--color-border); border-radius: 14px; background: var(--color-surface); box-shadow: 0 16px 38px rgba(var(--color-shadow-rgb), 0.16); }
.calendar-event__calendar-menu[hidden] { display: none; }
.calendar-event__actions .calendar-event__calendar-menu a, .calendar-event__actions .calendar-event__calendar-menu button { display: block; width: 100%; padding: 11px 12px; border: 0; border-radius: 9px; text-align: left; white-space: nowrap; background: transparent; }
.calendar-event__actions .calendar-event__calendar-menu a:hover, .calendar-event__actions .calendar-event__calendar-menu a:focus-visible, .calendar-event__actions .calendar-event__calendar-menu button:hover, .calendar-event__actions .calendar-event__calendar-menu button:focus-visible { background: var(--color-page); outline: none; }
.calendar-event__cover { display: block; width: auto; max-width: 100%; max-height: 900px; height: auto; margin: 32px auto; border-radius: 18px; object-fit: contain; box-shadow: 0 18px 45px rgba(var(--color-shadow-rgb), 0.1); }
.calendar-event__content { padding: 38px; border-radius: 18px; background: var(--color-surface); white-space: pre-line; font: 400 17px/1.75 Manrope, sans-serif; }
.calendar-event__content img { max-width: 100%; height: auto; }
.calendar-event__contacts { margin-top: 24px; padding: 28px 32px; border-radius: 18px; background: var(--color-surface-dark); color: var(--color-text-inverse); }
.calendar-event__contacts h2 { margin: 0 0 16px; font: 800 25px Manrope,sans-serif; }
.calendar-event__contacts p { margin: 7px 0; font: 500 14px/1.5 Inter,sans-serif; }
.calendar-event__contacts a { color: var(--color-text-inverse); }
.calendar-recommendations { padding: 0 0 72px; }
.calendar-recommendations__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .calendar-toolbar { grid-template-columns: 1fr 1fr; } .calendar-months { grid-template-columns: repeat(6, 1fr); } .calendar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .calendar-event__facts { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .calendar-page { padding-top: 68px; } }
@media (max-width: 620px) { .calendar-page .calendar-shell { width: min(calc(100% - 24px), 1240px); } .calendar-hero { padding: 48px 0 38px; } .calendar-hero__stats { grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 30px; } .calendar-hero__stats strong { font-size: 27px; } .calendar-hero__stats span { font-size: 10px; } .calendar-section-heading { display: block; } .calendar-section-heading > p { margin-top: 12px; } .calendar-toolbar { grid-template-columns: 1fr; } .calendar-browser { padding: 16px; border-radius: 14px; } .calendar-browser__nav { grid-template-columns: 44px 1fr 44px; gap: 8px; } .calendar-browser__arrow { width: 44px; height: 44px; } .calendar-browser__heading { flex-direction: column-reverse; align-items: center; gap: 8px; } .calendar-months { grid-template-columns: repeat(4, 1fr); } .calendar-weekdays, .calendar-month-grid { gap: 3px; } .calendar-weekdays span { font-size: 9px; } .calendar-day { min-height: 48px; padding: 7px; border-radius: 8px; } .calendar-day__count { right: 4px; bottom: 4px; min-width: 17px; height: 17px; font-size: 9px; } .calendar-results__header { align-items: flex-start; flex-direction: column; } .calendar-grid, .calendar-recommendations__grid { grid-template-columns: 1fr; } .calendar-grid.is-list .calendar-card { display: flex; } .calendar-grid.is-list .calendar-card__media { min-height: 0; aspect-ratio: 16/9; } .calendar-empty, .calendar-event__content { padding: 24px; } }

/* Motocalendar index redesign — based on the approved static concept. */
.calendar-page:has(.calendar-page__shell) { padding: 0 0 72px; background: var(--color-page); }
.calendar-page:has(.calendar-page__shell) .calendar-hero { position: relative; display: flex; align-items: flex-end; padding: 180px 0 64px; overflow: hidden; background: var(--color-surface-dark); }
.calendar-hero__image,
.calendar-hero__overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.calendar-hero__image { object-fit: cover; object-position: center 42%; }
.calendar-hero__overlay { background: linear-gradient(90deg, rgba(var(--color-dark-rgb), 0.93) 0%, rgba(var(--color-dark-rgb), 0.62) 52%, rgba(var(--color-dark-rgb), 0.18) 100%), linear-gradient(0deg, rgba(var(--color-dark-rgb), 0.72), transparent 62%); }
.calendar-page:has(.calendar-page__shell) .calendar-hero .calendar-shell { position: relative; z-index: 1; }
.calendar-crumbs span { color: var(--color-text-muted); }
.calendar-page:has(.calendar-page__shell) .calendar-lead { color: var(--color-text-inverse); }
.calendar-page:has(.calendar-page__shell) .calendar-hero__stats { display: flex; gap: 0; margin-top: 42px; }
.calendar-page:has(.calendar-page__shell) .calendar-hero__stats p { min-width: 190px; padding-right: 34px; }
.calendar-page:has(.calendar-page__shell) .calendar-hero__stats p + p { padding-left: 34px; border-left: 1px solid var(--color-border-inverse); }
.calendar-page:has(.calendar-page__shell) .calendar-hero__stats strong { font-size: 36px; }
.calendar-page:has(.calendar-page__shell) .calendar-hero__stats span { color: var(--color-text-inverse-muted); font-size: 11px; }
.calendar-page:has(.calendar-page__shell) .calendar-page__shell { padding-top: 0; }
.calendar-page:has(.calendar-page__shell) .calendar-feed--upcoming { margin: 0; padding: 72px 0; border: 0; }
.calendar-page:has(.calendar-page__shell) .calendar-section-heading h2,
.calendar-page:has(.calendar-page__shell) .calendar-results__header h2 { text-transform: uppercase; letter-spacing: -.045em; }
.calendar-page:has(.calendar-page__shell) .calendar-section-heading > p { max-width: 420px; }
html:has(.calendar-page__shell) { scroll-behavior: smooth; }
.calendar-add-event span { font-size: 17px; }
.calendar-add-event:hover, .calendar-add-event:focus-visible { color: var(--color-text-inverse); background: var(--color-accent-hover); border-color: var(--color-accent-hover); outline: 0; }
.calendar-add-event:hover span, .calendar-add-event:focus-visible span { color: var(--color-text-inverse); }
.calendar-browser-title { margin: 0; padding: 66px 0 26px; border-top: 1px solid var(--color-border); }
.calendar-page:has(.calendar-page__shell) .calendar-filters { margin: 0 0 12px; padding: 0; border: 0; border-radius: 0; background: transparent; }
.calendar-page:has(.calendar-page__shell) .calendar-toolbar { grid-template-columns: repeat(3, minmax(145px, .52fr)) minmax(260px, 1fr); gap: 8px; }
.calendar-page:has(.calendar-page__shell) .calendar-toolbar label span { margin-bottom: 6px; }
.calendar-page:has(.calendar-page__shell) .calendar-toolbar select,
.calendar-page:has(.calendar-page__shell) .calendar-toolbar input { min-height: 48px; border-radius: 0; background: var(--color-surface); }
.calendar-page:has(.calendar-page__shell) .calendar-browser { padding: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 0; box-shadow: none; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__nav { grid-template-columns: 48px 1fr 48px; gap: 0; min-height: 60px; border-bottom: 1px solid var(--color-border); background: var(--color-surface); }
.calendar-page:has(.calendar-page__shell) .calendar-browser__arrow { width: 48px; height: 60px; border: 0; border-radius: 0; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__heading h2 { font-size: 27px; text-transform: uppercase; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__heading select { border-radius: 0; }
.calendar-page:has(.calendar-page__shell) .calendar-months { grid-template-columns: repeat(12, minmax(72px, 1fr)); gap: 0; margin: 0; overflow-x: auto; border-bottom: 1px solid var(--color-border); background: var(--color-surface); }
.calendar-page:has(.calendar-page__shell) .calendar-months button { min-height: 44px; border-radius: 0; background: var(--color-surface); }
.calendar-page:has(.calendar-page__shell) .calendar-months button.is-active { background: var(--color-surface-dark); }
.calendar-page:has(.calendar-page__shell) .calendar-weekdays,
.calendar-page:has(.calendar-page__shell) .calendar-month-grid { gap: 0; }
.calendar-page:has(.calendar-page__shell) .calendar-weekdays { color: var(--color-text-inverse); background: var(--color-surface-dark-raised); }
.calendar-page:has(.calendar-page__shell) .calendar-weekdays span { padding: 13px 8px; color: var(--color-text-inverse); }
.calendar-page:has(.calendar-page__shell) .calendar-day { min-height: 66px; padding: 10px; border: 0; border-right: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); border-radius: 0; background: var(--color-surface); }
.calendar-page:has(.calendar-page__shell) .calendar-day:nth-child(7n) { border-right: 0; }
.calendar-page:has(.calendar-page__shell) .calendar-day.is-muted { background: var(--color-page); }
.calendar-page:has(.calendar-page__shell) .calendar-day.is-today { border: 2px solid var(--color-accent); box-shadow: none; }
.calendar-page:has(.calendar-page__shell) .calendar-day.is-today { position: relative; z-index: 1; border: 0; box-shadow: inset 0 0 0 2px var(--color-accent); }
.calendar-page:has(.calendar-page__shell) .calendar-day__count { width: 7px; min-width: 7px; height: 7px; padding: 0; overflow: hidden; color: transparent; background: var(--color-accent); }
.calendar-page:has(.calendar-page__shell) .calendar-day.is-selected .calendar-day__count { background: var(--color-surface); }
.calendar-legend { display: flex; gap: 26px; padding: 15px 18px; background: var(--color-surface); color: var(--color-text-secondary); font: 600 10px Inter,sans-serif; }
.calendar-legend span { display: flex; align-items: center; gap: 8px; }
.calendar-legend i { width: 7px; height: 7px; border-radius: 50%; background: var(--color-accent); }
.calendar-legend span + span i { background: var(--color-surface-dark); }
.calendar-page:has(.calendar-page__shell) .calendar-reset { border-radius: 0; }
.calendar-page:has(.calendar-page__shell) .calendar-feed--latest { margin: 72px 0 0; padding: 66px 0 0; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__nav { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 8px; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__nav { position: relative; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__heading { flex: 0 1 auto; min-width: 0; padding: 0 8px; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__arrow { position: absolute; top: 0; bottom: 0; z-index: 1; display: grid; place-items: center; width: 48px; height: auto; padding: 0; border: 0; line-height: 1; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__arrow[data-calendar-prev="true"] { left: 0; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__arrow[data-calendar-next="true"] { right: 0; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__arrow span { display: block; line-height: 1; transform: translateY(-1px); }
.calendar-day-layout { display: grid; grid-template-columns: minmax(0, .88fr) minmax(380px, 1fr); gap: 28px; align-items: stretch; }
.calendar-filter-panel { min-width: 0; height: 100%; box-sizing: border-box; padding: 28px; overflow: hidden; border: 1px solid var(--color-border); background: var(--color-surface); }
.calendar-filter-group { margin-top: 22px; }
.calendar-filter-group h3 { margin: 0 0 10px; color: var(--color-text-muted); font: 700 10px/1.3 Inter,sans-serif; letter-spacing: .12em; text-transform: none; }
.calendar-filter-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.calendar-filter-chip { padding: 9px 11px; border: 1px solid var(--color-border); border-radius: 999px; color: var(--color-text); background: var(--color-surface); cursor: pointer; font: 600 11px/1.1 Inter,sans-serif; }
.calendar-filter-chip:hover, .calendar-filter-chip.is-active { border-color: var(--color-border-strong); color: var(--color-text-inverse); background: var(--color-surface-dark); }
.calendar-filter-summary { margin: 26px 0 0; color: var(--color-text-muted); font: 500 12px/1.5 Inter,sans-serif; }
.calendar-filter-reset { margin-top: 16px; border-radius: 0; }
.calendar-day-results.is-hidden { display: none; }
.calendar-period-results.is-hidden { display: none; }
.calendar-day-results__header { margin-top: 0; }
.calendar-day-results .calendar-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.calendar-page:has(.calendar-page__shell) .calendar-day.is-selected { color: var(--color-text-inverse); background: var(--color-accent); border-color: var(--color-accent); }
.calendar-page:has(.calendar-page__shell) .calendar-month-select select { padding-right: 48px; }
.calendar-page:has(.calendar-page__shell) .calendar-month-select select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23171717' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 18px center; background-size: 12px 7px; }
.calendar-hostcms-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; }
.calendar-hostcms-form .calendar-hostcms-form__field { min-width: 0; }
.calendar-hostcms-form .calendar-hostcms-form__field--description,
.calendar-hostcms-form .calendar-hostcms-form__field--consent,
.calendar-hostcms-form button { grid-column: 1 / -1; }
.calendar-hostcms-form .calendar-hostcms-form__field--description textarea { min-height: 118px; resize: vertical; }
.calendar-hostcms-form .calendar-hostcms-form__field--description { position: relative; }
.calendar-hostcms-form__counter { position: absolute; right: 12px; bottom: 10px; color: var(--color-text-muted); font: 500 11px Inter,sans-serif; }
.calendar-hostcms-form .calendar-hostcms-form__field--consent { display: flex; align-items: center; gap: 10px; }
.calendar-hostcms-form .calendar-hostcms-form__field--consent > span { flex: 1 1 auto; order: 2; margin: 0; line-height: 1.35; }
.calendar-hostcms-form .calendar-hostcms-form__field--consent input { order: 1; flex: 0 0 18px; width: 18px !important; height: 18px; margin: 0; }
.calendar-hostcms-form .calendar-hostcms-form__field--email,
.calendar-hostcms-form .calendar-hostcms-form__field--place { order: 1; }
.calendar-hostcms-form .calendar-hostcms-form__field--event_start,
.calendar-hostcms-form .calendar-hostcms-form__field--event_end { order: 2; }
.calendar-hostcms-form .calendar-hostcms-form__field--event_title { order: 3; }
.calendar-hostcms-form .calendar-hostcms-form__field--description { order: 4; }
.calendar-hostcms-form .calendar-hostcms-form__field--organizer { order: 5; }
.calendar-hostcms-form .calendar-hostcms-form__field--website,
.calendar-hostcms-form .calendar-hostcms-form__field--phone { order: 6; }
.calendar-hostcms-form .calendar-hostcms-form__field--consent { order: 7; }
.calendar-hostcms-form > button { order: 8; }
.calendar-hostcms-form input:not([type="checkbox"]), .calendar-hostcms-form textarea { min-height: 50px; }
.calendar-hostcms-form textarea { display: block; }
.calendar-hostcms-form button { min-height: 56px; }
.calendar-hostcms-form > button[type="submit"] { grid-column: auto; }
.calendar-hostcms-form .calendar-hostcms-form__reset { grid-column: auto; color: var(--color-text-inverse); background: transparent; border: 1px solid var(--color-border-strong); }
.calendar-hostcms-form .calendar-hostcms-form__reset:hover { border-color: var(--color-text-inverse); background: var(--color-surface-dark-raised); }
.calendar-hostcms-form__field input[type="checkbox"] { width: auto !important; min-height: 18px; }
.calendar-form-success, .calendar-form-error { grid-column: 1 / -1; }

.calendar-form-ajax-status { grid-column: 1 / -1; }
.calendar-hostcms-form button[disabled] { opacity: .6; cursor: wait; }
.calendar-day-panel { position: sticky; top: 104px; min-width: 0; padding: 28px; border: 1px solid var(--color-border); background: var(--color-surface); }
.calendar-day-panel h2 { margin: 0 0 20px; font: 800 clamp(24px, 3vw, 36px)/1 Manrope,sans-serif; text-transform: uppercase; letter-spacing: -.04em; }
.calendar-day-panel__grid { grid-template-columns: 1fr; gap: 14px; }
.calendar-day-panel__grid .calendar-card__media { aspect-ratio: 16/8; }
.calendar-month-select { display: block; margin: 0; border-bottom: 1px solid var(--color-border); background: var(--color-surface); }
.calendar-month-select select { display: block; width: 100%; min-height: 48px; padding: 8px 34px 8px 16px; border: 0; border-radius: 0; background: var(--color-surface); color: var(--color-text); font: 800 14px Inter,sans-serif; text-transform: uppercase; cursor: pointer; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__heading { gap: 8px; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__heading { align-items: center; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__heading h2 { min-height: 50px; display: flex; align-items: center; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__heading select { min-width: 112px; min-height: 50px; box-sizing: border-box; padding: 7px 48px 7px 12px; border: 1px solid var(--color-border); appearance: none; background-color: var(--color-page); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23171717' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 15px center; background-size: 12px 7px; text-align: center; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__arrow { color: var(--color-text); font-size: 38px; line-height: 1; }
.calendar-page:has(.calendar-page__shell) .calendar-browser__arrow:hover { color: var(--color-text-inverse); }
.calendar-application { scroll-margin-top: 130px; display: grid; grid-template-columns: minmax(260px, .62fr) minmax(0, 1.38fr); gap: clamp(42px, 6vw, 92px); margin-top: 84px; padding: clamp(42px, 5vw, 64px); border-radius: 10px; background: linear-gradient(135deg, var(--color-surface-dark), var(--color-surface-dark)); color: var(--color-text-inverse); }
.calendar-application__intro > p:last-child { max-width: 340px; margin-top: 20px; color: var(--color-text-inverse-muted); font: 500 14px/1.6 Inter,sans-serif; }
.calendar-application__form { display: block; }
.calendar-application__form label { display: block; }
.calendar-application__form label > span { display: block; margin-bottom: 7px; color: var(--color-text-inverse-muted); font: 700 10px Inter,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.calendar-application__form input:not([type="checkbox"]), .calendar-application__form textarea { width: 100%; box-sizing: border-box; padding: 12px 13px; border: 1px solid var(--color-border-dark); border-radius: 0; outline: 0; background: var(--color-surface-dark-raised); color: var(--color-text-inverse); font: 500 14px/1.4 Inter,sans-serif; transition: border-color .25s ease, background-color .25s ease, box-shadow .25s ease; }
.calendar-application__form input:focus, .calendar-application__form textarea:focus { border-color: var(--color-accent); background: var(--color-surface-dark-raised); box-shadow: 0 0 0 3px rgba(var(--color-accent-rgb), 0.14); }
.calendar-application__form input[type="date"] { color-scheme: dark; accent-color: var(--color-accent); cursor: pointer; }
.calendar-application__form input[type="date"]::-webkit-calendar-picker-indicator { padding: 5px; border-radius: 4px; filter: brightness(0) saturate(100%) invert(21%) sepia(98%) saturate(4721%) hue-rotate(351deg) brightness(91%) contrast(113%); cursor: pointer; }
.calendar-application__wide { grid-column: 1 / -1; }
.calendar-application__consent { display: flex !important; gap: 10px; align-items: flex-start; }
.calendar-application__consent input { flex: 0 0 auto; margin-top: 2px; accent-color: var(--color-accent); }
.calendar-application__form button { grid-column: 1 / -1; justify-self: start; margin-top: 8px; }
.calendar-application__form button[type="submit"] { min-width: 220px; }
.calendar-application__form button span { margin-left: 18px; font-size: 18px; }
.calendar-application__form .calendar-hostcms-form > button[type="submit"],
.calendar-application__form .calendar-hostcms-form > .calendar-hostcms-form__reset { grid-column: auto; }
/* Organizer banner shared by the calendar and event details. */
.calendar-application--account {
  grid-template-columns: minmax(0, 1fr) minmax(220px, .36fr);
  gap: 32px;
  align-items: stretch;
  min-height: 300px;
  padding: 0;
  overflow: hidden;
  border-radius: 18px;
  background: linear-gradient(90deg, rgba(var(--color-dark-rgb), .97) 0%, rgba(var(--color-dark-rgb), .88) 32%, rgba(var(--color-dark-rgb), .22) 67%, rgba(var(--color-dark-rgb), .65) 100%), url("/templates/template75/img/moto-vesna-3.jpg") center 55% / cover;
}
.calendar-application--account .calendar-application__intro { max-width: 510px; padding: 32px; align-self: center; }
.calendar-application__description { max-width: 420px; margin: 16px 0 24px; color: var(--color-text-inverse-muted); font: 500 14px/1.6 var(--ds-text-font); }
.calendar-application__benefits { display: flex; flex-direction: column; justify-content: center; gap: 24px; margin: 0; padding: 32px; list-style: none; background: rgba(var(--color-dark-rgb), .84); }
.calendar-application--account .calendar-application__benefits li { color: var(--color-text-inverse); display: flex; align-items: center; gap: 14px; font: 500 14px/1.5 var(--ds-text-font); }
.calendar-application__benefits .moto-icon { flex: 0 0 20px; }
@media (max-width: 900px) {
  .calendar-application.calendar-application--account { grid-template-columns: 1fr; gap: 0; padding: 0; background-image: linear-gradient(rgba(var(--color-dark-rgb), .78), rgba(var(--color-dark-rgb), .78)), url("/templates/template75/img/moto-vesna-3.jpg"); }
  .calendar-application--account .calendar-application__intro { max-width: 510px; }
  .calendar-application__benefits { gap: 18px; padding-top: 24px; padding-bottom: 24px; }
}
@media (max-width: 620px) {
  .calendar-application--account .calendar-application__intro { padding: 28px 24px; }
  .calendar-application__benefits { padding: 24px; }
}
.calendar-page:has(.calendar-page__shell) .calendar-filters[hidden] { display: none; }

@media (max-width: 900px) {
  .calendar-page:has(.calendar-page__shell) .calendar-toolbar { grid-template-columns: 1fr 1fr; }
  .calendar-day-layout { grid-template-columns: 1fr; }
  .calendar-filter-panel { padding: 24px; }
  .calendar-day-panel { position: static; }
  .calendar-application { grid-template-columns: 1fr; gap: 26px; padding: 32px; }
  .calendar-hostcms-form { grid-template-columns: 1fr; }
  .calendar-hostcms-form .calendar-hostcms-form__field--description,
  .calendar-hostcms-form .calendar-hostcms-form__field--consent { grid-column: auto; }
  .calendar-application__form .calendar-hostcms-form > button[type="submit"],
  .calendar-application__form .calendar-hostcms-form > .calendar-hostcms-form__reset { width: 100%; }
}

@media (max-width: 620px) {
  .calendar-page:has(.calendar-page__shell) { padding-bottom: 48px; }
  .calendar-page:has(.calendar-page__shell) .calendar-hero { padding: 145px 0 38px; }
  .calendar-hero__image { object-position: 58% center; }
  .calendar-page:has(.calendar-page__shell) .calendar-hero h1 { word-break: keep-all; }
  .calendar-page:has(.calendar-page__shell) .calendar-hero__stats { grid-template-columns: none; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); margin-top: 30px; }
  .calendar-page:has(.calendar-page__shell) .calendar-hero__stats p { min-width: 0; padding-right: 9px; }
  .calendar-page:has(.calendar-page__shell) .calendar-hero__stats p + p { padding-left: 11px; }
  .calendar-page:has(.calendar-page__shell) .calendar-hero__stats strong { font-size: 27px; }
  .calendar-page:has(.calendar-page__shell) .calendar-hero__stats span { font-size: 9px; }
  .calendar-page:has(.calendar-page__shell) .calendar-feed--upcoming { padding: 48px 0; }
  .calendar-page:has(.calendar-page__shell) .calendar-feed--upcoming .calendar-grid,
  .calendar-page:has(.calendar-page__shell) .calendar-feed--latest .calendar-grid { display: flex; gap: 10px; margin-right: -12px; padding-right: 12px; overflow-x: auto; scroll-snap-type: x mandatory; }
  .calendar-page:has(.calendar-page__shell) .calendar-feed--upcoming .calendar-card,
  .calendar-page:has(.calendar-page__shell) .calendar-feed--latest .calendar-card { flex: 0 0 82vw; scroll-snap-align: start; }
  .calendar-page:has(.calendar-page__shell) .calendar-toolbar { display: flex; gap: 8px; margin-right: -12px; padding: 0 12px 3px 0; overflow-x: auto; }
  .calendar-page:has(.calendar-page__shell) .calendar-toolbar label { flex: 0 0 150px; }
  .calendar-page:has(.calendar-page__shell) .calendar-toolbar__search { order: -1; flex-basis: 260px !important; }
  .calendar-page:has(.calendar-page__shell) .calendar-browser { margin-inline: -12px; border-right: 0; border-left: 0; }
  .calendar-page:has(.calendar-page__shell) .calendar-browser__nav { gap: 4px; padding: 6px; }
  .calendar-page:has(.calendar-page__shell) .calendar-browser__arrow { width: 46px; height: auto; }
  .calendar-page:has(.calendar-page__shell) .calendar-browser__heading { flex-direction: row; gap: 9px; }
  .calendar-page:has(.calendar-page__shell) .calendar-browser__heading h2 { font-size: 23px; }
  .calendar-page:has(.calendar-page__shell) .calendar-browser__heading select { padding: 7px 27px 7px 9px; font-size: 13px; }
  .calendar-page:has(.calendar-page__shell) .calendar-months { grid-template-columns: repeat(12, 72px); }
  .calendar-page:has(.calendar-page__shell) .calendar-browser__heading { gap: 4px; }
  .calendar-page:has(.calendar-page__shell) .calendar-browser__heading select { min-width: 88px; padding: 7px 32px 7px 8px; }
  .calendar-page:has(.calendar-page__shell) .calendar-browser__heading select { min-height: 46px; border: 1px solid var(--color-border); border-radius: 0; background-color: var(--color-surface); color: var(--color-text); font: 800 16px/1 Inter,sans-serif; }
  .calendar-page:has(.calendar-page__shell) .calendar-browser__heading select:focus { border-color: var(--color-accent); outline: 0; box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.15); }
  .calendar-page:has(.calendar-page__shell) .calendar-browser__heading select option { color: var(--color-text); background: var(--color-surface); font-weight: 700; }
  .calendar-page:has(.calendar-page__shell) .calendar-month-select select { font-size: 16px; }
  .calendar-page:has(.calendar-page__shell) .calendar-month-grid,
  .calendar-page:has(.calendar-page__shell) .calendar-weekdays { gap: 2px; }
  .calendar-add-event { width: 100%; margin-top: 18px; }
  .calendar-day-panel { padding: 20px; }
  .calendar-day-results .calendar-grid { grid-template-columns: 1fr; }
  .calendar-application { scroll-margin-top: 92px; margin-top: 52px; padding: 24px 18px; }
  .calendar-application__form { grid-template-columns: 1fr; }
  .calendar-application__wide, .calendar-application__form button { grid-column: auto; }
  .calendar-page:has(.calendar-page__shell) .calendar-day { min-height: 56px; padding: 8px; }
  .calendar-page:has(.calendar-page__shell) .calendar-day.is-today b::after { display: none; }
  .calendar-legend { padding-inline: 12px; }
  .calendar-page:has(.calendar-page__shell) .calendar-section-heading h2,
  .calendar-page:has(.calendar-page__shell) .calendar-results__header h2 { font-size: 28px; }
}
.club-ownership { display: flex; margin-top: 48px; padding: 30px 32px; align-items: center; justify-content: space-between; gap: 32px; border-radius: 10px; color: var(--color-text-inverse); background: var(--color-surface-dark); }
.club-ownership > div { max-width: 680px; }
.club-ownership .clubs-eyebrow { margin-bottom: 8px; color: var(--color-text-muted); }
.club-ownership h2 { margin: 0; color: var(--color-text-inverse); font: 800 clamp(24px, 3vw, 36px)/1.05 var(--display); }
.club-ownership p:last-child { margin: 12px 0 0; color: var(--color-text-inverse-muted); font-size: 14px; line-height: 1.55; }
.club-ownership__action { flex: 0 0 auto; }
.club-change-application { display: none; }
@media (max-width: 720px) { .club-ownership { padding: 25px 22px; flex-direction: column; align-items: stretch; gap: 22px; } .club-ownership__action { width: 100%; } }

/* Unified page background */
.clubs-page,
.video-page,
.gallery-page,
.news-page,
.articles-page,
.calendar-page,
.calendar-page:has(.calendar-page__shell) {
  background-color: var(--color-page);
}

/* Subscription layout based on the approved visual reference. */
.subscription-page__body { padding-bottom: 32px; }
.subscription-page__options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: stretch; }
.subscription-option { display: flex; flex-direction: column; min-width: 0; padding: clamp(24px, 2.4vw, 36px); border: 1px solid var(--color-border); border-radius: 22px; background: var(--color-surface); box-shadow: 0 10px 32px rgb(0 0 0 / 3%); }
.subscription-option__label { margin: 0 0 16px; color: var(--color-accent); font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.subscription-option h2 { margin: 0 0 12px; font-family: Inter, sans-serif; font-size: clamp(24px, 2.4vw, 36px); line-height: 1.15; letter-spacing: -.025em; }
.subscription-option > p:not(.subscription-option__label):not(.subscription-option__hint) { margin: 0; color: var(--color-text-secondary); font-size: 18px; line-height: 1.5; }
.subscription-option p { overflow-wrap: anywhere; }
.subscription-covers { position: relative; height: clamp(260px, 28vw, 390px); margin: 22px 0; isolation: isolate; }
.subscription-covers img { position: absolute; left: 50%; height: 85%; width: 45%; object-fit: contain; filter: drop-shadow(0 8px 9px rgb(0 0 0 / 22%)); }
.subscription-covers .subscription-covers__front { top: 4%; z-index: 2; transform: translateX(-50%) rotate(-2deg); height: 94%; }
.subscription-covers__back--left { top: 13%; transform: translateX(-92%) rotate(-11deg); }
.subscription-covers__back--right { top: 13%; transform: translateX(-8%) rotate(11deg); }
.subscription-benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; list-style: none; padding: 0; margin: auto 0 24px; }
.subscription-benefits li { display: flex; align-items: center; gap: 10px; font-size: 12px; line-height: 1.5; }
.subscription-benefits__icon { display: grid; place-items: center; flex: 0 0 40px; height: 40px; border-radius: 50%; background: var(--color-page); }
.subscription-benefits__icon svg { width: 22px; height: 22px; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.subscription-digital { display: grid; place-items: center; aspect-ratio: 2.5; min-height: 170px; overflow: hidden; margin: 30px 0 24px; padding: 16px 18px 10px; border-radius: 14px; background: radial-gradient(ellipse at 80% 10%, #d6c8ad, transparent 60%), linear-gradient(150deg, #2a302b, #8c8476 58%, #453d34); }
.subscription-laptop { width: 74%; position: relative; filter: drop-shadow(0 12px 10px rgb(0 0 0 / 35%)); }
.subscription-laptop__screen { box-sizing: border-box; width: 100%; position: relative; display: flex; flex-direction: column; align-items: flex-start; aspect-ratio: 1.85; overflow: hidden; border: 7px solid #181818; border-radius: 9px 9px 2px 2px; background: #f7f7f4; padding: 7%; }
.subscription-laptop__logo { position: relative; z-index: 1; width: 30%; margin-bottom: 8%; }
.subscription-laptop__screen strong { position: relative; z-index: 1; max-width: 60%; font: 800 clamp(12px, 1.25vw, 19px)/1.1 Inter, sans-serif; }
.subscription-laptop__photo { position: absolute; inset: 0 0 0 auto; height: 100%; width: 58%; object-fit: cover; object-position: 64% center; mask-image: linear-gradient(90deg, transparent, #000 30%); }
.subscription-laptop__base { position: relative; width: 120%; height: 10px; margin-left: -10%; border-radius: 2px 2px 50% 50%; background: linear-gradient(#c3c4c5, #626465); }
.subscription-option__email { margin-top: 0; }
.moto-design .subscription-action { display: inline-flex; justify-content: center; align-items: center; gap: 14px; width: 100%; min-height: 50px; padding: 12px 24px; border: 0; border-radius: 999px; background: var(--color-accent); color: #fff; font: 600 14px/1.4 Manrope, sans-serif; }
.moto-design .subscription-action:disabled { opacity: .8; cursor: not-allowed; }
.moto-design .subscription-action--print { width: 100%; }
.subscription-option__email .subscription-action { margin-top: 14px; }
.moto-design .subscription-consent { margin: 20px 0; color: var(--color-text-secondary); }
.moto-design .subscription-consent span { font-size: 12px; line-height: 1.5; }
.subscription-option__hint { margin: 12px 0 0; color: var(--color-text-secondary); font-size: 12px; line-height: 1.5; }
.subscription-banner { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-top: 32px; padding: 28px 32px; min-height: 190px; overflow: hidden; border-radius: 18px; background: linear-gradient(90deg, rgb(0 0 0 / 88%), rgb(0 0 0 / 10%)), url('/assets/img/about/today-20260916.jpg') center 52% / cover; color: #fff; }
.subscription-banner img { width: 108px; margin-bottom: 20px; }
.subscription-banner h2 { margin: 0; font: 800 clamp(22px, 2.5vw, 34px)/1.15 Inter, sans-serif; }
.subscription-banner a { display: inline-flex; align-items: center; justify-content: center; gap: 12px; flex-shrink: 0; padding: 12px 20px; border: 1px solid #fff; border-radius: 999px; color: #fff; text-decoration: none; font-size: 14px; font-weight: 600; }
.subscription-banner a:hover { background: rgb(255 255 255 / 15%); }
.subscription-banner a:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.subscription-ad { box-sizing: border-box; width: 100%; min-height: 150px; margin-top: 32px; border-radius: 18px; }
@media (min-width: 768px) and (max-width: 1050px) {
 .subscription-page__options { gap: 20px; }
 .subscription-benefits { grid-template-columns: 1fr; }
 .subscription-benefits br { display: none; }
 .subscription-digital { min-height: 150px; }
 .subscription-laptop { width: 90%; }
}
@media (max-width: 767px) {
 .subscription-page__options { grid-template-columns: minmax(0, 1fr); gap: 20px; }
 .subscription-option { padding: 22px; border-radius: 18px; }
 .subscription-option__label { margin-bottom: 12px; }
 .subscription-option > p:not(.subscription-option__label):not(.subscription-option__hint) { font-size: 15px; }
 .subscription-covers { height: 255px; margin: 16px 0 22px; }
 .subscription-benefits { grid-template-columns: 1fr; gap: 12px; }
 .subscription-benefits br { display: none; }
 .subscription-benefits__icon { flex-basis: 34px; height: 34px; }
 .subscription-digital, .subscription-banner { display: none; }
 .subscription-option__email { margin-top: 24px; }
 .moto-design .subscription-action--print { width: 100%; }
}

/* Photo reports linked to calendar events. */
.calendar-photo-reports { margin-top: 36px; }
.calendar-photo-report { margin-top: 20px; padding: 28px; border: 1px solid var(--color-border); border-radius: 18px; background: var(--color-surface); }
.calendar-photo-report__header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
.calendar-photo-report__header h3 { margin: 0; font: 800 clamp(20px, 3vw, 28px)/1.2 Manrope, sans-serif; overflow-wrap: anywhere; }
.calendar-photo-report__header h3 a { color: inherit; text-decoration: none; }
.calendar-photo-report__header p { margin: 0; color: var(--color-text-secondary); font-size: 14px; }
.calendar-photo-report__photos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.calendar-photo-report__photos a { display: block; aspect-ratio: 4/3; overflow: hidden; border-radius: 8px; background: var(--color-surface-soft); }
.calendar-photo-report__photos img { display: block; width: 100%; height: 100%; object-fit: cover; }
.calendar-photo-report__link, .gallery-event-link__action { margin-top: 16px; }
.calendar-photo-report a:focus-visible, .gallery-event-link a:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 4px; }
.gallery-event-links { display: grid; gap: 16px; padding-top: 32px; }
.gallery-event-link { padding: 24px 28px; border-left: 4px solid var(--color-accent); border-radius: 0 12px 12px 0; background: var(--color-surface); }
.gallery-event-link__eyebrow { margin: 0 0 8px; color: var(--color-text-secondary); font-size: 13px; }
.gallery-event-link h2 { margin: 0; font: 800 clamp(20px, 3vw, 28px)/1.2 Manrope, sans-serif; }
.gallery-event-link h2 a { color: inherit; text-decoration: none; }
.gallery-event-link p { overflow-wrap: anywhere; }
@media (max-width: 620px) { .calendar-photo-report { padding: 18px; } .calendar-photo-report__photos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .gallery-event-link { padding: 20px; } }

/* Event detail: information panel and full, uncropped poster. */
.calendar-page--event { background: var(--color-page); }
.calendar-page--event .calendar-event { padding: 28px 0 48px; }
.calendar-page--event .calendar-shell { box-sizing: border-box; width: min(var(--max), 100%); max-width: var(--max); margin-inline: auto; padding-inline: var(--pad); }
.calendar-event__hero { display: grid; grid-template-columns: minmax(0, 1.28fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.calendar-event__hero--no-cover { grid-template-columns: minmax(0, 1fr); }
.calendar-event__hero .calendar-event__header { min-width: 0; box-sizing: border-box; border-radius: 18px; background: var(--color-surface-translucent); }
.calendar-event__hero--no-cover .calendar-event__header { max-width: none; margin-inline: auto; }
.calendar-event__nav a { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; box-sizing: border-box; padding: 10px 20px; border: 1px solid var(--color-accent); border-radius: 999px; color: var(--color-accent); background: transparent; font: 700 13px/1.5 Manrope,sans-serif; text-decoration: none; }
.calendar-event__hero .calendar-event__badges { gap: 10px; }
.calendar-event__hero .calendar-event__badges span { padding: 8px 14px; font-size: 11px; line-height: 1.35; letter-spacing: 0; }
.calendar-event__hero .calendar-event__badges span:first-child { background: var(--color-accent); }
.calendar-event__hero .calendar-event__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; margin: 0 0 18px; }
.calendar-event__fact { position: relative; display: flex; flex-direction: column; justify-content: center; min-width: 0; min-height: 78px; box-sizing: border-box; padding: 14px 16px 14px 88px; border-radius: 15px; background: var(--color-surface); }
.calendar-event__fact dt { margin: 0 0 5px; }
.calendar-event__fact-label { display: block; color: var(--color-text-muted); font: 500 14px/1.3 Manrope,sans-serif; }
.calendar-event__fact-icon { position: absolute; top: 50%; left: 16px; display: grid; place-items: center; width: 50px; height: 50px; transform: translateY(-50%); border-radius: 50%; color: var(--color-accent); background: rgba(var(--color-accent-rgb), 0.1); }
.calendar-event__fact-icon svg { display: block; width: 24px; height: 24px; }
.calendar-event__fact dd { margin: 0; color: var(--color-text); font: 700 15px/1.35 Manrope,sans-serif; overflow-wrap: anywhere; }
.calendar-event__fact--compact dd { font-size: 13px; font-weight: 500; line-height: 1.25; }
.calendar-event__hero .calendar-event__actions { gap: 12px; margin: 0; }
.calendar-event__actions > a:hover, .calendar-event__actions > button:hover { background: var(--color-surface); }
.calendar-event__actions .calendar-event__calendar-toggle:hover { background: var(--color-accent-hover); border-color: var(--color-accent-hover); }
.calendar-event__actions a:focus-visible, .calendar-event__actions button:focus-visible, .calendar-event__nav a:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 4px; }
.calendar-event__media { min-width: 0; overflow: hidden; border-radius: 18px; background: var(--color-surface-soft); }
.calendar-event__media .calendar-event__cover { display: block; width: 100%; height: auto; max-height: none; margin: 0; border-radius: 0; object-fit: contain; box-shadow: none; }
.calendar-page--event .calendar-event__content { box-sizing: border-box; }
@media (max-width: 1200px) {
  .calendar-event__hero .calendar-event__facts { gap: 12px; }
  .calendar-event__fact { padding-left: 64px; padding-right: 12px; }
  .calendar-event__fact-icon { left: 12px; width: 40px; height: 40px; }
  .calendar-event__fact dd { font-size: 14px; }
  .calendar-event__fact--compact dd { font-size: 12px; }
}
@media (max-width: 1000px) {
  .calendar-event__hero { grid-template-columns: minmax(0, 1fr); }
  .calendar-event__media { width: min(100%, 680px); margin-inline: auto; }
}

@media (max-width: 620px) {
  .calendar-page--event .calendar-event { padding-top: 16px; }
  .calendar-event__hero { gap: 16px; }
  .calendar-event__hero .calendar-event__badges { gap: 7px; }
  .calendar-event__hero .calendar-event__badges span { padding: 7px 10px; font-size: 10px; }
  .calendar-event__hero .calendar-event__facts { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .calendar-event__fact { min-height: 74px; padding-left: 76px; }
  .calendar-event__fact-icon { left: 14px; width: 44px; height: 44px; }
  .calendar-event__fact--compact dd { font-size: 13px; }
  .calendar-event__hero .calendar-event__actions { gap: 10px; }
  .calendar-event__hero .calendar-event__actions > a,
  .calendar-event__hero .calendar-event__actions > button { flex: 1 1 auto; padding-inline: 16px; }
  .calendar-event__hero .calendar-event__calendar { flex: 1 1 100%; }
  .calendar-event__hero .calendar-event__calendar-toggle { width: 100%; }
  .calendar-event__calendar-menu { min-width: 0; width: 100%; box-sizing: border-box; }
  .calendar-event__actions .calendar-event__calendar-menu a,
  .calendar-event__actions .calendar-event__calendar-menu button { white-space: normal; }
}

.calendar-event__nav a:hover { color: var(--color-text-inverse); background: var(--color-accent-hover); }
.calendar-page--event .calendar-event__badge--verified { background: var(--color-accent); border-color: var(--color-accent); }

/* Event mobile layout: title, poster, facts, actions, full description. */
.calendar-event__action-icon { display: block; width: 18px; height: 18px; flex: 0 0 18px; }
.calendar-event__about > h2:first-child { margin-top: 0; }
@media (max-width: 1000px) {
  .calendar-event__hero { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .calendar-event__hero .calendar-event__header { display: contents; }
  .calendar-event__hero .calendar-event__nav { order: 1; }
  .calendar-event__hero .calendar-event__badges { order: 2; }
  .calendar-event__hero h1 { order: 3; }
  .calendar-event__hero .calendar-event__media { order: 4; margin-bottom: 24px; }
  .calendar-event__hero .calendar-event__facts { order: 5; }
  .calendar-event__hero .calendar-event__actions { order: 6; }
}
@media (max-width: 620px) {
  .calendar-page--event .calendar-event { padding-top: 24px; }
  .calendar-event__hero .calendar-event__media { width: 100%; border-radius: 16px; }
  .calendar-event__hero .calendar-event__facts { gap: 14px; margin-bottom: 24px; }
  .calendar-event__fact { min-height: 76px; padding: 14px 16px 14px 80px; border-radius: 18px; }
  .calendar-event__fact-icon { left: 16px; width: 48px; height: 48px; }
  .calendar-event__fact dd { font-size: 15px; }
  .calendar-event__fact--compact { padding-top: 18px; padding-bottom: 18px; }
  .calendar-event__fact--compact .calendar-event__fact-icon { top: 16px; transform: none; }
  .calendar-event__fact--compact dd { font-size: 15px; line-height: 1.45; }
  .calendar-event__hero .calendar-event__actions { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
  .calendar-event__hero .calendar-event__calendar { grid-column: 1 / -1; grid-row: 1; }
  .calendar-event__hero .calendar-event__actions > a:has(+ button[data-event-share]) { grid-column: 1 / -1; }
  .calendar-event__hero .calendar-event__actions > button[data-event-share]:last-child { grid-column: 1 / -1; }
  .calendar-page--event .calendar-event__content { border-radius: 20px; white-space: normal; }
  body:has(.calendar-page--event) .site-header { grid-template-columns: minmax(0,1fr) auto auto; gap: 4px; }
  body:has(.calendar-page--event) .brand { justify-self: start; justify-content: flex-start; }
  body:has(.calendar-page--event) .header-controls { display: flex; grid-column: 2; grid-row: 1; gap: 0; }
  body:has(.calendar-page--event) .header-subscribe,
  body:has(.calendar-page--event) .header-account > span { display: none; }
  body:has(.calendar-page--event) .header-action { justify-content: center; width: 40px; height: 44px; padding: 0; border: 0; }
  body:has(.calendar-page--event) .header-action svg { width: 22px; height: 22px; }
  body:has(.calendar-page--event) .menu-toggle { grid-column: 3; grid-row: 1; border: 0; }
}

.calendar-event__fact-note { display: block; margin-top: 6px; font-size: 13px; font-weight: 500; line-height: 1.45; }
.calendar-event__fact-note:first-child { margin-top: 0; }
@media (max-width: 620px) { .calendar-event__fact-note { font-size: 15px; } }

/* About: CMS introduction, editorial teasers and separate detail pages. */
.about-page { min-height: 70vh; padding: 144px 0 80px; background: var(--color-page); color: var(--color-text); }
.about-shell { box-sizing: border-box; width: min(var(--max), 100%); margin-inline: auto; padding-inline: var(--pad); }
.about-intro { color: var(--color-text-secondary); font-size: 19px; }
.about-header:has(.about-intro__image) { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); column-gap: clamp(24px,4vw,64px); align-items: center; }
.about-header:has(.about-intro__image) h1 { grid-column: 1; align-self: end; }
.about-header:has(.about-intro__image) .about-intro { display: contents; }
.about-header:has(.about-intro__image) .about-intro::after { display: none; }
.about-intro__copy { grid-column: 1; align-self: start; }
.about-intro__copy > :first-child { margin-top: 0; }
.about-intro__copy > :last-child { margin-bottom: 0; }
.about-header .about-intro__image { grid-column: 2; grid-row: 1 / span 2; display: block; width: 100%; height: 100%; min-height: 300px; object-fit: cover; border-radius: 20px; }
.about-richtext::after { content: ''; display: table; clear: both; }
.about-richtext img, .about-richtext video { max-width: 100%; height: auto; border-radius: 16px; }
.about-richtext iframe { max-width: 100%; }
.about-richtext table { display: block; max-width: 100%; overflow-x: auto; }
.about-richtext a { color: var(--color-accent); }
.about-sections { display: flex; flex-wrap: wrap; gap: 4px; padding: 5px; margin-bottom: 24px; border-radius: 24px; background: var(--color-surface-soft); }
.about-sections a { display: inline-flex; align-items: center; justify-content: center; flex: 1 1 auto; min-height: 42px; box-sizing: border-box; padding: 10px 18px; border-radius: 999px; color: var(--color-text); text-decoration: none; font: 700 14px/1.4 Manrope,sans-serif; }
.about-sections a:hover, .about-sections a:focus-visible { color: var(--color-text-inverse); background: var(--color-accent-hover); }
.about-teaser { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: clamp(24px,4vw,64px); padding: 34px 0; scroll-margin-top: 124px; }
.about-teaser + .about-teaser { border-top: 1px solid var(--color-border); }
.about-teaser--no-image { grid-template-columns: minmax(0,1fr); }
.about-teaser--no-image .about-teaser__body { max-width: 880px; }
.about-teaser__body { min-width: 0; }
.about-teaser h2 { overflow-wrap: anywhere; }
.about-teaser h2 a { color: inherit; text-decoration: none; }
.about-teaser__description { margin-bottom: 24px; color: var(--color-text-secondary); font-size: 17px; }
.about-button--outline { background: transparent; color: var(--color-text); border-color: var(--color-border-strong); }
.about-button--outline:hover { color: var(--color-text-inverse); }
.about-page a:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 4px; }
.about-teaser__media { display: block; min-width: 0; overflow: hidden; border-radius: 20px; background: var(--color-surface-soft); }
.about-teaser__media img { display: block; width: 100%; height: auto; }
.about-detail { box-sizing: border-box; width: min(680px, 100%); max-width: 680px; margin-inline: auto; }
.about-shell:has(> .about-detail) > .news-breadcrumbs { box-sizing: border-box; width: min(680px, 100%); margin-inline: auto; }
.about-detail__cover { display: block; max-width: 100%; max-height: 680px; width: auto; height: auto; margin: 0 0 32px; border-radius: 20px; }
.about-detail__text { font-size: 18px; }
.about-detail > .about-button { margin-top: 32px; }
.about-empty { margin: 0; color: var(--color-text-muted); font: 400 17px/1.6 Manrope,sans-serif; }
@media (max-width: 720px) {
  .about-page { padding: 96px 0 48px; }
  .about-header:has(.about-intro__image) { display: block; }
  .about-header .about-intro__image { height: auto; min-height: 0; margin-top: 24px; border-radius: 16px; }
  .about-intro { font-size: 17px; }
  .about-sections { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; border-radius: 18px; }
  .about-sections a { flex: 0 0 auto; }
  .about-teaser { grid-template-columns: minmax(0,1fr); gap: 24px; padding: 28px 0; scroll-margin-top: 88px; }
  .about-teaser__description, .about-detail__text { font-size: 16px; }
  .about-teaser__media { border-radius: 16px; }
  .about-detail__cover { margin-bottom: 24px; }
}

/* Server-rendered calendar archive, with a regular grid on mobile. */
.calendar-page--archive { padding: 144px 0 64px; }
.calendar-page--archive .calendar-shell { box-sizing: border-box; width: min(var(--max),100%); max-width: var(--max); padding-inline: var(--pad); margin-inline: auto; }
.calendar-archive-filters { display: grid; grid-template-columns: 1fr 1fr 1fr 1.5fr; gap: 16px; padding: 24px; border-radius: 20px; background: var(--color-surface); }
.calendar-archive-filters label { display: flex; flex-direction: column; gap: 8px; min-width: 0; font: 600 14px/1.4 Manrope,sans-serif; }
.calendar-archive-filters input, .calendar-archive-filters select { box-sizing: border-box; width: 100%; min-width: 0; min-height: 46px; padding: 10px; border: 1px solid var(--color-border); border-radius: 10px; background: var(--color-page); color: var(--color-text); font: inherit; }
.calendar-archive-filters__actions { display: flex; flex-wrap: wrap; gap: 12px; grid-column: 1 / -1; }
.calendar-archive-count { margin: 28px 0 20px; }
.calendar-archive-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.calendar-archive-pagination { display: flex; flex-wrap: wrap; gap: 8px; }
.calendar-archive-pagination a, .calendar-archive-pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; box-sizing: border-box; padding: 8px 12px; border-radius: 12px; background: var(--color-surface); color: var(--color-text); text-decoration: none; }
.calendar-archive-pagination .is-current, .calendar-archive-pagination a:hover { background: var(--color-accent-hover); color: var(--color-text-inverse); }
.calendar-archive-back { margin-top: 32px; }
@media(max-width:1000px) { .calendar-archive-filters { grid-template-columns: repeat(2,minmax(0,1fr)); } .calendar-archive-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) { .calendar-archive-filters { padding: 16px; grid-template-columns: minmax(0,1fr); } .calendar-archive-grid { grid-template-columns: minmax(0,1fr); } }

/* Detail typography standard: calendar event reference, shared with news. */
.calendar-event__hero h1,
.news-article__header h1 {
  color: var(--color-text);
}

.calendar-event__content,
.news-article__content,
.news-article__header .news-article__dek {
  color: var(--color-text);
  font: 400 17px/1.75 Manrope, sans-serif;
}

.news-article__date {
  color: var(--color-text);
}

@media (max-width: 620px) {

  .calendar-event__about > h2:first-child,
  .news-article__content > h2:first-child {
    font-size: 26px;
    letter-spacing: -.04em;
  }
}

@media (max-width: 620px) {
  .calendar-page:has(.calendar-page__shell) .calendar-hero h1,
  .news-page .news-hero h1 {
    word-break: keep-all;
  }
}

/* Site-wide page container standard, based on the news listing. */
body :is(
  .news-shell,
  .articles-shell,
  .calendar-page .calendar-shell,
  .clubs-shell,
  .video-shell,
  .gallery-shell,
  .about-shell,
  .moto-store__shell,
  .moto-product-shell,
  .moto-cart-shell,
  .moto-studio .articles-shell
) {
  box-sizing: border-box;
  width: min(var(--max), 100%);
  max-width: var(--max);
  margin-inline: auto;
  padding-inline: var(--pad);
}

/* Full-width home section backgrounds retain the same content edges. */
body main > .section {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-inline: auto;
  padding-inline: max(var(--pad), calc((100% - var(--max)) / 2 + var(--pad)));
}

body main > .section :is(.data-board, .rail, .subscribe-panel) {
  padding-inline: 0;
}

body main > .section > .calendar-shell {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}


/* Temporary advertising layout for the main calendar page. */
.calendar-ad-preview {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 12px; min-width: 0; padding: 24px;
  border: 1px dashed var(--color-border-strong); border-radius: 18px;
  background: linear-gradient(120deg, var(--color-surface-soft), var(--color-surface));
  color: var(--color-text); text-align: center;
}
.calendar-ad-preview--wide, .calendar-ad-preview--fullwidth { min-height: 160px; margin-top: var(--ds-section); }
.calendar-ad-preview--vertical { min-height: 0; height: 100%; }
.calendar-ad-preview--fullwidth { width: 100%; border-radius: 0; border-inline: 0; }
.calendar-ad-preview--compact { min-height: 250px; }
.calendar-ad-preview__label { color: var(--color-text-muted); font: 500 12px/1.4 var(--ds-text-font); }
.calendar-ad-preview__title { margin: 0; font: 800 28px/1.2 var(--ds-heading-font); letter-spacing: -.025em; }
.calendar-ad-preview__caption { margin: 0; font: 500 15px/1.5 var(--ds-text-font); }
.calendar-ad-preview__note { color: var(--color-text-muted); font: 400 12px/1.5 var(--ds-text-font); }
.calendar-ad-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; column-gap: 32px; margin-top: var(--ds-section); align-items: start; }
.calendar-ad-layout > div { min-width: 0; }
.calendar-ad-controls, .calendar-ad-feeds { grid-column: 1; }
.calendar-ad-results { grid-column: 1 / -1; }
.calendar-ad-layout--primary > .calendar-ad-rail { grid-column: 2; grid-row: 1; align-self: stretch; }
.calendar-ad-layout--secondary > .calendar-ad-rail { grid-column: 2; grid-row: 1; display: grid; gap: var(--ds-grid-gap); }
.moto-design .calendar-ad-controls .calendar-browser-title { padding-top: 0; }
.moto-design .calendar-page:has(.calendar-page__shell) .calendar-ad-feeds :is(.calendar-feed--upcoming, .calendar-feed--latest) { padding-top: 0; margin-top: 0; }
.calendar-page .calendar-ad-controls .calendar-day-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
.calendar-page .calendar-ad-controls .calendar-browser,
.calendar-page .calendar-ad-controls .calendar-filter-panel { min-width: 0; padding: 20px; }
@media (min-width: 1101px) and (max-width: 1300px) {
  .calendar-page .calendar-ad-controls .calendar-day-layout { grid-template-columns: minmax(0, 1fr); }
  .calendar-ad-layout .calendar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .calendar-ad-layout { grid-template-columns: minmax(0, 1fr); }
  .calendar-ad-layout > .calendar-ad-rail { grid-column: 1; grid-row: auto; margin-top: var(--ds-section); }
  .calendar-ad-preview--vertical, .calendar-ad-preview--compact { min-height: 200px; height: auto; }
}
@media (max-width: 720px) {
  .calendar-page .calendar-ad-controls .calendar-day-layout { grid-template-columns: minmax(0, 1fr); }
  .calendar-ad-preview { min-height: 200px; padding: 24px 20px; gap: 10px; }
  .calendar-ad-preview__title { font-size: 23px; }
  .calendar-ad-preview__caption { font-size: 14px; }
}

/* Editorial event carousel below the calendar hero (21.09.2026). */
.calendar-page .calendar-ad-controls .calendar-day-layout--without-filters { grid-template-columns: minmax(0, 1fr); }
.calendar-banners { position: relative; margin-top: var(--ds-section, 100px); min-width: 0; }
.calendar-banners__viewport { overflow: hidden; border-radius: 24px; touch-action: pan-y; }
.calendar-banners__track { display: flex; gap: 20px; align-items: stretch; transition: transform 450ms ease; }
.calendar-banners__slide { flex: 0 0 78%; min-width: 0; position: relative; }
.calendar-banners:not(.is-ready) .calendar-banners__slide { flex-basis: 100%; }
.calendar-banners:not(.is-ready) .calendar-banners__slide:not(:first-child) { display: none; }
.calendar-banners__link { position: relative; display: flex; align-items: flex-end; min-height: clamp(300px, 31vw, 460px); height: 100%; box-sizing: border-box; overflow: hidden; border-radius: 24px; background: var(--color-surface-dark); color: var(--color-text-inverse); text-decoration: none; isolation: isolate; }
.calendar-banners__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.calendar-banners__link::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 15%, rgba(var(--color-shadow-rgb), .85) 100%); z-index: -1; }
.calendar-banners__copy { display: flex; align-items: flex-end; gap: 24px; padding: 32px; width: 100%; box-sizing: border-box; }
.calendar-banners__details { flex: 1; min-width: 0; }
.calendar-banners__price { flex: 0 0 auto; padding: 14px 20px; border-radius: 999px; background: var(--color-accent); color: var(--color-text-inverse); font: 700 16px/1.3 var(--sans); white-space: nowrap; }
.calendar-banners__copy h2 { margin: 0; color: inherit; font: 800 clamp(26px, 3vw, 44px)/1.12 var(--display); letter-spacing: -.025em; overflow-wrap: anywhere; }
.calendar-banners__copy p { margin: 12px 0 0; color: var(--color-text-inverse); font: 500 14px/1.5 var(--sans); overflow-wrap: anywhere; }
.calendar-banners__controls[hidden] { display: none; }
.calendar-banners__arrow { position: absolute; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 56px; height: 56px; padding: 0; border: 1px solid var(--color-border-inverse); border-radius: 50%; background: var(--color-surface-dark); color: var(--color-text-inverse); cursor: pointer; z-index: 2; }
.calendar-banners__arrow--prev { left: -16px; }
.calendar-banners__arrow--next { right: -16px; }
.calendar-banners__arrow:hover { background: var(--color-accent); }
.calendar-banners :is(a, button):focus-visible { outline: 3px solid var(--color-accent); outline-offset: -4px; }
@media (max-width: 720px) {
  .calendar-banners__track { gap: 12px; }
  .calendar-banners__slide { flex-basis: 90%; }
  .calendar-banners__link { min-height: 340px; }
  .calendar-banners__copy { flex-wrap: wrap; gap: 16px; padding: 24px 20px; }
  .calendar-banners__details { flex-basis: 100%; }
  .calendar-banners__price { padding: 12px 16px; font-size: 14px; }
  .calendar-banners__copy h2 { font-size: 26px; }
  .calendar-banners__arrow { width: 44px; height: 44px; }
  .calendar-banners__arrow--prev { left: -10px; }
  .calendar-banners__arrow--next { right: -10px; }
}
@media (prefers-reduced-motion: reduce) { .calendar-banners__track { transition: none; } }

/* Event cards: price on photo, title and concise date/place below. */
.calendar-card__media { border-radius: 0; }
.calendar-card__price { position: absolute; z-index: 1; left: 12px; bottom: 12px; padding: 7px 12px; border-radius: 999px; color: var(--color-text-inverse); background: var(--color-accent); font: 700 14px/1.2 var(--sans); white-space: nowrap; }
.calendar-card__meta { display: block; margin: 8px 0 0; color: var(--color-text-muted); font: 500 13px/1.5 var(--sans); overflow-wrap: anywhere; }
.calendar-card__meta time, .calendar-card__place { color: inherit; font: inherit; }
.calendar-card__separator { white-space: pre; }
.calendar-card h2 a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Archive advertising placeholders after each three complete event rows.
   Match the archive's 3 / 2 / 1-column breakpoints; no JavaScript required. */
.calendar-page--archive .calendar-archive-ad { display: none; grid-column: 1 / -1; align-items: center; justify-content: center; min-width: 0; height: 120px; box-sizing: border-box; padding: 16px; border: 1px dashed var(--color-border-strong); border-radius: var(--ds-card-radius); background: var(--color-surface-soft); color: var(--color-text-muted); text-align: center; font: 500 14px/1.5 var(--sans); }
.calendar-page--archive .calendar-archive-ad--desktop { display: flex; }
@media (max-width: 1000px) {
  .calendar-page--archive .calendar-archive-ad { display: none; }
  .calendar-page--archive .calendar-archive-ad--tablet { display: flex; }
}
@media (max-width: 620px) {
  .calendar-page--archive .calendar-archive-ad { display: flex; height: 96px; }
}

/* Swipe through the selected month's events on phones. */
@media (max-width: 620px) {
  .calendar-period-results > .calendar-grid {
    display: flex;
    flex-wrap: nowrap;
    gap: 12px;
    min-width: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 2px;
    padding: 4px 2px 14px;
    -webkit-overflow-scrolling: touch;
  }
  .calendar-period-results > .calendar-grid > .calendar-card {
    flex: 0 0 88%;
    min-width: 0;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
}

/* Editorial reports and the reciprocal event link. */
.calendar-news-reports { margin-block: 36px; }
.calendar-news-reports > h2 { margin-bottom: 20px; }
.calendar-news-reports .calendar-card h3 { margin: 0; font-size: 20px; line-height: 1.3; }
.calendar-news-reports .calendar-card h3 a { color: inherit; text-decoration: none; }
.news-calendar-event { margin-block: 32px; padding: 24px; border: 1px solid #e2e2e2; border-radius: 18px; background: #fff; }
.news-calendar-event h2 { margin: 0 0 12px; font-size: 22px; }
.news-calendar-event a { color: #c92026; font-weight: 700; text-underline-offset: 4px; overflow-wrap: anywhere; }

/* Event reports share the desktop row; a missing section leaves no empty column. */
.calendar-event-reports { display: grid; gap: 32px; margin-block: 36px; align-items: start; }
.calendar-event-reports > section { min-width: 0; margin: 0; }
.calendar-event-reports > section > h2 { margin: 0 0 20px; }
.calendar-event-reports .calendar-grid { grid-template-columns: minmax(0,1fr); }
.calendar-event-reports .calendar-photo-report { margin-top: 0; }
.calendar-event-reports .calendar-photo-report + .calendar-photo-report { margin-top: 20px; }
.calendar-event-reports .calendar-photo-report__photos { grid-template-columns: repeat(2,minmax(0,1fr)); }
@media (min-width: 1024px) { .calendar-event-reports--paired { grid-template-columns: repeat(2,minmax(0,1fr)); } }
.news-calendar-event__card { display: flex; gap: 24px; align-items: start; }
.news-calendar-event__media { display: block; flex: 0 0 32%; overflow: hidden; border-radius: 12px; }
.news-calendar-event__media img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.news-calendar-event__body { flex: 1; min-width: 0; }
.news-calendar-event__body h3 { margin: 0 0 12px; font-size: 24px; line-height: 1.3; }
.news-calendar-event__body h3 a { color: inherit; text-decoration: none; }
.news-calendar-event__body p { margin: 8px 0; }
.news-calendar-event__date { font-weight: 700; }
.news-calendar-event__place { color: var(--color-text-secondary); }
.news-calendar-event .news-calendar-event__action { margin-top: 16px; background: var(--color-accent); color: #fff; text-decoration: none; }
.calendar-page--event .calendar-event__shell > .calendar-ad-preview { margin-bottom: 36px; }
@media (max-width:620px) {
 .news-calendar-event__card { flex-direction: column; }
 .news-calendar-event__media { width: 100%; }
 .news-calendar-event__body h3 { font-size: 21px; }
}
.moto-design .calendar-page--event .calendar-event-reports > .calendar-news-reports,
.moto-design .calendar-page--event .calendar-event-reports > .calendar-photo-reports { margin: 0; }
.moto-design .calendar-event-reports > section > h2 { font-size: clamp(24px, 2.3vw, 36px); line-height: 1.2; }
.news-calendar-event__media img { object-fit: contain; }
@media (min-width:1024px) {
 .calendar-event-reports--paired .calendar-photo-report__photos { grid-template-columns: repeat(4,minmax(0,1fr)); }
}

/* Shared title/content rows make report cards the same height on desktop. */
@media (min-width:1024px) {
 .calendar-event-reports--paired { align-items: stretch; grid-template-rows: auto 1fr; row-gap: 20px; }
 .calendar-event-reports--paired > section { display: grid; grid-template-rows: subgrid; grid-row: span 2; }
 .moto-design .calendar-event-reports--paired > section > h2 { margin: 0; }
 .calendar-event-reports--paired .calendar-photo-reports__list { display: grid; gap: 20px; grid-auto-rows: 1fr; }
 .calendar-event-reports--paired .calendar-photo-report { display: flex; flex-direction: column; margin: 0; box-sizing: border-box; }
 .calendar-event-reports--paired .calendar-photo-report__link { align-self: flex-start; margin-top: auto; }
 .calendar-event-reports--paired .calendar-photo-report__photos { margin-bottom: 16px; }
}
/* A standalone album is a short preview, rather than a full-width photo wall. */
.calendar-event-reports--photos-only .calendar-photo-report { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px 24px; padding: 20px; }
.calendar-event-reports--photos-only .calendar-photo-report__header { display: block; min-width: 0; margin: 0; }
.calendar-event-reports--photos-only .calendar-photo-report__header p { margin-top: 6px; }
.calendar-event-reports--photos-only .calendar-photo-report__photos { grid-column: 1 / -1; grid-row: 2; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.calendar-event-reports--photos-only .calendar-photo-report__photos a { width: 100%; aspect-ratio: 16 / 10; max-height: 180px; }
.calendar-event-reports--photos-only .calendar-photo-report__link { grid-column: 2; grid-row: 1; margin: 0; }
@media (max-width: 620px) {
 .calendar-event-reports--photos-only .calendar-photo-report { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 16px; }
 .calendar-event-reports--photos-only .calendar-photo-report__photos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
 .calendar-event-reports--photos-only .calendar-photo-report__link { grid-column: 1; grid-row: 3; }
}
.calendar-event__media:has(.calendar-event__cover-ad:not([hidden])) { background: transparent; overflow: visible; }
.calendar-event__media:has(.calendar-event__cover-ad:not([hidden])) .calendar-event__cover { border-radius: 18px; }
.calendar-event__cover-ad { margin-top: 20px; }
.calendar-event__cover-ad[hidden] { display: none; }
.calendar-event__cover-ad .calendar-ad-preview { box-sizing: border-box; height: 100%; padding: 20px; }
.calendar-event__cover-ad .calendar-ad-preview__title { font-size: 24px; }
@media (max-width:1000px) { .calendar-event__cover-ad { min-height: 240px; } }

/* Article index topics and advertising alongside editorial text. */
.articles-direction-links { display: flex; flex-wrap: wrap; gap: 10px; }
.articles-direction-links a { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; padding: 10px 18px; border: 1px solid var(--color-border-strong); border-radius: 999px; color: var(--color-text); background: var(--color-surface); font: 600 14px/1.4 var(--sans); text-decoration: none; }
.articles-direction-links a:hover { color: var(--color-text-inverse); background: var(--color-accent); border-color: var(--color-accent); }
.articles-direction-links a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
.moto-design .articles-index .articles-feed { padding-top: 16px; border-top: 0; }
.editorial-body-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; align-items: start; margin-top: var(--ds-block, 40px); }
.moto-design .editorial-body-layout > :is(.news-article__content, .article-detail__content) { min-width: 0; width: 100%; margin-top: 0; overflow-wrap: anywhere; }
:is(.article-detail__main, .news-article__main) { min-width: 0; overflow-wrap: anywhere; }
.moto-design :is(.article-detail__main > .article-detail__cover, .news-article__main > .news-article__cover) { margin-top: 0; }
.moto-design :is(.article-detail__main > .article-detail__content, .news-article__main > .news-article__content) { width: 100%; }
.moto-design :is(.article-detail__main > .article-detail__content, .news-article__main > .news-article__content):first-child { margin-top: 0; }
.editorial-ad-sidebar { display: grid; gap: 24px; min-width: 0; }
.editorial-ad-slot { display: flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 250px; padding: 20px; border: 1px dashed var(--color-border-strong); border-radius: var(--ds-card-radius, 18px); background: var(--color-surface-soft); color: var(--color-text-muted); text-align: center; font: 500 14px/1.5 var(--sans); }
.editorial-ad-slot--tall { min-height: 600px; }
@media (max-width: 1100px) {
  .editorial-body-layout { grid-template-columns: minmax(0, 1fr); }
  .editorial-ad-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .editorial-ad-slot--tall { min-height: 250px; }
}
@media (max-width: 720px) {
  .articles-direction-links { gap: 8px; }
  .articles-direction-links a { padding-inline: 14px; }
  .editorial-ad-sidebar { grid-template-columns: minmax(0, 1fr); }
  .editorial-ad-slot { min-height: 150px; }
}

/* Lead news and an adjacent advertising slot (XSL 732). */
.moto-design .news-page .news-featured-layout { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0,1fr) 300px; gap: var(--ds-grid-gap); align-items: stretch; min-width: 0; }
.moto-design .news-page .news-featured-layout > .news-card { width: auto; min-width: 0; min-height: 600px; margin: 0; padding: 24px; grid-column: auto; grid-row: auto; grid-template-columns: minmax(0,1fr); grid-template-rows: auto 1fr; border-radius: var(--ds-card-radius, 18px); }
.moto-design .news-page .news-featured-layout > .news-card::after { display: none; }
.moto-design .news-page .news-featured-layout .news-card__media { margin: 0; aspect-ratio: 21 / 9; border-radius: 12px; }
.moto-design .news-page .news-featured-layout .news-card__body { padding: 24px 0 0; }
.moto-design .news-page .news-featured-layout .news-card h2 { font: 800 clamp(28px,2.6vw,38px)/1.12 var(--ds-heading-font); letter-spacing: -.035em; }
.moto-design .news-page .news-featured-layout .news-card__summary { font-size: 16px; line-height: 1.55; }
.news-featured-ad { display: flex; flex-direction: column; width: 300px; min-height: 600px; box-sizing: border-box; background: var(--color-surface-soft); color: var(--color-text-muted); }
.news-featured-ad__label { padding: 16px 20px 0; font: 500 10px/1.4 var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.news-featured-ad__content { display: grid; flex: 1; place-items: center; min-width: 0; padding: 20px; text-align: center; font: 400 13px/1.5 var(--sans); }
.news-featured-ad__content img { display: block; max-width: 100%; height: auto; }
@media(max-width:1000px) {
 .moto-design .news-page .news-featured-layout { grid-template-columns: minmax(0,1fr); }
 .moto-design .news-page .news-featured-layout > .news-card { min-height: 0; }
 .news-featured-ad { width: 100%; min-height: 144px; }
}
@media(max-width:620px) {
 .moto-design .news-page .news-featured-layout > .news-card { padding: 20px; }
 .moto-design .news-page .news-featured-layout .news-card__media { aspect-ratio: 16 / 10; }
 .moto-design .news-page .news-featured-layout .news-card h2 { font-size: 28px; }
 .news-featured-ad { min-height: 120px; }
}

/* Event editorial text shares the news column and advertising layout. */
.calendar-event__main { min-width: 0; overflow-wrap: anywhere; padding: var(--ds-card-pad); border-radius: var(--ds-card-radius, 18px); background: var(--color-surface); }
.moto-design .calendar-page--event .calendar-event__main > .calendar-event__content { padding: 0; border-radius: 0; background: transparent; }
.moto-design .calendar-page--event .calendar-event__main > .calendar-event__content:first-child { margin-top: 0; }
.calendar-event__main :is(iframe, video, img) { max-width: 100%; }
.calendar-event__main :is(table, pre) { max-width: 100%; overflow-x: auto; }
.calendar-event__main table { display: block; }

/* News detail: a centered reading column, with advertising in the right margin. */
.news-article--reading { --news-reading-width: 680px; }
.moto-design .news-article--reading .news-article__shell > :is(.news-breadcrumbs, .news-article__nav, .news-article__header, .news-calendar-event) { box-sizing: border-box; width: min(var(--news-reading-width), 100%); max-width: var(--news-reading-width); margin-inline: auto; }
.news-article--reading .news-article__layout { grid-template-columns: minmax(0, 1fr) minmax(0, var(--news-reading-width)) minmax(0, 1fr); column-gap: 24px; }
.news-article--reading .news-article__main { grid-column: 2; }
.news-article--reading .news-article__layout > .editorial-ad-sidebar { grid-column: 3; width: 100%; max-width: 300px; }
.news-article--reading .news-article__cover { max-width: 100%; }
@media (max-width: 1399px) {
 .news-article--reading .news-article__layout { display: block; width: min(var(--news-reading-width), 100%); margin-inline: auto; }
 .news-article--reading .news-article__layout > .editorial-ad-sidebar { max-width: none; margin-top: var(--ds-block, 40px); grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .news-article--reading .editorial-ad-slot--tall { min-height: 250px; }
}
@media (max-width: 720px) {
 .news-article--reading .news-article__layout > .editorial-ad-sidebar { grid-template-columns: minmax(0, 1fr); }
 .news-article--reading .editorial-ad-slot--tall { min-height: 150px; }
}

/* Article detail: a centered reading column, with advertising in the right margin. */
.article-detail--reading { --article-reading-width: 680px; }
.moto-design .article-detail--reading .article-detail__shell > :is(.news-breadcrumbs, .article-detail__nav, .article-detail__header) { box-sizing: border-box; width: min(var(--article-reading-width), 100%); max-width: var(--article-reading-width); margin-inline: auto; }
.article-detail--reading .article-detail__layout { grid-template-columns: minmax(0, 1fr) minmax(0, var(--article-reading-width)) minmax(0, 1fr); column-gap: 24px; }
.article-detail--reading .article-detail__main { grid-column: 2; }
.article-detail--reading .article-detail__layout > .editorial-ad-sidebar { grid-column: 3; width: 100%; max-width: 300px; }
.article-detail--reading .article-detail__cover { max-width: 100%; }
@media (max-width: 1399px) {
 .article-detail--reading .article-detail__layout { display: block; width: min(var(--article-reading-width), 100%); margin-inline: auto; }
 .article-detail--reading .article-detail__layout > .editorial-ad-sidebar { max-width: none; margin-top: var(--ds-block, 40px); grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .article-detail--reading .editorial-ad-slot--tall { min-height: 250px; }
}
@media (max-width: 720px) {
 .article-detail--reading .article-detail__layout > .editorial-ad-sidebar { grid-template-columns: minmax(0, 1fr); }
 .article-detail--reading .editorial-ad-slot--tall { min-height: 150px; }
}

/* Club detail: the same centered reading column as news and articles. */
.club-detail--reading { --club-reading-width: 680px; }
.moto-design .club-detail--reading .clubs-shell > :is(.news-breadcrumbs, .article-detail__nav, .club-ownership, .club-change-application) { box-sizing: border-box; width: min(var(--club-reading-width), 100%); max-width: var(--club-reading-width); margin-inline: auto; }
.moto-design .club-detail--reading .club-detail__layout { grid-template-columns: minmax(0, 1fr) minmax(0, var(--club-reading-width)) minmax(0, 1fr); column-gap: 24px; }
.club-detail--reading .club-detail__main { grid-column: 2; min-width: 0; overflow-wrap: anywhere; }
.club-detail--reading .club-detail__sidebar { grid-column: 3; width: 100%; max-width: 300px; }
.club-detail--reading .club-detail__main :is(img, iframe, video) { max-width: 100%; }
.club-detail--reading .club-detail__main :is(table, pre) { max-width: 100%; overflow-x: auto; }
.club-detail--reading .club-detail__main table { display: block; }
.club-detail--reading .club-ownership { flex-direction: column; align-items: flex-start; }
.club-detail--reading .club-change-application { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 1399px) {
 .moto-design .club-detail--reading .club-detail__layout { display: block; width: min(var(--club-reading-width), 100%); margin-inline: auto; }
 .club-detail--reading .club-detail__sidebar { max-width: none; margin-top: var(--ds-block, 40px); }
 .club-detail--reading .club-contacts { max-width: none; }
}

/* Return to the section after the detail content. */
.moto-design main nav.detail-return-nav { margin-top: var(--ds-block, 40px); margin-bottom: 0; padding-block: 0; }

/* Legal links belong below the main footer row, not in its third column. */
.site-footer .footer-legal{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:12px 24px;border-top:1px solid var(--color-border-inverse);padding-top:22px;font-size:13px;line-height:1.5}
.site-footer .footer-legal a{min-height:0;border:0;color:#fff}
.moto-design a:is([href="/privacy-policy/"],[href="/personal-data-consent/"],[href="/newsletter-consent/"]){color:#b32222;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.moto-design a:is([href="/privacy-policy/"],[href="/personal-data-consent/"],[href="/newsletter-consent/"]):hover{text-decoration-thickness:2px}
.moto-design a:is([href="/privacy-policy/"],[href="/personal-data-consent/"],[href="/newsletter-consent/"]):focus-visible{outline:2px solid currentColor;outline-offset:4px}
.moto-design .site-footer .footer-legal a{color:#fff}
@media(max-width:700px){.site-footer .footer-legal{flex-direction:column;gap:14px}.site-footer .footer-legal a{display:block;padding:4px 0}}

.calendar-page__shell>.calendar-ad-controls{margin-top:var(--ds-section)}
.calendar-ad-layout--primary>.calendar-banners{grid-column:1;margin-top:0}

/* One marker per event; excess events keep an explicit count. */
.calendar-day__markers { position: absolute; right: 4px; bottom: 4px; left: 4px; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 3px; pointer-events: none; }
.calendar-day__dots { display: flex; gap: 2px; }
.calendar-day__dots i { display: block; width: 4px; height: 4px; border-radius: 50%; background: var(--color-accent); }
.calendar-day__more { color: var(--color-text); font: 700 10px/12px Inter, sans-serif; }
button.calendar-day:hover .calendar-day__dots i, .calendar-day.is-selected .calendar-day__dots i { background: var(--color-text-inverse); }
button.calendar-day:hover .calendar-day__more, .calendar-day.is-selected .calendar-day__more { color: var(--color-text-inverse); }

.calendar-day > b { position: absolute; top: 8px; left: 8px; }

/* Form 14 in an empty calendar day uses the light page surface. */
[data-calendar-day-empty] { border-style: solid; }
[data-calendar-day-empty] [data-calendar-application] { margin-top: 28px; text-align: left; }
[data-calendar-day-empty] .calendar-hostcms-form { gap: 20px; }
[data-calendar-day-empty] .calendar-hostcms-form button { padding: 12px 20px; border: 1px solid var(--color-border); border-radius: 10px; font: 700 14px/1.4 Manrope, sans-serif; cursor: pointer; }
[data-calendar-day-empty] .calendar-hostcms-form button[type="submit"] { color: #fff; background: var(--color-accent); border-color: var(--color-accent); }
[data-calendar-day-empty] .calendar-hostcms-form__reset { color: var(--color-text); background: var(--color-surface); }
[data-calendar-day-empty] .calendar-hostcms-form__reset:hover { color: var(--color-text); background: var(--color-surface-soft); border-color: var(--color-border); }
#calendar-day-title { scroll-margin-top: 130px; }

/* About the magazine: archive illustrations from the 35th anniversary issue. */
.about-header:has(.about-intro__archive) { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:auto 1fr; gap:0 clamp(24px,4vw,64px); align-items:start; margin-bottom:40px; }
.about-header:has(.about-intro__archive) h1 { grid-column:1; align-self:start; }
.about-header:has(.about-intro__archive) .about-intro { display:contents; }
.about-header:has(.about-intro__archive) .about-intro::after { display:none; }
.about-intro__archive { grid-column:2; grid-row:1 / span 2; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.about-intro__archive img { width:100%; height:auto; border-radius:3px; }
.about-cover-gallery { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-items:start; gap:16px; margin:28px 0; }
.about-cover-gallery img { display:block; width:100%; max-width:229px; height:auto; border-radius:3px; }
.about-archive-portrait { display:grid; grid-template-columns:minmax(0,240px) minmax(0,1fr); align-items:center; gap:28px; margin:32px 0; }
.about-archive-portrait img { display:block; width:100%; height:auto; }
.about-archive-portrait figcaption { color:var(--color-text-secondary); font-size:16px; line-height:1.6; }
@media(max-width:900px) {
 .about-header:has(.about-intro__archive) { display:block; }
 .about-intro__archive { margin-top:24px; max-width:620px; }
}
@media(max-width:620px) {
 .about-cover-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .about-archive-portrait { grid-template-columns:minmax(0,1fr); gap:16px; }
 .about-archive-portrait img { max-width:240px; }
}

/* Clickable archive covers use the existing photo viewer. */
.about-cover-link { display:block; min-width:0; cursor:zoom-in; }
.about-cover-link:focus-visible { outline:3px solid var(--color-accent); outline-offset:4px; }
.gallery-lightbox--covers figure img { width:auto; height:min(72vh,600px); max-width:100%; object-fit:contain; }

/* Explicit event-page navigation inside editorial text. */
.moto-design :is(.article-detail__content, .news-article__content) a.editorial-event-link {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 8px 16px;
  box-sizing: border-box;
  padding: 24px;
  border: 1px solid var(--color-border);
  border-radius: var(--ds-card-radius, 18px);
  background: var(--color-surface);
  color: var(--color-text);
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: border-color 180ms ease, background-color 180ms ease;
}
.editorial-event-link__icon { color: var(--color-accent); margin-top: 2px; }
.editorial-event-link__title { font-weight: 800; line-height: 1.45; }
.editorial-event-link__action {
  grid-column: 2;
  color: var(--color-accent);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}
.moto-design :is(.article-detail__content, .news-article__content) a.editorial-event-link:hover {
  border-color: var(--color-accent);
  background: var(--color-accent-soft);
}
.editorial-event-link:hover .editorial-event-link__action { text-decoration: underline; text-underline-offset: 4px; }
.editorial-event-link:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 4px; }
@media (max-width: 620px) {
  .moto-design :is(.article-detail__content, .news-article__content) a.editorial-event-link { padding: 16px; gap: 8px 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .moto-design :is(.article-detail__content, .news-article__content) a.editorial-event-link { transition: none; }
}
