/* ============ HERO: утверждённый заказчиком баннер ============ */
/* Снимок: горизонт проходит на 67-68% высоты кадра. Всё содержимое
   держим выше 64%, чтобы белый текст не попадал на освещённую Землю. */
.hero {
  position: relative;
  height: clamp(620px, 88dvh, 940px);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow: hidden;
  isolation: isolate;
  padding: clamp(40px, 6vh, 72px) var(--gutter) 0;
}
.hero__bg { position: absolute; inset: 0; z-index: -1; }
.hero__bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center bottom;
}
/* мягкая подложка под текстом: гасит свечение горизонта за буквами */
/* Новый логотип из исходника заказчика содержит 12% полей по краям.
   Компенсируем, чтобы визуальный размер совпал с утверждённым баннером. */
/* Вуаль: 5% сплошного затемнения на весь кадр + мягкое радиальное под текстом */
.hero::after {
  content: "";
  position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(120% 62% at 50% 30%,
      rgba(3, 9, 57, .55) 0%,
      rgba(3, 9, 57, .32) 45%,
      rgba(3, 9, 57, 0) 72%),
    rgba(3, 9, 57, .05);
  pointer-events: none;
}
.hero__stack {
  display: grid;
  justify-items: center;
  gap: 25px;
  width: 100%;
  /* Файл заказчика 651x217.7 с полями 12%: знак занимает 75,4% ширины файла.
     Прежняя ширина знака 46vw → ширина блока 61vw; текст 29vw → 38vw. */
  width: min(46vw, calc(100vw - 48px));
}
.hero__logo { width: 100%; height: auto; }
.hero__text  { width: 48%; height: auto; }
.hero__actions {
  margin-top: clamp(14px, 2.2vh, 26px);
  display: flex; flex-wrap: wrap; justify-content: center; gap: 12px;
}
.hero__actions .btn { padding: 13px 26px; font-size: 16px; }

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

@media (max-width: 1024px) {
  .hero { min-height: min(88dvh, 760px); }
  .hero__logo { width: min(60vw, calc(100vw - 48px)); }
  .hero__text { width: min(40vw, calc(100vw - 48px)); }
}
@media (max-width: 768px) {
  .hero { min-height: 86dvh; padding-top: clamp(72px, 12vh, 120px); }
  .hero__logo { width: calc(100vw - 48px); }
  .hero__text { width: calc(90vw - 48px); }
  .hero__stack { gap: 14px; }
  .hero__actions { width: 100%; flex-direction: column; }
  .hero__actions .btn { width: 100%; }
}
@media (prefers-reduced-motion: no-preference) {
  .hero__stack { animation: heroIn .9s var(--ease) both; }
  @keyframes heroIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
}

/* ---------- brand в хедере и футере: новый логотип ---------- */
.brand__logo { height: 28px; width: auto; display: block; }
@media (max-width: 1200px) { .brand__logo { height: 25px; } }
@media (max-width: 760px) { .brand__logo { height: 23px; } }

/* меню в одну строку: уменьшаем шаг при нехватке места, до бургера не доходим */
.nav a { white-space: nowrap; }
@media (max-width: 1280px) {
  .header__inner { gap: 18px; }
  .nav { gap: 0; }
  .nav a { font-size: 13.5px; padding: 8px 9px; }
}
@media (max-width: 1120px) {
  .nav a { font-size: 13px; padding: 8px 7px; }
  .brand__logo { height: 24px; }
  .header .btn { padding: 8px 13px; font-size: 13.5px; }
}
.brand__mark--old { display: none; }

/* ============ Внутренние страницы: та же логика, но компактнее ============ */
.phero {
  position: relative; isolation: isolate; overflow: hidden;
  padding: clamp(72px, 9vh, 120px) 0 clamp(56px, 7vh, 92px);
  border-bottom: 1px solid var(--hair);
}
.phero__bg { position: absolute; inset: 0; z-index: -1; }
.phero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 78%; }
.phero::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(180deg, rgba(3,9,57,.78) 0%, rgba(3,9,57,.62) 55%, var(--ink-900) 100%);
}
.phero .crumbs { font-size: 13px; color: var(--text-lo); margin-bottom: 20px; }
.phero .crumbs a { text-decoration: none; }
.phero .crumbs a:hover { color: var(--text-hi); }
.phero h1 {
  font-size: clamp(2.25rem, 1.6rem + 2.6vw, 3.75rem);
  font-weight: 800; letter-spacing: -.035em; line-height: 1.04;
  max-width: 22ch;
}
.phero .lead { margin-top: 20px; max-width: 58ch; color: var(--text-md); }
.phero__meta {
  margin-top: 34px; display: flex; flex-wrap: wrap; gap: 10px 28px;
  font-size: 14px; color: var(--text-md);
}
.phero__meta span { display: inline-flex; align-items: center; gap: 8px; }
.phero__meta b { color: var(--text-hi); font-weight: 650; }

/* ---------- кнопка меню: видимая иконка и понятное состояние ---------- */
.header .burger {
  display: none;
  width: 40px; height: 40px; padding: 0;
  align-items: center; justify-content: center;
  color: var(--text-hi);
  background: rgba(255,255,255,.06);
  border-color: var(--hair-strong);
}
.header .burger svg { display: block; width: 18px; height: 18px; flex: none; }
.header .burger:hover { background: rgba(255,255,255,.12); }
@media (max-width: 1120px) {
  .header .burger { display: inline-flex; flex: none; margin-left: 0; }
  .header .btn.btn--cyan { margin-left: auto; }
}

/* ---------- действия в hero: не только в колонку, а с отступом от текста ---------- */
.hero__actions { z-index: 1; }
@media (max-width: 768px) {
  .hero__actions { gap: 10px; margin-top: 22px; }
  .hero__actions .btn { padding: 14px 20px; }
}
@media (max-width: 768px) {
  .hero__text { width: calc(78vw); }
}

/* «Программа форума» в hero на узких экранах не должна вылезать за край */
@media (max-width: 480px) {
  .hero__actions .btn { min-width: 0; }
  .hero__actions { padding-inline: 0; }
}
.hero__actions .btn { max-width: 100%; }

/* кнопки в узких секциях не должны вылезать за край */
.shead--row .btn, .partners-block .btn, .prog__side .btn, .org__side .link,
.parts .btn, .cta .btn { max-width: 100%; white-space: normal; text-align: center; }
@media (max-width: 560px) {
  .shead--row { flex-direction: column; align-items: stretch; }
  .shead--row .btn, .shead--row .org__link { align-self: flex-start; }
  .btn { max-width: calc(100vw - 2 * var(--gutter)); }
  .btn { white-space: normal; }
}

/* ============ МЕСТО ПРОВЕДЕНИЯ ============ */
.venue {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; align-items: center;
  min-height: clamp(600px, 78vh, 880px);
  padding-block: clamp(88px, 9vh, 128px);
  color: var(--text-hi);
}
.venue__bg { position: absolute; inset: 0; z-index: -2; }
.venue__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 72% 58%; }

/* Явная двуступенчатая вуаль: слева почти непрозрачно под текстом, справа прозрачно под куполом */
.venue::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(92deg,
    rgba(3, 9, 57, .97) 0%,
    rgba(3, 9, 57, .94) 30%,
    rgba(3, 9, 57, .80) 40%,
    rgba(3, 9, 57, .22) 50%,
    rgba(3, 9, 57, 0) 58%);
}

.venue__inner { position: relative; width: 100%; }
.venue__text { max-width: min(46ch, 46vw); }

/* Типографика: контраст масштаба вместо рамок и карточек */
.venue__eyebrow {
  font-size: .75rem; letter-spacing: .2em; text-transform: uppercase;
  font-weight: 700; color: var(--cyan); margin-bottom: clamp(20px, 2.2vw, 30px);
}
.venue__title {
  font-size: clamp(3.25rem, 1.5rem + 5.6vw, 7rem);
  line-height: .88; letter-spacing: -.05em; font-weight: 800;
  margin: 0 0 clamp(18px, 2vw, 28px);
}
.venue__addr {
  font-size: clamp(.95rem, .85rem + .3vw, 1.0625rem);
  line-height: 1.6; color: rgba(255,255,255,.9);
  padding-left: 16px; border-left: 2px solid var(--cyan);
}
.venue__body { margin-top: clamp(28px, 3vw, 44px); display: grid; gap: 14px; }
.venue__body p {
  font-size: clamp(.95rem, .9rem + .22vw, 1.02rem);
  line-height: 1.7; color: rgba(255,255,255,.74);
}
.venue__body p:first-child { color: #fff; font-weight: 500; line-height: 1.6; }

/* Факты: четыре строки в одну колонку, без плашки */
.venue__facts {
  margin-top: clamp(32px, 3.4vw, 52px);
  display: grid; gap: 0;
  border-top: 1px solid rgba(255,255,255,.24);
}
.venue__facts li {
  display: grid; grid-template-columns: minmax(0, 132px) minmax(0, 1fr);
  gap: 16px; align-items: baseline;
  padding: 11px 0;
  border-bottom: 1px solid rgba(255,255,255,.13);
}
.venue__facts b { font-size: 13.5px; font-weight: 700; color: #fff; letter-spacing: -.005em; }
.venue__facts span { font-size: 12.5px; line-height: 1.45; color: rgba(255,255,255,.56); }

@media (max-width: 1080px) {
  .venue { min-height: auto; padding-block: clamp(80px, 10vw, 120px); }
  .venue__text { max-width: min(52ch, 62vw); }
  .venue::before {
    background: linear-gradient(180deg,
      rgba(3,9,57,.72) 0%, rgba(3,9,57,.86) 38%,
      rgba(3,9,57,.96) 72%, rgba(3,9,57,.98) 100%);
  }
}
@media (max-width: 768px) {
  .venue {
    display: flex;
    min-height: auto;
    padding-block: 0;
    flex-direction: column;
  }
  /* фото сверху отдельной полосой, текст идёт следом на сплошном фоне */
  .venue__bg {
    position: relative;
    inset: auto;
    height: clamp(300px, 46vh, 400px);
    flex: none;
  }
  /* кадрируем по куполу: он в правой части снимка */
  .venue__bg img { object-position: 72% 58%; }
  .venue::before {
    display: block;
    top: auto;
    height: clamp(300px, 46vh, 400px);
    inset: 0 0 auto 0;
    background: linear-gradient(180deg,
      rgba(3,9,57,.28) 0%, rgba(3,9,57,.10) 60%, rgba(3,9,57,.96) 100%);
  }
  .venue__inner { background: var(--ink-900); padding-block: 40px 56px; }
  .venue__text { max-width: none; }
  .venue__title { font-size: clamp(2.75rem, 13vw, 4.25rem); }
  .venue__facts li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .venue__facts b { font-size: 13px; }
  .venue__facts li:last-child { border-bottom: 0; }
}

/* на планшете тоже оставляем купол видимым */
@media (min-width: 769px) and (max-width: 1080px) {
  .venue::before {
    background: linear-gradient(180deg,
      rgba(3,9,57,.90) 0%, rgba(3,9,57,.88) 32%,
      rgba(3,9,57,.62) 62%, rgba(3,9,57,.45) 100%);
  }
}

/* действия в hero: на телефоне остаются одной ширины со стеком, но не растягиваются */
.hero__actions { width: 100%; }
@media (max-width: 768px) {
  .hero { padding-top: clamp(28px, 4vh, 44px); }
  .hero__stack { max-width: calc(100vw - 40px); gap: 10px; }
  .hero__logo { width: 100%; }
  .hero__text { width: 74%; }
  .hero__actions {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
  }
  .hero__actions .btn {
    flex: 1 1 auto;
    padding: 12px 16px;
    font-size: 14.5px;
  }
}

/* планшет и небольшие ноутбуки: сжимаем стек, чтобы кнопки не доходили до горизонта */
@media (min-width: 769px) and (max-width: 1100px) {
  .hero { padding-top: clamp(32px, 5vh, 56px); }
  .hero__stack { max-width: min(560px, calc(100vw - 64px)); gap: 10px; }
  .hero__logo { width: 100%; }
  .hero__text { width: 62%; }
  .hero__actions { margin-top: 18px; }
  .hero__actions .btn { padding: 12px 20px; font-size: 15px; }
}
/* на невысоких экранах ноутбука тоже подстраховываемся */
@media (min-width: 1101px) and (max-height: 780px) {
  .hero { height: clamp(560px, 92dvh, 760px); padding-top: clamp(24px, 3vh, 40px); }
  .hero__stack { max-width: min(660px, 46vw); }
  .hero__text { width: 60%; }
}
