/* ==========================================================
   Phones & small tablets (<= 1199px). Built from the mobile design (390px wide).
   Source uses "Nu" = N design pixels; build with tools/build-mobile-css.py
   --u = one design pixel; the column is capped at 720px on tablets.
   ========================================================== */
:root { --w: min(100vw, 720px); --u: calc(var(--w) / 390); }
html { zoom: 1 !important; overflow-x: clip; max-width: 100%; }
body { min-width: 0; max-width: 720px; margin: 0 auto; font-size: calc(var(--u) * 14); line-height: 1.2; overflow-x: clip; }
.container { width: auto; margin-left: 0; margin-right: 0; }
br { display: none; }
.h-section br, .sport__title br, .hero__quote br, .stats__photo-text br { display: inline; }
.h-section br { display: block; }
.h-section { font-size: calc(var(--u) * 44) !important; line-height: 1.02 !important; margin: 0 !important; letter-spacing: -0.06em; }
section[id] { scroll-margin-top: calc(var(--u) * 70); }
.js [data-reveal="left"], .js [data-reveal="right"] { --rx: 0px; --ry: 30px; }
.divider { display: none; }

/* ---------- Header: only a red burger button ---------- */
.header { top: calc(var(--u) * 28); }
.header__bar { position: relative; display: block; width: auto; height: 0; margin: 0; padding: 0; background: none; border-radius: 0; }
.logo, .strava { display: none; }
.burger { position: absolute; top: 0; right: calc(var(--u) * 12); z-index: 2; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: calc(var(--u) * 5); width: calc(var(--u) * 48); height: calc(var(--u) * 48); padding: 0; border: 0 !important; outline: 0 !important; box-shadow: none; border-radius: 0; background: none !important; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.burger span { display: block; width: calc(var(--u) * 34); height: calc(var(--u) * 5); border-radius: calc(var(--u) * 2); background: #DC2121; transition: transform .3s var(--ease-out), opacity .2s; }
.header.is-open .burger span:first-child { transform: translateY(calc(var(--u) * 10)) rotate(45deg); }
.header.is-open .burger span:nth-child(2) { opacity: 0; }
.header.is-open .burger span:last-child { transform: translateY(calc(var(--u) * -10)) rotate(-45deg); }
.nav { position: absolute; left: calc(var(--u) * 16); right: calc(var(--u) * 16); top: calc(var(--u) * 52); margin: 0; padding: calc(var(--u) * 8) calc(var(--u) * 22); flex-direction: column; gap: 0; background: var(--accent); border-radius: calc(var(--u) * 24); box-shadow: 0 20px 40px -18px rgba(120,10,10,.6); opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .25s, transform .25s, visibility .25s; z-index: 1; }
.header.is-open .nav { opacity: 1; visibility: visible; transform: none; }
.nav__link { font-size: calc(var(--u) * 20); padding: calc(var(--u) * 14) 0; border-bottom: 1px solid rgba(255,255,255,.22); }
.nav__link:last-child { border-bottom: 0; }
.nav__link::after { display: none; }
.header.is-fixed { top: calc(var(--u) * 12); }

/* ---------- Hero ---------- */
.hero { position: relative; display: block; width: auto; height: calc(var(--u) * 655); margin: 0; padding: 0; overflow: hidden; }
.hero__bg-rings, .hero__links { display: none; }
/* the Olympic rings from the desktop hero, scaled down and tucked behind the photo */
.hero__rings { left: calc(var(--u) * -223); top: calc(var(--u) * 284); width: calc(var(--u) * 499); height: calc(var(--u) * 338); }
.js .hero__title { animation: none; }
.hero__title { position: absolute; left: calc(var(--u) * 16); top: calc(var(--u) * 80); margin: 0; font-size: calc(var(--u) * 118); line-height: calc(var(--u) * 91); letter-spacing: -0.02em; white-space: normal; }
.hero__photo { position: absolute; left: calc(var(--u) * 173); top: calc(var(--u) * 153); width: calc(var(--u) * 336); height: calc(var(--u) * 514); z-index: 1; }
.hero__photo.has-img { left: calc(var(--u) * 173); top: calc(var(--u) * 153); width: calc(var(--u) * 336); height: calc(var(--u) * 514); overflow: visible; border-radius: 0; }
.hero__photo.has-img img { object-fit: fill; object-position: center; }
.hero__brand { position: absolute; left: calc(var(--u) * 16); top: calc(var(--u) * 280); width: calc(var(--u) * 140); margin: 0; font-size: calc(var(--u) * 13); line-height: calc(var(--u) * 15); }
.hero__quote { position: absolute; left: calc(var(--u) * 16); right: auto; top: calc(var(--u) * 328); width: calc(var(--u) * 128); margin: 0; text-align: left; }
.hero__quote p { font-size: calc(var(--u) * 11); line-height: calc(var(--u) * 13); letter-spacing: 0; }
.hero__quote cite { margin-top: calc(var(--u) * 8); font-size: calc(var(--u) * 9); line-height: calc(var(--u) * 11); }
.hero__pill { position: absolute; left: calc(var(--u) * 16); right: auto; max-width: calc(var(--u) * 300); }
.hero__pill--1 { top: calc(var(--u) * 484); } .hero__pill--2 { top: calc(var(--u) * 523); } .hero__pill--3 { top: calc(var(--u) * 559); max-width: calc(var(--u) * 290); }
.tag-pill { height: auto; padding: calc(var(--u) * 7) calc(var(--u) * 14) calc(var(--u) * 8); border-radius: calc(var(--u) * 16); font-size: calc(var(--u) * 12); line-height: 1.2; white-space: normal; }

/* ---------- Stats (dark, full width) ---------- */
.stats-wrap { background: none; margin-top: 0; }
.stats { width: auto; margin: 0; padding: calc(var(--u) * 21) calc(var(--u) * 16) calc(var(--u) * 21); border-radius: 0; }
.stats__grid { display: flex; flex-direction: column; gap: calc(var(--u) * 20); }
.stat--light { order: 1; } .stat--red { order: 2; } .stats__photo { order: 3; }
.stat--outline { order: 4; } .stat--list { order: 5; }
.stats__photo { grid-row: auto; height: calc(var(--u) * 442); border-radius: calc(var(--u) * 26); }
.stats__photo-text { left: calc(var(--u) * 20); right: calc(var(--u) * 20); bottom: calc(var(--u) * 22); font-size: calc(var(--u) * 13); line-height: calc(var(--u) * 16); }
.stat { height: calc(var(--u) * 156); min-height: 0; padding: calc(var(--u) * 22) calc(var(--u) * 20) calc(var(--u) * 20); border-radius: calc(var(--u) * 26); }
.stat--list { height: auto; padding: 0 0 calc(var(--u) * 18); }
.stat--outline { padding: calc(var(--u) * 18) calc(var(--u) * 20) calc(var(--u) * 20); }
.stat__num { font-size: calc(var(--u) * 62); }
.stat__num small { font-size: calc(var(--u) * 14); margin-right: calc(var(--u) * 6); }
.stat__num--lg { font-size: calc(var(--u) * 62); }
.stat--red .stat__num small { padding-bottom: calc(var(--u) * 8); }
.stat__text { margin-top: calc(var(--u) * 10); font-size: calc(var(--u) * 13); line-height: calc(var(--u) * 16); }
.stat--list .stat__text { padding: 0 calc(var(--u) * 20); margin-top: calc(var(--u) * 14); font-size: calc(var(--u) * 12); line-height: calc(var(--u) * 15); }
.stat__row { height: calc(var(--u) * 38); padding: 0 calc(var(--u) * 20); font-size: calc(var(--u) * 14); }

/* ---------- About: photo first ---------- */
.about { margin: 0; padding: calc(var(--u) * 15) calc(var(--u) * 16) calc(var(--u) * 10); flex-direction: column-reverse; }
.about__photo { width: 100%; height: calc(var(--u) * 410); margin: 0; border-radius: calc(var(--u) * 26); }
.about__label { left: calc(var(--u) * 16); right: calc(var(--u) * 16); bottom: calc(var(--u) * 16); padding: calc(var(--u) * 9) calc(var(--u) * 14); border-radius: calc(var(--u) * 14); font-size: calc(var(--u) * 13); line-height: calc(var(--u) * 16); }
.about__content { padding: calc(var(--u) * 26) 0 0; }
.about__title { font-size: calc(var(--u) * 34); line-height: calc(var(--u) * 40); font-weight: 500; }
.about__title .nm { display: block; font-weight: 700; }
.about__text { margin-top: calc(var(--u) * 20); font-size: calc(var(--u) * 14); line-height: calc(var(--u) * 18); }
.about__text p + p { margin-top: calc(var(--u) * 14); }
.about__btns { flex-direction: column; align-items: flex-start; gap: calc(var(--u) * 14); margin-top: calc(var(--u) * 26); }
.btn { height: calc(var(--u) * 46); padding: 0 calc(var(--u) * 24); font-size: calc(var(--u) * 19); border-radius: calc(var(--u) * 16); }

/* ---------- Geography (dark, full width) ---------- */
.geo { margin: 0; padding: calc(var(--u) * 32) calc(var(--u) * 16) calc(var(--u) * 24); border-radius: 0; }
.geo__head { flex-direction: column; height: auto; padding-left: 0; }
.geo__title { width: auto; }
.geo__list { padding-top: calc(var(--u) * 18); font-size: calc(var(--u) * 13); line-height: calc(var(--u) * 16); }
.geo__list li + li { margin-top: calc(var(--u) * 9); }
.geo__cards { grid-template-columns: 1fr; gap: calc(var(--u) * 16); margin-top: calc(var(--u) * 24); }
.geo-card { height: calc(var(--u) * 160); padding: calc(var(--u) * 18) calc(var(--u) * 20) calc(var(--u) * 18); border-radius: calc(var(--u) * 24); }
.geo-card__num { font-size: calc(var(--u) * 56); }
.geo-card__title { font-size: calc(var(--u) * 15); line-height: calc(var(--u) * 18); }
.geo-card__text { margin-top: calc(var(--u) * 6); font-size: calc(var(--u) * 11); line-height: calc(var(--u) * 14); }

/* ---------- Events ---------- */
.events { margin: calc(var(--u) * 40) 0 0; padding: 0 calc(var(--u) * 16); }
.events__head { flex-direction: column; gap: calc(var(--u) * 18); }
.events__head--oly { flex-direction: row; align-items: flex-start; justify-content: space-between; }
.events__head--oly .h-section { line-height: 1.02 !important; }
.events__rings { width: calc(var(--u) * 74); height: auto; margin: calc(var(--u) * 6) 0 0; }
.ev-grid, .events__head--prest + .ev-grid, .events__title-champ + .ev-grid { grid-template-columns: 1fr; margin-top: calc(var(--u) * 22); row-gap: calc(var(--u) * 13); }
.ev-card { height: auto; min-height: calc(var(--u) * 68); padding: calc(var(--u) * 14) calc(var(--u) * 18) calc(var(--u) * 14); border-radius: calc(var(--u) * 20); }
.ev-card h3 { font-size: calc(var(--u) * 15); line-height: calc(var(--u) * 18); }
.ev-card p { font-size: calc(var(--u) * 12); line-height: calc(var(--u) * 15); margin-top: calc(var(--u) * 4); }
.ev-card--inline { display: block; padding-bottom: calc(var(--u) * 14); }
.ev-card--inline p { margin: calc(var(--u) * 4) 0 0; }
.events__head--prest { margin-top: calc(var(--u) * 34); flex-direction: column-reverse; gap: calc(var(--u) * 16); }
.events__title-right { text-align: right; }
.h-section.events__title-right { font-size: calc(var(--u) * 34) !important; }
.chips, .chips.has-track { width: auto; padding: 0; margin: 0 calc(var(--u) * -16); display: block; overflow: hidden; -webkit-mask-image: none; mask-image: none; }
.chips__track { gap: calc(var(--u) * 8); padding-left: calc(var(--u) * 16); }
.chip { flex: 0 0 auto; height: calc(var(--u) * 32); padding: 0 calc(var(--u) * 16); font-size: calc(var(--u) * 13); border-radius: calc(var(--u) * 16); }
.events__title-champ { margin-top: calc(var(--u) * 34); }

/* ---------- Sports ---------- */
.sports { margin: calc(var(--u) * 44) 0 0; }
.sports__head { height: auto; padding: calc(var(--u) * 30) calc(var(--u) * 16) calc(var(--u) * 44); border-radius: 0; }
.sports__count { position: static; margin-top: calc(var(--u) * 12); font-size: calc(var(--u) * 12); line-height: calc(var(--u) * 15); }
.sport, .sport--right { flex-direction: column; align-items: stretch; padding: 0 calc(var(--u) * 16); margin-top: calc(var(--u) * 39) !important; }
.sports__head + .sport { margin-top: calc(var(--u) * -20) !important; }
.sport--lg .sport__photo, .sport--sm .sport__photo { width: 100%; height: calc(var(--u) * 286); border-radius: calc(var(--u) * 26); }
.sport__body, .sport--left .sport__body, .sport--right .sport__body, .sport--sm.sport--left .sport__body, .sport--sm.sport--right .sport__body { margin: 0; padding: calc(var(--u) * 26) 0 0; text-align: left; }
.sport__title, .sport--sm .sport__title { font-size: calc(var(--u) * 27); line-height: calc(var(--u) * 30); letter-spacing: -0.05em; }
.sport__text { margin-top: calc(var(--u) * 12); font-size: calc(var(--u) * 13); line-height: calc(var(--u) * 17); max-width: none !important; }
.sport__text br { display: none; }

/* ---------- Partners ---------- */
.partners { margin-top: calc(var(--u) * 40); height: calc(var(--u) * 64); }
.partners__track { gap: calc(var(--u) * 34); }
.partner { width: calc(var(--u) * 100); height: calc(var(--u) * 40); }

/* ---------- Photo / video (dark, full width) ---------- */
.media, .media--video { margin: 0; padding: calc(var(--u) * 40) calc(var(--u) * 16) calc(var(--u) * 30); border-radius: 0; }
.media--video { margin-top: calc(var(--u) * 10); }
.media__head { flex-direction: row; justify-content: space-between; align-items: flex-start; padding: 0; gap: calc(var(--u) * 12); }
.media__total, .media--video .media__total { margin-top: calc(var(--u) * 12); text-align: right; font-size: calc(var(--u) * 14); line-height: calc(var(--u) * 17); }
.media__total span { display: block; font-size: calc(var(--u) * 13); line-height: calc(var(--u) * 16); margin: 0; }
.media__sub { margin-top: calc(var(--u) * 8); font-size: calc(var(--u) * 13); line-height: calc(var(--u) * 16); }
.media__grid { margin-top: calc(var(--u) * 30); grid-template-columns: 1fr 1fr; gap: calc(var(--u) * 14) calc(var(--u) * 10); }
.media__grid > .ph { height: calc(var(--u) * 132); border-radius: calc(var(--u) * 18); }
.media--video .media__grid { grid-template-columns: 1fr; margin-top: calc(var(--u) * 26); gap: calc(var(--u) * 12); }
.media--video .media__grid > .ph { height: calc(var(--u) * 213); border-radius: calc(var(--u) * 22); }
.vplayer__close { top: calc(var(--u) * 8); right: calc(var(--u) * 8); }
.vgroup { margin-top: calc(var(--u) * 34); }
.vgroup__title { padding: 0; font-size: calc(var(--u) * 13); line-height: calc(var(--u) * 16); }
.vgroup .media__grid, .media--video .vgroup .media__grid { margin-top: calc(var(--u) * 14); }
.vgroup--first { margin-top: 0; }
.vgroup--first .media__grid, .media--video .vgroup--first .media__grid { margin-top: calc(var(--u) * 26); }
.play { width: calc(var(--u) * 56); height: calc(var(--u) * 56); }
.play::after { left: calc(var(--u) * 21); top: calc(var(--u) * 17); border-left-width: calc(var(--u) * 17); border-top-width: calc(var(--u) * 11); border-bottom-width: calc(var(--u) * 11); }
.more-btn { height: calc(var(--u) * 34); margin-top: calc(var(--u) * 22); padding: 0 calc(var(--u) * 18); font-size: calc(var(--u) * 14); border-width: 1px; }

/* ---------- Thanks ---------- */
.thanks { margin: calc(var(--u) * 10) 0 0; padding: calc(var(--u) * 34) calc(var(--u) * 16) calc(var(--u) * 30); }
.thanks__title { font-size: calc(var(--u) * 22); line-height: calc(var(--u) * 26); }
.thanks__grid { margin-top: calc(var(--u) * 26); display: grid; grid-template-columns: 1fr 1fr; gap: calc(var(--u) * 12); }
.doc { width: auto; height: auto; aspect-ratio: 0.703; border-radius: calc(var(--u) * 14); }

/* ---------- Press (dark, chips on the dark background) ---------- */
.press { margin: calc(var(--u) * 10) 0 0; padding: calc(var(--u) * 34) calc(var(--u) * 16) calc(var(--u) * 34); display: block; background: var(--dark); border-radius: 0; }
.press-card { display: block; height: auto; min-height: 0; padding: 0; background: none; border-radius: 0; }
.press-card + .press-card { margin-top: calc(var(--u) * 32); }
.press-card__title { padding: 0; margin-bottom: calc(var(--u) * 18); font-size: calc(var(--u) * 38); line-height: calc(var(--u) * 40); }
.press-card__tags { gap: calc(var(--u) * 8); }
.press-tag { height: calc(var(--u) * 34); padding: 0 calc(var(--u) * 14); font-size: calc(var(--u) * 14); border-radius: calc(var(--u) * 17); }

/* ---------- Contact ---------- */
.contact { margin: 0; padding: calc(var(--u) * 38) calc(var(--u) * 16) calc(var(--u) * 24); flex-direction: column; }
.contact__info { padding: 0 0 calc(var(--u) * 22); }
.contact__text { margin-top: calc(var(--u) * 16); font-size: calc(var(--u) * 12); line-height: calc(var(--u) * 15); }
.contact__text br { display: none; }
.contact__links { margin-top: calc(var(--u) * 14); font-size: calc(var(--u) * 22); gap: calc(var(--u) * 6); }
.form { width: 100%; padding: calc(var(--u) * 16) calc(var(--u) * 14) calc(var(--u) * 16); border-radius: calc(var(--u) * 26); }
.form__field { height: calc(var(--u) * 40); padding: 0 calc(var(--u) * 16); font-size: calc(var(--u) * 15); border-radius: calc(var(--u) * 14); }
.form__field--area { height: calc(var(--u) * 120); padding-top: calc(var(--u) * 12); }
.form__wrap + .form__wrap, .form__messengers, .form__messengers + .form__wrap { margin-top: calc(var(--u) * 10); }
.form__ph { height: calc(var(--u) * 40); padding: 0 calc(var(--u) * 16); font-size: calc(var(--u) * 15); }
.form__ph--area { height: auto; top: calc(var(--u) * 12); }
.form__messengers { gap: calc(var(--u) * 10); }
.messenger { height: calc(var(--u) * 40); font-size: calc(var(--u) * 15); border-radius: calc(var(--u) * 14); gap: calc(var(--u) * 8); }
.messenger svg { width: calc(var(--u) * 22); height: calc(var(--u) * 22); }
.form__submit { margin-top: calc(var(--u) * 18); height: calc(var(--u) * 46); font-size: calc(var(--u) * 16); border-width: 2px; border-radius: calc(var(--u) * 16); }

/* ---------- Footer ---------- */
.footer { margin-top: calc(var(--u) * 10); padding: 0 calc(var(--u) * 10) calc(var(--u) * 10); }
.footer__inner { display: flex; flex-direction: column; align-items: flex-start; gap: calc(var(--u) * 22); height: auto; padding: calc(var(--u) * 30) calc(var(--u) * 22) calc(var(--u) * 30); border-radius: calc(var(--u) * 32); }
.footer__logo, .footer .strava, .footer__nav, .footer__bottom { position: static; }
.footer__logo { font-size: calc(var(--u) * 68); white-space: nowrap; }
.footer .strava { order: 3; display: inline-flex; width: auto; height: calc(var(--u) * 34); padding: 0 calc(var(--u) * 14); gap: calc(var(--u) * 8); font-size: calc(var(--u) * 15); border-radius: calc(var(--u) * 10); }
.footer .strava svg { width: calc(var(--u) * 12); height: calc(var(--u) * 16); }
.footer__nav { flex-wrap: wrap; gap: calc(var(--u) * 12) calc(var(--u) * 20); font-size: calc(var(--u) * 15); }
.footer__since { margin: 0; flex-basis: 100%; }
.footer__bottom { flex-direction: column; align-items: flex-start; gap: calc(var(--u) * 10); font-size: calc(var(--u) * 12); }
.footer__social { margin: calc(var(--u) * 8) 0 0; gap: calc(var(--u) * 18); font-size: calc(var(--u) * 15); flex-wrap: wrap; }
.lightbox { gap: calc(var(--u) * 6); }
.lightbox img { max-width: calc(100% - var(--u) * 100); }
.lightbox__nav { width: calc(var(--u) * 30); height: calc(var(--u) * 60); }
.lightbox__nav::after { width: calc(var(--u) * 12); height: calc(var(--u) * 12); }
