/* ============================================================
   Чарышские Усадьбы — печать в PDF (одна секция = одна страница)
   ----------------------------------------------------------
   Работает в двух режимах:
     • @media print   — реальная печать (Ctrl+P, headless --print-to-pdf)
     • body.printing  — preview-режим через ?print=1 (видно прямо на сайте)
   Все правила дублируются для обоих режимов через два корневых селектора.
   ============================================================ */

/* @page применяется только в режиме печати. */
@media print {
  @page { size: A4 landscape; margin: 0; }
}

/* ─── Общий блок правил, объединённый через два корня ─── */

/* Печать фонов и фото. */
@media print { *, *::before, *::after {
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
  color-adjust: exact !important;
}}
body.printing *, body.printing *::before, body.printing *::after {
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
  color-adjust: exact !important;
}

/* html/body — сброс. */
@media print {
  html, body { margin: 0 !important; padding: 0 !important; background: #fff !important; }
}
body.printing {
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
}

/* Прячем шапку и футер. */
@media print { .site-header, footer.site-footer { display: none !important; } }
body.printing .site-header, body.printing footer.site-footer { display: none !important; }

/* RapportStrip (узкая декор-полоса) — не отдельная страница. */
@media print { .rapport, .rapport-strip, section.rapport-strip { display: none !important; } }
body.printing .rapport-strip, body.printing section.rapport-strip { display: none !important; }

/* Анимации reveal — мгновенно. */
@media print {
  .reveal, .reveal.in, .reveal-up, .reveal-fade, [class*="reveal"] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}
body.printing .reveal,
body.printing .reveal.in,
body.printing .reveal-up,
body.printing .reveal-fade,
body.printing [class*="reveal"] {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
}

/* ── Главное правило: каждая секция = одна страница A4 landscape ── */
@media print {
  section, .pc-scale, .pc-bonus-section {
    width: 297mm !important;
    height: 209mm !important;
    min-height: 209mm !important;
    max-height: 209mm !important;
    overflow: hidden !important;
    break-before: page !important;
    page-break-before: always !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    margin: 0 !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    position: relative !important;
  }
  body > #root > div > section:first-of-type,
  .hero.hero-A {
    break-before: avoid !important;
    page-break-before: avoid !important;
  }
}
body.printing section,
body.printing .pc-scale,
body.printing .pc-bonus-section {
  width: 297mm !important;
  height: 209mm !important;
  min-height: 209mm !important;
  max-height: 209mm !important;
  overflow: hidden !important;
  margin: 0 auto 6mm auto !important;
  box-shadow: 0 2mm 6mm rgba(0,0,0,.15);
  box-sizing: border-box !important;
  position: relative !important;
  background: #fff;
  /* КЛЮЧЕВОЕ: при печати из body.printing — каждая секция = новая страница. */
  break-before: page !important;
  page-break-before: always !important;
  break-inside: avoid !important;
  page-break-inside: avoid !important;
}
body.printing section:first-of-type,
body.printing .hero.hero-A {
  break-before: avoid !important;
  page-break-before: avoid !important;
}
/* Last section — без trailing страницы. */
body.printing section:last-of-type {
  break-after: avoid !important;
  page-break-after: avoid !important;
}
@media print {
  section:last-of-type, .pc-bonus-section:last-of-type {
    break-after: avoid !important;
    page-break-after: avoid !important;
  }
}

/* Внутренний контейнер — точка приложения transform:scale из print-prep.js. */
@media print {
  section > .container,
  .pc-bonus-section > .container {
    transform-origin: top left;
  }
}
body.printing section > .container,
body.printing .pc-bonus-section > .container {
  transform-origin: top left;
}

/* Hero / Scale — fullbleed, не трогаем масштаб. */
@media print {
  .hero.hero-A { padding: 0 !important; }
  .hero-photo, .pc-scale-photo { width: 100% !important; height: 100% !important; }
}
body.printing .hero.hero-A { padding: 0 !important; }
body.printing .hero-photo, body.printing .pc-scale-photo {
  width: 100% !important; height: 100% !important;
}

/* CTAs — без интерактивных украшений. */
@media print { .btn { box-shadow: none !important; } .header-cta { display: none !important; } }
body.printing .btn { box-shadow: none !important; }
body.printing .header-cta { display: none !important; }

/* Ссылки — без подчёркивания и без url. */
@media print {
  a, a:visited { color: inherit !important; text-decoration: none !important; }
  a[href]::after { content: '' !important; }
}
body.printing a, body.printing a:visited {
  color: inherit !important; text-decoration: none !important;
}
body.printing a[href]::after { content: '' !important; }

/* Картинки не вылезают. */
@media print { img { max-width: 100% !important; height: auto; } }
body.printing img { max-width: 100% !important; height: auto; }

/* ── ВАЖНО: убираем внутренние max-width контента, чтобы контент после ── */
/* ── transform:scale + width:100/scale% действительно заполнял A4 ── */
@media print {
  section > .container,
  .pc-bonus-section > .container { max-width: none !important; }
  section .lead,
  section .comm-head,
  section .container > p { max-width: none !important; }
}
body.printing section > .container,
body.printing .pc-bonus-section > .container { max-width: none !important; }
body.printing section .lead,
body.printing section .comm-head,
body.printing section .container > p { max-width: none !important; }

/* ── ПЕР-СЕКЦИОННЫЕ ПРАВКИ для PDF-презентации ── */

/* Page 5: #location — большое фото забирало 70%, карточки не помещались. */
@media print, screen {
  body.printing #location .place-photo.pc-location-photo,
  #location .place-photo.pc-location-photo {
    max-height: 380px !important;
    min-height: 380px !important;
  }
}
@media print {
  #location .place-photo.pc-location-photo {
    max-height: 380px !important;
    min-height: 380px !important;
  }
}

/* Page 6: #place — большой aerial-снимок и галерея пожирали страницу. */
@media print {
  #place .place-gallery { gap: 8px !important; }
  #place .place-gallery-ph { height: 120px !important; }
  #place .place-gallery-cell:first-child .place-gallery-ph { height: 220px !important; }
  #place .climate-grid { gap: 6px !important; }
  #place .climate-cell { padding: 8px !important; }
  #place .lead { margin-bottom: 12px !important; }
}
body.printing #place .place-gallery { gap: 8px !important; }
body.printing #place .place-gallery-ph { height: 120px !important; }
body.printing #place .place-gallery-cell:first-child .place-gallery-ph { height: 220px !important; }
body.printing #place .climate-grid { gap: 6px !important; }
body.printing #place .climate-cell { padding: 8px !important; }
body.printing #place .lead { margin-bottom: 12px !important; }

/* Speaker — компактнее, чтобы все теги (Подход/Семья/Контакт) видны. */
@media print {
  #speaker .pc-speaker-grid { gap: 32px !important; }
  #speaker .pc-speaker-block { margin-bottom: 12px !important; }
  #speaker .pc-speaker-list li { margin-bottom: 4px !important; line-height: 1.35 !important; }
  #speaker .pc-speaker-tags { gap: 6px !important; }
  #speaker .pc-speaker-tag-group { padding: 6px 0 !important; }
}
body.printing #speaker .pc-speaker-grid { gap: 32px !important; }
body.printing #speaker .pc-speaker-block { margin-bottom: 12px !important; }
body.printing #speaker .pc-speaker-list li { margin-bottom: 4px !important; line-height: 1.35 !important; }
body.printing #speaker .pc-speaker-tags { gap: 6px !important; }
body.printing #speaker .pc-speaker-tag-group { padding: 6px 0 !important; }

/* ═══════════════════════════════════════════════════════════════════════
   ЕДИНЫЕ ШРИФТЫ ЗАГОЛОВКОВ ПО ВСЕЙ ПРЕЗЕНТАЦИИ (h2 секций)
   ═══════════════════════════════════════════════════════════════════════ */
@media print {
  section .h-display-l,
  section .h-display-xl,
  .pc-scale .pc-scale-h,
  .pc-bonus-section .pc-bonus-h {
    font-size: 56px !important;
    line-height: 1.05 !important;
    margin-top: 0 !important;
    margin-bottom: 16px !important;
  }
  section .h-display-m { font-size: 32px !important; line-height: 1.1 !important; }
  section .crumb {
    font-size: 11px !important;
    letter-spacing: 0.12em !important;
    margin-bottom: 12px !important;
  }
  section .comm-head { margin-bottom: 18px !important; }
}
body.printing section .h-display-l,
body.printing section .h-display-xl,
body.printing .pc-scale .pc-scale-h,
body.printing .pc-bonus-section .pc-bonus-h {
  font-size: 56px !important;
  line-height: 1.05 !important;
  margin-top: 0 !important;
  margin-bottom: 16px !important;
}
body.printing section .h-display-m { font-size: 32px !important; line-height: 1.1 !important; }
body.printing section .crumb {
  font-size: 11px !important;
  letter-spacing: 0.12em !important;
  margin-bottom: 12px !important;
}
body.printing section .comm-head { margin-bottom: 18px !important; }

/* ═══════════════════════════════════════════════════════════════════════
   Page 04: Big Altai context (#altai-market) — крупнее, плотнее, прижато к верху.
   ═══════════════════════════════════════════════════════════════════════ */
@media print {
  #altai-market { padding-top: 14px !important; padding-bottom: 14px !important; }
  #altai-market .pc-bigaltai-inner { padding-top: 0 !important; }
  #altai-market .comm-head { margin-bottom: 10px !important; }
  #altai-market .pc-bigaltai-hero-note {
    font-size: 13px !important;
    line-height: 1.4 !important;
    margin: 6px 0 12px !important;
    max-width: none !important;
  }
  /* Карточки макротерритории */
  #altai-market .pc-bigaltai-def { gap: 14px !important; margin-bottom: 12px !important; }
  #altai-market .pc-bigaltai-def-l { font-size: 11px !important; }
  #altai-market .pc-bigaltai-def-v { font-size: 22px !important; line-height: 1.1 !important; }
  #altai-market .pc-bigaltai-def-d { font-size: 13px !important; line-height: 1.45 !important; }
  /* Бар-чарт */
  #altai-market .pc-chart-wrap { margin: 8px 0 !important; }
  #altai-market .pc-chart-h { font-size: 12px !important; margin-bottom: 4px !important; }
  #altai-market .pc-chart { height: 100px !important; }
  #altai-market .pc-bar-value { font-size: 11px !important; }
  #altai-market .pc-bar-year { font-size: 11px !important; }
  #altai-market .pc-bar-src { font-size: 9px !important; }
  #altai-market .pc-chart-src { font-size: 10px !important; }
  /* Три статистики */
  #altai-market .pc-bigaltai-stats { gap: 10px !important; margin: 8px 0 !important; }
  #altai-market .pc-bigaltai-stat { padding: 10px !important; }
  #altai-market .pc-bigaltai-stat-v { font-size: 28px !important; line-height: 1 !important; }
  #altai-market .pc-bigaltai-stat-l { font-size: 11px !important; }
  #altai-market .pc-bigaltai-stat-sub { font-size: 10px !important; line-height: 1.3 !important; }
  /* Tile-сетка проектов */
  #altai-market .pc-bigaltai-flagships-h { font-size: 11px !important; margin-bottom: 6px !important; }
  #altai-market .pc-bigaltai-flagships-grid { gap: 8px !important; }
  #altai-market .pc-bigaltai-flagship { padding: 8px !important; }
  #altai-market .pc-bigaltai-flagship-name { font-size: 13px !important; line-height: 1.1 !important; }
  #altai-market .pc-bigaltai-flagship-sub { font-size: 10px !important; line-height: 1.35 !important; }
  #altai-market .pc-bigaltai-flagship-fact { font-size: 11px !important; }
  #altai-market .pc-bigaltai-flagship-where { font-size: 9px !important; }
}
body.printing #altai-market { padding-top: 14px !important; padding-bottom: 14px !important; }
body.printing #altai-market .pc-bigaltai-inner { padding-top: 0 !important; }
body.printing #altai-market .comm-head { margin-bottom: 10px !important; }
body.printing #altai-market .pc-bigaltai-hero-note {
  font-size: 13px !important;
  line-height: 1.4 !important;
  margin: 6px 0 12px !important;
  max-width: none !important;
}
body.printing #altai-market .pc-bigaltai-def { gap: 14px !important; margin-bottom: 12px !important; }
body.printing #altai-market .pc-bigaltai-def-l { font-size: 11px !important; }
body.printing #altai-market .pc-bigaltai-def-v { font-size: 22px !important; line-height: 1.1 !important; }
body.printing #altai-market .pc-bigaltai-def-d { font-size: 13px !important; line-height: 1.45 !important; }
body.printing #altai-market .pc-chart-wrap { margin: 8px 0 !important; }
body.printing #altai-market .pc-chart-h { font-size: 12px !important; margin-bottom: 4px !important; }
body.printing #altai-market .pc-chart { height: 100px !important; }
body.printing #altai-market .pc-bar-value { font-size: 11px !important; }
body.printing #altai-market .pc-bar-year { font-size: 11px !important; }
body.printing #altai-market .pc-bar-src { font-size: 9px !important; }
body.printing #altai-market .pc-chart-src { font-size: 10px !important; }
body.printing #altai-market .pc-bigaltai-stats { gap: 10px !important; margin: 8px 0 !important; }
body.printing #altai-market .pc-bigaltai-stat { padding: 10px !important; }
body.printing #altai-market .pc-bigaltai-stat-v { font-size: 28px !important; line-height: 1 !important; }
body.printing #altai-market .pc-bigaltai-stat-l { font-size: 11px !important; }
body.printing #altai-market .pc-bigaltai-stat-sub { font-size: 10px !important; line-height: 1.3 !important; }
body.printing #altai-market .pc-bigaltai-flagships-h { font-size: 11px !important; margin-bottom: 6px !important; }
body.printing #altai-market .pc-bigaltai-flagships-grid { gap: 8px !important; }
body.printing #altai-market .pc-bigaltai-flagship { padding: 8px !important; }
body.printing #altai-market .pc-bigaltai-flagship-name { font-size: 13px !important; line-height: 1.1 !important; }
body.printing #altai-market .pc-bigaltai-flagship-sub { font-size: 10px !important; line-height: 1.35 !important; }
body.printing #altai-market .pc-bigaltai-flagship-fact { font-size: 11px !important; }
body.printing #altai-market .pc-bigaltai-flagship-where { font-size: 9px !important; }

/* ═══════════════════════════════════════════════════════════════════════
   Page 05: #location — заголовок выше, фото компактнее.
   ═══════════════════════════════════════════════════════════════════════ */
@media print {
  #location .place-photo-frame {
    padding-top: 24px !important;
    padding-bottom: 0 !important;
    justify-content: flex-start !important;
  }
  #location .place-photo-h {
    margin-top: 8px !important;
    margin-bottom: 8px !important;
  }
}
body.printing #location .place-photo-frame {
  padding-top: 24px !important;
  padding-bottom: 0 !important;
  justify-content: flex-start !important;
}
body.printing #location .place-photo-h {
  margin-top: 8px !important;
  margin-bottom: 8px !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   Page 06: #place — уже фото, выше заголовок.
   ═══════════════════════════════════════════════════════════════════════ */
@media print {
  #place { padding-top: 14px !important; }
  #place .container { padding-top: 0 !important; }
  #place .comm-head { margin-top: 0 !important; margin-bottom: 14px !important; }
  /* Aerial-фото — сделать уже (центрированный блок 70% ширины) */
  #place .place-gallery-cell:first-child {
    max-width: 70% !important;
    margin: 0 auto !important;
  }
}
body.printing #place { padding-top: 14px !important; }
body.printing #place .container { padding-top: 0 !important; }
body.printing #place .comm-head { margin-top: 0 !important; margin-bottom: 14px !important; }
body.printing #place .place-gallery-cell:first-child {
  max-width: 70% !important;
  margin: 0 auto !important;
}
