@media print {
  /* A4サイズ・余白調整（左右を狭く） */
  @page {
    size: A4;
    margin: 16mm 10mm 18mm 10mm;
  }
  html, body, main, section, article, aside, header, footer, nav, div, ul, ol, li, dl, dt, dd, p, h1, h2, h3, h4, h5, h6, figure, figcaption, .l-siteWrapper, .l-main, .l-wrapper, .l-section, .l-section3, .grid, .gcol12, .gcol8, .gcol4, .gcol3, .gcol6, .flex, .image, .text, .center, .right, .box, .p-template, .sticky-content, .mb8, .mb16, .mb24, .mb32, .mb48, .mb64, .mb72, .mb128, .mt8, .mt16, .mt24, .mt32, .mt64, .mt72, .mt128 {
    margin: 0 !important;
    padding: 0 !important;
  }
  html, body {
    width: 100% !important;
    background: #fff !important;
    color: #222 !important;
    font-family: 'Yu Gothic', 'Meiryo', sans-serif !important;
    font-size: 12pt !important;
    line-height: 1.7 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* 不要な要素を非表示 */
  header, .header, .l-footer, footer, .p-footer, .p-footer__copy, .c-pageTOP, .parallax-content, .c-breadCrumb, .c-mv {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  /* レイアウト調整 */
  .l-siteWrapper, .l-main, .l-wrapper, .l-section, .l-section3, .grid, .gcol12, .gcol8, .gcol4 {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    box-sizing: border-box !important;
    display: block !important;
    background: none !important;
    box-shadow: none !important;
  }
  .grid {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0 !important;
  }
  .gcol12 { width: 100% !important; }
  .gcol8 { width: 66.6666% !important; }
  .gcol4 { width: 33.3333% !important; }

  /* 4カラム→2カラム、2カラム→1カラム */
  .gcol3, .gcol4, .gcol6 {
    width: 50% !important;
    max-width: 50% !important;
    float: none !important;
    display: block !important;
  }
  /* 2カラム用クラスを1カラム幅に */
  .gcol8, .gcol12 {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    display: block !important;
  }

  /* 画像 */
  img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    margin: 0 auto 10px auto !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 8px #0002 !important;
    border: 1px solid #e0e0e0 !important;
    object-fit: contain !important;
    page-break-inside: avoid !important;
  }

  /* 見出し・テキスト */
  h1, .c-title {
    font-size: 2rem !important;
    color: #17624a !important;
    border-left: 5px solid #17624a !important;
    padding-left: 12px !important;
    margin-bottom: 12px !important;
    margin-top: 0 !important;
    font-weight: bold !important;
    background: none !important;
    page-break-after: avoid;
  }
  h2, h3, h4 {
    color: #17624a !important;
    margin-top: 1.2em !important;
    margin-bottom: 0.4em !important;
    background: none !important;
    border-bottom: 1px solid #e0e0e0 !important;
    padding-bottom: 2px !important;
    font-weight: bold !important;
    page-break-after: avoid;
  }
  p, li {
    font-size: 1rem !important;
    color: #222 !important;
    margin-bottom: 0.5em !important;
    background: none !important;
  }
  strong, b {
    color: #17624a !important;
    font-weight: bold !important;
  }
  .center, .right {
    text-align: right !important;
    font-style: italic !important;
    color: #444 !important;
    margin-top: 12px !important;
  }

  /* セクションボックス */
  .l-section, .l-section3, .p-template, .box {
    background: #f8f9fa !important;
    border-radius: 10px !important;
    box-shadow: 0 2px 8px #0001 !important;
    padding: 18px 24px !important;
    margin-bottom: 14px !important;
    page-break-inside: avoid !important;
  }

  /* アニメーション・装飾無効化 */
  .u-fade, .u-fade-up {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
    filter: none !important;
  }

  /* 改ページ制御 */
  section, .l-section, .l-section3, .l-wrapper, .grid {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    page-break-before: auto !important;
    page-break-after: auto !important;
    break-before: auto !important;
    break-after: auto !important;
  }

  /* ページ下部に会社名・ページ番号 */
  body::after {
    content: none !important;
    display: none !important;
  }

  /* 空のセクションやボックスを非表示 */
  .l-section:empty,
  .l-section3:empty,
  .box:empty,
  .p-template:empty {
    display: none !important;
  }

  /* すべてのボックスの影・枠線を消す */
  .l-section,
  .l-section3,
  .box,
  .p-template {
    box-shadow: none !important;
    border: none !important;
    background: none !important;
  }

  h3,
  .c-title.left,
  h3.c-title.left {
    font-size: 1.2rem !important;
  }

  /* メインビジュアル画像とその下の空白を徹底リセット */
  .c-mv,
  .c-mv .mv,
  .c-mv .mv img,
  .c-mv * {
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    box-shadow: none !important;
    border: none !important;
    background: none !important;
    page-break-after: avoid !important;
    break-after: avoid !important;
    page-break-before: auto !important;
    break-before: auto !important;
  }
  /* .c-mvの直後の全要素も徹底リセット */
  .c-mv + * {
    margin-top: 0 !important;
    padding-top: 0 !important;
    page-break-before: auto !important;
    break-before: auto !important;
  }
  /* 空のdivや高さだけ残る要素を非表示 */
  .c-mv:empty,
  .c-mv .mv:empty {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  /* mainや.l-mainの余白もリセット */
  main, .l-main {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  .c-mv {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 18px 0 !important;
    padding: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    background: none !important;
    box-shadow: none !important;
    border: none !important;
    position: static !important;
    overflow: visible !important;
    page-break-after: avoid !important;
  }
  .c-mv .mv {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    box-shadow: none !important;
    border: none !important;
    position: static !important;
    overflow: visible !important;
  }
  .c-mv .mv img {
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: none !important;
    margin: 0 auto 12px auto !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 8px #0002 !important;
    border: 1px solid #e0e0e0 !important;
    object-fit: contain !important;
    page-break-inside: avoid !important;
  }
  /* メインビジュアル内のテキストや装飾は非表示 */
  .c-mv .wrap,
  .c-mv .hero,
  .c-mv .hero .ja,
  .c-mv .hero .ticker,
  .c-mv .hero .en,
  .c-mv:after {
    display: none !important;
  }

  .l-section3 {
    padding-top: 0 !important;
  }

  /* .flexを1カラム（縦並び）に */
  .flex {
    display: block !important;
    flex-direction: column !important;
    gap: 0 !important;
  }
  .flex > .image,
  .flex > .text {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
  }

  .mb32 {
    margin: 0 !important;
    padding: 0 !important;
  }

  .p-template .sticky-content .text {
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
  }

  /* ul, olのリスト余白も削除 */
  ul, ol {
    margin-left: 1.2em !important;
    padding-left: 1.2em !important;
  }

  /* .list-11のデザインをPC版に近づける */
  .list-11 {
    list-style: disc inside !important;
    border-left: 5px solid #17624a !important;
    padding-left: 1em !important;
    margin: 0 0 1em 0 !important;
    background: none !important;
  }
  .list-11 li {
    margin-bottom: 0.4em !important;
    color: #222 !important;
    font-size: 1rem !important;
    background: none !important;
    position: relative !important;
  }
  .list-11 li:last-child {
    margin-bottom: 0 !important;
  }
  .list-11 li span {
    color: #3F9137 !important;
    font-weight: bold !important;
  }
} 