/*
 * Лендинг VETVI.online.
 *
 * Табло демо и кнопки «+» повторяют боевой код продукта: плашка счёта — как в
 * src/shared/overlay.ts (та же палитра и пропорции от 1080p), кнопки — как tap-zone
 * из web/operator/operator.css. Типографика — системный стек проекта.
 * Без градиентных фонов, свечения, стекла и анимаций появления при прокрутке.
 */

body.app-landing {
  --lp-ink: #0b0f14;
  --lp-ink-raised: #141a22;
  --lp-paper: #f6f4ee;
  --lp-court: #1e4d38;
  --lp-court-deep: #0f2a1e;
  --lp-white: #ffffff;
  --lp-blue: #2f7cf6;
  --lp-blue-deep: #123a78;
  --lp-amber: #f5a524;
  --lp-amber-deep: #6b4405;
  --lp-red: #e5484d;
  --lp-muted-dark: #9fb0c3;
  --lp-text-soft: #4c5a52;
  --lp-line: rgba(11, 15, 20, .14);
  --lp-max: 1180px;

  height: auto;
  min-height: 100%;
  overflow-x: clip;
  background: var(--lp-paper);
  color: var(--lp-ink);
  font-family: var(--font);
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth;
}

.app-landing a { color: inherit; }

.lp-container {
  width: min(var(--lp-max), calc(100% - 48px));
  margin-inline: auto;
}

/* ------------------------------------------------------------------ шапка */

.lp-top {
  position: sticky;
  top: 0;
  z-index: 20;
  background: var(--lp-ink);
  color: var(--lp-white);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.lp-top__inner {
  min-height: 68px;
  display: flex;
  align-items: center;
  gap: 28px;
}

.lp-brand {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  color: var(--lp-white);
  font-size: 21px;
  font-weight: 800;
  letter-spacing: -.03em;
  line-height: 1;
  text-decoration: none;
}

.lp-brand__domain { color: var(--lp-muted-dark); font-weight: 580; }

.lp-brandblock { display: flex; flex-direction: column; justify-content: center; gap: 5px; }

.lp-tagline {
  font-size: 10.5px;
  font-weight: 560;
  letter-spacing: .04em;
  color: var(--lp-muted-dark);
  white-space: nowrap;
}

.lp-logo-dot {
  flex: 0 0 auto;
  width: .4em;
  height: .4em;
  margin-inline: .09em .08em;
  overflow: hidden;
  border-radius: 50%;
  background: var(--lp-red);
  color: transparent;
  transform: translateY(.26em);
}

.lp-nav {
  display: flex;
  align-items: center;
  gap: 26px;
  margin-left: auto;
}

.lp-nav a {
  color: var(--lp-muted-dark);
  font-size: 14px;
  font-weight: 650;
  text-decoration: none;
}

.lp-nav a:hover { color: var(--lp-white); }

.lp-login {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 17px;
  border: 1px solid rgba(255, 255, 255, .22);
  color: var(--lp-white);
  font-size: 14px;
  font-weight: 650;
  text-decoration: none;
}

.lp-login:hover { border-color: rgba(255, 255, 255, .5); }

/* ------------------------------------------------------------------ первый экран */

.lp-intro { background: var(--lp-ink); color: var(--lp-white); }

.lp-hero {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(520px, 1.1fr);
  gap: clamp(48px, 6vw, 92px);
  align-items: center;
  padding-block: clamp(64px, 8vw, 116px);
}

.lp-hero__copy { min-width: 0; }

.lp-kicker {
  margin: 0 0 20px;
  color: var(--lp-amber);
  font-size: 13px;
  font-weight: 720;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.lp-hero h1 {
  margin: 0;
  font-size: clamp(42px, 5vw, 68px);
  font-weight: 830;
  letter-spacing: -.04em;
  line-height: 1.04;
}

.lp-lede {
  max-width: 52ch;
  margin: 26px 0 0;
  color: var(--lp-muted-dark);
  font-size: clamp(16px, 1.5vw, 19px);
  line-height: 1.6;
}

.lp-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 18px 26px;
  margin-top: 36px;
}

.app-landing .lp-button {
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: 14px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
}

.lp-button--primary { background: var(--lp-blue); color: var(--lp-white); }
.lp-button:active { transform: translateY(1px); }

.lp-text-link {
  color: var(--lp-white);
  font-family: var(--font-numeric);
  font-size: 16px;
  font-weight: 650;
  letter-spacing: .02em;
  text-decoration-color: #4a5a6e;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
  white-space: nowrap;
}

.lp-text-link:hover { text-decoration-color: var(--lp-amber); }

/* ------------------------------------------------------------------ демо-эфир */

.lp-demo { min-width: 0; margin: 0; }

.lp-demo__frame {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 16px;
  background: var(--lp-court-deep);
}

.lp-demo__frame canvas {
  display: block;
  width: 100%;
  height: auto;
}

.lp-demo__hint {
  margin-top: 14px;
  color: #71829a;
  font-size: 13px;
  line-height: 1.5;
}

.lp-demo__credit {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  color: #5b6a7d;
}

.lp-demo__credit a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

/* ------------------------------------------------------------------ пульт демо (как у оператора) */

.lp-demo__pad {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  margin-top: 14px;
  align-items: stretch;
}

.lp-demo__plus {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.lp-tap {
  min-height: 72px;
  display: grid;
  place-items: center;
  border: none;
  border-radius: 14px;
  color: var(--lp-white);
  cursor: pointer;
  transition: transform .06s ease, filter .06s ease;
}

.lp-tap:active { transform: scale(.94); filter: brightness(1.3); }
.lp-tap:disabled { opacity: .35; cursor: not-allowed; }

/* Цвета и градиент — из operator.css (.tap-zone) */
.lp-tap--a { background: linear-gradient(160deg, var(--lp-blue), var(--lp-blue-deep)); }
.lp-tap--b { background: linear-gradient(160deg, var(--lp-amber), var(--lp-amber-deep)); color: #1a1204; }
.lp-tap span { font-size: 30px; font-weight: 900; line-height: 1; }

.lp-demo__controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-content: start;
  justify-content: flex-end;
  max-width: 220px;
}

.app-landing .lp-btn {
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid #33404f;
  border-radius: 14px;
  background: var(--lp-ink-raised);
  color: var(--lp-white);
  font-size: 13px;
  font-weight: 650;
  white-space: nowrap;
  cursor: pointer;
}

.app-landing .lp-btn--ghost { background: transparent; color: var(--lp-muted-dark); }
.app-landing .lp-btn:hover:not(:disabled) { border-color: var(--lp-muted-dark); color: var(--lp-white); }
.app-landing .lp-btn:disabled { opacity: .35; cursor: not-allowed; }

/* ------------------------------------------------------------------ секции */

.lp-section { padding-block: clamp(72px, 8vw, 108px); }
.lp-section + .lp-section { border-top: 1px solid var(--lp-line); }

.lp-section h2,
.lp-final h2 {
  margin: 0;
  font-size: clamp(30px, 3.2vw, 44px);
  font-weight: 820;
  letter-spacing: -.04em;
  line-height: 1.08;
}

.lp-section__lead {
  max-width: 56ch;
  margin: 18px 0 0;
  color: var(--lp-text-soft);
  font-size: 16px;
  line-height: 1.6;
}

/* ------------------------------------------------------------------ шаги */

.lp-steps {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(24px, 3.5vw, 48px);
  margin: 52px 0 0;
  padding: 0;
}

.lp-steps li { min-width: 0; }

.lp-steps h3 {
  margin: 0 0 10px;
  font-size: 17px;
  font-weight: 740;
  letter-spacing: -.01em;
}

.lp-steps h3::before {
  content: "";
  display: block;
  width: 34px;
  height: 4px;
  margin-bottom: 18px;
  background: var(--lp-blue);
}

.lp-steps li:nth-child(2) h3::before { background: var(--lp-amber); }
.lp-steps li:nth-child(3) h3::before { background: var(--lp-red); }
.lp-steps li:nth-child(4) h3::before { background: var(--lp-court); }

.lp-steps p { margin: 0; color: var(--lp-text-soft); font-size: 14.5px; line-height: 1.6; }

/* ------------------------------------------------------------------ форматы */

.lp-section--court {
  background: var(--lp-court);
  color: var(--lp-white);
  border-top: 0;
}

.lp-section--court .lp-section__lead { color: #c2d4c9; }

.lp-formats { max-width: 780px; margin-inline: auto; text-align: center; }
.lp-formats h2 { margin-inline: auto; }
.lp-formats .lp-section__lead { margin-inline: auto; }

/* ------------------------------------------------------------------ что нужно */

.lp-need {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 3.5vw, 48px);
  margin-top: 52px;
}

.lp-need p {
  margin: 0;
  padding-top: 22px;
  border-top: 2px solid var(--lp-ink);
  color: var(--lp-text-soft);
  font-size: 15px;
  line-height: 1.6;
}

.lp-need strong {
  display: block;
  margin-bottom: 8px;
  color: var(--lp-ink);
  font-size: 16px;
  font-weight: 760;
}

.lp-obs-note {
  max-width: 70ch;
  margin: 48px 0 0;
  color: var(--lp-text-soft);
  font-size: 14.5px;
  line-height: 1.6;
}

/* ------------------------------------------------------------------ фото с корта */

.lp-photos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 48px);
  margin-top: 52px;
}

.lp-photo-slot { margin: 0; min-width: 0; }

.lp-photo-slot__frame {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  /* Поле, на котором лежит табло. Когда появится фото с корта, сюда встанет background-image
     тем же размером — разметку и подписи трогать не придётся. */
  background: #2c333d;
}

.lp-photo-slot__frame img { display: block; width: 100%; height: auto; }

/* Обе рамки — 16:9, чтобы подписи под ними стояли на одной линии.
   Эфирный кадр: PNG с прозрачным фоном — ровно тот слой, что уходит в трансляцию поверх
   картинки с камеры, поэтому 16:9 здесь ещё и настоящие пропорции кадра. */
.lp-photo-slot__frame--air { aspect-ratio: 16 / 9; }

/* Экран оператора снят с телефона в горизонте (2,17:1) — он шире 16:9, поэтому лежит
   по центру на поле цвета самого пульта: стык не виден, а высота совпадает с эфирным кадром. */
.lp-photo-slot__frame--pad {
  aspect-ratio: 16 / 9;
  display: grid;
  place-items: center;
  background: #0b0f14;
}

.lp-photo-slot figcaption {
  margin-top: 12px;
  color: var(--lp-text-soft);
  font-size: 13.5px;
  line-height: 1.55;
}

/* ------------------------------------------------------------------ финал */

.lp-final {
  background: var(--lp-ink);
  color: var(--lp-white);
  padding-block: clamp(72px, 8vw, 108px);
}

.lp-final__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 480px);
  gap: clamp(40px, 7vw, 100px);
  align-items: start;
}

.lp-final__text {
  max-width: 46ch;
  margin: 20px 0 0;
  color: var(--lp-muted-dark);
  font-size: 16px;
  line-height: 1.6;
}

.lp-final__phone {
  color: var(--lp-white);
  font-weight: 750;
  text-decoration-color: var(--lp-red);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  white-space: nowrap;
}

/* ------------------------------------------------------------------ форма заявки */

.lp-form { display: grid; gap: 14px; min-width: 0; }

.lp-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.lp-form__field {
  display: grid;
  gap: 7px;
  color: var(--lp-muted-dark);
  font-size: 13px;
  font-weight: 650;
}

.lp-form__opt { color: #5c6d80; font-weight: 500; }

.lp-form__field input {
  width: 100%;
  min-height: 50px;
  padding: 0 15px;
  border: 1px solid #33404f;
  border-radius: 14px;
  background: var(--lp-ink-raised);
  color: var(--lp-white);
  font-size: 15px;
}

.lp-form__field input::placeholder { color: #4a5a6e; }

.lp-form__field input:focus {
  outline: none;
  border-color: var(--lp-blue);
}

.lp-form__consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: #71829a;
  font-size: 12.5px;
  line-height: 1.5;
  cursor: pointer;
}

.lp-form__consent input {
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  flex: 0 0 auto;
  accent-color: var(--lp-blue);
}

.lp-form__submit { width: 100%; border: 0; cursor: pointer; font: inherit; }

.lp-form__note {
  margin: 0;
  color: #5c6d80;
  font-size: 12.5px;
  line-height: 1.5;
}

/* ------------------------------------------------------------------ подвал */

.lp-footer { background: var(--lp-ink); color: var(--lp-white); border-top: 1px solid rgba(255, 255, 255, .08); }
.lp-footer__inner { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.lp-footer__inner > span:last-child { color: #5c6d80; font-size: 13px; }
.lp-brand--footer { font-size: 18px; }

/* ------------------------------------------------------------------ адаптация */

@media (max-width: 1040px) {
  .lp-nav { display: none; }

  .lp-hero {
    grid-template-columns: 1fr;
    gap: 48px;
    padding-top: 60px;
  }

  .lp-hero__copy { max-width: 820px; }
  .lp-demo { max-width: 860px; }

  .lp-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-need { grid-template-columns: 1fr; gap: 0; }
  .lp-need p { padding: 20px 0; }
  .lp-need p + p { border-top: 1px solid var(--lp-line); }
  .lp-final__inner { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .lp-container { width: min(100% - 32px, var(--lp-max)); }

  .lp-top__inner { min-height: 60px; gap: 16px; }
  .lp-brand { font-size: 18px; }
  .lp-login { min-height: 38px; padding-inline: 12px; font-size: 12px; margin-left: auto; }

  .lp-hero { padding-block: 48px 56px; gap: 36px; }
  .lp-hero h1 { font-size: clamp(36px, 10vw, 48px); }
  .lp-lede { margin-top: 20px; font-size: 15.5px; }
  .lp-actions { align-items: stretch; flex-direction: column; margin-top: 28px; }
  .lp-button { width: 100%; }
  .lp-text-link { align-self: flex-start; }

  .lp-demo__pad { grid-template-columns: 1fr; }
  .lp-demo__controls { max-width: none; justify-content: flex-start; }

  .lp-section { padding-block: 56px; }
  .lp-section h2, .lp-final h2 { font-size: clamp(28px, 8vw, 38px); }

  .lp-steps { grid-template-columns: 1fr; gap: 26px; margin-top: 36px; }
  .lp-need { margin-top: 36px; }
  .lp-photos { grid-template-columns: 1fr; margin-top: 36px; }
  .lp-obs-note { margin-top: 32px; }

  .lp-form__row { grid-template-columns: 1fr; }

  .lp-footer__inner { min-height: 110px; align-items: flex-start; justify-content: center; flex-direction: column; }
}

@media (max-width: 420px) {
  .lp-container { width: min(100% - 24px, var(--lp-max)); }
  .lp-login { padding-inline: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .app-landing { scroll-behavior: auto; }
  .lp-tap { transition: none; }
}
