/**
 * TVK Flow Layout — весь сайт: без parallax-наезда, анкета sticky в .page-grid
 * v1.5 — sticky только CSS (без JS fixed/bottom)
 */

/* ── Parallax hero: только главная; остальные страницы — обычный скролл ── */
body:not(.home-page) .page-hero.tvk-hero-parallax-host,
body:not(.home-page) .hero-section.tvk-hero-parallax-host,
body:not(.home-page) .hero.tvk-hero-parallax-host,
body.home-page .hero-section.tvk-hero-parallax-host,
body.home-page .hero.tvk-hero-parallax-host,
.product-page .page-hero.tvk-hero-parallax-host,
.tvk-inner-page .page-hero.tvk-hero-parallax-host,
.download-page .page-hero.tvk-hero-parallax-host {
  transform: none !important;
  will-change: auto !important;
}

/* Hero: медиа/карточки в шапке — не sticky */
.page-hero .side-card,
.page-hero aside.side-card,
.product-page .page-hero .side-card,
.product-page .page-hero .product-media,
.tvk-inner-page .page-hero .side-card,
.download-page .page-hero .side-card {
  position: static !important;
  top: auto !important;
  transform: none !important;
}

/* ── Двухколоночная сетка (контент + анкета) ── */
.page-grid,
.product-page .page-grid,
.tvk-inner-page .page-grid,
.download-page .page-grid,
.izokom-page .page-grid {
  display: grid !important;
  align-items: start !important;
  gap: clamp(20px, 2.5vw, 32px) !important;
}

.page-grid > .content-stack,
.product-page .page-grid > .content-stack,
.tvk-inner-page .page-grid > .content-stack,
.download-page .page-grid > .content-stack,
.izokom-page .page-grid > .content-stack {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  max-width: 100%;
  width: 100%;
  overflow: visible;
  position: relative;
  z-index: 1;
}

.page-grid > .side-card#contact,
.page-grid > aside.side-card#contact,
.page-grid > aside#contact.side-card,
.page-grid > .side-card.side-card--form#contact,
.product-page .page-grid > .side-card#contact,
.tvk-inner-page .page-grid > .side-card#contact,
.download-page .page-grid > .side-card#contact {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  justify-self: stretch;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
}

/* Десктоп: анкета липнет в правой колонке (продуктовые и все с page-grid) */
@media (min-width: 901px) {
  .page-grid,
  .product-page .page-grid,
  .tvk-inner-page .page-grid,
  .download-page .page-grid,
  .izokom-page .page-grid {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 360px) !important;
  }

  .page-grid > .side-card#contact,
  .page-grid > aside.side-card#contact,
  .page-grid > aside#contact.side-card,
  .page-grid > .side-card.side-card--form#contact,
  .page-grid > #contact,
  .product-page .page-grid > .side-card#contact,
  .tvk-inner-page .page-grid > .side-card#contact,
  .download-page .page-grid > .side-card#contact {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: calc(var(--header-h, 64px) + 12px) !important;
    bottom: auto !important;
    align-self: start !important;
    justify-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    max-height: calc(100dvh - var(--header-h, 64px) - 20px) !important;
    overflow-y: auto !important;
    overflow-x: visible !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    z-index: 30 !important;
  }
}

@media (max-width: 900px) {
  .page-grid,
  .product-page .page-grid,
  .tvk-inner-page .page-grid,
  .download-page .page-grid,
  .hero-grid,
  .product-page .hero-grid {
    grid-template-columns: 1fr !important;
  }

  .page-grid > .content-stack,
  .page-grid > .side-card#contact,
  .page-grid > aside.side-card#contact,
  .product-page .page-grid > .content-stack,
  .product-page .page-grid > .side-card#contact {
    grid-column: 1 !important;
    grid-row: auto !important;
  }

  .page-grid > .side-card#contact,
  .page-grid > aside.side-card#contact,
  .product-page .page-grid > .side-card#contact {
    position: static !important;
    top: auto !important;
    max-height: none !important;
    overflow: visible !important;
    order: 10;
    margin-top: clamp(12px, 2vw, 20px);
  }
}

/* ── Секции: один вертикальный поток (overflow-x: hidden ломает position: sticky) ── */
main,
.page-main,
.product-page main,
.tvk-inner-page main,
.download-page main {
  overflow-x: visible;
  overflow-y: visible;
}

body.product-page,
body.tvk-inner-page,
body.download-page,
body:has(.page-grid > #contact) {
  overflow-x: clip;
}

.page-section,
.page-section > .container,
.page-section > .container.page-grid,
.page-grid {
  overflow: visible !important;
}

.page-section,
.page-hero,
.product-page .page-section,
.product-page .page-hero,
.tvk-inner-page .page-section,
.tvk-inner-page .page-hero {
  overflow: visible !important;
  position: relative;
  z-index: auto;
}

.page-section > .container,
.page-hero > .container {
  position: relative;
  z-index: auto;
}

/* Карточки контента — без подъёма при hover */
.content-card:hover,
.side-card:not(.tvk-form-interactive):hover,
.beautiful-card:hover,
.document-card.content-card:hover {
  transform: none !important;
}

.table-shell,
.u-table-scroll,
.product-page .table-shell,
.product-page .u-table-scroll {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

body.product-page::before,
body.product-page::after,
body.tvk-inner-page::before,
body.tvk-inner-page::after,
body.download-page::before,
body.download-page::after {
  display: none !important;
  content: none !important;
}

/* Заголовок формы заявки — финальное центрирование (грузится после inner/product-layout) */
form.lead-form .lead-form__title,
.lead-form h3.lead-form__title,
.side-card form.lead-form .lead-form__title,
#contact form.lead-form .lead-form__title {
  text-align: center !important;
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  text-transform: none !important;
}

form.lead-form > .form-note,
.lead-form > p.form-note {
  text-align: center !important;
  width: 100% !important;
}
