/*
 * ipanel-print.css — 全ページ共通 印刷用スタイルシート(Phase 8e / handoff 008、2026-06-03)
 *
 * 目的:
 *   ブラウザ印刷(Cmd+P / Ctrl+P)や「PDF として保存」で、UI 装飾(ヘッダー・フッター・
 *   drawer・モーダル・操作ボタン等)を隠し、メインコンテンツのみが読みやすく印刷されるようにする。
 *
 * 読み込み方法:
 *   IpanelCore/CommonBlocksSubscriber が default_frame.twig に
 *   `<link rel="stylesheet" media="print" href="{{ asset('assets/ipanel/css/ipanel-print.css') }}">`
 *   を 1 行注入する(既存 ipanel-common-blocks.css link の隣)。
 *   media="print" 指定なので、画面表示時はそもそも適用されない(スクリーン UI への副作用ゼロ)。
 *   ※ link 側で media="print" を付けているため本ファイルを `@media print { }` で全体ラップする必要は
 *      ないが、CSS 単体でも print 限定であることを自明にし、かつ将来 media 指定なしで読み込まれても
 *      安全なように、隠蔽・整形ルールは `@media print` ブロック内に閉じ込める。
 *
 * 設計方針(handoff 008 §規約):
 *   - 既存 CSS ファイルには手を入れず、本ファイル 1 枚に集約(Phase 10z 本番イメージ化時も明確)
 *   - EC-CUBE 既定要素の確実な非表示には display:none !important(feedback_eccube_default_header_hide_when_replace)
 *   - !important は「隠す」「色を黒にする」等の上書きが必須な箇所のみ。乱用しない。
 *
 * 特に印刷ニーズが高いページ:
 *   - マイページ 注文履歴詳細 /mypage/history/{order_id}
 *   - 注文確認 /shopping/confirm
 *   - 公開求人 /recruit/{id}
 *   - コンテンツ privacy / tradelaw / about / faq
 *
 * スコープ外(handoff 008 §想定スコープ外):
 *   - 納品書 PDF(Phase 6 TCPDF、別経路)/ A4・B5 切替 / ヘッダーロゴ印刷(Phase 10d 素材確定後)
 */

@page {
    /* A4 想定の余白 */
    margin: 15mm;
}

@media print {
    /* ============================================================
     * 1. 隠す要素(UI 装飾・操作系・ナビゲーション)
     * ============================================================ */

    /* EC-CUBE 既定ヘッダー / フッター */
    .ec-layoutRole__header,
    .ec-layoutRole__footer,
    /* ipanel 共通ブロック(Phase 10c):デスクトップナビ帯 / モバイル 3 アイコン / 正式フッター */
    .ipanel-globalNav,
    .ipanel-mobileNav,
    .ipanel-footer,
    /* drawer(ナビ / アカウント)+ オーバーレイ(Phase 10c) */
    .ipanel-drawer,
    .ipanel-drawer__overlay,
    /* デザイン確定前ポップアップ(Phase P1-A-05、実クラスは ipanel-designPopup)
     * 印刷時に開いている可能性は低いが念のため非表示。handoff の `.ipanel-popup` は実体 `.ipanel-designPopup`。 */
    .ipanel-designPopup,
    .ipanel-designPopup__overlay,
    /* EC-CUBE 既定の非メインコンテンツ(カートナビ・drawer・ページトップ・パンくず等) */
    .ec-cartNavi,
    .ec-drawerRole,
    .ec-drawerRoleClose,
    .ec-headerRole__navSP,
    .pageTop,
    .ec-blockTopBtn {
        display: none !important;
    }

    /* フォーム操作ボタン(印刷した紙では押せないため隠す) */
    button[type="submit"],
    button[type="button"],
    .ec-blockBtn--action,
    .ec-blockBtn--cancel,
    input[type="submit"] {
        display: none !important;
    }

    /* ============================================================
     * 2. 整える要素(印刷向けに読みやすく)
     * ============================================================ */

    html,
    body {
        background: #FFFFFF !important;
        color: #000000 !important;
        font-size: 12pt;
        /* fixed 配置の残骸が紙面にかぶらないよう、念のため余計な余白を詰める */
        margin: 0;
        padding: 0;
    }

    /* メインコンテンツ:左右余白をリセットし、紙面いっぱいに使う + ページ途中での不自然な分断を避ける */
    main,
    .ec-layoutRole,
    .ec-layoutRole__contents,
    .ec-layoutRole__main,
    .ec-pageHeader,
    .ipanel-content,
    .ipanel-content__inner {
        width: auto !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        float: none !important;
        box-shadow: none !important;
    }

    /* 見出し・定義リスト・表は途中で切らない(注文明細 dl / 法務文書の節など) */
    h1, h2, h3, h4,
    dl, dt, dd,
    tr, .ipanel-content__section,
    .ec-orderRole, .ec-orderDelivery, .ec-orderPayment {
        page-break-inside: avoid;
    }
    /* 見出し直後で改ページされて見出しだけ前ページに残るのを防ぐ */
    h1, h2, h3, h4 {
        page-break-after: avoid;
    }

    /* リンク:黒 + 下線。href も括弧で併記(紙では遷移できないため URL を残す) */
    a,
    a:link,
    a:visited {
        color: #000000 !important;
        text-decoration: underline;
    }
    a[href^="http"]::after {
        content: " (" attr(href) ")";
        font-size: 10pt;
        color: #000000;
        word-break: break-all;
    }
    /* ページ内アンカー / javascript: は URL 併記しても無意味なので抑制 */
    a[href^="#"]::after,
    a[href^="javascript:"]::after {
        content: "";
    }

    /* 画像は紙面からはみ出さない */
    img {
        max-width: 100% !important;
        height: auto !important;
    }

    /* 表は枠線を出して読みやすく(注文明細・特商法表など) */
    table {
        border-collapse: collapse !important;
        width: 100% !important;
    }
    th, td {
        border: 1px solid #000000 !important;
        padding: 4px 6px !important;
        color: #000000 !important;
    }
}
