@charset "UTF-8";
/* ==========================================
   A4印刷用スタイル (全エリア完全最適化版)
   ========================================== */
@media print {
    @page {
        size: A4 portrait;
        margin: 8mm;
    }

    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
    }

    html,
    body {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #ffffff !important;
        font-size: 10pt !important;
        overflow: visible !important;
    }

    /* スクロールアニメーション隠し要素を印刷時すべて完全可視化 */
    .fade-in,
    [class*="fade-in"] {
        opacity: 1 !important;
        transform: none !important;
        visibility: visible !important;
        transition: none !important;
    }

    /* 不要な操作ボタン・固定操作バー・フッターの非表示 */
    footer,
    .layout-footer,
    [class*="footer"],
    [class*="sitemap"],
    .mobinq-bar,
    #mobinq,
    [class*="mobinq"],
    .no-print,
    .bttn,
    #mapModal,
    #mapTrigger span,
    .gallery-switcher-wrapper,
    #modernHamburger,
    header nav .absolute,
    #floatingBtn,
    [class*="floating"],
    [class*="fix-btn"],
    [class*="mobile-btn"],
    [class*="sp-btn"],
    [id*="menu-btn"],
    [class*="hamburger"],
    #page-top,
    .back-to-top,
    div[class*="fixed bottom-"],
    a[class*="fixed bottom-"],
    div[style*="position: fixed"],
    a[style*="position: fixed"] {
        display: none !important;
        opacity: 0 !important;
        visibility: hidden !important;
        height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* 1. ヘッダーの印刷表示 */
    header,
    header.fixed,
    header[class*="fixed"] {
        display: flex !important;
        position: relative !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        background-color: #0D457A !important;
        color: #ffffff !important;
        padding: 8px 16px !important;
        box-sizing: border-box !important;
        margin-bottom: 10px !important;
        align-items: center !important;
        justify-content: space-between !important;
        z-index: 10 !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    header img,
    header svg,
    header picture {
        max-height: 30px !important;
        width: auto !important;
        display: block !important;
    }

    header nav {
        display: block !important;
    }

    header nav ul {
        display: flex !important;
        gap: 12px !important;
        list-style: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    header nav a {
        color: #ffffff !important;
        text-decoration: none !important;
        font-weight: bold !important;
        font-size: 9pt !important;
    }

    /* 2. ヒーロー枠のサイズ最適化 ＋ 写真縮小 */
    #topanime {
        width: 100% !important;
        height: 320px !important;
        min-height: 320px !important;
        max-height: 320px !important;
        position: relative !important;
        margin-left: 0 !important;
        margin-bottom: 10px !important;
        overflow: hidden !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    #topanime #bg {
        width: 100% !important;
        height: 100% !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
    }

    /* ポラロイド写真の適正サイズ縮小 */
    #topanime .animeimg {
        transform: scale(0.55) !important;
        transform-origin: center center !important;
    }

    /* リード文の印刷最適化 */
    .top-lead {
        width: 100% !important;
        margin: 10px auto 15px !important;
        padding: 0 !important;
        font-size: 9.5pt !important;
        line-height: 1.6 !important;
        text-align: center !important;
        color: #333333 !important;
    }

    /* 3. toplink (サービス一覧パネル) の極小コンパクト化 (4列グリッド) */
    .toplink {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 6px !important;
        padding: 0 !important;
        margin: 10px 0 15px !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        page-break-inside: auto !important;
        break-inside: auto !important;
    }

    .toplink li {
        margin: 0 !important;
        padding: 0 !important;
        border-radius: 6px !important;
        box-shadow: none !important;
        background-size: cover !important;
        border: 1px solid #d1d5db !important;
        overflow: hidden !important;
        grid-column: auto !important;
        width: 100% !important;
        height: auto !important;
    }

    .toplink li:last-child:nth-child(odd) {
        grid-column: auto !important;
        width: 100% !important;
    }

    .toplink li a,
    .toplink li:not(.nophoto) a,
    .toplink li.nophoto a,
    .toplink .nophoto a {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 2px 4px !important;
        height: 36px !important;
        min-height: 36px !important;
        max-height: 36px !important;
        aspect-ratio: auto !important;
        font-size: 8.5pt !important;
        font-weight: bold !important;
        line-height: 1.2 !important;
        text-align: center !important;
        text-shadow: 0 0 3px #ffffff, 0 0 6px #ffffff !important;
        color: #111827 !important;
        background: rgba(255, 255, 255, 0.6) !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    /* 4. セクション間余白と改ページ制御 */
    main,
    #mainCont,
    #topCont,
    #modernContactBox,
    .contact-section,
    .newsarea,
    .info-page-container,
    section,
    article {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin-top: 10px !important;
        overflow: visible !important;
    }

    /* PCレイアウト(横並び)の保持 */
    [class*="md:grid-cols-2"] {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    [class*="md:flex-row"] {
        display: flex !important;
        flex-direction: row !important;
        gap: 12px !important;
    }

    /* 要素の改ページ切断防止 */
    .contBox,
    .priceBox,
    .contact-section,
    .newsarea,
    article,
    section,
    img {
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    h1,
    h2,
    h3,
    h4 {
        page-break-after: avoid !important;
        break-after: avoid !important;
    }
}