/* ============================
   印刷用スタイル
============================ */
@media print {

  /* =========================
     表示制御
  ========================= */
  .print-only {
    display: block !important;
  
  }
.device-only{
  display:none !important;
}

  /* Web UIは非表示 */
  header,
  nav,
  .breadcrumb,
  .back-to-top,
  .section-viewall-wrap,
  .subpage-menu,
  footer {
    display: none !important;
  }
  /* =========================
     見出し
  ========================= */
  .print-title img {
      width: 400px !important;
      height: auto !important;
  }
  .print-title{
    padding-bottom: 30px;
  }
  /* =========================
     本文レイアウト
  ========================= */
  body {
    font-size: 11pt;
    line-height: 1.5;
    margin: 0;
  }

  main {
    margin: 0 !important;
  }

  section:first-of-type {
    page-break-inside: auto !important;
  }

  section {
    page-break-inside: avoid !important;   /* セクション途中で改ページしない */
    page-break-after: auto !important;     /* セクション後の改ページは自動 */
    margin: 0 !important;                  /* 上下の余白も消す */
    padding: 0 !important;
  }

    section:nth-of-type(n+2) {
    margin-top: 30px !important;
  }

  .section-inner {
    margin: 0 !important;
    padding: 0 !important;
  }

  .contents-wrap,
  .contents-text,
  .contents-photo {
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    overflow: visible !important;
  }

 /* 2カラムレイアウトを印刷時は縦並びに */
  .row-2columns {
    display: block !important;
    width: 100% !important;
  }

  .row-2columns-box {
    display: block !important;
    width: 100% !important;
    margin: 0 0 10pt 0 !important;
  }

  .section-2columns-inner {
    width: 100% !important;
    float: none !important;
    display: block !important;
  }

  p {
    margin: 0 0 3pt !important;  /* 段落間の隙間を縮める */
  }

  ul.sub-list li,
  ul.circled-list li,
  ul.subsidy-list li {
    margin-bottom: 1pt !important;
  }

  /* =========================
     見出しの調整
  ========================= */
  h1, h2, h3, h4 {
    page-break-after: avoid !important;
    page-break-inside: avoid !important;
  }

  h2 .en {
    font-size: 16px !important;
  }
  h2 .jp {
    font-size: 20px !important;
  }

  h2.first-title {
    margin: 0 0 10px !important;
  }

  .h3-border {
    border-left: 5px solid #0074D9 !important;
    padding-left: 12px !important;
    font-size: 14pt !important;
    font-weight: 700 !important;
    color: #003357 !important;
    margin: 10px 0 !important;
    line-height: 1.4 !important;
  }

  .h3-border::before {
    content: none !important;
  }

  .introduction-list h4 {
    display: table !important;
    margin: 0 0 5px !important;
    font-size: 12pt !important;
    font-weight: 700 !important;
    color: #003357 !important;
    line-height: 1.4 !important;
    border-bottom: 1px solid #0074D9 !important;
    padding-bottom: 3px !important;
  }
  /* =========================
  
  ========================= */

  .catch-small,
  .catch-main {
    all: unset !important;
    display: block !important;
  }

    .top-visual {
    position: relative !important;
    padding-bottom: 20px;
  }

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

  .top-text {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%);
    z-index: 2 !important;
    text-align: center !important;
    width: 100% !important;
  }

  .catch-main,
  .catch-small {
    color: #fff !important;
    background: transparent !important;
    padding: 0 !important;
    text-shadow:
      0 0 2px #000,
      0 0 4px #000 !important;
  }

  .catch-small {
    font-size: 16pt !important;
    font-weight: 700 !important;
    padding: 2pt 6pt !important;
    margin-bottom: 4pt !important;
    display: inline-block !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .catch-main {
    font-size: 24pt !important;
    font-weight: 700 !important;
    display: inline-block !important;
    line-height: 1.2 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }


  /* =========================
     YOUTUBE
  ========================= */
  /* 横並び維持＆ページ幅に収める */
  .pv-wrap {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    gap: 10pt !important;
    margin: 0 !important;
  }

  .pv-block {
    flex: 1 1 45% !important;
    box-sizing: border-box !important;
    margin-bottom: 15pt !important;
    page-break-inside: avoid !important;
  }

  .pv-header img,
  .pv-thumb-wrap img {
    width: 100% !important;
    height: auto !important;
  }

  .pv-links {
    font-size: 10pt !important;
    margin-top: 5pt !important;
  }

  .pv-links a {
    color: #000 !important;           /* 印刷は黒 */
    text-decoration: underline !important;
  }

  /* 見出しの調整 */
  .pv-block h4,
  .pv-block h2 {
    font-size: 12pt !important;
    margin: 5pt 0 !important;
    color: #000 !important;
  }

  /* =========================
     info-list間延び対策
  ========================= */
/* info-list 全体の調整 */
.info-list {
  margin: 0;
  padding: 0;
  font-size: 11pt;
  line-height: 1.4; /* 行間を少し詰める */
}

/* 各行 */
.info-row,
.info-row-noline {
  display: flex;           /* ラベルとテキストを横並び */
  align-items: flex-start; /* 上揃え */
  margin: 0 0 3pt 0;       /* 下の余白を最小化 */
  padding: 0;
}

/* ラベル部分 */
.info-label {
  width: 60px;             /* ラベル幅固定 */
  font-weight: 700;
  margin: 0;
  padding: 0;
}

/* テキスト部分 */
.info-text {
  flex: 1;
  margin: 0;
  padding: 0;
}

/* リンク */
.info-link {
  margin: 0 0 0 10px;      /* ラベルとテキストから少しだけスペース */
  padding: 0;
}
  /* =========================
     フッター
  ========================= */
  .print-footer {
    display: block !important;  /* 印刷時のみ表示 */
    font-size: 10pt;
    color: #000 !important;
    margin-top: 10pt;
  }

  .print-footer hr {
    border: 0;
    border-top: 1px solid #000;
    margin-bottom: 5pt;
  }

  .print-footer .footer-info {
    display: flex;
    justify-content: space-between; /* 左右に分ける */
    align-items: center;
    margin: 0;
    padding: 0;
    text-align: left;
  }

  .print-footer .footer-address,
  .print-footer .footer-tel {
    margin: 0;
    padding: 0;
  }
  /* =========================
     影・装飾を整理（最低限）
  ========================= */
  * {
    box-shadow: none !important;
  }

}
