/* Repure Booking Pro - Confirmation CSS */

.receipt-tax-note { text-align: center; font-size: 13px; color: #666; background: #f9f9f9; padding: 0 20px 20px 20px; border-radius: 0 0 8px 8px; margin-bottom: 30px; }
.receipt-table { width: 100%; border-collapse: collapse; margin-top: 10px; }
.receipt-table th, .receipt-table td { border-bottom: 1px solid #eee; padding: 10px; text-align: left; font-size:14px; }
.receipt-issuer { margin-top: 40px; text-align: right; }
.shop-name { font-weight: bold; font-size: 16px; }
.invoice-number { font-size: 12px; margin-top: 3px; }
.button-primary { background: #2271b1; color: #fff; border: none; padding: 15px 30px; font-size: 16px; border-radius: 5px; cursor: pointer; display: block; width: 100%; box-sizing: border-box; text-decoration: none; text-align: center; transition: background 0.2s; }
.button-primary:hover { background: #135e96; }
.button-danger { background: #fff; color: #d63638; border: 1px solid #d63638; padding: 15px 30px; font-size: 15px; font-weight:bold; border-radius: 5px; cursor: pointer; width: 100%; box-sizing: border-box; transition: background 0.2s; }
.button-danger:hover { background: #fff5f5; }
.input-error { border: 2px solid #d63638 !important; background-color: #ffebeb !important; }
#receipt-name-error { font-size: 13px; color: #dc2626; font-weight: bold; margin-top: 8px; }
.reissue-mark { position: absolute; top: 25px; left: 50%; transform: translateX(-50%) rotate(-5deg); border: 3px solid #c53030; padding: 5px 20px; font-size: 22px; font-weight: bold; color: #c53030; border-radius: 6px; letter-spacing: 4px; display: none; opacity: 0.7; z-index: 10; }

@media screen and (max-width: 600px) {
    .repb-receipt-container { padding: 20px; }
    .receipt-header { flex-direction: column; align-items: flex-start; gap: 10px; }
    .receipt-meta { text-align: left; }
    .receipt-amount { font-size: 24px; padding: 15px 15px 5px 15px; }
    .receipt-tax-note { padding: 0 15px 15px 15px; font-size: 11px; }
    .receipt-table th, .receipt-table td { display: block; width: 100%; box-sizing: border-box; }
    .receipt-table th { background: #f9f9f9; padding-bottom: 5px; border-bottom: none; }
}

@media print {
    @page { margin: 0; }
    body { background: #fff !important; padding: 15mm !important; box-sizing: border-box; }
    .repb-conf-wrap { box-shadow: none; margin: 0; padding: 0; width: 100%; max-width: 100%; }
    .button-primary, .button-danger, .repb-conf-header, .repb-conf-actions, #receipt-name-input, .contact-block { display: none !important; }
    .repb-receipt-container { border: none; box-shadow: none; padding: 0; }
    .receipt-amount, .receipt-tax-note { background: #fff; border-left: 2px solid #eee; border-right: 2px solid #eee; }
    .receipt-amount { border-top: 2px solid #eee; }
    .receipt-tax-note { border-bottom: 2px solid #eee; }
}

/* Stripe Elements, reCAPTCHA badge layouts (CoreからProへ完全分離・移行) */
.StripeElement { background-color: white; padding: 12px 15px; border-radius: var(--repb-radius); border: 1px solid #ddd; height: 48px; box-sizing: border-box; margin-bottom: 10px; }
iframe[name^="__privateStripeMetricsController"], 
iframe[name^="__privateStripeController"], 
iframe[src^="https://js.stripe.com"] { z-index: 2147483647 !important; }
.StripeElement--webkit-autofill { background: transparent !important; }
div[data-elements-root] { z-index: 2147483647 !important; }
/* reCAPTCHAのバッジは公式規約に則り非表示にし、代わりにテキスト表記を使用します */
.grecaptcha-badge { visibility: hidden !important; opacity: 0 !important; }

/* スマホ時のキャンセル規定テーブルのカード型変形表示 (CoreからPro版アドオンへ完全分離・移行) */
@media screen and (max-width: 600px) {
    .policy-table-wrapper { overflow-x: visible !important; }
    .policy-table { min-width: auto !important; white-space: normal !important; }
    
    .policy-table, .policy-table tbody, .policy-table tr, .policy-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    
    .policy-table thead { display: none; }
    
    .policy-row {
        border: 1px solid #cbd5e1;
        border-radius: 8px;
        padding: 15px 15px 15px 10px;
        margin-bottom: 10px;
        position: relative;
        background: #f8fafc;
        box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    }
    
    .policy-table td {
        border: none;
        padding: 6px 0;
    }
    
    .policy-row input[type="number"] {
        width: 100px !important;
    }
    
    .policy-table td:last-child {
        position: absolute;
        top: 10px;
        right: 10px;
        padding: 0;
        width: auto;
    }
}

/* キャンセルポリシーテーブル入力項目のグローバル保護 (Core/Pro/Platform共通) */
.policy-table .policy-row input[type="number"] {
    width: 80px !important;
    text-align: center;
    border-radius: 5px;
    border: 1px solid #ddd;
    padding: 5px;
    box-sizing: border-box;
}
.policy-table .btn-remove-rule {
    color: #d63638;
    cursor: pointer;
    background: #fff0f0;
    border: none;
    padding: 5px 10px;
    border-radius: 5px;
    font-weight: bold;
    transition: background 0.2s;
}
.policy-table .btn-remove-rule:hover {
    background: #fee2e2;
}

/* 領収書の印刷およびプレビュー用レイアウト (外部CSS一元管理) */
.repb-receipt-container { padding:40px; background:#fff; font-family:sans-serif; color:#333; max-width:800px; margin:0 auto; box-sizing:border-box; position:relative; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
/* topの値を 25px から 45px に変更し、再びラインに被るリアルなハンコ位置に調整 */
.reissue-mark { position:absolute; top:45px; left:50%; transform:translateX(-50%) rotate(-5deg); border:3px solid #c53030; padding:5px 20px; font-size:22px; font-weight:bold; color:#c53030; border-radius:6px; letter-spacing:4px; opacity:0.7; z-index:10; pointer-events:none; }
.receipt-header { display:flex; justify-content:space-between; align-items:flex-end; border-bottom:2px solid #333; padding-bottom:10px; margin-bottom:30px; }
.receipt-title { font-size:26px; font-weight:bold; line-height:1.2; }
.receipt-meta { font-size:12px; text-align:right; line-height:1.4; }
.receipt-address { margin-bottom:30px; font-size:18px; border-bottom:1px solid #eee; padding-bottom:10px; min-height:45px; line-height:2; }
.receipt-address-name { font-weight:bold; font-size:18px; border-bottom:1px solid #333; padding-bottom:2px; }
.receipt-amount { font-size:32px; font-weight:bold; text-align:center; background:#f9f9f9; padding:20px 20px 10px 20px; border-radius:8px 8px 0 0; border-top:2px solid #eee; border-left:2px solid #eee; border-right:2px solid #eee; }
.receipt-tax-note { text-align:center; font-size:13px; color:#666; background:#f9f9f9; padding:0 20px 20px 20px; border-radius:0 0 8px 8px; margin-bottom:30px; border-bottom:2px solid #eee; border-left:2px solid #eee; border-right:2px solid #eee; }
.receipt-details-proviso { font-weight:bold; border-bottom:1px solid #333; display:inline-block; padding-bottom:3px; margin:0 0 10px 0; }
.receipt-details-method { font-size:12px; font-weight:normal; }
.receipt-table { width:100%; border-collapse:collapse; margin-top:15px; }
.receipt-table th { width:100px; text-align:left; padding:10px; border-bottom:1px solid #eee; font-size:14px; background:#f9f9f9; }
.receipt-table td { text-align:left; padding:10px; border-bottom:1px solid #eee; font-size:14px; }
.receipt-issuer { margin-top:40px; text-align:right; }
.receipt-issuer .shop-name { font-weight:bold; font-size:16px; }
.receipt-issuer .invoice-number { font-size:12px; margin-top:3px; }
.receipt-stamp-note { margin-top:40px; text-align:right; font-size:10px; color:#888; border-top:1px solid #eee; padding-top:5px; }
.receipt-stamp-note strong { color:#c53030; font-size:11px; }