/* =========================================================
   Страницы и компоненты разделов · «МОДЕРН»
   ========================================================= */

/* ---------- общие карточки и изображения ---------- */
.art { width: 100%; height: 100%; }

.table-scroll { overflow-x: auto; }
.table-scroll:focus-visible { outline-offset: 2px; }

.split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 4vw, 4rem);
}

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

/* =========================================================
   ГЛАВНАЯ · ПЕРВЫЙ ЭКРАН
   ========================================================= */
.hero {
  padding-block: clamp(2.25rem, 4.5vw, 3.75rem) clamp(2.5rem, 5vw, 4rem);
  border-bottom: 1px solid var(--c-line);
}

.hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(2rem, 4.5vw, 4.5rem);
  align-items: start;
}

.hero__title {
  max-width: 22ch;
  font-size: clamp(2rem, 3.6vw, 3.25rem);
  line-height: 1.08;
}

.hero__lead {
  max-width: 58ch;
  margin: 1.25rem 0 0;
  color: var(--c-mute);
  font-size: clamp(1.0625rem, 1.3vw, 1.1875rem);
}

.hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }

.figures {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 2.5rem 0 0;
  border-top: 1px solid var(--c-line);
}

.figures__item { padding: 1rem 1rem 0 0; }
.figures__item + .figures__item { padding-left: 1rem; border-left: 1px solid var(--c-line); }
.figures dt { color: var(--c-mute); font-size: .8125rem; }
.figures dd {
  margin: .25rem 0 0;
  font: 700 clamp(1.75rem, 2.6vw, 2.25rem)/1 var(--f-head);
  font-variant-numeric: tabular-nums;
}

.hero__side { position: relative; }

.hero__figure {
  margin: 0;
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  overflow: hidden;
}

.hero__art { width: 100%; height: auto; }
.hero__art-labels { font: 700 15px var(--f-head); fill: var(--c-ink); }

.next-card {
  position: relative;
  margin: -2.75rem 1.25rem 0 -1.25rem;
  padding: 1.125rem 1.25rem 1.25rem;
  border: 1px solid var(--c-line);
  border-top: 3px solid var(--c-red);
  border-radius: 0 0 var(--radius) var(--radius);
  background: var(--c-bg);
  box-shadow: var(--shadow);
}

.next-card__k {
  margin: 0 0 .375rem;
  color: var(--c-mute);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.next-card__title { display: block; font: 700 1.25rem/1.25 var(--f-head); text-decoration: none; }
.next-card__title:hover { color: var(--c-red); text-decoration: underline; }
.next-card__meta { margin: .375rem 0 0; color: var(--c-mute); font-size: .9375rem; }
.next-card__foot { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin: .75rem 0 0; }
.next-card__days { color: var(--c-mute); font-size: .8125rem; }

@media (max-width: 960px) {
  .hero__grid { grid-template-columns: minmax(0, 1fr); }
  .hero__side { max-width: 36rem; }
}

@media (max-width: 560px) {
  .figures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .figures__item:nth-child(3) { padding-left: 0; border-left: 0; }
  .figures__item:nth-child(n + 3) { border-top: 1px solid var(--c-line); margin-top: 1rem; }
  .next-card { margin: -1.5rem .75rem 0; }
}

/* ---------- быстрые ссылки ---------- */
.quick { border-bottom: 1px solid var(--c-line); }

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

.quick__item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 1.25rem 1.25rem 0;
  color: var(--c-ink);
  text-decoration: none;
  transition: background-color .15s;
}

.quick__item + .quick__item { padding-left: 1.25rem; border-left: 1px solid var(--c-line); }
.quick__item:hover { color: var(--c-ink); background: var(--c-gray); }
.quick__ico { flex: none; width: 2.25rem; height: 2.25rem; color: var(--c-red); }
.quick__ico svg { width: 100%; height: 100%; }
.quick__body { display: flex; flex-direction: column; }
.quick__title { font-weight: 700; line-height: 1.3; }
.quick__item:hover .quick__title { text-decoration: underline; }
.quick__text { color: var(--c-mute); font-size: .875rem; }

@media (max-width: 960px) {
  .quick__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick__item:nth-child(3) { padding-left: 0; border-left: 0; }
  .quick__item:nth-child(n + 3) { border-top: 1px solid var(--c-line); }
}

@media (max-width: 480px) {
  .quick__grid { grid-template-columns: minmax(0, 1fr); }
  .quick__item + .quick__item { padding-left: 0; border-left: 0; border-top: 1px solid var(--c-line); }
}

/* ---------- новости на главной ---------- */
.hnews {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(1.75rem, 3.5vw, 3rem);
}

.lead-news__link { display: block; color: inherit; text-decoration: none; }
.lead-news__link:hover { color: inherit; }

.lead-news__art {
  display: block;
  aspect-ratio: 16 / 9;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--c-gray);
}

.lead-news__art .art { transition: transform .5s var(--ease); }
.lead-news__link:hover .art { transform: scale(1.02); }

.lead-news__body { display: block; padding-top: 1.125rem; }

.lead-news__meta,
.news-row__meta,
.ncard__meta,
.mini__meta,
.album__meta,
.slide__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .375rem 1rem;
  color: var(--c-mute);
  font-size: .8125rem;
}

.lead-news__title {
  display: block;
  margin: .625rem 0 .5rem;
  font: 700 clamp(1.5rem, 2.4vw, 2rem)/1.15 var(--f-head);
}

.lead-news__link:hover .lead-news__title { color: var(--c-red); }
.lead-news__lead { display: block; max-width: 62ch; color: var(--c-mute); }

.news-rows { margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--c-ink); }

.news-row__link {
  display: block;
  padding: 1rem 0;
  border-bottom: 1px solid var(--c-line);
  color: inherit;
  text-decoration: none;
}

.news-row__title {
  display: block;
  margin-top: .375rem;
  font-weight: 700;
  font-size: 1.0625rem;
  line-height: 1.35;
}

.news-row__link:hover .news-row__title { color: var(--c-red); text-decoration: underline; }

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

/* =========================================================
   КАЛЕНДАРЬ-ВИДЖЕТ
   ========================================================= */
.calw {
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  background: var(--c-bg);
}

.calw__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--c-line);
}

.calw__nav { display: flex; align-items: center; gap: .75rem; }

.calw__arrow {
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--c-line-2);
  border-radius: 3px;
  background: var(--c-bg);
  font-weight: 700;
  transition: border-color .15s, background-color .15s;
}

.calw__arrow:hover { border-color: var(--c-ink); background: var(--c-gray); }
.calw__arrow:disabled { opacity: .35; cursor: default; background: var(--c-bg); }

.calw__month {
  min-width: 10rem;
  font-size: 1.5rem;
  text-align: center;
}

.calw__m { text-transform: capitalize; }
.calw__y { color: var(--c-mute); font-weight: 400; }

.calw__body { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.calw__cal { padding: 1rem 1.25rem 1.25rem; }

.calw__dow,
.calw__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }

.calw__dow span {
  padding: .25rem 0 .5rem;
  border-bottom: 1px solid var(--c-line);
  color: var(--c-mute);
  font-size: .75rem;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
}

.calw__dow .is-we { color: var(--c-red); }

.calw__cell {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .25rem;
  min-height: 3.25rem;
  padding: .375rem .25rem;
  border: 0;
  border-bottom: 1px solid var(--c-gray-2);
  background: transparent;
  color: var(--c-ink);
  font-size: .9375rem;
  font-variant-numeric: tabular-nums;
}

.calw__cell--we { color: var(--c-red); }
.calw__cell--out { color: var(--c-line-2); }

.calw__n {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
}

.calw__cell--today .calw__n { box-shadow: inset 0 0 0 1.5px var(--c-ink); font-weight: 700; }

.calw__cell--has { cursor: pointer; background: var(--c-red-soft); font-weight: 700; transition: background-color .15s; }
.calw__cell--has:hover { background: #f5d9d6; }
.calw__cell--has.is-selected { background: var(--c-ink); color: #ffffff; }
.calw__cell--has.is-selected .calw__mark { box-shadow: 0 0 0 1px #ffffff; }

.calw__marks { display: flex; gap: 3px; }
.calw__mark { display: block; width: .375rem; height: .375rem; border-radius: 50%; }

.calw__mark--swim,
.calw__key--swim { background: var(--c-red); }
.calw__mark--polo,
.calw__key--polo { background: var(--c-ink); }
.calw__mark--synchro,
.calw__key--synchro { background: #8d8d88; }
.calw__mark--diving,
.calw__key--diving { background: var(--c-bg); box-shadow: inset 0 0 0 1.5px var(--c-ink); }

.calw__legend,
.season__legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .375rem .875rem;
  margin: 1rem 0 0;
  color: var(--c-mute);
  font-size: .8125rem;
}

.calw__key { display: inline-block; width: .625rem; height: .625rem; margin-right: .1rem; border-radius: 50%; vertical-align: -1px; }

.calw__side {
  display: flex;
  flex-direction: column;
  max-height: 34rem;
  border-left: 1px solid var(--c-line);
  background: var(--c-gray);
}

.calw__side-h {
  margin: 0;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--c-line);
  color: var(--c-mute);
  font-size: .875rem;
}

.calw__side-h b { color: var(--c-ink); font-size: 1.125rem; }

.calw__reset,
.calw__jump {
  margin-left: .5rem;
  padding: .15rem .5rem;
  border: 1px solid var(--c-line-2);
  border-radius: 3px;
  background: var(--c-bg);
  font-size: .8125rem;
}

.calw__reset:hover,
.calw__jump:hover { border-color: var(--c-ink); }

.calw__list { flex: 1; margin: 0; padding: 0 1.25rem; list-style: none; overflow-y: auto; }

.calw__link {
  display: grid;
  grid-template-columns: 4.25rem minmax(0, 1fr);
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--c-line);
  color: inherit;
  text-decoration: none;
}

.calw__link:hover .calw__t { color: var(--c-red); text-decoration: underline; }

.calw__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: start;
  padding: .45rem .25rem .4rem;
  border-top: 3px solid var(--c-ink);
  background: var(--c-bg);
  color: var(--c-mute);
  font-size: .75rem;
  text-transform: uppercase;
}

.calw__item--swim .calw__date { border-top-color: var(--c-red); }
.calw__item--synchro .calw__date { border-top-color: #8d8d88; }
.calw__item--diving .calw__date { border-top-color: var(--c-line-2); }

.calw__date b { color: var(--c-ink); font: 700 1.25rem/1.1 var(--f-head); font-variant-numeric: tabular-nums; white-space: nowrap; }

.calw__info { display: flex; flex-direction: column; gap: .3rem; }
.calw__t { font-weight: 700; line-height: 1.3; }
.calw__p { color: var(--c-mute); font-size: .875rem; }
.calw__tags { display: flex; flex-wrap: wrap; gap: .375rem 1rem; }
.calw__empty { padding: 1.5rem 0; color: var(--c-mute); }
.calw__empty .calw__jump { display: block; margin: .75rem 0 0; padding: .5rem .75rem; }

@media (max-width: 900px) {
  .calw__body { grid-template-columns: minmax(0, 1fr); }
  .calw__side { border-left: 0; border-top: 1px solid var(--c-line); max-height: none; }
}

@media (max-width: 480px) {
  .calw__top,
  .calw__cal { padding-inline: .75rem; }
  .calw__nav { width: 100%; justify-content: space-between; }
  .calw__cell { min-height: 2.75rem; }
  .calw__n { width: 1.75rem; height: 1.75rem; }
}

/* =========================================================
   СОБЫТИЯ (без изображений)
   ========================================================= */
.afisha { margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--c-ink); }

.afisha__link {
  display: grid;
  grid-template-columns: 6rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.5rem;
  padding: 1.125rem .5rem;
  border-bottom: 1px solid var(--c-line);
  color: inherit;
  text-decoration: none;
  transition: background-color .15s;
}

.afisha__link:hover { background: var(--c-gray); color: inherit; }
.section--gray .afisha__link:hover { background: var(--c-bg); }

.afisha__date { display: flex; flex-direction: column; }
.afisha__day { font: 700 1.75rem/1 var(--f-head); font-variant-numeric: tabular-nums; white-space: nowrap; }
.afisha__mon { margin-top: .2rem; color: var(--c-mute); font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.afisha__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.afisha__title { display: block; margin: .4rem 0 .2rem; font-weight: 700; font-size: 1.0625rem; line-height: 1.35; }
.afisha__link:hover .afisha__title { color: var(--c-red); text-decoration: underline; }
.afisha__place { display: block; color: var(--c-mute); font-size: .875rem; }
.afisha__time { color: var(--c-mute); font-size: .9375rem; font-variant-numeric: tabular-nums; }

@media (max-width: 640px) {
  .afisha__link { grid-template-columns: 4.5rem minmax(0, 1fr); gap: .5rem 1rem; }
  .afisha__time { grid-column: 2; }
}

/* =========================================================
   СЛАЙДЕР ГАЛЕРЕЙ
   ========================================================= */
.slider__viewport {
  overflow: hidden;
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  touch-action: pan-y;
  user-select: none;
}

.slider__track {
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
  transform: translate3d(calc(var(--i, 0) * -100% + var(--drag, 0px)), 0, 0);
  transition: transform .5s var(--ease);
}

.slider__track.is-dragging { transition: none; }

.slide {
  flex: 0 0 100%;
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  min-height: clamp(20rem, 32vw, 26rem);
  background: var(--c-bg);
}

.slide__art { position: relative; overflow: hidden; background: var(--c-gray); }
.slide__art .art { position: absolute; inset: 0; }

.slide__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(1.25rem, 3vw, 2.25rem);
  border-left: 1px solid var(--c-line);
}

.slide__title { margin: .75rem 0 .625rem; font-size: clamp(1.375rem, 2.2vw, 1.875rem); }
.slide__text { max-width: 40ch; color: var(--c-mute); }
.slide__place { margin-bottom: 1.5rem; color: var(--c-mute); font-size: .875rem; }
.slide__btn { margin-top: auto; }

.slider__bar { display: flex; align-items: center; gap: .75rem; margin-top: 1rem; }

.slider__count {
  margin: 0;
  color: var(--c-mute);
  font-size: .9375rem;
  font-variant-numeric: tabular-nums;
}

.slider__count b { color: var(--c-ink); }

.slider__dots { flex: 1; display: flex; gap: .375rem; min-width: 0; }

.slider__dot {
  position: relative;
  flex: 1;
  max-width: 4rem;
  height: 1.25rem;
  padding: 0;
  border: 0;
  background: none;
}

.slider__dot::before,
.slider__dot::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: calc(50% - 1.5px);
  height: 3px;
  background: var(--c-line);
}

.slider__dot::after { background: var(--c-red); transform: scaleX(0); transform-origin: left; }
.slider__dot.is-done::after { transform: scaleX(1); background: var(--c-ink); }
.slider__dot.is-active::after { transform: scaleX(1); }
.slider.is-auto .slider__dot.is-active::after { animation: dot-progress 6.5s linear both; }
.slider.is-paused .slider__dot.is-active::after { animation-play-state: paused; }

@keyframes dot-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.slider__btn {
  position: relative;
  flex: none;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--c-line-2);
  border-radius: 3px;
  background: var(--c-bg);
  font-weight: 700;
  transition: border-color .15s, background-color .15s;
}

.slider__btn:hover { border-color: var(--c-ink); background: var(--c-gray); }

.slider__play span { position: absolute; inset: 0; }
.slider__play span::before,
.slider__play span::after {
  content: '';
  position: absolute;
  top: calc(50% - 6px);
  width: 3px;
  height: 12px;
  background: currentColor;
}
.slider__play span::before { left: calc(50% - 5px); }
.slider__play span::after { left: calc(50% + 2px); }
.slider__play.is-stopped span::before {
  left: calc(50% - 4px);
  width: 10px;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.slider__play.is-stopped span::after { display: none; }

@media (max-width: 760px) {
  .slide { grid-template-columns: minmax(0, 1fr); }
  .slide__art { aspect-ratio: 16 / 10; }
  .slide__body { border-left: 0; border-top: 1px solid var(--c-line); }
  .slider__bar { flex-wrap: wrap; }
  .slider__dots { order: 5; flex-basis: 100%; }
  .slider__count { margin-right: auto; }
}

/* =========================================================
   ДИСЦИПЛИНЫ И ПАРТНЁРЫ
   ========================================================= */
.disc-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
}

.disc-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  background: var(--c-bg);
  color: var(--c-ink);
  text-decoration: none;
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
}

.disc-card:hover { color: var(--c-ink); border-color: var(--c-line-2); box-shadow: var(--shadow); }

.disc-card__pic {
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 10;
  padding: 1.25rem;
  border-bottom: 3px solid var(--c-red);
  background: var(--c-gray);
}

.disc-card__pic svg { width: auto; max-width: 75%; max-height: 7.5rem; }
.disc-card__title { padding: 1.125rem 1.25rem 0; font: 700 1.375rem/1.2 var(--f-head); }
.disc-card:hover .disc-card__title { color: var(--c-red); }
.disc-card__text { padding: .5rem 1.25rem 0; color: var(--c-mute); font-size: .9375rem; }
.disc-card__meta { margin-top: auto; padding: 1rem 1.25rem 1.25rem; font-size: .8125rem; font-weight: 700; }

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

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

.partners {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.partner {
  display: grid;
  grid-template-columns: 3.25rem minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: .875rem;
  align-items: center;
  padding: 1.125rem;
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
}

.partner__mark {
  grid-row: span 2;
  display: grid;
  place-items: center;
  width: 3.25rem;
  height: 3.25rem;
  border: 1px solid var(--c-line-2);
  background: var(--c-gray);
  font: 700 .875rem/1 var(--f-head);
  letter-spacing: .02em;
}

.partner__name { font-weight: 700; font-size: .9375rem; line-height: 1.3; }
.partner__role { color: var(--c-mute); font-size: .8125rem; }

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

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

/* =========================================================
   ФЕДЕРАЦИЯ
   ========================================================= */
.fed-intro {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}

.fed-intro__text p { font-size: 1.0625rem; line-height: 1.7; }

.facts { margin: 0; border: 1px solid var(--c-line); border-top: 3px solid var(--c-red); border-radius: var(--radius); }
.facts__row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .75rem 1rem; }
.facts__row + .facts__row { border-top: 1px solid var(--c-line); }
.facts dt { color: var(--c-mute); font-size: .875rem; }
.facts dd { margin: 0; font: 700 1.5rem/1 var(--f-head); font-variant-numeric: tabular-nums; }

.timeline {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 2px solid var(--c-ink);
}

.timeline__item { position: relative; padding: 1.25rem 1.25rem 0 0; }

.timeline__item::before {
  content: '';
  position: absolute;
  left: 0;
  top: -.4rem;
  width: .7rem;
  height: .7rem;
  border-radius: 50%;
  background: var(--c-red);
}

.timeline__year { font: 700 1.5rem/1 var(--f-head); }
.timeline__item p { margin: .5rem 0 0; color: var(--c-mute); font-size: .9375rem; }

@media (max-width: 1024px) {
  .fed-intro { grid-template-columns: minmax(0, 1fr); }
  .timeline { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 1.5rem; }
}

@media (max-width: 560px) {
  .timeline { grid-template-columns: minmax(0, 1fr); border-top: 0; border-left: 2px solid var(--c-ink); }
  .timeline__item { padding: 0 0 1.25rem 1.25rem; }
  .timeline__item::before { left: -.45rem; top: .3rem; }
}

.fed-lead {
  display: grid;
  grid-template-columns: minmax(12rem, 18rem) minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: center;
}

.fed-lead__portrait { margin: 0; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--c-line); }
.fed-lead__portrait .portrait { width: 100%; height: auto; }
.fed-lead__quote { margin: 0; }
.fed-lead__quote p { max-width: 52ch; font: 400 clamp(1.25rem, 2vw, 1.5rem)/1.45 var(--f-head); }
.fed-lead__quote footer { margin-bottom: 1.25rem; color: var(--c-mute); }
.fed-lead__quote footer b { color: var(--c-ink); }

@media (max-width: 640px) {
  .fed-lead { grid-template-columns: minmax(0, 1fr); }
  .fed-lead__portrait { max-width: 14rem; }
}

/* мини-карточки новостей */
.mini-news {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}

.mini__link {
  display: flex;
  flex-direction: column;
  gap: .625rem;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.mini__link:hover { color: inherit; }
.mini__art { display: block; aspect-ratio: 16 / 9; border-radius: var(--radius); overflow: hidden; background: var(--c-gray); }
.mini__title { font-weight: 700; font-size: 1.0625rem; line-height: 1.35; }
.mini__link:hover .mini__title { color: var(--c-red); text-decoration: underline; }

@media (max-width: 900px) {
  .mini-news { grid-template-columns: minmax(0, 1fr); }
  .mini__link { display: grid; grid-template-columns: 9rem minmax(0, 1fr); align-items: start; column-gap: 1rem; }
  .mini__art { grid-row: span 2; }
}

/* =========================================================
   НОВОСТИ
   ========================================================= */
.news-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}

.ncard__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  background: var(--c-bg);
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
}

.ncard__link:hover { color: inherit; border-color: var(--c-line-2); box-shadow: var(--shadow); }
.ncard__art { display: block; aspect-ratio: 16 / 10; background: var(--c-gray); overflow: hidden; }
.ncard__body { display: flex; flex-direction: column; flex: 1; gap: .5rem; padding: 1.125rem 1.25rem 1.25rem; }
.ncard__title { font: 700 1.3125rem/1.2 var(--f-head); }
.ncard__link:hover .ncard__title { color: var(--c-red); }
.ncard__lead { color: var(--c-mute); font-size: .9375rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ncard__more { margin-top: auto; padding-top: .25rem; font-size: .875rem; font-weight: 700; }
.ncard__link:hover .ncard__more { text-decoration: underline; }

.ncard--lead { grid-column: 1 / -1; }
.ncard--lead .ncard__link { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
.ncard--lead .ncard__art { aspect-ratio: auto; min-height: 22rem; }
.ncard--lead .ncard__body { justify-content: center; padding: clamp(1.25rem, 3vw, 2.25rem); }
.ncard--lead .ncard__title { font-size: clamp(1.5rem, 2.4vw, 2rem); }
.ncard--lead .ncard__lead { -webkit-line-clamp: 5; font-size: 1rem; }

.ncard--wide { grid-column: span 2; }
.ncard--wide .ncard__link { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.ncard--wide .ncard__art { aspect-ratio: auto; min-height: 16rem; }

.ncard--text .ncard__link { background: var(--c-gray); border-top: 3px solid var(--c-red); }
.ncard__quote {
  display: block;
  padding: 1.25rem 1.25rem 0;
  color: var(--c-red);
  font: 700 2rem/1 var(--f-head);
  font-variant-numeric: tabular-nums;
}

@media (max-width: 1024px) {
  .news-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .news-list { grid-template-columns: minmax(0, 1fr); }
  .ncard--wide { grid-column: auto; }
  .ncard--lead .ncard__link,
  .ncard--wide .ncard__link { grid-template-columns: minmax(0, 1fr); }
  .ncard--lead .ncard__art,
  .ncard--wide .ncard__art { min-height: 0; aspect-ratio: 16 / 10; }
}

/* ---------- детальная новость ---------- */
.article__head {
  padding-block: 1.25rem 2.25rem;
  background: var(--c-gray);
  border-bottom: 1px solid var(--c-line);
}

.article__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem 1.25rem;
  margin: 1.75rem 0 .75rem;
  color: var(--c-mute);
  font-size: .875rem;
}

.article__title { max-width: 30ch; font-size: clamp(1.75rem, 3.2vw, 2.625rem); line-height: 1.12; }
.article__lead { max-width: 64ch; margin: 1rem 0 0; color: var(--c-mute); font-size: clamp(1.0625rem, 1.4vw, 1.1875rem); }

.article__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 19rem;
  gap: clamp(2rem, 5vw, 4rem);
  padding-block: clamp(2rem, 4vw, 3rem);
}

.article__cover { margin: 0 0 2rem; }
.article__cover .art { aspect-ratio: 16 / 9; height: auto; border-radius: var(--radius); }
.article__cover figcaption { margin-top: .5rem; color: var(--c-mute); font-size: .8125rem; }

.article__text { max-width: 70ch; }
.article__text p { font-size: 1.0625rem; line-height: 1.75; margin-bottom: 1.25em; }

.article__aside { display: flex; flex-direction: column; gap: 1rem; }

.factbox {
  position: sticky;
  top: var(--sticky-top);
  padding: 1.125rem 1.25rem 1.25rem;
  border: 1px solid var(--c-line);
  border-top: 3px solid var(--c-red);
  border-radius: var(--radius);
}

.factbox__h { margin: 0 0 .5rem; font: 700 1.125rem/1.3 var(--f-head); }
.factbox__dl { margin: 0 0 1rem; }
.factbox__dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; border-bottom: 1px solid var(--c-line); font-size: .875rem; }
.factbox__dl dt { color: var(--c-mute); }
.factbox__dl dd { margin: 0; text-align: right; font-weight: 700; }

.side-live {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .875rem 1rem;
  border-radius: var(--radius);
  background: var(--c-ink);
  color: #ffffff;
  font-weight: 700;
  text-decoration: none;
}

.side-live .live-dot { color: var(--c-red); }
.side-live b { margin-left: auto; color: var(--c-on-dark-mute); font-size: .75rem; letter-spacing: .08em; }
.side-live:hover { color: #ffffff; background: var(--c-ink-2); }

.pager {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem;
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--c-line);
}

.pager__link {
  display: flex;
  flex-direction: column;
  gap: .375rem;
  padding: 1rem 1.125rem;
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  text-decoration: none;
  transition: border-color .15s;
}

.pager__link--next { grid-column: 2; text-align: right; }
.pager__link:hover { border-color: var(--c-ink); color: inherit; }
.pager__dir { color: var(--c-mute); font-size: .8125rem; }
.pager__t { font-weight: 700; line-height: 1.35; }
.pager__link:hover .pager__t { color: var(--c-red); }

@media (max-width: 960px) {
  .article__grid { grid-template-columns: minmax(0, 1fr); }
  .factbox { position: static; }
}

@media (max-width: 560px) {
  .pager { grid-template-columns: minmax(0, 1fr); }
  .pager__link--next { grid-column: auto; }
}

.notfound { padding-block: 2.5rem 4rem; }
.notfound__code { margin: 0; color: var(--c-red); font: 700 3.5rem/1 var(--f-head); }
.notfound__title { margin: .75rem 0; font-size: clamp(1.75rem, 3vw, 2.25rem); }

/* =========================================================
   СОБЫТИЯ И СОРЕВНОВАНИЯ: детальные страницы
   ========================================================= */
.ev-next { margin-bottom: 2rem; }

.ev-next__link {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas: 'k k k' 'date title count';
  align-items: center;
  gap: .5rem 1.75rem;
  padding: 1.25rem 1.5rem;
  border: 1px solid var(--c-line);
  border-left: 4px solid var(--c-red);
  border-radius: var(--radius);
  background: var(--c-gray);
  text-decoration: none;
}

.ev-next__link:hover { color: inherit; border-color: var(--c-line-2); border-left-color: var(--c-red); }
.ev-next__k { grid-area: k; color: var(--c-red); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ev-next__date { grid-area: date; color: var(--c-mute); font-size: .875rem; text-transform: uppercase; }
.ev-next__date b { display: block; color: var(--c-ink); font: 700 2.25rem/1 var(--f-head); font-variant-numeric: tabular-nums; }
.ev-next__title { grid-area: title; font: 700 clamp(1.25rem, 2vw, 1.5rem)/1.25 var(--f-head); }
.ev-next__link:hover .ev-next__title { color: var(--c-red); text-decoration: underline; }
.ev-next__count { grid-area: count; color: var(--c-mute); font-size: .875rem; text-align: right; }
.ev-next__count b { display: block; color: var(--c-ink); font: 700 2rem/1 var(--f-head); }

@media (max-width: 640px) {
  .ev-next__link { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: 'k k' 'date count' 'title title'; }
}

.evd__head {
  padding-block: 1.25rem 2.25rem;
  background: var(--c-gray);
  border-bottom: 1px solid var(--c-line);
}

.evd__poster {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  margin-top: 1.75rem;
}

.evd__date {
  display: flex;
  flex-direction: column;
  min-width: 8.5rem;
  margin: 0;
  padding: 1rem 1.125rem;
  border: 1px solid var(--c-line);
  border-top: 3px solid var(--c-red);
  background: var(--c-bg);
}

.evd__day { font: 700 2.75rem/1 var(--f-head); font-variant-numeric: tabular-nums; white-space: nowrap; }
.evd__mon { margin-top: .25rem; font-weight: 700; }
.evd__dow { margin-top: .25rem; color: var(--c-mute); font-size: .875rem; }

.evd__type { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin: 0 0 .75rem; }

.evd__kind {
  padding: .15rem .5rem;
  border: 1px solid var(--c-ink);
  border-radius: 2px;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.evd__title { max-width: 30ch; font-size: clamp(1.625rem, 3vw, 2.375rem); line-height: 1.12; }
.evd__place { margin: .75rem 0 0; color: var(--c-mute); }

.evd__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 21rem;
  gap: clamp(2rem, 5vw, 4rem);
  padding-block: clamp(2rem, 4vw, 3rem);
}

.evd__sec { max-width: 70ch; margin-bottom: 2.5rem; }
.evd__sec p { font-size: 1.0625rem; line-height: 1.7; }

.evd__h {
  display: flex;
  align-items: baseline;
  gap: .625rem;
  margin-bottom: 1rem;
  padding-bottom: .625rem;
  border-bottom: 1px solid var(--c-line);
  font-size: 1.375rem;
}

.evd__h span { color: var(--c-red); font-size: .875rem; font-variant-numeric: tabular-nums; }

.evd__reg { padding: .875rem 1.125rem; border-left: 3px solid var(--c-red); background: var(--c-gray); }

.prog { margin: 0; padding: 0; list-style: none; }
.prog__item { display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--c-line); }
.prog__t { font-weight: 700; font-variant-numeric: tabular-nums; }

.evd__aside { display: flex; flex-direction: column; gap: 1rem; align-items: stretch; }

.countdown {
  display: flex;
  align-items: baseline;
  gap: .625rem;
  margin: 0;
  padding: 1rem 1.125rem;
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  background: var(--c-gray);
}

.countdown__n { color: var(--c-red); font: 700 2.5rem/1 var(--f-head); font-variant-numeric: tabular-nums; }
.countdown__l { color: var(--c-mute); font-size: .9375rem; }
.countdown--now { flex-direction: column; gap: .25rem; }
.countdown--now .countdown__n { color: var(--c-ink); font-size: 1.5rem; }

.info { margin: 0; border: 1px solid var(--c-line); border-radius: var(--radius); }
.info div { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: .75rem; padding: .625rem .875rem; font-size: .9375rem; }
.info div + div { border-top: 1px solid var(--c-line); }
.info dt { color: var(--c-mute); }
.info dd { margin: 0; }

.evd__ics { align-self: flex-start; }

.pdays { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.pday { padding: .875rem 1.125rem; border: 1px solid var(--c-line); border-radius: var(--radius); }
.pday__h { margin: 0 0 .5rem; color: var(--c-mute); font-size: .9375rem; }
.pday__h b { margin-right: .5rem; color: var(--c-ink); }
.pday ul { margin: 0; padding-left: 1.25rem; }
.pday li::marker { color: var(--c-red); }

.cald__docs { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; padding: 0; list-style: none; }

.cald__doc {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .5rem 1rem .5rem .5rem;
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  background: var(--c-bg);
  font-size: .9375rem;
  font-weight: 700;
  text-align: left;
  text-decoration: none;
  transition: border-color .15s;
}

.cald__doc:hover { border-color: var(--c-ink); color: var(--c-ink); }
.cald__doc .doc-ico { flex: none; width: 1.75rem; height: auto; }

.neighbors__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem; }

.nb {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .375rem;
  padding: 1.125rem 1.25rem;
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  background: var(--c-bg);
  text-decoration: none;
  transition: border-color .15s;
}

.nb--next { grid-column: 2; align-items: flex-end; text-align: right; }
.nb:hover { border-color: var(--c-ink); color: inherit; }
.nb__dir { color: var(--c-mute); font-size: .8125rem; }
.nb__date { font-size: .875rem; font-weight: 700; }
.nb__t { font: 700 1.25rem/1.25 var(--f-head); }
.nb:hover .nb__t { color: var(--c-red); }

@media (max-width: 960px) {
  .evd__grid { grid-template-columns: minmax(0, 1fr); }
  .evd__aside { max-width: 32rem; }
}

@media (max-width: 640px) {
  .evd__poster { grid-template-columns: minmax(0, 1fr); }
  .evd__date { align-self: flex-start; }
  .neighbors__grid { grid-template-columns: minmax(0, 1fr); }
  .nb--next { grid-column: auto; }
  .prog__item { grid-template-columns: 4.5rem minmax(0, 1fr); }
}

/* =========================================================
   СПОРТСМЕНЫ
   ========================================================= */
.athletes {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 17.5rem), 1fr));
  gap: 1.5rem;
}

.acard {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  background: var(--c-bg);
  overflow: hidden;
}

.acard__top {
  position: relative;
  display: grid;
  grid-template-columns: 58% 1fr;
  border-bottom: 3px solid var(--c-red);
  background: var(--c-gray);
}

.acard__pic .portrait { width: 100%; height: auto; }

.acard__rank {
  position: absolute;
  right: .75rem;
  top: .75rem;
  padding: .2rem .5rem;
  border: 1px solid var(--c-ink);
  border-radius: 2px;
  background: var(--c-bg);
  font: 700 .9375rem/1.2 var(--f-head);
}

.acard__rank--ms { background: var(--c-ink); color: #ffffff; }
.acard__rank--r { font-size: .75rem; }

.acard__fig { align-self: end; padding: 0 .75rem .75rem; }
.acard__fig .fig { width: 100%; height: auto; max-height: 5.5rem; }

.acard__body { display: flex; flex-direction: column; flex: 1; gap: .5rem; padding: 1rem 1.125rem 1.125rem; }
.acard__tags { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin: 0; }
.acard__born { color: var(--c-mute); font-size: .8125rem; }
.acard__name { font-size: 1.375rem; line-height: 1.15; }
.acard__name span { display: block; }
.acard__spec { margin: 0; color: var(--c-mute); font-size: .875rem; }
.acard__dl { margin: 0; font-size: .875rem; }
.acard__dl div { display: flex; gap: .5rem; }
.acard__dl dt { min-width: 3.5rem; color: var(--c-mute); }
.acard__dl dd { margin: 0; }
.acard__best { margin: .25rem 0 0; padding: 0; list-style: none; border-top: 1px solid var(--c-line); }
.acard__best li { display: flex; justify-content: space-between; align-items: baseline; gap: .75rem; padding: .375rem 0; border-bottom: 1px solid var(--c-gray-2); font-size: .875rem; }
.acard__best b { font-size: 1rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.acard__note { margin: auto 0 0; padding-top: .25rem; color: var(--c-mute); font-size: .8125rem; }

/* =========================================================
   ДОКУМЕНТЫ
   ========================================================= */
.docs {
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  background: var(--c-bg);
}

.doc {
  display: grid;
  grid-template-columns: 2rem 2.25rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: .875rem 1.125rem;
}

.doc + .doc { border-top: 1px solid var(--c-line); }
.doc:hover { background: var(--c-gray); }
.doc__n { color: var(--c-mute); font-size: .8125rem; font-variant-numeric: tabular-nums; }
.doc__ico .doc-ico { width: 2.25rem; height: auto; }
.doc__main { display: flex; flex-direction: column; gap: .3rem; }
.doc__title { font-weight: 700; line-height: 1.35; }
.doc__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem 1rem; color: var(--c-mute); font-size: .8125rem; }

@media (max-width: 640px) {
  .doc { grid-template-columns: 2.25rem minmax(0, 1fr); gap: .75rem; }
  .doc__n { display: none; }
  .doc__dl { grid-column: 2; justify-self: start; }
}

/* =========================================================
   УСТАВ
   ========================================================= */
.charter {
  display: grid;
  grid-template-columns: 18rem minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}

.charter__aside { position: sticky; top: var(--sticky-top); }

.toc {
  max-height: calc(100vh - var(--sticky-top) - 1.5rem);
  padding: 1rem;
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  overflow-y: auto;
}

.toc__title { margin: 0 0 .5rem; color: var(--c-mute); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.toc__list { margin: 0 0 1rem; padding: 0; list-style: none; }

.toc__list a {
  display: grid;
  grid-template-columns: 1.75rem minmax(0, 1fr);
  padding: .375rem .5rem;
  border-left: 2px solid transparent;
  font-size: .875rem;
  line-height: 1.35;
  text-decoration: none;
}

.toc__list a span { color: var(--c-mute); font-variant-numeric: tabular-nums; }
.toc__list a:hover { background: var(--c-gray); color: var(--c-ink); }
.toc__list a.is-active { border-left-color: var(--c-red); background: var(--c-gray); font-weight: 700; }

.charter__intro { margin-bottom: 1rem; padding: .875rem 1.125rem; border-left: 3px solid var(--c-red); background: var(--c-gray); color: var(--c-mute); font-size: .9375rem; }
.charter__sec { padding-top: 1.75rem; scroll-margin-top: var(--sticky-top); }
.charter__h { display: flex; gap: .5rem; margin-bottom: .875rem; padding-bottom: .5rem; border-bottom: 1px solid var(--c-line); font-size: 1.5rem; }
.charter__num { color: var(--c-red); }
.charter__list { margin: 0; padding: 0; list-style: none; }
.charter__list li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: .5rem; padding: .375rem 0; }
.charter__pt { color: var(--c-mute); font-size: .9375rem; font-variant-numeric: tabular-nums; line-height: 1.7; }
.charter__list p { margin: 0; max-width: 72ch; line-height: 1.7; }

@media (max-width: 960px) {
  .charter { grid-template-columns: minmax(0, 1fr); }
  .charter__aside { position: static; }
  .toc { max-height: none; }
}

/* =========================================================
   ПРЕЗИДИУМ
   ========================================================= */
.presidium {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}

.pcard {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
  background: var(--c-bg);
  overflow: hidden;
}

.pcard__pic .portrait { width: 100%; height: auto; }
.pcard__body { display: flex; flex-direction: column; flex: 1; gap: .5rem; padding: 1.125rem 1.25rem 1.25rem; }
.pcard__role { margin: 0; color: var(--c-red); font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.pcard__name { font-size: 1.5rem; line-height: 1.15; }
.pcard__name span { display: block; font-size: 1.0625rem; font-weight: 400; }
.pcard__bio { margin: 0; color: var(--c-mute); font-size: .9375rem; }
.pcard__mail { margin-top: auto; padding-top: .25rem; font-size: .875rem; }
.pcard__no { position: absolute; right: .75rem; top: .625rem; color: var(--c-mute); font-size: .75rem; font-weight: 700; }

.pcard--lead { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(14rem, 20rem) minmax(0, 1fr); border-top: 3px solid var(--c-red); }
.pcard--lead .pcard__body { justify-content: center; padding: clamp(1.25rem, 4vw, 3rem); }
.pcard--lead .pcard__name { font-size: clamp(1.75rem, 3vw, 2.375rem); }
.pcard--lead .pcard__name span { font-size: 1.25rem; }
.pcard--lead .pcard__bio { max-width: 56ch; font-size: 1.0625rem; }
.pcard--lead .pcard__mail { margin-top: .5rem; }

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

@media (max-width: 640px) {
  .presidium { grid-template-columns: minmax(0, 1fr); }
  .pcard--lead { grid-template-columns: minmax(0, 1fr); }
}

/* =========================================================
   КОНТАКТЫ
   ========================================================= */
.contacts { display: grid; gap: 2rem; }

.contacts__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.ccard { padding: 1.25rem; border: 1px solid var(--c-line); border-top: 3px solid var(--c-red); border-radius: var(--radius); }
.ccard p { margin-bottom: .625rem; }
.ccard a { font-weight: 700; }
.ccard__h { margin-bottom: .75rem; font-size: 1.25rem; }
.ccard__small { color: var(--c-mute); font-size: .875rem; }

.map { margin: 0; border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; }
.map__svg { width: 100%; height: clamp(18rem, 34vw, 28rem); }
.map__bg { fill: var(--c-gray); }
.map__park { fill: var(--c-gray-2); }
.map__river { fill: none; stroke: #7e9db2; stroke-width: 14; stroke-linecap: round; }
.map__streets path { fill: none; stroke: #ffffff; stroke-width: 8; }
.map__avenue { fill: none; stroke: #ffffff; stroke-width: 18; }
.map__rail { fill: none; stroke: #8d8d88; stroke-width: 5; }
.map__rail-dash { fill: none; stroke: #ffffff; stroke-width: 2; stroke-dasharray: 10 10; }
.map__labels text { font: 400 15px var(--f-text); fill: var(--c-mute); }
.map__poi circle { fill: #8d8d88; }
.map__poi text { font: 700 15px var(--f-text); fill: var(--c-ink); }
.map__pin-ring { fill: #ffffff; stroke: var(--c-red); stroke-width: 6; }
.map__pin-core { fill: var(--c-red); }
.map__pin-label { fill: var(--c-ink); }
.map__pin-text { font: 700 24px var(--f-head); fill: #ffffff; }
.map__pin-leg { stroke: var(--c-ink); stroke-width: 3; }
.map__compass circle { fill: #ffffff; stroke: var(--c-line-2); stroke-width: 2; }
.map__compass path { fill: var(--c-ink); }
.map__compass text { font: 700 14px var(--f-text); fill: var(--c-ink); }
.map__cap { padding: .625rem 1rem; border-top: 1px solid var(--c-line); color: var(--c-mute); font-size: .875rem; }

.contacts__bottom {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: clamp(1.75rem, 4vw, 3rem);
  align-items: start;
}

.form { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-bg); }
.form__h { font-size: 1.625rem; }
.form__note { margin: .375rem 0 1.25rem; color: var(--c-mute); font-size: .875rem; }
.form__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; }

.field { display: flex; flex-direction: column; gap: .3rem; margin-bottom: 1rem; }
.field__label { font-size: .875rem; font-weight: 700; }

.field__input {
  width: 100%;
  padding: .625rem .75rem;
  border: 1px solid var(--c-line-2);
  border-radius: 3px;
  background: var(--c-bg);
  font-size: 1rem;
  line-height: 1.4;
  transition: border-color .15s;
}

.field__input:focus { outline: 2px solid var(--c-red); outline-offset: 0; border-color: var(--c-ink); }
textarea.field__input { resize: vertical; min-height: 8rem; }
.field__err { min-height: 1em; color: var(--c-red); font-size: .8125rem; }
.is-error .field__input { border-color: var(--c-red); background: var(--c-red-soft); }

.check { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: 1rem; font-size: .9375rem; cursor: pointer; }
.check input { width: 1.125rem; height: 1.125rem; accent-color: var(--c-red); }
.check .field__err { flex-basis: 100%; }

.form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; }
.form__status { margin: 0; max-width: 46ch; font-size: .9375rem; }
.form__status.is-ok { padding: .5rem .75rem; border-left: 3px solid var(--c-ink); background: var(--c-gray); }
.form__status.is-bad { color: var(--c-red); font-weight: 700; }

.reqs { padding: clamp(1.25rem, 3vw, 1.75rem); border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-bg); }
.reqs__h { margin-bottom: .5rem; font-size: 1.375rem; }
.reqs__list { margin: 0; }
.reqs__list div { padding: .5rem 0; border-bottom: 1px solid var(--c-line); }
.reqs__list dt { color: var(--c-mute); font-size: .8125rem; }
.reqs__list dd { margin: .15rem 0 0; font-size: .9375rem; font-variant-numeric: tabular-nums; }

@media (max-width: 900px) {
  .contacts__cards,
  .contacts__bottom { grid-template-columns: minmax(0, 1fr); }
}

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

/* =========================================================
   СОРЕВНОВАНИЯ · РЕЗУЛЬТАТЫ: списки
   ========================================================= */
.starts,
.protos,
.fresh-rec { margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--c-ink); }

.starts__link {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: .875rem 0;
  border-bottom: 1px solid var(--c-line);
  text-decoration: none;
}

.starts__link:hover .starts__title { color: var(--c-red); text-decoration: underline; }

.starts__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: .4rem .25rem;
  border-top: 3px solid var(--c-ink);
  background: var(--c-bg);
  color: var(--c-mute);
  font-size: .75rem;
  text-transform: uppercase;
}

.section--gray .starts__date { background: var(--c-bg); }
.starts__date b { color: var(--c-ink); font: 700 1.25rem/1.1 var(--f-head); white-space: nowrap; font-variant-numeric: tabular-nums; }
.starts__main { display: flex; flex-direction: column; gap: .3rem; }
.starts__title { font-weight: 700; line-height: 1.35; }
.starts__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .75rem; color: var(--c-mute); font-size: .8125rem; }

.protos__link {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: 1rem;
  align-items: baseline;
  padding: .875rem 0;
  border-bottom: 1px solid var(--c-line);
  text-decoration: none;
}

.protos__n { color: var(--c-mute); font-size: .8125rem; font-variant-numeric: tabular-nums; }
.protos__main { display: flex; flex-direction: column; gap: .3rem; }
.protos__title { font-weight: 700; line-height: 1.35; }
.protos__link:hover .protos__title { color: var(--c-red); text-decoration: underline; }
.protos__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .75rem; color: var(--c-mute); font-size: .8125rem; }

@media (max-width: 560px) {
  .starts__link { grid-template-columns: 4rem minmax(0, 1fr); }
  .starts__link .status { grid-column: 2; }
}

.fresh-rec__item {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr);
  align-items: baseline;
  gap: 1rem;
  padding: .75rem 0;
  border-bottom: 1px solid var(--c-line);
}

.fresh-rec__time { font: 700 1.5rem/1 var(--f-head); font-variant-numeric: tabular-nums; }
.fresh-rec__main { display: flex; flex-direction: column; gap: .15rem; }
.fresh-rec__ev { font-weight: 700; }
.fresh-rec__who { color: var(--c-mute); font-size: .875rem; }

.tiles--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 1024px) {
  .tiles--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .tiles--4 { grid-template-columns: minmax(0, 1fr); }
}

/* =========================================================
   РЕКОРДЫ
   ========================================================= */
.rec-switch { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-bottom: 1.75rem; }
.rec-switch__legend { display: flex; align-items: center; gap: .5rem; margin: 0 0 0 auto; color: var(--c-mute); font-size: .875rem; }

.honor { border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; }

.honor__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .5rem 1.5rem;
  padding: 1.125rem 1.25rem;
  border-bottom: 2px solid var(--c-ink);
}

.honor__title { font-size: 1.5rem; }
.honor__sub { margin: 0; color: var(--c-mute); font-size: .9375rem; }

.honor__table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }

.honor__table thead th {
  padding: .625rem 1rem;
  border-bottom: 1px solid var(--c-line);
  background: var(--c-gray);
  color: var(--c-mute);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-align: left;
  text-transform: uppercase;
}

.honor__row td,
.honor__row th { padding: .75rem 1rem; border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: middle; }
.honor__row:last-child td,
.honor__row:last-child th { border-bottom: 0; }
.honor__row:hover { background: var(--c-gray); }
.honor__row.is-new { background: var(--c-red-soft); }

.honor__n { width: 3.5rem; color: var(--c-mute); font-size: .875rem; }
.honor__ev { font-weight: 700; }
.honor__time { font: 700 1.375rem/1 var(--f-head); white-space: nowrap; }
.honor__who b { display: block; }
.honor__who span,
.honor__when span { display: block; color: var(--c-mute); font-size: .8125rem; }
.honor__when { white-space: nowrap; }

@media (max-width: 760px) {
  .honor__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .honor__table,
  .honor__table tbody { display: block; }
  .honor__row { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr) auto; gap: .2rem .75rem; padding: .75rem 1rem; border-bottom: 1px solid var(--c-line); }
  .honor__row td,
  .honor__row th { padding: 0; border: 0; }
  .honor__n { grid-row: span 3; width: auto; }
  .honor__who,
  .honor__when { grid-column: 2 / -1; white-space: normal; }
  .honor__time { text-align: right; }
  .rec-switch__legend { margin-left: 0; }
}

/* =========================================================
   КАЛЕНДАРИ: расписание по месяцам
   ========================================================= */
.sched__month { display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: 1.5rem; margin-bottom: 2.25rem; }

.sched__mh { position: sticky; top: var(--sticky-top); align-self: start; display: flex; flex-direction: column; gap: .25rem; }
.sched__mname { font-size: 1.625rem; text-transform: capitalize; }
.sched__my { color: var(--c-mute); font: 400 1rem/1 var(--f-text); }
.sched__mc { margin-top: .25rem; color: var(--c-mute); font: 400 .8125rem/1 var(--f-text); }
.sched__mc::after { content: ' соревн.'; }

.sched__list { margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--c-ink); }

.sched__link {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr) auto;
  gap: 1.25rem;
  align-items: start;
  padding: 1rem .5rem;
  border-bottom: 1px solid var(--c-line);
  text-decoration: none;
  transition: background-color .15s;
}

.sched__link:hover { background: var(--c-gray); color: inherit; }
.sched__link:hover .sched__title { color: var(--c-red); text-decoration: underline; }

.sched__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: .45rem .25rem;
  border-top: 3px solid var(--c-ink);
  background: var(--c-gray);
  color: var(--c-mute);
  font-size: .75rem;
  text-transform: uppercase;
}

.sched__item--swim .sched__date { border-top-color: var(--c-red); }
.sched__item--synchro .sched__date { border-top-color: #8d8d88; }
.sched__item--diving .sched__date { border-top-color: var(--c-line-2); }
.sched__date b { color: var(--c-ink); font: 700 1.375rem/1.1 var(--f-head); white-space: nowrap; font-variant-numeric: tabular-nums; }

.sched__main { display: flex; flex-direction: column; gap: .3rem; }
.sched__tags { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem 1rem; }
.sched__title { font-weight: 700; font-size: 1.0625rem; line-height: 1.35; }
.sched__place { font-size: .9375rem; }
.sched__age { color: var(--c-mute); font-size: .8125rem; }
.sched__side { display: flex; flex-direction: column; align-items: flex-end; gap: .375rem; }
.sched__when { color: var(--c-mute); font-size: .8125rem; white-space: nowrap; }

@media (max-width: 860px) {
  .sched__month { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .sched__mh { position: static; flex-direction: row; align-items: baseline; gap: .75rem; }
  .sched__mc { margin: 0 0 0 auto; }
}

@media (max-width: 560px) {
  .sched__link { grid-template-columns: 4.5rem minmax(0, 1fr); gap: .75rem; }
  .sched__side { grid-column: 2; flex-direction: row; align-items: center; }
}

/* график сезона */
.season { padding: clamp(1rem, 3vw, 1.75rem); border: 1px solid var(--c-line); border-radius: var(--radius); }

.season__chart {
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  gap: clamp(.375rem, 1.2vw, 1rem);
  align-items: end;
  height: 16rem;
  border-bottom: 1px solid var(--c-ink);
}

.season__col { display: flex; flex-direction: column; justify-content: flex-end; height: 100%; gap: .375rem; }
.season__total { text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; }
.season__bar { display: flex; flex-direction: column-reverse; height: calc(var(--h, 0) * 12rem); min-height: 2px; }
.season__seg { display: block; flex: var(--n, 1) 1 0; border-top: 1px solid #ffffff; }
.season__seg--swim { background: var(--c-red); }
.season__seg--polo { background: var(--c-ink); }
.season__seg--synchro { background: #8d8d88; }
.season__seg--diving { background: var(--c-gray-2); box-shadow: inset 0 0 0 1px var(--c-line-2); }
.season__m { position: relative; top: 2.125rem; margin-top: -1.625rem; color: var(--c-mute); text-align: center; font-size: .8125rem; }
.season__m small { display: block; font-size: .6875rem; }
.season__legend { margin-top: 3rem; }

/* =========================================================
   СУДЬИ
   ========================================================= */
.jstats {
  display: grid;
  grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
  gap: clamp(1.25rem, 4vw, 3rem);
  align-items: center;
  margin-bottom: 2rem;
  padding: 1.25rem 1.5rem;
  border: 1px solid var(--c-line);
  border-radius: var(--radius);
}

.jstats__total { margin: 0; color: var(--c-mute); }
.jstats__total b { display: block; color: var(--c-ink); font: 700 3rem/1 var(--f-head); }

.jstats__bars { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.jstats__row { display: grid; grid-template-columns: 2.5rem minmax(9rem, 1fr) minmax(5rem, 1.2fr) 1.75rem; gap: .75rem; align-items: center; }
.jstats__row .jbadge { width: 2.25rem; height: 2.25rem; font-size: .8125rem; }
.jstats__name { font-size: .875rem; }
.jstats__bar { height: .5rem; background: var(--c-gray-2); }
.jstats__bar i { display: block; height: 100%; background: var(--c-red); transform-origin: left; transform: scaleX(var(--w, 0)); }
.jstats__n { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }

.jbadge {
  display: grid;
  place-items: center;
  flex: none;
  width: 3rem;
  height: 3rem;
  border: 1px solid var(--c-ink);
  border-radius: 3px;
  background: var(--c-bg);
  font: 700 1rem/1 var(--f-head);
}

.jbadge--vk { background: var(--c-red); border-color: var(--c-red); color: #ffffff; }
.jbadge--k1 { background: var(--c-ink); color: #ffffff; }
.jbadge--k3 { background: var(--c-gray-2); border-color: var(--c-line-2); }
.jbadge--ys { border-style: dashed; color: var(--c-mute); }

.judges { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2.5rem; border-top: 2px solid var(--c-ink); }

.judge {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  padding: 1rem 0;
  border-bottom: 1px solid var(--c-line);
}

.judge__name { font-size: 1.25rem; line-height: 1.2; }
.judge__name span { font-weight: 400; }
.judge__role { margin: .25rem 0 .375rem; font-size: .9375rem; }
.judge__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem 1rem; margin: 0; color: var(--c-mute); font-size: .8125rem; }

@media (max-width: 900px) {
  .jstats,
  .judges { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 480px) {
  .jstats__row { grid-template-columns: 2.5rem minmax(0, 1fr) 1.75rem; }
  .jstats__bar { grid-column: 2; grid-row: 2; }
  .jstats__n { grid-row: span 2; }
}

/* =========================================================
   ГАЛЕРЕЯ
   ========================================================= */
.albums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }

.album__link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.album__link:hover { color: inherit; }

.album__art {
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--c-gray);
}

.album__art .art { transition: transform .5s var(--ease); }
.album__link:hover .art { transform: scale(1.03); }

.album__count {
  position: absolute;
  left: .75rem;
  bottom: .75rem;
  padding: .2rem .5rem;
  border-radius: 2px;
  background: rgba(18, 18, 18, .82);
  color: #ffffff;
  font-size: .75rem;
}

.album__count b { margin-right: .25rem; }
.album__body { display: flex; flex-direction: column; gap: .375rem; padding-top: .875rem; }
.album__title { font: 700 1.25rem/1.25 var(--f-head); }
.album__link:hover .album__title { color: var(--c-red); text-decoration: underline; }
.album__place { color: var(--c-mute); font-size: .875rem; }

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

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

.gd { padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.gd__head { margin-bottom: 2rem; padding-block: 1.25rem 2rem; background: var(--c-gray); border-bottom: 1px solid var(--c-line); }
.gd__top { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: end; margin-top: 1.75rem; }
.gd__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem 1rem; margin: 0 0 .75rem; color: var(--c-mute); font-size: .875rem; }
.gd__title { max-width: 30ch; font-size: clamp(1.75rem, 3.2vw, 2.5rem); line-height: 1.12; }
.gd__text { max-width: 62ch; margin: .75rem 0 0; color: var(--c-mute); }
.gd__side { display: flex; flex-direction: column; align-items: flex-end; gap: .75rem; }
.gd__count { margin: 0; color: var(--c-mute); }
.gd__count b { color: var(--c-ink); font: 700 2rem/1 var(--f-head); }

@media (max-width: 760px) {
  .gd__top { grid-template-columns: minmax(0, 1fr); }
  .gd__side { flex-direction: row; align-items: center; justify-content: space-between; }
}

.photos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.photo--lead { grid-column: span 2; grid-row: span 2; }

.photo__btn {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 9rem;
  aspect-ratio: 16 / 10;
  padding: 0;
  border: 0;
  border-radius: var(--radius);
  background: var(--c-gray);
  overflow: hidden;
  cursor: zoom-in;
}

.photo--lead .photo__btn { aspect-ratio: auto; }
.photo__btn .art { position: absolute; inset: 0; transition: transform .5s var(--ease); }
.photo__btn:hover .art { transform: scale(1.03); }

.photo__cap {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem .75rem;
  background: rgba(18, 18, 18, .8);
  color: #ffffff;
  font-size: .8125rem;
  text-align: left;
  opacity: 0;
  transition: opacity .2s;
}

.photo__cap b { color: var(--c-on-dark-mute); font-weight: 400; font-variant-numeric: tabular-nums; }
.photo__btn:hover .photo__cap,
.photo__btn:focus-visible .photo__cap { opacity: 1; }

@media (max-width: 760px) {
  .photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .photo__cap { opacity: 1; font-size: .75rem; padding: .375rem .5rem; }
}

/* лайтбокс */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  place-items: center;
  padding: 4rem clamp(1rem, 7vw, 6rem) 1.5rem;
  background: rgba(18, 18, 18, .95);
  color: #ffffff;
  opacity: 0;
  transition: opacity .2s;
}

.lightbox[hidden] { display: none; }
.lightbox.is-open { opacity: 1; }
.lightbox__stage { display: grid; place-items: center; width: 100%; height: 100%; touch-action: pan-y; }

.lightbox__img {
  width: min(100%, 72rem, calc((100vh - 12rem) * 1.6));
  aspect-ratio: 16 / 10;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--c-ink-2);
  animation: lb-in .25s var(--ease);
}

@keyframes lb-in { from { opacity: 0; } }

.lightbox__cap { display: flex; align-items: center; gap: 1rem; margin: 1rem 0 0; color: var(--c-on-dark); font-size: .9375rem; text-align: center; }
.lightbox__cap b { color: var(--c-on-dark-mute); font-weight: 400; font-variant-numeric: tabular-nums; }

.lightbox__btn,
.lightbox__close {
  position: absolute;
  width: 3rem;
  height: 3rem;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 3px;
  background: rgba(18, 18, 18, .6);
  color: #ffffff;
  font-size: 1.25rem;
  transition: border-color .15s, background-color .15s;
}

.lightbox__btn:hover,
.lightbox__close:hover { border-color: #ffffff; background: var(--c-ink-2); }
.lightbox__btn--prev { left: clamp(.5rem, 2vw, 1.75rem); top: 50%; transform: translateY(-50%); }
.lightbox__btn--next { right: clamp(.5rem, 2vw, 1.75rem); top: 50%; transform: translateY(-50%); }
.lightbox__close { right: clamp(.5rem, 2vw, 1.75rem); top: .75rem; font-size: 1.75rem; line-height: 1; }

@media (max-width: 640px) {
  .lightbox { padding: 4rem .75rem 5.5rem; }
  .lightbox__btn { top: auto; bottom: 1rem; transform: none; }
  .lightbox__cap { flex-direction: column; gap: .25rem; font-size: .875rem; }
}

/* =========================================================
   ТЕКУЩЕЕ СОРЕВНОВАНИЕ НА ГЛАВНОЙ
   ========================================================= */
.livebox { padding-block: clamp(2.5rem, 5vw, 3.75rem); background: var(--c-ink); color: var(--c-on-dark); }

.livebox__grid {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}

.livebox__k {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin: 0 0 .75rem;
  color: #ffffff;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.livebox__k .live-dot { color: var(--c-red); }
.livebox__title { max-width: 26ch; color: #ffffff; font-size: clamp(1.625rem, 2.8vw, 2.25rem); }
.livebox__lead { margin: .75rem 0 1.5rem; color: var(--c-on-dark-mute); max-width: 52ch; }
.livebox__h { margin: 0 0 .5rem; color: var(--c-on-dark-mute); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.livebox__list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, .2); }

.livebox__item {
  display: grid;
  grid-template-columns: 3.75rem minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 1rem;
  padding: .75rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.livebox__time { grid-row: span 2; color: #ffffff; font: 700 1.25rem/1.2 var(--f-head); font-variant-numeric: tabular-nums; }
.livebox__ev { color: #ffffff; font-weight: 700; }
.livebox__who { color: var(--c-on-dark-mute); font-size: .8125rem; }
.livebox__item:first-child .livebox__time { color: #ffb4ae; }

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

/* =========================================================
   РЕЗУЛЬТАТЫ: карточка соревнования
   ========================================================= */
.meet-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.25rem 2rem;
  align-items: start;
  margin-bottom: 1.75rem;
  padding: clamp(1.125rem, 2.5vw, 1.75rem);
  border: 1px solid var(--c-line);
  border-top: 3px solid var(--c-ink);
  border-radius: var(--radius);
  background: var(--c-bg);
}

.meet-card--live { border-top-color: var(--c-red); }

.meet-card__k { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin: 0 0 .625rem; color: var(--c-mute); font-size: .875rem; }
.meet-card__title { max-width: 34ch; font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.15; }
.meet-card__title a { text-decoration: none; }
.meet-card__title a:hover { color: var(--c-red); text-decoration: underline; }
.meet-card__meta { margin: .5rem 0 0; color: var(--c-mute); }
.meet-card__upd { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem 1rem; margin: .5rem 0 0; font-size: .875rem; }

.meet-card__stats { display: flex; margin: 0; border: 1px solid var(--c-line); border-radius: var(--radius); }
.meet-card__stats div { min-width: 6.5rem; padding: .625rem .875rem; }
.meet-card__stats div + div { border-left: 1px solid var(--c-line); }
.meet-card__stats dt { color: var(--c-mute); font-size: .75rem; }
.meet-card__stats dd { margin: .2rem 0 0; font: 700 1.5rem/1 var(--f-head); font-variant-numeric: tabular-nums; }
.meet-card__stats small { color: var(--c-mute); font: 400 .875rem var(--f-text); }

.meet-card__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .625rem; padding-top: 1rem; border-top: 1px solid var(--c-line); }
.meet-card__actions .btn { gap: .4rem; }

.mstate {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .15rem .55rem;
  border-radius: 2px;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.mstate--live { background: var(--c-red); color: #ffffff; }
.mstate--live::before { content: ''; width: .45rem; height: .45rem; border-radius: 50%; background: #ffffff; }
.mstate--done { background: var(--c-gray-2); color: var(--c-ink); }
.mstate--soon { box-shadow: inset 0 0 0 1px var(--c-ink); color: var(--c-ink); }

.sync { display: inline-flex; align-items: center; gap: .4rem; color: var(--c-mute); }
.sync__dot { width: .5rem; height: .5rem; border-radius: 50%; background: var(--c-red); }

.mark-demo {
  display: inline-block;
  padding: .1rem .45rem;
  border: 1px dashed var(--c-line-2);
  border-radius: 2px;
  color: var(--c-mute);
  font-size: .75rem;
}

.link-btn {
  padding: 0;
  border: 0;
  background: none;
  color: var(--c-ink);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.link-btn:hover { color: var(--c-red); }
.status--live { color: var(--c-red); }

@media (max-width: 860px) {
  .meet-card { grid-template-columns: minmax(0, 1fr); }
  .meet-card__stats { flex-wrap: wrap; }
  .meet-card__stats div { flex: 1; }
}

/* =========================================================
   РЕЗУЛЬТАТЫ: вкладки, фильтры, сессии
   ========================================================= */
.meet-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: .5rem 1.5rem;
  border-bottom: 2px solid var(--c-ink);
}

.meet-tabs { display: flex; flex-wrap: wrap; }

.meet-tabs__btn {
  margin-bottom: -2px;
  padding: .75rem 1.125rem;
  border: 0;
  border-bottom: 3px solid transparent;
  background: none;
  color: var(--c-mute);
  font: 700 1.0625rem/1.2 var(--f-head);
  letter-spacing: .02em;
}

.meet-tabs__btn:hover { color: var(--c-ink); }
.meet-tabs__btn.is-active { border-bottom-color: var(--c-red); color: var(--c-ink); }
.meet-count { margin: 0 0 .625rem; color: var(--c-mute); font-size: .875rem; }
.meet-count b { color: var(--c-ink); }

.meet-filters { display: flex; flex-wrap: wrap; align-items: center; gap: .625rem 1rem; padding: 1rem 0; border-bottom: 1px solid var(--c-line); }

.day-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.25rem 0 .5rem; }

.day-tabs__btn {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 8rem;
  padding: .5rem .875rem;
  border: 1px solid var(--c-line-2);
  border-radius: 3px;
  background: var(--c-bg);
  font-weight: 700;
  text-align: left;
}

.day-tabs__btn small { color: var(--c-mute); font-size: .75rem; font-weight: 400; }
.day-tabs__btn:hover { border-color: var(--c-ink); }
.day-tabs__btn.is-active { background: var(--c-ink); border-color: var(--c-ink); color: #ffffff; }
.day-tabs__btn.is-active small { color: var(--c-on-dark-mute); }

.session { margin-top: 1.75rem; }

.session__h {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .25rem .75rem;
  margin-bottom: .625rem;
  font-size: 1.25rem;
}

.session__n { color: var(--c-red); }

/* таблица протоколов */
.proto { width: 100%; table-layout: fixed; border-collapse: collapse; border: 1px solid var(--c-line); font-variant-numeric: tabular-nums; }
.proto th:nth-child(1) { width: 3.25rem; }
.proto th:nth-child(2) { width: 4.5rem; }
.proto th:nth-child(3) { width: 6.75rem; }
.proto th:nth-child(5) { width: 11.5rem; }
.proto th:nth-child(6) { width: 6.5rem; }
.proto th:nth-child(7) { width: 13rem; }
.proto th:nth-child(8) { width: 12.5rem; }

.proto thead th {
  padding: .5rem .75rem;
  border-bottom: 1px solid var(--c-line);
  background: var(--c-gray);
  color: var(--c-mute);
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}

.proto td { padding: .55rem .75rem; border-bottom: 1px solid var(--c-line); vertical-align: middle; font-size: .9375rem; }
.proto__n { color: var(--c-mute); }
.proto__time { font-weight: 700; }
.proto__g { white-space: nowrap; }
.proto__round,
.proto__age { color: var(--c-mute); font-size: .875rem; white-space: nowrap; }
.proto__pdf { white-space: nowrap; }
.proto__pdf .pdf + .pdf { margin-left: .375rem; }
.proto__row:hover td { background: var(--c-gray); }
.proto__row--award td { color: var(--c-mute); }
.proto__row--award .proto__ev b { font-weight: 400; }
.proto__row.is-next td { background: var(--c-red-soft); }
.proto__row.is-next td:first-child { box-shadow: inset 3px 0 0 var(--c-red); }

.next-mark {
  display: inline-block;
  margin-left: .5rem;
  padding: .05rem .4rem;
  border-radius: 2px;
  background: var(--c-red);
  color: #ffffff;
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  vertical-align: 1px;
}

.rstat { display: inline-flex; align-items: center; gap: .375rem; font-size: .8125rem; white-space: nowrap; }
.rstat::before { content: ''; flex: none; width: .5rem; height: .5rem; border-radius: 50%; }
.rstat--res { color: var(--c-ink); font-weight: 700; }
.rstat--res::before { background: var(--c-ink); }
.rstat--start { color: var(--c-red); font-weight: 700; }
.rstat--start::before { box-shadow: inset 0 0 0 1.5px var(--c-red); }
.rstat--wait { color: var(--c-mute); }
.rstat--wait::before { box-shadow: inset 0 0 0 1.5px var(--c-line-2); }
.rstat--award { color: var(--c-mute); }
.rstat--award::before { border-radius: 0; background: var(--c-line-2); }

/* кнопки PDF */
.pdf {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-height: 2rem;
  padding: .25rem .6rem;
  border: 1px solid var(--c-line-2);
  border-radius: 3px;
  background: var(--c-bg);
  color: var(--c-ink);
  font-size: .8125rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color .15s, background-color .15s, color .15s;
}

.pdf:hover { border-color: var(--c-ink); color: var(--c-ink); }
.pdf--res { background: var(--c-ink); border-color: var(--c-ink); color: #ffffff; }
.pdf--res:hover { background: var(--c-ink-2); color: #ffffff; }
.pdf--off { border-style: dashed; color: var(--c-line-2); }
.pdf__ico { flex: none; width: .75rem; height: .9375rem; }

/* вкладка «Дистанции» */
.dist { margin-top: 1.75rem; }
.dist__stroke { margin-bottom: .75rem; padding-top: .75rem; border-top: 3px solid var(--c-red); font-size: 1.375rem; }
.dist__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.25rem; }
.dist__col { border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; }
.dist__h { margin: 0; padding: .625rem .875rem; border-bottom: 1px solid var(--c-line); background: var(--c-gray); font: 700 .9375rem/1.3 var(--f-text); }
.dist__list { margin: 0; padding: 0; list-style: none; }

.dist__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  column-gap: 1rem;
  align-items: center;
  padding: .625rem .875rem;
}

.dist__item + .dist__item { border-top: 1px solid var(--c-gray-2); }
.dist__name { font-size: .9375rem; }
.dist__meta { color: var(--c-mute); font-size: .8125rem; font-variant-numeric: tabular-nums; }
.dist__pdf { grid-column: 2; grid-row: 1 / span 2; display: flex; gap: .375rem; }
.dist__none { margin: 0; padding: .75rem .875rem; color: var(--c-mute); }

@media (max-width: 760px) {
  .meet-bar { align-items: stretch; }
  .meet-tabs { width: 100%; }
  .meet-tabs__btn { flex: 1; padding-inline: .5rem; }
  .meet-filters .search,
  .meet-filters .search input { width: 100%; }
  .day-tabs__btn { flex: 1 1 6rem; min-width: 0; }

  .proto,
  .proto tbody { display: block; border: 0; }
  .proto thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }

  .proto__row {
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr) auto;
    grid-template-areas: 'n ev time' 'n g age' 'n round round' 'st st st' 'pdf pdf pdf';
    gap: .25rem .5rem;
    margin-bottom: .625rem;
    padding: .875rem;
    border: 1px solid var(--c-line);
    border-radius: var(--radius);
  }

  .proto__row td { width: auto; padding: 0; border: 0; background: none; }
  .proto__row:hover td,
  .proto__row.is-next td { background: none; }
  .proto__row.is-next { border-color: var(--c-red); box-shadow: inset 3px 0 0 var(--c-red); background: var(--c-red-soft); }
  .proto__row.is-next td:first-child { box-shadow: none; }
  .proto__n { grid-area: n; font-weight: 700; }
  .proto__ev { grid-area: ev; }
  .proto__time { grid-area: time; text-align: right; }
  .proto__g { grid-area: g; font-size: .875rem; }
  .proto__age { grid-area: age; text-align: right; }
  .proto__round { grid-area: round; white-space: normal; }
  .proto__st { grid-area: st; padding-top: .25rem; }
  .proto__pdf { grid-area: pdf; display: flex; gap: .5rem; padding-top: .375rem; }
  .proto__pdf .pdf { flex: 1; min-height: 2.75rem; font-size: .875rem; }
  .proto__pdf .pdf + .pdf { margin-left: 0; }
  .proto__row--award { grid-template-areas: 'n ev time' 'n g age' 'n round st'; padding-block: .625rem; background: var(--c-gray); }
  .proto__row--award .proto__pdf { display: none; }
  .proto__row--award .proto__st { padding-top: 0; text-align: right; }
  .meet-filters .select { flex: 1 1 100%; }
  .meet-filters .select select { flex: 1; }

  .dist__grid { grid-template-columns: minmax(0, 1fr); }
  .dist__item { grid-template-columns: minmax(0, 1fr); row-gap: .25rem; }
  .dist__pdf { grid-column: 1; grid-row: auto; padding-top: .25rem; }
  .dist__pdf .pdf { flex: 1; min-height: 2.75rem; }
}

/* =========================================================
   ИТОГИ И АРХИВ: строки соревнований
   ========================================================= */
.arch__year { margin: 0 0 .5rem; font-size: 1.75rem; }
.arch__h { margin: 2rem 0 .75rem; font-size: 1.375rem; }
.arch__h:first-of-type { margin-top: .5rem; }

.mrows { border-top: 2px solid var(--c-ink); }

.mrow {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr) auto;
  gap: 1.25rem;
  align-items: center;
  padding: 1rem .5rem;
  border-bottom: 1px solid var(--c-line);
}

.mrow:hover { background: var(--c-gray); }

.mrow__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: start;
  padding: .45rem .25rem;
  border-top: 3px solid var(--c-red);
  background: var(--c-gray);
  color: var(--c-mute);
  font-size: .75rem;
  text-transform: uppercase;
}

.mrow:hover .mrow__date { background: var(--c-bg); }
.mrow--doc .mrow__date { border-top-color: var(--c-ink); }
.mrow__date b { color: var(--c-ink); font: 700 1.25rem/1.1 var(--f-head); font-variant-numeric: tabular-nums; white-space: nowrap; }
.mrow__tags { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem 1rem; margin: 0 0 .3rem; }
.mrow__title { font: 700 1.0625rem/1.35 var(--f-text); }
.mrow__title a { text-decoration: none; }
.mrow__title a:hover { color: var(--c-red); text-decoration: underline; }
.mrow__meta { margin: .25rem 0 0; color: var(--c-mute); font-size: .875rem; }
.mrow__act { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.mrow__act .btn { gap: .4rem; }

.mfile {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .375rem .75rem .375rem .375rem;
  border: 1px solid var(--c-line);
  border-radius: 3px;
  background: var(--c-bg);
  font-size: .875rem;
  font-weight: 700;
  text-align: left;
  transition: border-color .15s;
}

.mfile:hover { border-color: var(--c-ink); }
.mfile .doc-ico { flex: none; width: 1.5rem; height: auto; }
.mfile small { display: block; color: var(--c-mute); font-size: .75rem; font-weight: 400; }

@media (max-width: 760px) {
  .mrow { grid-template-columns: 4.5rem minmax(0, 1fr); gap: .75rem 1rem; }
  .mrow__act { grid-column: 1 / -1; justify-content: flex-start; }
  .mrow__act .btn,
  .mrow__act .mfile { flex: 1 1 auto; min-height: 2.75rem; }
}
