/* ============================================================
   Страница тренировочного сбора с Мариной Протасовой
   Надстройка над styles.css: палитра, полосы, карточки, кнопки
   и подвал берутся оттуда — страница должна читаться как часть
   сайта турнира. Здесь только то, чего на лендинге нет:
   разворот с фото в герое, ряды снимков и плашка стоимости.
   ============================================================ */

/* ---------- герой: текст слева, фото справа ---------- */
.camp-hero{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(26px,4vw,54px);align-items:center;
}
@media (max-width:900px){.camp-hero{grid-template-columns:1fr}}
.camp-hero-txt{display:flex;flex-direction:column;gap:clamp(14px,2vw,20px);align-items:flex-start}
/* Заголовок здесь длиннее, чем на лендинге («Тренировочный сбор с Мариной
   Протасовой» против «Solo Cup 2026»), и в колонку с фото он не влезал —
   кегль ниже, длинные слова переносятся. */
.camp-hero h1{font-size:clamp(30px,4.2vw,54px);line-height:1.03;overflow-wrap:break-word}
.camp-hero-shot{
  position:relative;border-radius:24px;overflow:hidden;
  box-shadow:0 30px 70px rgba(20,2,50,.45);
}
.camp-hero-shot img{width:100%;height:auto;display:block;aspect-ratio:3/4;object-fit:cover;object-position:center 22%}
/* Подпись поверх снимка — кто на фото; без неё кадр читается как сток. */
.camp-hero-shot figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:26px 22px 18px;
  background:linear-gradient(180deg,rgba(45,4,98,0) 0%,rgba(45,4,98,.86) 70%);
  color:#fff;font-size:14px;font-weight:700;line-height:1.35;
}
@media (max-width:900px){.camp-hero-shot img{aspect-ratio:4/3;object-position:center 20%}}

/* ---------- ряд снимков ---------- */
.shots{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}
.shots figure{margin:0;border-radius:18px;overflow:hidden;background:var(--lilac)}
.shots img{width:100%;height:100%;display:block;aspect-ratio:3/2;object-fit:cover}
.shots--tall img{aspect-ratio:4/5}

/* ---------- стоимость ---------- */
.price{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 18px;
  background:var(--sand);color:#3A2604;border-radius:18px;padding:22px 26px;
}
.price b{font-size:clamp(30px,4.4vw,44px);font-weight:800;letter-spacing:-.02em;line-height:1}
.price span{font-weight:800;font-size:14px;letter-spacing:.14em;text-transform:uppercase}
.price small{display:block;width:100%;font-weight:600;font-size:14px;color:#5A4210;letter-spacing:0;text-transform:none}

/* Строка «осталось мест» — на фиолетовом, поэтому цвет задан явно:
   .band--violet b красит жирное в белый, а на песочной плашке
   такой текст пропадает. */
.seats{font-weight:800;font-size:15px;color:#fff}
.seats b{color:var(--sand)}

/* ---------- два события ---------- */
.crosslink{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;
  border:2px solid var(--line);border-radius:20px;padding:22px 26px;background:var(--paper);
}
.crosslink p{max-width:64ch}
.band--violet .crosslink{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28)}
.band--violet .crosslink p{color:var(--on-v-2)}

/* Регалии и цитата в блоке о тренере идут сразу за абзацем — без отбивки
   список читается как продолжение предложения. */
#coach .ticks{margin-top:14px}
#coach .quote{margin-top:14px}

/* Русские дни недели длиннее английских, и время («Понедельник 16:00–20:30»)
   переносилось на вторую строку — плитки шире, чем на лендинге. */
#schedule .camp-days{grid-template-columns:repeat(auto-fit,minmax(min(100%,244px),1fr))}
