/* ============================================================
   kusuwata.com — 印刷・PDF保存用の最小調整
   画面の「工房の記録簿」らしい配色・写真・構成は残し、
   印刷時だけ操作UIと余白を整理する。
   ============================================================ */

@page {
  size: A4;
  margin: 9mm 9mm 11mm;
}

@media print {
  :root {
    /* ページ余白は @page に任せ、画面用の左右余白を重ねない。 */
    --pad-x: 0px;
  }

  html,
  body {
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  body {
    /* 画面の生成り紙・方眼・朱赤・濃紺はそのまま出力する。 */
    font-size: 10pt;
    line-height: 1.65;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* 画面をスクロールするまで非表示になる本文も、紙面では必ず出す。 */
  .reveal,
  .reveal.is-in {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }

  /* クリック・移動のためだけにある要素は省く。本文や写真は残す。 */
  .skip-link,
  .site-nav,
  .header-cta,
  .mobile-menu,
  .jump-nav,
  .hero-actions,
  .news-head > .arrow-link,
  .news-rotator-controls,
  .news-mobile-cue,
  .contact,
  .site-footer,
  .film-frame,
  [data-news-article-section] > [data-news="article"] > .arrow-link:last-child {
    display: none !important;
  }

  /* sticky ヘッダーだけは紙面の先頭に自然に置く。 */
  .site-header {
    position: static !important;
  }

  main,
  .hero,
  .page-hero,
  .news,
  .concept,
  .fields,
  .origin,
  .cycle,
  .strip,
  .work-block,
  .article {
    overflow: visible !important;
  }

  .wrap,
  .article {
    max-width: none !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
  }

  /* 画面のセクション構成は保ちつつ、A4で間延びしない間隔にする。 */
  .hero,
  .page-hero {
    padding-block: 8mm !important;
  }

  .news,
  .fields,
  .origin,
  .cycle,
  .strip,
  .work-block {
    padding-block: 9mm !important;
  }

  .concept,
  .dark-band {
    padding-block: 9mm !important;
  }

  .sec-label {
    margin-bottom: 3mm !important;
  }

  .sec-lead,
  .page-lead {
    margin-top: 3mm !important;
    font-size: 10pt !important;
  }

  /* 印刷幅でモバイル用1列へ崩れないよう、元の並びを読みやすく維持する。 */
  .hero-inner,
  .page-hero-inner,
  .origin-inner,
  .media-split,
  .dark-band-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 5mm !important;
    align-items: start !important;
  }

  .hero-photos {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 3mm !important;
    min-height: 0 !important;
  }

  .hero-photos figure,
  .hero-photos .ph-a,
  .hero-photos .ph-b,
  .hero-photos .ph-c {
    position: static !important;
    display: block !important;
    width: auto !important;
    margin: 0 !important;
  }

  .hero-photos .ph-c {
    grid-column: 1 / -1;
    width: 54% !important;
    justify-self: center;
  }

  .news-grid,
  .two-col,
  .project-grid,
  .project-grid.is-two,
  .audience-choices,
  .photo-row,
  .article-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 4mm !important;
  }

  .cycle-flow {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 4mm !important;
    margin-top: 5mm !important;
  }

  .cycle-flow.is-four {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .field-list,
  .news-list {
    gap: 4mm !important;
    margin-top: 5mm !important;
  }

  .field-item,
  .field-item:nth-child(even) {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr) !important;
  }

  .field-item:nth-child(even) {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr) !important;
  }

  .field-item:nth-child(even) .fi-photo,
  .media-split.is-reverse .media-split-photo {
    order: 2 !important;
  }

  .fi-photo {
    min-height: 45mm !important;
  }

  .fi-body {
    gap: 2mm !important;
    padding: 4mm !important;
  }

  .news-card .nc-body,
  .two-col article,
  .cycle-step,
  .project-grid article > div,
  .audience-choice,
  .concept-note {
    padding: 3.5mm !important;
  }

  .news-row {
    grid-template-columns: 34mm minmax(0, 1fr) !important;
    gap: 4mm !important;
    padding: 3.5mm !important;
  }

  .news-card p,
  .news-row p {
    display: block !important;
    overflow: visible !important;
    -webkit-line-clamp: unset !important;
  }

  /* 横スクロールの写真帯は、全写真を紙面幅のグリッドに展開する。 */
  .strip-track {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 3mm !important;
    margin-top: 4mm !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  .strip-track figure {
    width: auto !important;
  }

  /* 記事は本文を優先し、余白と段落間隔だけを詰める。 */
  .article {
    padding-block: 8mm !important;
    font-size: 10.5pt !important;
  }

  .article-head {
    margin-bottom: 5mm !important;
    padding-bottom: 3mm !important;
  }

  .article-title {
    font-size: 19pt !important;
    line-height: 1.4 !important;
  }

  .article-body {
    font-size: 10.5pt !important;
    line-height: 1.65 !important;
  }

  .article-body p {
    margin-bottom: 0.9em !important;
  }

  .article-body h2 {
    margin: 1.5em 0 0.65em !important;
    font-size: 14pt !important;
  }

  .article-body img,
  .article-gallery {
    margin-block: 4mm !important;
  }

  h1,
  h2,
  h3,
  h4,
  .article-head,
  figure,
  .field-item,
  .news-card,
  .news-row,
  .two-col article,
  .cycle-step,
  .project-grid article,
  .audience-choice,
  .media-split,
  .photo-row,
  .article-gallery,
  .fact-table > div {
    break-inside: avoid-page;
    page-break-inside: avoid;
  }

  h1,
  h2,
  h3,
  h4 {
    break-after: avoid-page;
    page-break-after: avoid;
  }

  p,
  li {
    orphans: 2;
    widows: 2;
  }

  img {
    max-width: 100% !important;
    height: auto !important;
  }
}
