/* ========== 基本 ========== */
@page {
    size: A4 portrait;
    margin: 12mm;
}

@media print {

    /* 画面専用の装飾を殺す */
    * {
        box-shadow: none !important;
        text-shadow: none !important;
    }

    html,
    body {
        background: #fff !important;
        color: #000 !important;
    }

    img {
        max-width: 100% !important;
        height: auto !important;
        page-break-inside: avoid;
    }

    svg,
    video {
        display: none !important;
    }

    /* 余計なUIを非表示（想定される共通クラスを広めに網羅） */
    header,
    nav,
    footer,
    .site-header,
    .global-header,
    .l-header,
    .site-footer,
    .global-footer,
    .l-footer,
    .sidebar,
    .widget-area,
    .breadcrumb,
    .pagetop,
    .drawer,
    .offcanvas,
    .sticky,
    .floating,
    .ad,
    .banner,
    .swiper,
    .swiper-container,
    .swiper-wrapper,
    .swiper-button-prev,
    .swiper-button-next,
    .swiper-pagination,
    .slick-slider,
    .slick-arrow,
    .slick-dots,
    .carousel,
    .marquee,
    .hero--full,
    .kv,
    .mv {
        display: none !important;
    }

    /* 本文コンテンツの横幅を用紙に最適化 */
    .container,
    .l-container,
    .content,
    main,
    .entry-content {
        max-width: 100% !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* 見出し周りと行間 */
    body {
        font-size: 12pt;
        line-height: 1.6;
    }

    h1 {
        font-size: 20pt;
        margin: 0 0 8pt;
    }

    h2 {
        font-size: 16pt;
        margin: 12pt 0 6pt;
        page-break-after: avoid;
    }

    h3 {
        font-size: 13pt;
        margin: 10pt 0 4pt;
        page-break-after: avoid;
    }

    p,
    ul,
    ol,
    table,
    figure,
    section {
        page-break-inside: avoid;
    }

    /* リンクはURLも印字（電話・ページ内リンクは除外） */
    a[href^="http"]:after {
        content: " (" attr(href) ")";
        font-size: 10pt;
    }

    a[href^="#"]:after,
    a[href^="tel:"]:after,
    a[href^="mailto:"]:after {
        content: "";
    }

    /* 表：はみ出し防止＆見やすく */
    table {
        width: 100% !important;
        border-collapse: collapse !important;
    }

    th,
    td {
        border: 1px solid #999 !important;
        padding: 6px !important;
        vertical-align: top;
    }

    /* 画像グリッドを整列（ギャラリー系） */
    .gallery,
    .c-gallery,
    [class*="gallery"] {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    /* スライダー系：1枚目だけを静止画として表示（広め対応） */
    .slick-slide,
    .swiper-slide,
    [class*="slide"] {
        display: none !important;
    }

    .slick-slide.slick-current,
    .swiper-slide-active,
    [class*="slide"]:first-child {
        display: block !important;
    }

    /* 会社情報や連絡先は残す（想定ID/クラス） */
    .contact,
    .c-contact,
    #contact,
    .company-info,
    .footer-info {
        display: block !important;
    }

    /* 余白の微調整 */
    .section,
    .block,
    .card,
    .row,
    .col {
        margin: 0 0 10pt !important;
        padding: 0 !important;
    }
}