/* --- モーダル共通スタイル (fc-modalのみ残す) --- */
.fc-modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.6); }
.fc-modal-content { background-color: #fefefe; margin: 5% auto; padding: 0; border: 1px solid #888; width: 90%; max-width: 600px; border-radius: 8px; position: relative; box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19); }
.fc-close-button { color: #aaa; position: absolute; top: 10px; right: 20px; font-size: 28px; font-weight: bold; cursor: pointer; z-index: 1002; }
.fc-close-button:hover, .fc-close-button:focus { color: black; text-decoration: none; }

/* --- シミュレータースタイル --- */
#r1-repair-simulator {
    --primary-color: #D32F2F; --light-primary-color: #FFEBEE; --text-color: #333; --border-color: #ddd; --bg-color: #f4f4f9;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    line-height: 1.6;
    box-sizing: border-box;
    background-color: #fff;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--border-color);
    margin: 20px auto;
    max-width: 600px;
    padding-bottom: 200px; /* 結果パネル分のスペース */
}
#r1-repair-simulator .container { background-color: #fff; padding-bottom: 20px; }
#r1-repair-simulator .main-header { background-color: var(--primary-color); color: white; padding: 15px 20px; text-align: center; border-bottom: 4px solid #B71C1C; }
#r1-repair-simulator .main-header h1 { margin: 0; font-size: 1.2em; }
#r1-repair-simulator .form-body { padding: 25px; padding-bottom: 0; }
#r1-repair-simulator .form-section { margin-bottom: 25px; }
#r1-repair-simulator .form-section.disabled { opacity: 0.5; pointer-events: none; }
#r1-repair-simulator .form-label { font-weight: bold; font-size: 1.2em; margin-bottom: 15px; display: block; border-left: 5px solid var(--primary-color); padding-left: 10px; }
#r1-repair-simulator .step-label { display: block; margin-bottom: 8px; font-weight: bold; color: #444; }
#r1-repair-simulator .important-note { background-color: #fffbe6; border: 1px solid #ffe58f; color: #d46b08; padding: 12px; margin-top: 20px; border-radius: 4px; font-size: 0.9em; text-align: center; }
#r1-repair-simulator .options-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
#r1-repair-simulator .options-grid.six-cols { grid-template-columns: repeat(3, 1fr); gap: 10px; }
#r1-repair-simulator .option-btn { padding: 15px 10px; border: 2px solid var(--border-color); border-radius: 8px; background-color: #fff; cursor: pointer; text-align: center; font-size: 1em; font-weight: bold; transition: all 0.2s ease; line-height: 1.4; }
#r1-repair-simulator .options-grid.six-cols .option-btn { font-size: 0.8em; padding: 10px 5px; }
#r1-repair-simulator .option-btn small { font-weight: normal; font-size: 0.8em; color: var(--primary-color); display: block; pointer-events: none; }
#r1-repair-simulator .option-btn.selected { background-color: var(--light-primary-color); border-color: var(--primary-color); color: var(--primary-color); transform: scale(1.02); }
#r1-repair-simulator .option-btn:disabled { background-color: #f5f5f5; color: #aaa; cursor: not-allowed; }
#r1-repair-simulator .option-btn:disabled small { color: #ccc; }
#r1-repair-simulator select { width: 100%; padding: 12px; border-radius: 5px; border: 1px solid var(--border-color); background-color: #fff; cursor: pointer; margin-bottom: 15px; }
#r1-repair-simulator select:disabled { background-color: #e9ecef; cursor: not-allowed; }

/* --- 現在地ボタン（追加） --- */
#r1-repair-simulator .geo-actions { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 8px; }
#r1-repair-simulator .geo-btn {
    width: 100%; padding: 12px; border-radius: 8px; font-weight: bold; cursor: pointer;
    background: #0d6efd; border: 2px solid #0d6efd; color: #fff; text-align:center;
}
#r1-repair-simulator .geo-btn[disabled] { background: #9bbcf5; border-color: #9bbcf5; cursor: not-allowed; }
#r1-repair-simulator .geo-note { font-size: .8em; color: #666; text-align: center; }

/* --- 結果表示パネル（画面下部固定） --- */
#r1-result-panel {
    display: block; position: fixed; bottom: 0; left: 0; width: 100%; z-index: 999; background-color: #fff;
    border-top: 1px solid var(--border-color, #ddd); box-shadow: 0 -4px 10px rgba(0,0,0,0.1);
    padding: 10px 15px; box-sizing: border-box; --primary-color: #D32F2F; text-align: center;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}
#r1-result-panel .result-label { font-size: 0.9em; color: #333; margin: 0 0 2px 0; font-weight: bold; }
#r1-result-panel .payment-methods { font-size: 0.7em; color: #555; margin: 0 0 3px 0; }
.final-price { font-size: 1.8em; font-weight: bold; color: var(--primary-color); margin: 0 0 3px 0; display: inline-block; }
#r1-result-panel #price-breakdown { font-size: 0.8em; text-align: left; padding: 8px; background: #fafafa; border: 1px solid #eee; border-radius: 4px; margin: 0 0 5px 0; line-height: 1.5; min-height: 18px; max-height: 60px; overflow-y: auto; }
#r1-result-panel #price-breakdown p { margin: 1px 0; display: flex; justify-content: space-between;}
#r1-result-panel #price-breakdown span:last-child { font-weight: bold; }
#r1-result-panel #info-notice-container { min-height: 5px; }
#r1-result-panel .info-notice { font-size: 0.7em; text-align: center; padding: 5px 8px; background-color: #fef5f5; border: 1px solid #f8d7da; color: #c0392b; border-radius: 4px; margin: 3px 0; line-height: 1.4; }
#r1-result-panel .action-buttons-grid { display: flex; gap: 8px; align-items: stretch; margin-top: 8px; }
#r1-result-panel .action-btn-wrapper { flex: 1; text-align: center; }
#r1-result-panel .action-btn {
    display: flex; flex-direction: column; justify-content: center; height: 100%; width: 100%;
    padding: 12px 5px; border-radius: 6px; font-size: 0.9em; font-weight: bold; cursor: pointer; text-decoration: none; box-sizing: border-box; line-height: 1.3;
}
#r1-result-panel #direct-call-btn { color: white; background-color: var(--primary-color); border: 2px solid var(--primary-color); }
#r1-result-panel #line-btn { color: #fff; background-color: #00B900; border: 2px solid #00B900; }
#r1-result-panel .action-btn[disabled], #r1-result-panel .action-btn[aria-disabled="true"] {
    background-color: #ccc; border-color: #ccc; cursor: not-allowed; opacity: 0.7; pointer-events: none;
}

/* --- Enst Modal Styles --- */
#r1-repair-simulator .modal { display: none; position: fixed; z-index: 1001; left: 0; top: 0; width: 100%; height: 100%; overflow: hidden; background-color: rgba(0,0,0,0.6); }
#r1-repair-simulator .modal-content { background-color: #fefefe; margin: 5% auto; padding: 20px; border: 1px solid #888; width: 90%; max-width: 700px; border-radius: 8px; position: relative; max-height: 85vh; overflow-y: auto; }
#r1-repair-simulator .close-button { color: #aaa; position: absolute; top: 10px; right: 20px; font-size: 28px; font-weight: bold; cursor: pointer; z-index: 1002; }
#r1-repair-simulator .close-button:hover, #r1-repair-simulator .close-button:focus { color: black; text-decoration: none; }
#r1-repair-simulator .modal .customer-form h2 { font-size: 1.3em; margin-top: 0; border-bottom: 2px solid var(--primary-color); padding-bottom: 8px; color: var(--primary-color); }
#r1-repair-simulator .modal .customer-form h3 { font-size: 1.1em; margin-top: 15px; background-color: var(--light-primary-color); padding: 10px; border-left: 5px solid var(--primary-color); }
#r1-repair-simulator .modal .customer-form div { margin-bottom: 10px; }
#r1-repair-simulator .modal .customer-form label { font-weight: bold; display: block; margin-bottom: 3px; }
#r1-repair-simulator .modal .customer-form select { width: 100%; padding: 8px 10px; border: 1px solid var(--border-color); border-radius: 4px; margin-bottom: 0; cursor: pointer; background-color: #fff; }
#r1-repair-simulator .modal .customer-form small { color: #555; font-size: 0.8em; display: block; margin-top: -3px; margin-bottom: 5px; }
#r1-repair-simulator #modal-back-button { margin-top: 25px; background-color: #6c757d; border-color: #6c757d; color: white; width: 100%; padding: 12px; font-size: 1em; font-weight: bold; border-radius: 8px; cursor: pointer; }

/* --- Final Check Modal Styles --- */
#final-check-modal .fc-modal-content { padding: 20px; }
#final-check-modal h2 { font-size: 1.3em; margin-top: 0; color: var(--primary-color, #D32F2F); border-bottom: 2px solid var(--primary-color, #D32F2F); padding-bottom: 8px; }
#final-check-modal h3 { font-size: 1.1em; margin-top: 15px; margin-bottom: 10px; background-color: var(--light-primary-color, #FFEBEE); padding: 10px; border-left: 5px solid var(--primary-color, #D32F2F); }
#final-check-modal #final-check-content-area { font-size: 0.9em; line-height: 1.7; background: #f9f9f9; border: 1px solid #eee; padding: 10px; border-radius: 4px; margin-bottom: 15px; }
#final-check-modal #final-check-content-area p { margin: 3px 0; }
#final-check-modal #final-check-content-area span:first-child { display: inline-block; width: 90px; color: #555; }
#final-check-modal #final-check-content-area span:last-child { font-weight: bold; }
#final-check-modal #final-line-send-btn { display: block; width: 100%; background-color: #06C755; color: white; border: none; padding: 12px; font-size: 1em; font-weight: bold; border-radius: 8px; cursor: pointer; margin-top: 15px; }
#final-check-modal #final-line-send-btn:hover { background-color: #05a544; }

/* --- Final Check Modal Form Styles --- */
#final-check-modal .customer-form { margin-top: 15px; }
#final-check-modal .customer-form div { margin-bottom: 10px; }
#final-check-modal .customer-form label { font-weight: bold; display: block; margin-bottom: 5px; font-size: 0.9em; }
#final-check-modal .customer-form input[type="text"],
#final-check-modal .customer-form input[type="tel"] {
    width: 100%; padding: 10px; border: 1px solid var(--border-color, #ddd); border-radius: 4px; box-sizing: border-box;
}
#final-check-modal .customer-form label span { color:red; font-size:0.8em; font-weight:normal; }

/* --- 入力時の自動ズーム防止 --- */
#r1-repair-simulator select,
#r1-repair-simulator #enst-modal .customer-form select,
#final-check-modal .customer-form input[type="text"],
#final-check-modal .customer-form input[type="tel"] { font-size: 16px; }
