/* ============================================================
   РОО «ФВВС СО» — Modern aquatic design system
   ============================================================ */

:root {
  /* Palette — ocean depths to sea foam */
  --c-abyss:        #061a2b;
  --c-deep:         #0a2540;
  --c-ocean:        #0b3d6b;
  --c-ocean-2:      #0e5aa7;
  --c-blue:         #0e7bd1;
  --c-aqua:         #14b8d4;
  --c-cyan:         #5fd0e8;
  --c-foam:         #d8f1f7;
  --c-white:        #ffffff;
  --c-off:          #f3f8fb;
  --c-paper:        #fbfdfe;
  --c-line:         #d9e6ee;
  --c-line-2:       #c1d6e3;
  --c-ink:          #0b2030;
  --c-ink-2:        #2a4458;
  --c-muted:        #5b7385;
  --c-gold:         #ffb703;
  --c-coral:        #fb6f92;
  --c-leaf:         #18b66a;
  --c-red:          #e63946;

  /* Surfaces & glass */
  --bg:             radial-gradient(1200px 600px at 80% -10%, #103b6b 0%, transparent 60%),
                    radial-gradient(900px 500px at -10% 10%, #0a2a4a 0%, transparent 60%),
                    linear-gradient(180deg, #061a2b 0%, #0a2540 100%);
  --glass:          rgba(255,255,255,0.08);
  --glass-strong:   rgba(255,255,255,0.14);
  --glass-line:     rgba(255,255,255,0.18);

  /* Typography */
  --ff-sans: 'Inter', 'SF Pro Text', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --ff-display: 'Inter', 'SF Pro Display', system-ui, -apple-system, sans-serif;

  /* Radii */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --r-xl: 32px;
  --r-pill: 999px;

  /* Shadows */
  --sh-1: 0 1px 2px rgba(10,37,64,.06), 0 2px 8px rgba(10,37,64,.06);
  --sh-2: 0 8px 24px rgba(10,37,64,.10), 0 2px 6px rgba(10,37,64,.06);
  --sh-3: 0 22px 60px rgba(8,38,80,.22), 0 6px 18px rgba(8,38,80,.10);
  --sh-glow: 0 0 0 1px rgba(20,184,212,.35), 0 12px 40px rgba(20,184,212,.20);

  /* Layout */
  --container: 1240px;
  --gap: 24px;

  /* Motion */
  --ease: cubic-bezier(.2,.7,.2,1);
  --ease-spring: cubic-bezier(.34,1.56,.64,1);
}

/* ---------------------- Reset / Base ---------------------- */
*, *::before, *::after { box-sizing: border-box }
html, body { margin: 0; padding: 0 }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100% }
body {
  font-family: var(--ff-sans);
  font-size: 16px;
  line-height: 1.55;
  color: var(--c-ink);
  background: var(--c-paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img, svg, video { display: block; max-width: 100% }
a { color: var(--c-ocean-2); text-decoration: none; transition: color .2s var(--ease) }
a:hover { color: var(--c-aqua) }
button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit }
ul, ol { margin: 0; padding: 0; list-style: none }
h1, h2, h3, h4, h5 { font-family: var(--ff-display); margin: 0; line-height: 1.15; letter-spacing: -.01em; color: var(--c-deep) }
h1 { font-size: clamp(2rem, 4vw + .5rem, 3.6rem); font-weight: 800; letter-spacing: -.02em }
h2 { font-size: clamp(1.6rem, 2.4vw + .4rem, 2.4rem); font-weight: 800; letter-spacing: -.015em }
h3 { font-size: clamp(1.2rem, 1.2vw + .4rem, 1.5rem); font-weight: 700 }
h4 { font-size: 1.1rem; font-weight: 700 }
p { margin: 0 0 1em }

::selection { background: var(--c-aqua); color: #052236 }

/* ---------------------- Layout helpers ---------------------- */
.container { width: min(100% - 32px, var(--container)); margin-inline: auto }
.section { padding: clamp(48px, 7vw, 96px) 0 }
.section--tight { padding: clamp(32px, 4vw, 56px) 0 }
.grid { display: grid; gap: var(--gap) }
.flex { display: flex }
.row { display: flex; flex-wrap: wrap; gap: var(--gap) }
.center { display: flex; align-items: center; justify-content: center }

.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: .82rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-ocean-2);
}
.eyebrow::before {
  content: ''; width: 28px; height: 2px; background: linear-gradient(90deg, var(--c-aqua), var(--c-blue));
  border-radius: 2px;
}
.eyebrow--light { color: var(--c-cyan) }
.eyebrow--light::before { background: linear-gradient(90deg, var(--c-cyan), #fff) }

.muted { color: var(--c-muted) }
.lead { font-size: 1.125rem; color: var(--c-ink-2); max-width: 64ch }

.section__head {
  display: flex; align-items: end; justify-content: space-between; gap: 24px;
  margin-bottom: clamp(24px, 3vw, 40px); flex-wrap: wrap;
}
.section__head h2 { margin-top: 8px }
.section__title-wrap { max-width: 64ch }

/* ---------------------- Buttons ---------------------- */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 13px 22px;
  border-radius: var(--r-pill);
  font-weight: 600; letter-spacing: .01em;
  background: var(--c-ocean-2); color: #fff;
  transition: transform .25s var(--ease-spring), box-shadow .25s var(--ease), background .25s var(--ease);
  box-shadow: var(--sh-1);
  white-space: nowrap;
}
.btn:hover { transform: translateY(-2px); box-shadow: var(--sh-2); background: var(--c-blue); color: #fff }
.btn:active { transform: translateY(0) }
.btn--primary {
  background: linear-gradient(135deg, var(--c-aqua) 0%, var(--c-blue) 100%);
  box-shadow: var(--sh-glow);
}
.btn--primary:hover { background: linear-gradient(135deg, #1ec5e0 0%, #1387df 100%) }
.btn--ghost {
  background: transparent; color: var(--c-deep);
  box-shadow: inset 0 0 0 1.5px var(--c-line-2);
}
.btn--ghost:hover { background: var(--c-foam); color: var(--c-deep); box-shadow: inset 0 0 0 1.5px var(--c-aqua) }
.btn--light { background: rgba(255,255,255,.95); color: var(--c-deep); box-shadow: var(--sh-2) }
.btn--light:hover { background: #fff; color: var(--c-deep) }
.btn--outline-light {
  background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.4);
}
.btn--outline-light:hover { background: rgba(255,255,255,.1); color: #fff }
.btn--lg { padding: 16px 28px; font-size: 1.02rem }
.btn--sm { padding: 9px 16px; font-size: .9rem }
.btn--block { width: 100% }
.btn svg { width: 18px; height: 18px }
.btn--icon { padding: 12px; width: 44px; height: 44px; justify-content: center }

.btn--live {
  position: relative; padding-left: 38px;
}
.btn--live::before {
  content: ''; position: absolute; left: 18px; top: 50%; transform: translateY(-50%);
  width: 10px; height: 10px; border-radius: 50%;
  background: #ff4d5e; box-shadow: 0 0 0 0 rgba(255,77,94,.7);
  animation: pulse 1.8s var(--ease) infinite;
}
@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(255,77,94,.7) }
  70% { box-shadow: 0 0 0 12px rgba(255,77,94,0) }
  100% { box-shadow: 0 0 0 0 rgba(255,77,94,0) }
}

/* ---------------------- Header ---------------------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,.86);
  backdrop-filter: saturate(1.2) blur(18px);
  -webkit-backdrop-filter: saturate(1.2) blur(18px);
  border-bottom: 1px solid rgba(217,230,238,.7);
  transition: box-shadow .25s var(--ease), background .25s var(--ease);
}
.site-header.is-scrolled { box-shadow: 0 10px 28px rgba(10,37,64,.06) }
.site-header__inner {
  display: flex; align-items: center; gap: 18px; min-height: 78px;
}
.brand {
  display: flex; align-items: center; gap: 14px; flex-shrink: 0;
  color: var(--c-deep);
}
.brand__logo {
  width: 52px; height: 52px;
  display: grid; place-items: center;
  background: linear-gradient(135deg, var(--c-aqua), var(--c-ocean));
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(14,123,209,.25);
}
.brand__logo svg { width: 32px; height: 32px }
.brand__name { font-family: var(--ff-display); font-size: 1.04rem; font-weight: 800; line-height: 1.05; letter-spacing: -.01em }
.brand__sub { font-size: .76rem; color: var(--c-muted); letter-spacing: .04em; text-transform: uppercase; margin-top: 3px }

.primary-nav { margin-left: auto }
.primary-nav__list { display: flex; align-items: center; gap: 4px }
.primary-nav__item { position: relative }
.primary-nav__link {
  display: flex; align-items: center; gap: 6px;
  padding: 12px 16px; border-radius: 10px;
  font-weight: 600; color: var(--c-deep); font-size: .96rem;
  transition: background .2s var(--ease), color .2s var(--ease);
}
.primary-nav__link:hover, .primary-nav__item:hover > .primary-nav__link { background: var(--c-foam); color: var(--c-ocean-2) }
.primary-nav__link[aria-current="page"] { color: var(--c-ocean-2) }
.primary-nav__link .chev { width: 12px; height: 12px; transition: transform .25s var(--ease); opacity: .6 }
.primary-nav__item:hover > .primary-nav__link .chev,
.primary-nav__item.is-open > .primary-nav__link .chev { transform: rotate(180deg); opacity: 1 }

/* Dropdown — first level */
.dropdown {
  position: absolute; top: calc(100% + 4px); left: 0;
  min-width: 300px;
  background: #fff; border-radius: var(--r-lg);
  box-shadow: var(--sh-3); border: 1px solid var(--c-line);
  padding: 10px;
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity .2s var(--ease), transform .25s var(--ease), visibility .2s linear .2s;
}
.primary-nav__item:hover > .dropdown,
.primary-nav__item:focus-within > .dropdown,
.primary-nav__item.is-open > .dropdown {
  opacity: 1; visibility: visible; transform: translateY(0);
  transition: opacity .2s var(--ease), transform .25s var(--ease), visibility 0s linear 0s;
}
.dropdown__item { position: relative }
.dropdown__link {
  display: flex; align-items: center; gap: 10px; justify-content: space-between;
  padding: 11px 14px; border-radius: 10px; color: var(--c-deep); font-weight: 500;
  transition: background .15s var(--ease), color .15s var(--ease);
}
.dropdown__link:hover { background: var(--c-foam); color: var(--c-ocean-2) }
.dropdown__link .chev { width: 12px; height: 12px; opacity: .55 }

/* Dropdown — second level */
.dropdown__item .dropdown {
  top: -10px; left: calc(100% + 6px);
  min-width: 280px;
}

.nav-cta { display: flex; align-items: center; gap: 10px; margin-left: 12px }

/* Mobile menu toggle */
.nav-toggle {
  display: none; width: 44px; height: 44px;
  border-radius: 12px; background: var(--c-foam);
  align-items: center; justify-content: center; margin-left: auto;
}
.nav-toggle span { display: block; width: 22px; height: 2px; background: var(--c-deep); border-radius: 2px; position: relative }
.nav-toggle span::before, .nav-toggle span::after {
  content: ''; position: absolute; left: 0; width: 22px; height: 2px; background: var(--c-deep); border-radius: 2px;
  transition: transform .25s var(--ease), top .25s var(--ease);
}
.nav-toggle span::before { top: -7px }
.nav-toggle span::after { top: 7px }
.nav-toggle[aria-expanded="true"] span { background: transparent }
.nav-toggle[aria-expanded="true"] span::before { top: 0; transform: rotate(45deg) }
.nav-toggle[aria-expanded="true"] span::after { top: 0; transform: rotate(-45deg) }

/* ---------------------- Footer ---------------------- */
.site-footer {
  margin-top: 80px;
  background: var(--bg);
  color: rgba(255,255,255,.8);
  position: relative;
  overflow: hidden;
}
.site-footer::before {
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(700px 240px at 90% 0%, rgba(20,184,212,.18), transparent 60%),
    radial-gradient(800px 300px at 10% 100%, rgba(14,123,209,.18), transparent 60%);
  pointer-events: none;
}
.site-footer__top { position: relative; padding: 64px 0 32px }
.site-footer__grid {
  display: grid; gap: 40px;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
}
.footer-brand .brand__name { color: #fff }
.footer-brand .brand__sub { color: rgba(255,255,255,.6) }
.footer-brand p { color: rgba(255,255,255,.7); margin-top: 16px; max-width: 36ch; font-size: .95rem }
.footer-col h4 { color: #fff; font-size: 1rem; margin-bottom: 18px; letter-spacing: .04em; text-transform: uppercase }
.footer-col a { color: rgba(255,255,255,.78); display: inline-block; padding: 6px 0; font-size: .95rem; transition: color .2s var(--ease), transform .2s var(--ease) }
.footer-col a:hover { color: #fff; transform: translateX(2px) }
.footer-col li { margin-bottom: 2px }
.footer-contact-line { display: flex; gap: 10px; align-items: flex-start; color: rgba(255,255,255,.85); padding: 6px 0; font-size: .95rem }
.footer-contact-line svg { width: 18px; height: 18px; color: var(--c-cyan); flex-shrink: 0; margin-top: 2px }
.site-footer__bottom {
  position: relative; border-top: 1px solid rgba(255,255,255,.1);
  padding: 22px 0; display: flex; justify-content: space-between; align-items: center; gap: 16px;
  color: rgba(255,255,255,.55); font-size: .88rem; flex-wrap: wrap;
}
.socials { display: flex; gap: 10px }
.socials a {
  width: 38px; height: 38px; border-radius: 12px;
  display: grid; place-items: center;
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.8);
  transition: background .25s var(--ease), transform .25s var(--ease-spring), color .25s var(--ease);
}
.socials a:hover { background: var(--c-aqua); color: #fff; transform: translateY(-2px) }
.socials svg { width: 18px; height: 18px }

/* ---------------------- Hero ---------------------- */
.hero {
  position: relative; overflow: hidden;
  background: var(--bg);
  color: #fff;
  padding: clamp(64px, 9vw, 140px) 0 clamp(80px, 12vw, 180px);
}
.hero__bg {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
}
.hero__bg svg { position: absolute; width: 100%; height: 100% }
.hero__inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1.2fr 1fr; gap: 56px; align-items: center }
.hero h1 { color: #fff }
.hero h1 .accent {
  background: linear-gradient(135deg, var(--c-cyan), var(--c-aqua) 60%, #fff);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  display: inline-block;
}
.hero__lead { font-size: 1.15rem; color: rgba(255,255,255,.82); margin: 22px 0 32px; max-width: 56ch }
.hero__cta { display: flex; flex-wrap: wrap; gap: 14px; align-items: center }
.hero__meta {
  margin-top: 36px; display: flex; gap: 32px; flex-wrap: wrap;
  padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12);
}
.hero__meta .stat__num {
  font-family: var(--ff-display); font-size: 2rem; font-weight: 800; letter-spacing: -.02em;
  background: linear-gradient(135deg, #fff, var(--c-cyan));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero__meta .stat__label { font-size: .85rem; color: rgba(255,255,255,.6); letter-spacing: .04em; text-transform: uppercase }

.hero__card {
  position: relative;
  background: rgba(255,255,255,.06);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: var(--r-xl);
  border: 1px solid rgba(255,255,255,.14);
  padding: 28px;
  box-shadow: 0 30px 80px rgba(2,15,30,.3);
}
.hero__card-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; color: #fff }
.hero__card-title h3 { color: #fff; font-size: 1.15rem }
.hero__card-title .live-dot {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: .8rem; padding: 6px 12px; border-radius: 999px;
  background: rgba(255,77,94,.18); color: #ffb1ba; font-weight: 600; letter-spacing: .04em;
}
.hero__card-title .live-dot::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%; background: #ff4d5e;
  box-shadow: 0 0 0 0 rgba(255,77,94,.6); animation: pulse 1.8s var(--ease) infinite;
}

/* ---------------------- Cards ---------------------- */
.card {
  background: #fff; border-radius: var(--r-lg);
  box-shadow: var(--sh-1); border: 1px solid var(--c-line);
  overflow: hidden;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
  display: flex; flex-direction: column;
}
.card:hover { transform: translateY(-4px); box-shadow: var(--sh-3); border-color: var(--c-line-2) }
.card__media { aspect-ratio: 16 / 10; position: relative; overflow: hidden; background: var(--c-foam) }
.card__media svg, .card__media .figure { position: absolute; inset: 0; width: 100%; height: 100% }
.card__badge {
  position: absolute; top: 12px; left: 12px;
  padding: 6px 12px; border-radius: 999px;
  background: rgba(255,255,255,.95); color: var(--c-ocean-2);
  font-weight: 600; font-size: .8rem; letter-spacing: .02em;
  box-shadow: var(--sh-1);
}
.card__date {
  position: absolute; bottom: 12px; left: 12px;
  padding: 6px 12px; border-radius: 999px;
  background: rgba(6,26,43,.7); color: #fff;
  font-size: .78rem; backdrop-filter: blur(8px);
}
.card__body { padding: 22px; display: flex; flex-direction: column; flex: 1 }
.card__cat { font-size: .78rem; font-weight: 600; color: var(--c-aqua); letter-spacing: .1em; text-transform: uppercase; margin-bottom: 10px }
.card__title { font-size: 1.1rem; font-weight: 700; color: var(--c-deep); line-height: 1.3; margin-bottom: 10px }
.card__excerpt { color: var(--c-muted); font-size: .94rem; flex: 1 }
.card__meta { display: flex; justify-content: space-between; align-items: center; margin-top: 18px; padding-top: 14px; border-top: 1px dashed var(--c-line); font-size: .85rem; color: var(--c-muted) }
.card__more { color: var(--c-ocean-2); font-weight: 600; display: inline-flex; align-items: center; gap: 6px }
.card__more:hover { gap: 10px }

/* ---------------------- Gallery / Slider ---------------------- */
.gallery { position: relative }
.gallery__viewport { overflow: hidden; border-radius: var(--r-xl) }
.gallery__track {
  display: flex; gap: 24px;
  transition: transform .55s var(--ease);
  will-change: transform;
}
.gallery__slide {
  flex: 0 0 calc((100% - 48px) / 3);
  min-height: 360px;
  border-radius: var(--r-lg);
  position: relative; overflow: hidden;
  box-shadow: var(--sh-2);
  cursor: pointer;
  transition: transform .4s var(--ease);
}
.gallery__slide:hover { transform: translateY(-4px) }
.gallery__slide .figure { position: absolute; inset: 0; width: 100%; height: 100% }
.gallery__slide-overlay {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: flex-end; padding: 24px;
  background: linear-gradient(to top, rgba(6,26,43,.85) 0%, rgba(6,26,43,.2) 50%, transparent 100%);
  color: #fff;
}
.gallery__slide-cat { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--c-cyan); margin-bottom: 6px; font-weight: 600 }
.gallery__slide-title { font-size: 1.15rem; font-weight: 700; line-height: 1.25 }
.gallery__slide-meta { font-size: .85rem; color: rgba(255,255,255,.7); margin-top: 6px }
.gallery__controls {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 100%; display: flex; justify-content: space-between; pointer-events: none; padding: 0 12px;
}
.gallery__btn {
  width: 52px; height: 52px; border-radius: 50%;
  background: rgba(255,255,255,.96);
  color: var(--c-deep);
  display: grid; place-items: center;
  box-shadow: var(--sh-2); pointer-events: auto;
  transition: transform .25s var(--ease-spring), background .25s var(--ease);
}
.gallery__btn:hover { background: var(--c-aqua); color: #fff; transform: scale(1.08) }
.gallery__btn:disabled { opacity: .4; cursor: not-allowed; transform: none }
.gallery__btn svg { width: 20px; height: 20px }
.gallery__dots { display: flex; justify-content: center; gap: 8px; margin-top: 24px }
.gallery__dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--c-line-2); transition: width .3s var(--ease), background .3s var(--ease);
}
.gallery__dot.is-active { width: 28px; background: var(--c-blue); border-radius: 999px }

/* ---------------------- Events / Calendar ---------------------- */
.events-list { display: flex; flex-direction: column; gap: 14px }
.event {
  display: grid; grid-template-columns: 88px 1fr auto; gap: 22px;
  padding: 22px; background: #fff;
  border-radius: var(--r-md); border: 1px solid var(--c-line);
  align-items: center;
  transition: border-color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease);
}
.event:hover { border-color: var(--c-aqua); box-shadow: var(--sh-2); transform: translateX(4px) }
.event__date {
  text-align: center;
  background: linear-gradient(135deg, var(--c-foam), #fff);
  border: 1px solid var(--c-line);
  border-radius: var(--r-md);
  padding: 12px 8px;
}
.event__day { font-family: var(--ff-display); font-size: 2rem; font-weight: 800; color: var(--c-ocean); line-height: 1 }
.event__month { font-size: .76rem; color: var(--c-muted); letter-spacing: .1em; text-transform: uppercase; margin-top: 4px }
.event__title { font-weight: 700; color: var(--c-deep); font-size: 1.06rem; margin-bottom: 6px }
.event__meta { display: flex; flex-wrap: wrap; gap: 14px; color: var(--c-muted); font-size: .9rem }
.event__meta span { display: inline-flex; align-items: center; gap: 6px }
.event__meta svg { width: 14px; height: 14px; color: var(--c-aqua) }
.event__tag {
  padding: 6px 14px; border-radius: 999px; background: var(--c-foam);
  color: var(--c-ocean-2); font-weight: 600; font-size: .82rem; white-space: nowrap;
}
.event__tag--water-polo { background: #fff1d6; color: #a06400 }
.event__tag--synchro { background: #ffe1e9; color: #b6315c }
.event__tag--diving { background: #e2f3e7; color: #1f6b3b }

.calendar-block {
  background: #fff;
  border-radius: var(--r-lg);
  box-shadow: var(--sh-1);
  border: 1px solid var(--c-line);
  padding: 28px;
}
.calendar-block__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; gap: 16px; flex-wrap: wrap }
.calendar-block__nav { display: flex; align-items: center; gap: 8px }
.calendar-block__nav button {
  width: 36px; height: 36px; border-radius: 10px; background: var(--c-foam); color: var(--c-deep);
  display: grid; place-items: center; transition: background .2s var(--ease);
}
.calendar-block__nav button:hover { background: var(--c-cyan); color: var(--c-deep) }
.calendar-block__title { font-family: var(--ff-display); font-weight: 700; color: var(--c-deep); font-size: 1.15rem; min-width: 160px; text-align: center }

.calgrid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px }
.calgrid__weekday {
  text-align: center; font-size: .78rem; color: var(--c-muted);
  letter-spacing: .1em; text-transform: uppercase; padding: 6px 0; font-weight: 600;
}
.calgrid__day {
  aspect-ratio: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  border-radius: 10px;
  font-weight: 600; color: var(--c-ink-2);
  position: relative; cursor: pointer;
  transition: background .2s var(--ease), color .2s var(--ease);
}
.calgrid__day:hover { background: var(--c-foam) }
.calgrid__day.is-other { color: var(--c-line-2) }
.calgrid__day.is-today {
  background: linear-gradient(135deg, var(--c-aqua), var(--c-blue));
  color: #fff;
}
.calgrid__day.has-event::after {
  content: ''; position: absolute; bottom: 6px; left: 50%; transform: translateX(-50%);
  width: 5px; height: 5px; border-radius: 50%; background: var(--c-coral);
}
.calgrid__day.is-today.has-event::after { background: #fff }

/* ---------------------- Page hero (interior pages) ---------------------- */
.page-hero {
  position: relative; padding: 60px 0 70px;
  background: var(--bg); color: #fff;
  overflow: hidden;
}
.page-hero::before {
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(700px 280px at 70% 0%, rgba(20,184,212,.25), transparent 65%),
    radial-gradient(600px 240px at 10% 100%, rgba(14,123,209,.22), transparent 60%);
  pointer-events: none;
}
.page-hero__inner { position: relative; z-index: 2 }
.page-hero h1 { color: #fff; max-width: 22ch }
.page-hero p { color: rgba(255,255,255,.78); max-width: 60ch; margin-top: 18px; font-size: 1.05rem }
.breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; font-size: .88rem; color: rgba(255,255,255,.6); margin-bottom: 20px }
.breadcrumb a { color: rgba(255,255,255,.75) }
.breadcrumb a:hover { color: #fff }
.breadcrumb__sep { opacity: .5 }
.page-hero__waves { position: absolute; left: 0; right: 0; bottom: -1px; height: 70px; z-index: 1 }
.page-hero__waves svg { width: 100%; height: 100%; display: block }

/* ---------------------- Tabs ---------------------- */
.tabs {
  display: flex; gap: 6px; padding: 6px; background: var(--c-foam);
  border-radius: 999px; margin-bottom: 28px; flex-wrap: wrap;
}
.tabs button {
  padding: 11px 22px; border-radius: 999px; font-weight: 600; color: var(--c-ink-2); font-size: .94rem;
  transition: background .2s var(--ease), color .2s var(--ease);
}
.tabs button:hover { color: var(--c-deep) }
.tabs button[aria-selected="true"] { background: #fff; color: var(--c-ocean-2); box-shadow: var(--sh-1) }
.tab-panel { display: none }
.tab-panel.is-active { display: block; animation: fadeUp .4s var(--ease) }
@keyframes fadeUp { from { opacity: 0; transform: translateY(8px) } to { opacity: 1; transform: none } }

/* ---------------------- Tables ---------------------- */
.tbl-wrap { overflow-x: auto; border-radius: var(--r-md); border: 1px solid var(--c-line); background: #fff }
table.tbl { width: 100%; border-collapse: collapse; font-size: .94rem }
.tbl th, .tbl td { padding: 14px 18px; text-align: left; border-bottom: 1px solid var(--c-line) }
.tbl th { background: var(--c-off); color: var(--c-muted); font-weight: 600; letter-spacing: .04em; font-size: .82rem; text-transform: uppercase }
.tbl tr:last-child td { border-bottom: 0 }
.tbl tbody tr { transition: background .15s var(--ease) }
.tbl tbody tr:hover { background: var(--c-foam) }
.tbl td.num { font-variant-numeric: tabular-nums; font-weight: 600 }
.tbl .winner td { background: linear-gradient(90deg, rgba(255,183,3,.10), transparent) }
.tbl .winner td.num { color: #b07700 }

/* ---------------------- Athletes grid ---------------------- */
.athletes { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 22px }
.athlete {
  background: #fff;
  border-radius: var(--r-lg); border: 1px solid var(--c-line);
  overflow: hidden;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.athlete:hover { transform: translateY(-4px); box-shadow: var(--sh-3) }
.athlete__photo {
  aspect-ratio: 1; position: relative; overflow: hidden;
  background: linear-gradient(180deg, var(--c-foam) 0%, #fff 100%);
}
.athlete__photo .figure { position: absolute; inset: 0; width: 100%; height: 100% }
.athlete__body { padding: 18px }
.athlete__name { font-weight: 700; color: var(--c-deep); font-size: 1.04rem; margin-bottom: 6px }
.athlete__role { color: var(--c-muted); font-size: .86rem; margin-bottom: 14px }
.athlete__chips { display: flex; flex-wrap: wrap; gap: 6px }
.chip {
  font-size: .76rem; padding: 4px 10px; border-radius: 999px;
  background: var(--c-foam); color: var(--c-ocean-2); font-weight: 600;
}
.chip--gold { background: #fff1d6; color: #a06400 }

/* ---------------------- Filters / Toolbar ---------------------- */
.toolbar { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-bottom: 28px }
.toolbar__search {
  flex: 1; min-width: 240px;
  display: flex; align-items: center; gap: 8px;
  padding: 12px 16px; background: #fff;
  border-radius: 999px; border: 1px solid var(--c-line);
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.toolbar__search:focus-within { border-color: var(--c-aqua); box-shadow: 0 0 0 4px rgba(20,184,212,.12) }
.toolbar__search input { flex: 1; border: 0; outline: 0; background: transparent; font: inherit; color: var(--c-deep) }
.toolbar__search svg { width: 18px; height: 18px; color: var(--c-muted) }
.toolbar select {
  padding: 12px 36px 12px 16px; border-radius: 999px;
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%235b7385' stroke-width='1.8'><path d='M1 1l5 5 5-5'/></svg>") no-repeat right 14px center / 12px;
  border: 1px solid var(--c-line); color: var(--c-deep); font: inherit;
  appearance: none; -webkit-appearance: none;
  cursor: pointer;
}
.toolbar select:focus { outline: 0; border-color: var(--c-aqua); box-shadow: 0 0 0 4px rgba(20,184,212,.12) }

/* ---------------------- Documents ---------------------- */
.docs { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)) }
.doc {
  display: grid; grid-template-columns: 48px 1fr auto; align-items: center; gap: 16px;
  padding: 18px 20px; background: #fff; border: 1px solid var(--c-line);
  border-radius: var(--r-md);
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);
}
.doc:hover { border-color: var(--c-aqua); box-shadow: var(--sh-2); transform: translateY(-2px) }
.doc__icon { width: 48px; height: 48px; border-radius: 12px; background: var(--c-foam); display: grid; place-items: center; color: var(--c-ocean-2) }
.doc__icon svg { width: 24px; height: 24px }
.doc__title { font-weight: 700; color: var(--c-deep); font-size: .98rem; margin-bottom: 4px }
.doc__meta { font-size: .82rem; color: var(--c-muted) }
.doc__dl { width: 40px; height: 40px; border-radius: 10px; background: var(--c-foam); display: grid; place-items: center; color: var(--c-ocean-2); transition: background .2s var(--ease), color .2s var(--ease) }
.doc__dl:hover { background: var(--c-aqua); color: #fff }
.doc__dl svg { width: 18px; height: 18px }

/* ---------------------- Persons ---------------------- */
.persons { display: grid; gap: 22px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) }
.person { background: #fff; border-radius: var(--r-lg); border: 1px solid var(--c-line); padding: 24px; transition: box-shadow .3s var(--ease), transform .3s var(--ease) }
.person:hover { box-shadow: var(--sh-3); transform: translateY(-3px) }
.person__photo { width: 96px; height: 96px; border-radius: 50%; margin-bottom: 16px; overflow: hidden; position: relative; background: var(--c-foam) }
.person__photo .figure { position: absolute; inset: 0; width: 100%; height: 100% }
.person__name { font-weight: 700; color: var(--c-deep); font-size: 1.08rem }
.person__role { color: var(--c-aqua); font-size: .9rem; font-weight: 600; margin-top: 4px; margin-bottom: 14px }
.person__bio { color: var(--c-muted); font-size: .9rem }

/* ---------------------- Records ---------------------- */
.records-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) }
.record {
  background: linear-gradient(160deg, #fff 0%, var(--c-foam) 100%);
  border-radius: var(--r-md);
  border: 1px solid var(--c-line);
  padding: 22px;
  position: relative; overflow: hidden;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.record:hover { transform: translateY(-3px); box-shadow: var(--sh-2) }
.record::before {
  content: ''; position: absolute; top: -20px; right: -20px; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(20,184,212,.18), transparent 70%);
  border-radius: 50%;
}
.record__discipline { font-size: .78rem; color: var(--c-aqua); font-weight: 700; letter-spacing: .08em; text-transform: uppercase }
.record__name { font-weight: 700; color: var(--c-deep); margin: 8px 0 4px }
.record__time { font-family: var(--ff-display); font-weight: 800; font-size: 1.6rem; color: var(--c-ocean); font-variant-numeric: tabular-nums; margin-top: 10px }
.record__holder { font-size: .9rem; color: var(--c-muted); margin-top: 4px }
.record__year { font-size: .8rem; color: var(--c-muted); margin-top: 8px; display: flex; justify-content: space-between }

/* ---------------------- Contacts ---------------------- */
.contacts-layout { display: grid; gap: 32px; grid-template-columns: 1fr 1fr; align-items: start }
.contact-card { background: #fff; border-radius: var(--r-lg); padding: 28px; border: 1px solid var(--c-line) }
.contact-card h3 { color: var(--c-deep); margin-bottom: 18px }
.contact-line { display: grid; grid-template-columns: 36px 1fr; gap: 14px; padding: 14px 0; border-bottom: 1px dashed var(--c-line) }
.contact-line:last-child { border-bottom: 0 }
.contact-line__icon { width: 36px; height: 36px; border-radius: 10px; background: var(--c-foam); display: grid; place-items: center; color: var(--c-ocean-2) }
.contact-line__icon svg { width: 18px; height: 18px }
.contact-line__label { font-size: .8rem; color: var(--c-muted); letter-spacing: .04em; text-transform: uppercase; margin-bottom: 4px }
.contact-line__value { font-weight: 600; color: var(--c-deep) }
.map-stub { aspect-ratio: 4 / 3; border-radius: var(--r-lg); background: linear-gradient(135deg, var(--c-foam), #fff); border: 1px solid var(--c-line); position: relative; overflow: hidden }
.map-stub .figure { position: absolute; inset: 0; width: 100%; height: 100% }

/* ---------------------- Status pills ---------------------- */
.pill { display: inline-flex; align-items: center; padding: 4px 12px; border-radius: 999px; font-size: .8rem; font-weight: 600 }
.pill--live { background: rgba(230,57,70,.12); color: var(--c-red) }
.pill--live::before { content: ''; width: 6px; height: 6px; background: var(--c-red); border-radius: 50%; margin-right: 6px; animation: pulse 1.8s var(--ease) infinite }
.pill--upcoming { background: var(--c-foam); color: var(--c-ocean-2) }
.pill--completed { background: #e2f3e7; color: var(--c-leaf) }

/* ---------------------- Animations ---------------------- */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity .7s var(--ease), transform .7s var(--ease) }
.reveal.is-visible { opacity: 1; transform: none }
.reveal.delay-1 { transition-delay: .08s }
.reveal.delay-2 { transition-delay: .16s }
.reveal.delay-3 { transition-delay: .24s }
.reveal.delay-4 { transition-delay: .32s }

@keyframes float { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-12px) } }
@keyframes wave { 0% { transform: translateX(0) } 100% { transform: translateX(-50%) } }
@keyframes shimmer { 0% { background-position: -200% 0 } 100% { background-position: 200% 0 } }

/* ---------------------- Responsive ---------------------- */
@media (max-width: 1100px) {
  .hero__inner { grid-template-columns: 1fr; gap: 40px }
  .site-footer__grid { grid-template-columns: 1fr 1fr }
  .gallery__slide { flex-basis: calc((100% - 24px) / 2) }
}
@media (max-width: 860px) {
  :root { --gap: 16px }
  .nav-toggle { display: flex }
  .primary-nav {
    position: fixed; inset: 78px 0 0 0;
    background: #fff;
    padding: 24px;
    transform: translateX(100%);
    transition: transform .4s var(--ease);
    overflow-y: auto;
  }
  .primary-nav.is-open { transform: translateX(0) }
  .primary-nav__list { flex-direction: column; align-items: stretch; gap: 4px }
  .primary-nav__item { width: 100% }
  .primary-nav__link { width: 100%; justify-content: space-between }
  .dropdown {
    position: static; opacity: 1; visibility: visible; transform: none;
    box-shadow: none; border: 0; border-radius: 0;
    margin-left: 12px; padding-left: 12px; border-left: 2px solid var(--c-line);
    display: none;
  }
  .primary-nav__item.is-open > .dropdown { display: block }
  .dropdown__item .dropdown { margin-left: 12px }
  .nav-cta { width: 100%; margin: 16px 0 0; flex-direction: column }
  .nav-cta .btn { width: 100% }
  .site-footer__grid { grid-template-columns: 1fr }
  .gallery__slide { flex-basis: 100% }
  .event { grid-template-columns: 72px 1fr; gap: 14px; padding: 16px }
  .event__tag { grid-column: 2; justify-self: start }
  .contacts-layout { grid-template-columns: 1fr }
  .hero__meta { gap: 20px }
  .hero__meta .stat__num { font-size: 1.6rem }
}
@media (max-width: 540px) {
  h1 { font-size: 2rem }
  .section { padding: 56px 0 }
  .brand__sub { display: none }
  .athletes { grid-template-columns: repeat(2, 1fr) }
  .athlete__body { padding: 14px }
}

/* ---------------------- Misc utilities ---------------------- */
.split-2 { display: grid; gap: 32px; grid-template-columns: 2fr 1fr }
.split-3 { display: grid; gap: 32px; grid-template-columns: 1fr 1fr 1fr }
@media (max-width: 1000px) { .split-2 { grid-template-columns: 1fr } .split-3 { grid-template-columns: 1fr } }

.prose p { color: var(--c-ink-2); font-size: 1.04rem; line-height: 1.7 }
.prose h2, .prose h3 { margin: 32px 0 14px }
.prose ul { list-style: disc; padding-left: 22px; color: var(--c-ink-2); margin: 0 0 1em }
.prose ul li { margin-bottom: .4em }
.prose blockquote { margin: 24px 0; padding: 18px 22px; border-left: 4px solid var(--c-aqua); background: var(--c-foam); border-radius: 8px; color: var(--c-deep); font-style: italic }

/* ============================================================
   Раздел результатов: протоколы SPLASH Meet Manager
   ============================================================ */
.visually-hidden {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.page-hero .eyebrow + h1 { margin-top: 14px }
.page-hero p a { color: #fff; text-decoration: underline; text-decoration-color: rgba(95,208,232,.6); text-underline-offset: 3px }
.page-hero p a:hover { color: var(--c-cyan) }

/* статусы */
.pill--wait { background: var(--c-off); color: var(--c-muted) }
.pill--award { background: transparent; color: var(--c-muted); box-shadow: inset 0 0 0 1px var(--c-line-2) }
.pill--next { margin-left: 6px; background: linear-gradient(135deg, var(--c-aqua), var(--c-blue)); color: #fff }

/* уведомление для демонстрационных ссылок */
.toast {
  position: fixed; left: 50%; bottom: 24px; z-index: 200;
  width: max-content; max-width: min(92vw, 520px);
  padding: 14px 22px; border-radius: var(--r-md);
  background: var(--c-deep); color: #fff; font-size: .92rem; line-height: 1.4;
  box-shadow: var(--sh-3);
  opacity: 0; transform: translate(-50%, 16px); pointer-events: none;
  transition: opacity .25s var(--ease), transform .3s var(--ease);
}
.toast:empty { padding: 0 }
.toast.is-visible { opacity: 1; transform: translate(-50%, 0) }

.meet-loading { padding: 48px 16px; text-align: center; color: var(--c-muted) }
.meet-empty {
  padding: 48px 24px; text-align: center; color: var(--c-muted);
  background: #fff; border: 1px dashed var(--c-line-2); border-radius: var(--r-lg);
}
.meet-empty__title { margin-bottom: 6px; font-size: 1.1rem; font-weight: 700; color: var(--c-deep) }
.meet-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 18px 0 0 }

/* карточка соревнования */
.meet-card {
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 24px 36px;
  margin-bottom: 28px; padding: 28px;
  background: linear-gradient(135deg, #fff 0%, #fff 55%, var(--c-foam) 100%);
  border: 1px solid var(--c-line); border-radius: var(--r-lg); box-shadow: var(--sh-1);
}
.meet-card::before {
  content: ''; position: absolute; top: -70px; right: -70px; width: 240px; height: 240px; border-radius: 50%;
  background: radial-gradient(circle, rgba(20,184,212,.16), transparent 70%); pointer-events: none;
}
.meet-card__main, .meet-card__side { position: relative }
.meet-card__badges { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-bottom: 12px }
.meet-card__src { font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted) }
.meet-card__title { margin-bottom: 18px; font-size: clamp(1.3rem, 1.4vw + .7rem, 1.9rem) }
.meet-card__facts { display: grid; grid-template-columns: repeat(4, minmax(0, auto)); justify-content: start; gap: 12px 32px; margin: 0 }
.meet-card__facts dt { font-size: .76rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted) }
.meet-card__facts dd { margin: 2px 0 0; font-weight: 600; color: var(--c-deep); font-variant-numeric: tabular-nums }
.meet-card__side { display: flex; flex-direction: column; gap: 16px; padding-left: 32px; border-left: 1px dashed var(--c-line-2) }
.meet-card__actions { display: flex; flex-wrap: wrap; gap: 8px }
.meet-progress { display: flex; flex-direction: column; gap: 10px }
.meet-progress__num { font-size: .95rem; color: var(--c-ink-2) }
.meet-progress__num b { margin-right: 2px; font-family: var(--ff-display); font-size: 1.6rem; font-weight: 800; color: var(--c-ocean) }
.meet-progress__bar {
  display: block; width: 100%; height: 8px; overflow: hidden;
  border: 0; border-radius: 999px; background: var(--c-foam); color: var(--c-aqua);
  -webkit-appearance: none; appearance: none;
}
.meet-progress__bar::-webkit-progress-bar { background: var(--c-foam); border-radius: 999px }
.meet-progress__bar::-webkit-progress-value { background: linear-gradient(90deg, var(--c-aqua), var(--c-blue)); border-radius: 999px }
.meet-progress__bar::-moz-progress-bar { background: linear-gradient(90deg, var(--c-aqua), var(--c-blue)); border-radius: 999px }
.meet-sync { margin: 0; font-size: .85rem; color: var(--c-muted) }
.meet-sync--demo { padding: 10px 14px; border-radius: var(--r-sm); background: #fff1d6; color: #7a4d00 }
.meet-sync--live::before {
  content: ''; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%;
  background: var(--c-leaf); vertical-align: 1px;
}

/* представления, фильтры, дни */
.meet-tabs { display: inline-flex; margin-bottom: 18px }
.meet-filters { gap: 10px; margin-bottom: 22px }
.meet-filters__search { flex: 1 1 220px; min-width: 200px; padding-top: 11px; padding-bottom: 11px }
.meet-check {
  display: inline-flex; align-items: center; gap: 8px; padding: 11px 16px; cursor: pointer;
  background: #fff; border: 1px solid var(--c-line); border-radius: 999px; color: var(--c-deep); font-weight: 500;
}
.meet-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--c-aqua) }
.meet-filters__count { margin-left: auto; font-size: .88rem; color: var(--c-muted); font-variant-numeric: tabular-nums }

.meet-days { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-bottom: 30px }
.meet-days[hidden] { display: none }
.meet-day {
  display: grid; grid-template-columns: 56px 1fr; gap: 14px; align-items: center;
  padding: 14px 16px; text-align: left; color: var(--c-deep);
  background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-md);
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease), background .25s var(--ease);
}
.meet-day:hover { border-color: var(--c-aqua); box-shadow: var(--sh-2); transform: translateY(-2px) }
.meet-day__num {
  display: grid; place-items: center; height: 56px;
  font-family: var(--ff-display); font-size: 1.7rem; font-weight: 800; color: var(--c-ocean);
  background: linear-gradient(135deg, var(--c-foam), #fff); border: 1px solid var(--c-line); border-radius: 12px;
}
.meet-day__body { display: flex; flex-direction: column; gap: 1px; min-width: 0 }
.meet-day__name { display: flex; align-items: center; gap: 8px; font-weight: 700 }
.meet-day__today {
  padding: 2px 8px; border-radius: 999px; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  background: rgba(230,57,70,.12); color: var(--c-red);
}
.meet-day__date { font-size: .88rem; color: var(--c-ink-2) }
.meet-day__meta { font-size: .8rem; color: var(--c-muted); font-variant-numeric: tabular-nums }
.meet-day[aria-selected="true"] {
  background: linear-gradient(135deg, var(--c-aqua), var(--c-blue)); border-color: transparent; box-shadow: var(--sh-glow); color: #fff;
}
.meet-day[aria-selected="true"] .meet-day__num { color: #fff; background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.3) }
.meet-day[aria-selected="true"] .meet-day__date { color: rgba(255,255,255,.9) }
.meet-day[aria-selected="true"] .meet-day__meta { color: rgba(255,255,255,.78) }
.meet-day[aria-selected="true"] .meet-day__today { background: rgba(255,255,255,.22); color: #fff }

/* сессии и строки протоколов */
.meet-panel:focus { outline: 0 }
.session + .session { margin-top: 36px }
.session__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; margin-bottom: 14px }
.session__title { font-size: 1.25rem }
.session__meta { color: var(--c-ink-2) }
.session__count {
  margin-left: auto; padding: 4px 12px; border-radius: 999px;
  background: var(--c-foam); color: var(--c-ocean-2); font-size: .85rem; font-weight: 600; font-variant-numeric: tabular-nums;
}
.proto { font-size: .92rem }
.proto th, .proto td { padding: 12px 14px; vertical-align: middle }
.proto__n { font-weight: 700; color: var(--c-muted); font-variant-numeric: tabular-nums }
.proto__time { font-family: var(--ff-display); font-weight: 700; color: var(--c-ocean); font-variant-numeric: tabular-nums; white-space: nowrap }
.proto__g { font-weight: 600 }
.proto__dist { font-weight: 700; color: var(--c-deep) }
.proto__round, .proto__age { color: var(--c-ink-2) }
.proto__round, .proto__age, .proto__status .pill { white-space: nowrap }
.proto__none { color: var(--c-muted) }
.proto__row--award td { background: var(--c-off); color: var(--c-muted) }
.proto__row--award .proto__dist { font-weight: 500; color: var(--c-ink-2) }
.proto__row--next td { background: linear-gradient(90deg, rgba(20,184,212,.12), rgba(20,184,212,.04)) }
.proto__row--next td:first-child { box-shadow: inset 4px 0 0 var(--c-aqua) }

.pdf-pair { display: inline-flex; gap: 6px }
.pdf-btn {
  display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 5px 12px;
  font-size: .84rem; font-weight: 600; white-space: nowrap; color: var(--c-ocean-2);
  background: var(--c-foam); border: 1px solid transparent; border-radius: 999px;
  transition: background .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);
}
.pdf-btn svg { width: 12px; height: 15px; flex: none }
a.pdf-btn:hover { color: #fff; background: var(--c-aqua); transform: translateY(-1px) }
.pdf-btn.is-off { color: #95a9b7; background: transparent; border: 1px dashed var(--c-line-2) }

/* вкладка «Дистанции» */
.dist-group + .dist-group { margin-top: 36px }
.dist-group__title { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; font-size: 1.25rem }
.dist-group__title::before { content: ''; width: 28px; height: 3px; border-radius: 2px; background: linear-gradient(90deg, var(--c-aqua), var(--c-blue)) }
.dist-cols { display: grid; gap: 20px }
.dist-cols--2 { grid-template-columns: 1fr 1fr }
.dist-col { padding: 16px 20px; background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-lg); box-shadow: var(--sh-1) }
.dist-col__title { margin-bottom: 4px; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--c-aqua) }
.dist-col__empty { margin: 8px 0 0; color: var(--c-muted) }
.dist-item { display: grid; grid-template-columns: 64px 1fr auto; gap: 12px; align-items: center; padding: 12px 0; border-top: 1px dashed var(--c-line) }
.dist-item:first-child { border-top: 0 }
.dist-item__d { font-family: var(--ff-display); font-size: 1.05rem; font-weight: 800; color: var(--c-ocean); white-space: nowrap }
.dist-item__meta { display: flex; flex-direction: column; font-size: .85rem; color: var(--c-muted) }
.dist-item .pdf-pair { display: grid; grid-template-columns: 84px 124px }
.dist-item .pdf-btn { justify-content: center }

/* списки соревнований: итоги и архив */
.results-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; margin-bottom: 18px }
.results-head__count, .results-toolbar__count { font-size: .9rem; color: var(--c-muted); font-variant-numeric: tabular-nums }
.results-toolbar__count { margin-left: auto }
.results-tabs button { white-space: nowrap }
.results-block + .results-block { margin-top: 48px }
.results-block__title { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 6px; font-size: 1.35rem }
.results-block__count {
  display: inline-grid; place-items: center; min-width: 30px; height: 28px; padding: 0 9px; border-radius: 999px;
  background: var(--c-foam); color: var(--c-ocean-2); font-size: .85rem; font-weight: 700;
}
.results-block__note { margin-bottom: 18px; font-size: .95rem; color: var(--c-muted) }
.results-year + .results-year { margin-top: 64px }
.results-year__title { margin-bottom: 24px; padding-bottom: 12px; border-bottom: 1px solid var(--c-line) }
.results-year .results-block__title { font-size: 1.15rem }

.meet-row { grid-template-columns: 96px 1fr auto }
.meet-row__body { min-width: 0 }
.meet-row__title { margin: 0 0 6px; line-height: 1.3 }
.meet-row__title a { color: inherit }
.meet-row__title a:hover { color: var(--c-ocean-2) }
.meet-row__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px }
.meet-row .event__meta { gap: 4px 16px }
.meet-row .event__meta svg { flex: none }
.event__day--range { font-size: 1.35rem; letter-spacing: -.02em; white-space: nowrap }

.protocol { align-items: start }
.protocol__body { min-width: 0 }
.protocol .doc__title { line-height: 1.35 }
.protocol .doc__meta { line-height: 1.7 }
.protocol__tag { display: inline-block; margin-right: 8px; padding: 2px 10px; font-size: .74rem; line-height: 1.5 }

/* баннер текущего соревнования (итоги) */
.meet-banner {
  position: relative; overflow: hidden;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 28px;
  margin-bottom: 44px; padding: 24px 28px; border-radius: var(--r-lg);
  background: var(--bg); color: #fff; box-shadow: var(--sh-2);
}
.meet-banner::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(500px 200px at 85% 0%, rgba(20,184,212,.28), transparent 65%);
}
.meet-banner__body, .meet-banner .btn { position: relative }
.meet-banner .pill--live { background: rgba(255,77,94,.2); color: #ffd7dc }
.meet-banner__title { margin: 10px 0 4px; font-size: 1.1rem; font-weight: 700; color: #fff }
.meet-banner__meta { margin: 0; font-size: .9rem; color: rgba(255,255,255,.7) }

/* прочие дисциплины на странице онлайн-результатов */
.results-note {
  display: grid; grid-template-columns: 48px 1fr auto; gap: 18px; align-items: center;
  margin-top: 48px; padding: 22px 24px; background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-lg);
}
.results-note__title { margin-bottom: 4px; font-size: 1.05rem }
.results-note p { margin: 0; color: var(--c-muted); font-size: .95rem }

/* главная: карточка текущего соревнования */
.hero__card[data-live-meet] .hero__card-title { flex-wrap: wrap; gap: 8px 12px }
.hero__card[data-live-meet] .live-dot { white-space: nowrap }
.hero__card-state {
  white-space: nowrap; padding: 6px 12px; border-radius: 999px; font-size: .8rem; font-weight: 600;
  background: rgba(255,255,255,.12); color: rgba(255,255,255,.85);
}
.live-meet__title { margin: 0 0 6px; font-size: 1.08rem; font-weight: 700; line-height: 1.35; color: #fff }
.live-meet__meta { margin: 0 0 18px; font-size: .86rem; color: rgba(255,255,255,.65) }
.meet-progress--dark .meet-progress__num { color: rgba(255,255,255,.75); font-size: .9rem }
.meet-progress--dark .meet-progress__num b { color: #fff; font-size: 1.35rem }
.meet-progress--dark .meet-progress__bar,
.meet-progress--dark .meet-progress__bar::-webkit-progress-bar { background: rgba(255,255,255,.12) }
.live-meet__sub { margin: 22px 0 10px; font-size: .76rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--c-cyan) }
.live-meet__next { display: flex; flex-direction: column; gap: 8px }
.live-meet__next li {
  display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: baseline;
  padding: 11px 14px; border-radius: 14px;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08);
}
.live-meet__next li:first-child { background: linear-gradient(90deg, rgba(20,184,212,.18), rgba(20,184,212,.04)); border-color: rgba(20,184,212,.3) }
.live-meet__time { font-family: var(--ff-display); font-weight: 700; color: #fff; font-variant-numeric: tabular-nums; white-space: nowrap }
.live-meet__what { font-size: .88rem; color: rgba(255,255,255,.8) }
.live-meet__btn { margin-top: 18px; justify-content: center }
.live-meet__upd { margin: 12px 0 0; font-size: .78rem; text-align: center; color: rgba(255,255,255,.5) }

/* рекорды: протокол побитых рекордов текущего старта */
.records-current {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px;
  margin-top: 40px; padding: 26px 28px; border-radius: var(--r-lg);
  background: linear-gradient(135deg, #fff, var(--c-foam)); border: 1px solid var(--c-line); box-shadow: var(--sh-1);
}
.records-current__body { flex: 1 1 420px }
.records-current__title { margin: 10px 0 6px; font-size: 1.15rem; font-weight: 700; color: var(--c-deep) }
.records-current__text { margin: 0; max-width: 70ch; font-size: .95rem; color: var(--c-muted) }
.records-current__actions { display: flex; flex-wrap: wrap; gap: 10px }

@media (max-width: 1000px) {
  .meet-card { grid-template-columns: 1fr }
  .meet-card__side { padding: 20px 0 0; border-left: 0; border-top: 1px dashed var(--c-line-2) }
  .meet-card__facts { grid-template-columns: repeat(2, minmax(0, 1fr)) }
  .dist-cols--2 { grid-template-columns: 1fr }
}
@media (max-width: 860px) {
  .meet-row { grid-template-columns: 80px 1fr }
  .meet-row__actions { grid-column: 2; justify-content: flex-start }
  .results-note { grid-template-columns: 48px 1fr }
  .results-note .btn { grid-column: 2; justify-self: start }
}
@media (max-width: 760px) {
  .meet-card { padding: 22px 20px }
  .meet-tabs { display: flex }
  .meet-tabs button { flex: 1; padding: 10px 6px; font-size: .88rem; white-space: nowrap }
  .meet-filter { flex: 1 1 140px }
  .meet-filter select { width: 100% }
  .meet-filters__count { margin-left: 0 }
  .meet-days { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 8px }
  .meet-day { grid-template-columns: 1fr; justify-items: center; gap: 6px; padding: 10px 6px; text-align: center }
  .meet-day__num { width: 44px; height: 44px; font-size: 1.3rem }
  .meet-day__name { flex-direction: column; gap: 3px; font-size: .9rem }
  .meet-day__today { font-size: .6rem }
  .meet-day__date, .meet-day__meta { display: none }
  .session__count { margin-left: 0 }

  .proto-wrap { overflow: visible; background: transparent; border: 0; border-radius: 0 }
  .proto thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0) }
  .proto, .proto tbody { display: block }
  .proto tr {
    display: grid; grid-template-columns: auto auto minmax(0, 1fr); gap: 4px 10px; align-items: center;
    margin-bottom: 10px; padding: 14px 16px; background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-md);
  }
  .proto tbody tr:hover { background: #fff }
  .proto td { padding: 0; border: 0; background: transparent }
  .proto .proto__row--award { background: var(--c-off) }
  .proto__row--award td { background: transparent }
  .proto .proto__row--next { border-color: var(--c-aqua); box-shadow: var(--sh-glow) }
  .proto__row--next td, .proto__row--next td:first-child { background: transparent; box-shadow: none }
  .proto__n { grid-column: 1; grid-row: 1 }
  .proto__n::before { content: '№ ' }
  .proto__time { grid-column: 2; grid-row: 1 }
  .proto__status { grid-column: 3; grid-row: 1; justify-self: end; text-align: right }
  .proto__g { grid-column: 1 / -1; grid-row: 2 }
  .proto__dist { grid-column: 1 / -1; font-size: 1.05rem }
  .proto__round, .proto__age { grid-column: 1 / -1; font-size: .88rem }
  .proto__files { grid-column: 1 / -1; margin-top: 8px }
  .proto__row--award .proto__files { display: none }
  .proto .pdf-pair { display: grid; grid-template-columns: 1fr 1fr; width: 100%; gap: 8px }
  .proto .pdf-btn { justify-content: center; min-height: 44px; font-size: .92rem }
}
@media (max-width: 540px) {
  .meet-row { grid-template-columns: 72px 1fr; align-items: start; padding: 16px }
  .meet-row .event__day--range { font-size: 1.1rem }
  .results-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; border-radius: var(--r-md) }
  .results-tabs::-webkit-scrollbar { display: none }
  .results-tabs button { flex: none; padding: 10px 16px }
  .meet-row__actions { grid-column: 1 / -1 }
  .dist-item { grid-template-columns: 56px 1fr }
  .dist-item .pdf-pair { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr }
  .dist-item .pdf-btn { justify-content: center; min-height: 44px }
  .results-block .docs { grid-template-columns: 1fr }
  .records-current, .meet-banner { padding: 22px 20px }
  .results-note { grid-template-columns: 1fr }
  .results-note .doc__icon { display: none }
  .results-note .btn { grid-column: 1 }
}
@media (prefers-reduced-motion: reduce) {
  .meet-day, .pdf-btn, .toast { transition: none }
}
