/* S1 · Приветствие с действиями (S1.1, node 10367:15064).

   Раскладка — колонка .s1-body с единым шагом между блоками (--gap), а не набор
   абсолютных координат: состав экрана зависит от участника (профиль / спикер /
   особый статус), и при абсолютных top'ах у одних появлялись дыры, у других — наезды.
   Нижняя треть отдана постоянной строке компаний «Особого статуса». */


.s1-body { position: absolute; left: 56px; top: 250px; width: 968px; bottom: 560px;
  display: flex; flex-direction: column; gap: 28px;
  overflow-y: auto; scrollbar-width: none; -ms-overflow-style: none; }
/* Профиль раскрывается внутри колонки: рекламное место внизу остаётся на месте */
.s1-body::-webkit-scrollbar { width: 0; height: 0; }
.s1-body { mask-image: linear-gradient(to bottom, #000 calc(100% - 56px), transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 56px), transparent 100%); }
.s1-body.fits { mask-image: none; -webkit-mask-image: none; }
/* Блоки колонки не сжимаются: раскрытый профиль показывается целиком, а колонка
   при нехватке места прокручивается (иначе flex ужимал блок и резал последнее поле) */
.s1-body > * { flex: 0 0 auto; }

/* Заголовочная группа — один блок колонки: внутри свой плотный шаг, снаружи общий */
.s1-head { display: flex; flex-direction: column; gap: 10px; }
.s1-rady { font-weight: 500; font-size: 24px; line-height: 1.18; letter-spacing: 3px; color: #90d9f4; }
.s1-name { font-weight: 700; font-size: 48px; line-height: 1.1; color: #fff; }
.s1-role { font-weight: 400; font-size: 26px; line-height: 1.18; color: rgba(255,255,255,0.7); }

/* Карточка компании участника («Особый статус») — сразу под должностью */
.s1-company { background: rgba(144,217,244,0.10); border: 1.5px solid rgba(144,217,244,0.35);
  border-radius: 20px; padding: 24px 32px; }
.s1-company-top { display: flex; align-items: center; gap: 24px; }
.s1-company-logo { height: 56px; max-width: 420px; object-fit: contain; }
.s1-company-badge { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 18px;
  letter-spacing: 1.5px; color: #f0c04a; white-space: nowrap; }
.s1-company-t { margin-top: 16px; font-weight: 400; font-size: 24px; line-height: 1.3;
  color: rgba(255,255,255,0.82); }

/* Первичное действие: профиль → «Мои рекомендации» (→S5); без профиля → «Подобрать
   индивидуальную программу» (→подбор предпочтений).
   Блоки идут от шапки вниз с единым шагом; низ экрана занят компаниями «Особого статуса». */
.s1-primary { height: 112px; flex: 0 0 auto;
  background: #fff; border-radius: 20px; box-shadow: 0 8px 20px rgba(10,13,20,0.3); cursor: pointer;
  display: flex; align-items: center; justify-content: center; }
.s1-primary span { font-weight: 600; font-size: 32px; color: #1c558d; }

/* «Уточнить предпочтения» (только при профиле) */
.s1-refine { height: 100px; flex: 0 0 auto;
  background: var(--nd-card); border: 1.5px solid var(--nd-btn-br); border-radius: var(--nd-r-btn);
  cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; }
.s1-refine-l { font-weight: 500; font-size: 28px; color: rgba(255,255,255,0.92); }
.s1-refine-s { font-weight: 400; font-size: 20px; color: rgba(255,255,255,0.55); }
#screen-s1.noprof .s1-refine { display: none; }

/* «Вся программа Форума» и «Карта площадки» — две половинные кнопки в ряд */
.s1-row { display: flex; gap: 28px; flex: 0 0 auto; }
.s1-prog, .s1-map { flex: 1 1 0; height: 100px;
  background: var(--nd-card); border: 1.5px solid var(--nd-btn-br); border-radius: var(--nd-r-btn);
  cursor: pointer; display: flex; align-items: center; justify-content: center; }
.s1-prog span, .s1-map span { font-weight: 500; font-size: 28px; color: rgba(255,255,255,0.92); }

/* Блоки спикера (только участникам без цифрового профиля).
   Выступление кликабельно — тап открывает карточку своего мероприятия (S8). */
.s1-talk, .s1-quote { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12);
  border-radius: 18px; padding: 24px 32px; }
.s1-talk { cursor: pointer; }
.s1-talk-go { margin-top: 10px; display: flex; align-items: center; gap: 10px;
  font-weight: 500; font-size: 22px; color: var(--nd-accent); }
.chev-inline { width: 22px; height: 22px; }
.s1-blk-h { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 20px;
  letter-spacing: 1.5px; color: #90d9f4; }
.s1-talk-t { margin-top: 12px; font-weight: 500; font-size: 30px; line-height: 1.2; color: #fff; }
.s1-quote-t { margin-top: 12px; font-weight: 400; font-size: 27px; line-height: 1.25;
  color: rgba(255,255,255,0.92); font-style: italic; }
.s1-quote-s { margin-top: 10px; font-weight: 500; font-size: 22px; color: rgba(255,255,255,0.5); }

/* Раскрытый профиль показываем целиком (5 полей ≈ 600px), колонка при нужде прокрутится —
   иначе последнее поле обрезалось по потолку выпадашки */
#s1-profile.open .acc-body { max-height: 1000px; }

/* «Сейчас на Форуме» — ближайшие мероприятия прямо на приветствии */
.s1-now { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12);
  border-radius: 18px; padding: 24px 32px; }
.s1-now-list { margin-top: 16px; display: flex; flex-direction: column; gap: 14px; }
.s1-now-item { display: flex; align-items: baseline; gap: 18px; cursor: pointer; }
.s1-now-time { flex: 0 0 auto; min-width: 150px; font-weight: 600; font-size: 25px; color: #90d9f4; }
.s1-now-ttl { flex: 1 1 auto; font-weight: 400; font-size: 25px; line-height: 1.25; color: #fff;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.s1-now-live { flex: 0 0 auto; padding: 4px 12px; border-radius: 12px;
  background: rgba(63,203,148,0.18); font-size: 19px; color: #6fe0a6; white-space: nowrap; }

/* Поля цифрового профиля внутри выпадающего блока */
.profile-fields { padding-left: 32px; padding-right: 32px; }
.acc.open .profile-fields { padding-top: 4px; padding-bottom: 20px; }
.profile-field { padding: 14px 0 16px; border-bottom: 1px solid rgba(255,255,255,0.12); }
.profile-field:last-child { border-bottom: 0; }
.profile-field span { display: block; margin-bottom: 6px;
  font-size: 18px; line-height: 1.2; letter-spacing: 1px; text-transform: uppercase; color: #90d9f4; }
.profile-field p { font-size: 24px; line-height: 1.28; overflow-wrap: anywhere; color: #fff; }

/* Компании «Особого статуса» — постоянная строка в нижней трети экрана.
   Логотипы идут в ряд, описание меняется по очереди: экран живёт, но не мешает выбирать. */
/* Постоянное рекламное место — нижняя треть экрана (слой поверх, как шапка).
   Скрывается там, где место занято своим содержимым: результат подбора и клавиатура. */
body.no-ad .vip { display: none; }
.vip { position: absolute; left: 56px; top: 1440px; bottom: 40px; width: 968px; z-index: 60;
  box-sizing: border-box; padding: 32px; display: flex; flex-direction: column;
  /* плотная подложка: сквозь полупрозрачную рекламу просвечивал фоновый лотос */
  background: rgba(9,25,44,0.72); backdrop-filter: blur(18px);
  border: 1px solid rgba(255,255,255,0.14); border-radius: var(--nd-r-ad); }
.vip-h { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 20px;
  letter-spacing: 1.5px; color: #90d9f4; }
.vip-logos { margin-top: 20px; display: flex; align-items: center; gap: 16px; }
.vip-logo { flex: 1 1 0; height: 116px; border-radius: 16px; cursor: pointer;
  display: flex; align-items: center; justify-content: center; padding: 14px;
  box-sizing: border-box; background: rgba(255,255,255,0.06); border: 1px solid transparent;
  opacity: 0.55; transition: opacity 0.4s, background 0.4s, border-color 0.4s; }
.vip-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.vip-logo.active { opacity: 1; background: rgba(144,217,244,0.14); border-color: rgba(144,217,244,0.45); }
.vip-text { margin-top: 20px; flex: 1 1 auto; overflow: hidden; display: flex; align-items: center;
  font-weight: 400; font-size: 26px; line-height: 1.35; color: rgba(255,255,255,0.82);
  opacity: 0; transition: opacity 0.5s; }
.vip-text.show { opacity: 1; }

/* Карточка компании «Особого статуса» — модалка по макету (node 6832:20134):
   градиентная плашка поверх затемнения, слева QR, справа логотип и описание. */
.vipcard { position: absolute; inset: 0; z-index: 200; background: rgba(6,16,29,0.72);
  display: flex; align-items: center; justify-content: center; }
.vipcard-box { width: 985px; padding: 40px 44px 44px; box-sizing: border-box;
  background: var(--nd-ad); box-shadow: var(--nd-ad-shadow); border-radius: var(--nd-r-ad);
  display: flex; flex-direction: column; gap: 32px; }
.vipcard-head { display: flex; align-items: center; gap: 20px; }
.vipcard-badge-i { width: 68px; height: 68px; flex: 0 0 auto; }
.vipcard-badge { flex: 1 1 auto; font-weight: 500; font-size: 48px; color: #fff; letter-spacing: 1px; }
.vipcard-x { width: 68px; height: 68px; border-radius: 50%; cursor: pointer; flex: 0 0 auto;
  display: flex; align-items: center; justify-content: center;
  font-size: 44px; line-height: 1; color: #fff; background: rgba(255,255,255,0.12); }
.vipcard-body { display: flex; gap: 36px; align-items: stretch; }
.vipcard-left { flex: 0 0 340px; display: flex; flex-direction: column; gap: 20px; }
.vipcard-cap { font-weight: 400; font-size: 30px; line-height: 1.2; color: #fff; }
.vipcard-qr { width: 300px; height: 300px; background: #fff; border-radius: 16px; padding: 12px;
  box-sizing: border-box; }
/* Логотипы компаний разные: часть — белые SVG, часть — цветные растры. Поэтому подложка
   тёмная и никаких фильтров: инверсия делала цветной логотип чёрным квадратом. */
.vipcard-right { flex: 1 1 auto; border-radius: var(--nd-r-card);
  background: rgba(6,16,29,0.55); border: 1px solid rgba(255,255,255,0.14);
  padding: 28px 32px; display: flex; flex-direction: column; gap: 22px; }
.vipcard-logo { max-width: 100%; height: 92px; object-fit: contain; object-position: left center; }
.vipcard-text { font-weight: 400; font-size: 25px; line-height: 1.32; color: rgba(255,255,255,0.9); }
.vipcard-close { height: 100px; border-radius: var(--nd-r-btn); cursor: pointer;
  background: rgba(255,255,255,0.16); display: flex; align-items: center; justify-content: center;
  font-weight: 500; font-size: 30px; color: #fff; }
