/* ==========================================================================
   print.css - 印刷用スタイル
   ========================================================================== */

@media print {
  /* -----------------------------------------------------
     1. ページ設定
     ----------------------------------------------------- */
  @page {
    margin: 2cm;
    size: A4;
  }

  /* -----------------------------------------------------
     2. 基本リセット
     ----------------------------------------------------- */
  * {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }

  body {
    font-size: 12pt;
    line-height: 1.6;
    color: #000;
    background: #fff;
  }

  /* -----------------------------------------------------
     3. 非表示要素
     ----------------------------------------------------- */
  
  /* ナビゲーション・UI要素を非表示 */
  header,
  footer,
  nav,
  .wp-block-navigation,
  .page-top-nav,
  aside,
  .sidebar,
  button,
  .wp-block-button,
  form,
  input,
  textarea,
  select,
  iframe,
  video,
  audio,
  .no-print {
    display: none !important;
  }

  /* -----------------------------------------------------
     4. 見出し
     ----------------------------------------------------- */
  h1, h2, h3, h4, h5, h6 {
    page-break-after: avoid;
    page-break-inside: avoid;
    font-weight: bold;
    color: #000;
  }

  h1 {
    font-size: 24pt;
    margin-top: 0;
    margin-bottom: 12pt;
    border-bottom: 2pt solid #000;
    padding-bottom: 6pt;
  }

  h2 {
    font-size: 18pt;
    margin-top: 18pt;
    margin-bottom: 12pt;
    border-bottom: 1pt solid #000;
    padding-bottom: 4pt;
  }

  h3 {
    font-size: 14pt;
    margin-top: 14pt;
    margin-bottom: 8pt;
  }

  h4, h5, h6 {
    font-size: 12pt;
    margin-top: 12pt;
    margin-bottom: 6pt;
  }

  /* -----------------------------------------------------
     5. 段落・本文
     ----------------------------------------------------- */
  p {
    margin: 0 0 12pt;
    orphans: 3;
    widows: 3;
  }

  /* 孤立行・寡婦行の制御 */
  p, li {
    orphans: 3;
    widows: 3;
  }

  /* -----------------------------------------------------
     6. リンク
     ----------------------------------------------------- */
  a {
    color: #000;
    text-decoration: underline;
  }

  /* URLを表示 */
  a[href^="http"]:after {
    content: " (" attr(href) ")";
    font-size: 10pt;
    color: #666;
  }

  /* 内部リンクはURL非表示 */
  a[href^="#"]:after,
  a[href^="/"]:after {
    content: "";
  }

  /* -----------------------------------------------------
     7. 画像
     ----------------------------------------------------- */
  img {
    max-width: 100% !important;
    page-break-inside: avoid;
    page-break-after: avoid;
  }

  /* 画像のキャプション */
  figure {
    page-break-inside: avoid;
    margin: 12pt 0;
  }

  figcaption {
    font-size: 10pt;
    color: #666;
    margin-top: 6pt;
  }

  /* -----------------------------------------------------
     8. リスト
     ----------------------------------------------------- */
  ul, ol {
    margin: 0 0 12pt 24pt;
    padding: 0;
  }

  li {
    margin-bottom: 6pt;
  }

  /* -----------------------------------------------------
     9. テーブル
     ----------------------------------------------------- */
  table {
    width: 100%;
    border-collapse: collapse;
    margin: 12pt 0;
    page-break-inside: avoid;
  }

  th, td {
    border: 1pt solid #000;
    padding: 6pt;
    text-align: left;
  }

  th {
    background: #f0f0f0 !important;
    font-weight: bold;
  }

  thead {
    display: table-header-group;
  }

  tfoot {
    display: table-footer-group;
  }

  /* -----------------------------------------------------
     10. 引用
     ----------------------------------------------------- */
  blockquote {
    margin: 12pt 24pt;
    padding: 12pt;
    border-left: 3pt solid #000;
    page-break-inside: avoid;
  }

  /* -----------------------------------------------------
     11. コード
     ----------------------------------------------------- */
  pre, code {
    font-family: 'Courier New', Courier, monospace;
    font-size: 10pt;
    border: 1pt solid #000;
    padding: 6pt;
    page-break-inside: avoid;
  }

  code {
    padding: 2pt 4pt;
  }

  pre {
    white-space: pre-wrap;
    word-wrap: break-word;
  }

  /* -----------------------------------------------------
     12. ページブレーク制御
     ----------------------------------------------------- */
  
  /* 改ページを避ける */
  blockquote,
  table,
  pre,
  figure,
  .wp-block-image,
  .wp-block-quote,
  .wp-block-code,
  .wp-block-table {
    page-break-inside: avoid;
  }

  /* 見出し直後の改ページを避ける */
  h1, h2, h3, h4, h5, h6 {
    page-break-after: avoid;
  }

  /* セクションの前で改ページ */
  section {
    page-break-before: always;
  }

  /* 最初のセクションは改ページしない */
  section:first-of-type {
    page-break-before: avoid;
  }

  /* -----------------------------------------------------
     13. WordPressブロック対応
     ----------------------------------------------------- */
  
  /* カバーブロック */
  .wp-block-cover {
    page-break-inside: avoid;
  }

  /* カラムブロック */
  .wp-block-columns {
    display: block;
  }

  .wp-block-column {
    page-break-inside: avoid;
    margin-bottom: 12pt;
  }

  /* グループブロック */
  .wp-block-group {
    page-break-inside: avoid;
    margin: 12pt 0;
  }

  /* セパレーター */
  .wp-block-separator,
  hr {
    border: none;
    border-top: 1pt solid #000;
    margin: 12pt 0;
  }

  /* -----------------------------------------------------
     14. ヘッダー・フッター（印刷時の追加情報）
     ----------------------------------------------------- */
  
  /* ページヘッダー（印刷時のみ表示） */
  .print-header {
    display: block !important;
    text-align: center;
    margin-bottom: 24pt;
    padding-bottom: 12pt;
    border-bottom: 2pt solid #000;
  }

  /* ページフッター（印刷時のみ表示） */
  .print-footer {
    display: block !important;
    text-align: center;
    margin-top: 24pt;
    padding-top: 12pt;
    border-top: 1pt solid #000;
    font-size: 10pt;
    color: #666;
  }

  /* -----------------------------------------------------
     15. 最適化
     ----------------------------------------------------- */
  
  /* 影・装飾を削除 */
  * {
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
  }

  /* 背景画像を削除 */
  * {
    background-image: none !important;
  }

  /* アニメーション・トランジションを無効化 */
  * {
    animation: none !important;
    transition: none !important;
  }

  /* -----------------------------------------------------
     16. アクセシビリティ（印刷時）
     ----------------------------------------------------- */
  
  /* 略語の展開 */
  abbr[title]:after {
    content: " (" attr(title) ")";
    font-size: 10pt;
    color: #666;
  }
}
