/* ===== 全ページ共通の印刷スタイル ===== */
/* 縦・横どちらでも崩れずに収まるように設計 */

@media print {
  /* ページ余白：portrait/landscape どちらでも余白 14mm */
  @page {
    margin: 14mm;
  }

  /* ベース */
  html, body {
    background: #fff !important;
    color: #000 !important;
    font-size: 11pt;
    line-height: 1.55;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* サイトヘッダー・サイドバー・ナビ・フッター・モーダル等は非表示 */
  .site-header,
  .page-sidebar,
  .sidebar,
  .topbar,
  .map-controls,
  .filter-actions,
  .filter-card,
  .filter-axes,
  .filter-meta,
  .compare-panel,
  #compare-bar,
  .compare-check,
  .actions,
  .col-action,
  .print-bar,
  .footer-cta,
  .top-actions,
  .back-link,
  .nav-link,
  .find-filter,
  .sort-control,
  .list-head .sort-control,
  .suggest-overlay,
  .suggest-card,
  .suggest-top-cta,
  .ledge .logout-link,
  .pw-banner,
  .nav-icon,
  .pin-corrections-toolbar,
  .mobile-menu-btn,
  iframe[src*='maps'],
  #find-map,
  #schoolMap,
  #tayoukaMap,
  button,
  .btn,
  [role='button'] {
    display: none !important;
  }

  /* メイン領域はサイドバーマージンを解除して全幅 */
  body.has-site-header,
  body.has-page-sidebar,
  body {
    padding: 0 !important;
    margin: 0 !important;
  }
  body.has-page-sidebar .page,
  body.has-site-header,
  .page,
  .find-page,
  main {
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
  }

  /* 見出し */
  h1 { font-size: 18pt; margin: 0 0 6pt; page-break-after: avoid; }
  h2 { font-size: 14pt; margin: 12pt 0 6pt; page-break-after: avoid; }
  h3 { font-size: 12pt; margin: 10pt 0 4pt; page-break-after: avoid; }
  h4 { font-size: 11pt; margin: 8pt 0 4pt; page-break-after: avoid; }

  /* カード/セクション */
  .card,
  .section,
  .school-info-card,
  .find-map-card,
  .find-list-card,
  .sub-section,
  .account-card,
  .hero,
  .cmp-table-wrap {
    box-shadow: none !important;
    border: 1px solid #ddd !important;
    padding: 10pt 12pt !important;
    margin-bottom: 8pt !important;
    page-break-inside: avoid;
    background: #fff !important;
  }

  /* テーブル */
  table {
    width: 100% !important;
    border-collapse: collapse !important;
    page-break-inside: auto;
    font-size: 9.5pt;
  }
  thead { display: table-header-group; } /* 各ページにヘッダ繰り返し */
  tr { page-break-inside: avoid; page-break-after: auto; }
  th, td {
    border: 1px solid #bbb !important;
    padding: 4pt 6pt !important;
    text-align: left;
  }
  th {
    background: #f0f0f0 !important;
    font-weight: 700;
  }

  /* リンク：URLをカッコ書きで補足表示（外部リンクのみ） */
  a[href]:not([href^='#']):not([href^='javascript']):not(.no-print-url) {
    color: #000 !important;
    text-decoration: underline;
  }
  /* PDFでURL明記。但しコンパクトに */
  a.print-url-show[href]:after {
    content: " (" attr(href) ")";
    font-size: 9pt;
    color: #555;
  }

  /* 結果一覧（カード型） */
  .result-list {
    display: block !important;
    columns: 2 !important;
    column-gap: 8mm !important;
  }
  .result-card {
    break-inside: avoid;
    page-break-inside: avoid;
    margin-bottom: 6pt !important;
    padding: 6pt 8pt !important;
    border: 1px solid #ccc !important;
    background: #fff !important;
    font-size: 9.5pt !important;
  }
  .result-card h3 { font-size: 11pt !important; margin: 0 0 3pt !important; }
  .result-card .tag, .pill, .pill-tuition, .pill-entry { background: #fff !important; color: #000 !important; border: 1px solid #888 !important; padding: 1px 5px !important; }

  /* チャート・キャンバスは印刷では潰れがちなので保持・余白入れる */
  canvas, .chart-wrap {
    max-width: 100% !important;
    page-break-inside: avoid;
  }

  /* マップ・凡例 */
  .map-legend {
    background: #fff !important;
    border: 1px solid #ddd !important;
  }
  .map-legend__item .dot {
    box-shadow: none !important;
    border: 1px solid #888 !important;
  }

  /* KPIグリッド */
  .kpi-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 6pt !important;
  }
  .kpi-card {
    border: 1px solid #ddd !important;
    box-shadow: none !important;
    padding: 6pt 8pt !important;
    page-break-inside: avoid;
  }
  .kpi-value { font-size: 14pt !important; color: #000 !important; }

  /* 比較ページのテーブル */
  .cmp-table {
    font-size: 9pt !important;
  }
  .cmp-table thead th {
    background: #f0f0f0 !important;
    color: #000 !important;
  }
  .cmp-table tbody td.row-school {
    background: #fafafa !important;
    border-left: 3px solid #888 !important;
  }
  .cmp-table tbody td.row-school .name { color: #000 !important; }

  /* 補助金カード */
  .sub-card {
    border-left: 3px solid #888 !important;
    background: #fafafa !important;
    page-break-inside: avoid;
  }

  /* 学校詳細ヘッダー */
  .hero__cta { display: none !important; }
  .hero__name { color: #000 !important; }

  /* 強制改ページが必要なセクション */
  .section--page-break {
    page-break-before: always;
  }

  /* 横幅が広いコンテンツ（テーブル）はオーバーフローしないよう */
  .table-wrap,
  .cmp-table-wrap {
    overflow: visible !important;
  }

  /* 印刷時は地図枠を非表示にしつつ、印刷用説明を出すのもアリだが、今回はシンプルに隠す */

  /* eyebrow / カテゴリラベル */
  .eyebrow {
    color: #555 !important;
    background: transparent !important;
  }

  /* タグカラー：印刷では枠線で識別 */
  .tag, .pill, .legend-pill {
    background: #fff !important;
    color: #000 !important;
    border: 1px solid #aaa !important;
    box-shadow: none !important;
  }

  /* 紹介文等の長文セクション内テーブル/段落の改ページ */
  p, li { orphans: 3; widows: 3; }
}

/* 印刷用にlandscape固定が望ましいページ（比較ページなど）はpage-side-landscapeクラスを body に付ける */
@media print {
  body.print-landscape @page { size: landscape; }
  body.print-portrait  @page { size: portrait; }
}
