/* 出張講習 料金シミュレーター（/simulation/） */
/* 既存の <style> ～ </style> を丸ごとこちらへ */

.sim-estimate-box {
  max-width: 980px; margin: 2em auto 3em; background: #fff; border-radius: 14px;
  box-shadow: 0 6px 32px -8px #b0cdfa39; padding: 2.2em 2vw 2.2em;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; color: #212a36;
}
.sim-estimate-header {text-align:center; margin-bottom:1.2em;}
.sim-estimate-header h2 {font-size: 1.56em; color: #0073aa; margin-bottom:.05em; letter-spacing:.02em;}
.sim-estimate-header .sim-title-sub {color: #555; font-size:.98em}

/* 先頭サマリー（FV） */
.sim-fv-summary {
  position: sticky; top: 0; z-index: 10; background:#f7fbff; border:1px solid #dce9f5;
  border-radius: 10px; padding: .9em 1em; margin: 0 auto 1em;
}
.fv-toprow{display:flex; flex-wrap:wrap; gap:.6em .8em; align-items:center; justify-content:center}
.pill {background:#e9f4ff; border:1px solid #cfe4fb; border-radius:999px; padding:.35em .9em; font-size:.95em; color:#175a8e}
.total {font-weight:800; color:#0e6fb3; font-size:1.22em}

/* FV内訳（合計の直下に常時表示） */
.fv-breakdown{ margin-top:.8em; background:#fff; border:1px solid #e6f0fb; border-radius:8px; padding:.6em .8em; }
.fv-breakdown-list{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.5em .8em; align-items:center; }
.fv-item{ display:flex; justify-content:space-between; gap:.6em; padding:.35em .55em; border-radius:6px; background:#f6faff; border:1px solid #eef3fb; font-size:.94em }
.fv-item b{color:#0e4980}
@media (max-width:900px){ .fv-breakdown-list{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:520px){ .fv-breakdown-list{grid-template-columns:1fr;} }

/* 入力部 */
.sim-meta-grid {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1em 1.2em; margin: 0 auto 1.2em; max-width:920px;}
.field {display:flex; align-items:center; gap:.6em; flex-wrap:wrap;}
.field label {min-width:7em; color:#2b3a4a; font-weight:700; font-size:.97em}
.field input, .field select {border:1px solid #b9c9df; border-radius:6px; padding:.52em .65em; font-size:1em; min-width:200px;}
.hint {font-size:.9em; color:#6b7a8a}

/* 科目チェックリスト */
.course-wrap{border:1px solid #dde6f1; border-radius:10px; padding:12px}
.course-head{font-weight:700; color:#0e4980; margin-bottom:6px}
.course-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4em 1em; align-items:start}
.course-group{margin:.4em 0}
.course-group-title{font-weight:700; color:#0073aa; margin:.4em 0}
.course-item{display:flex; align-items:center; gap:.5em; font-size:.95em}
.course-item input{transform:scale(1.1)}
@media (max-width:820px){ .course-grid{grid-template-columns:1fr} .sim-meta-grid{grid-template-columns:1fr} }

/* 下部合計と詳細内訳 */
.sim-summary-block {background:#f7fbff; border:1px solid #dce9f5; border-radius:8px; padding:1em; text-align:center; margin:1.1em 0 0}
.sim-total-label {font-weight:700; font-size:1.02em; color:#0073aa}
.sim-total-amount {font-size:1.26em; font-weight:800; color:#2186c4; margin-left:.4em}
.toggle-btn {border:none; background:#e9f4ff; border:1px solid #cfe4fb; padding:.45em .9em; border-radius:999px; cursor:pointer; font-weight:700; color:#0e6fb3; margin-left:.6em}
.breakdown{display:none; text-align:left; margin-top:.8em; border-top:1px dashed #cfe4fb; padding-top:.8em; font-size:.95em}
.breakdown table{width:100%; border-collapse:collapse}
.breakdown th,.breakdown td{border:1px solid #e4edf7; padding:.5em; font-size:.94em}
.breakdown th{background:#f7fbff}
.muted{color:#667788; font-size:.92em}

.sim-estimate-btn {
  display:inline-block; background: linear-gradient(90deg,#0073aa 65%,#0596d3 100%);
  color:#fff; font-weight:700; font-size:1.06em; padding:.78em 2.2em; border-radius:26px;
  text-decoration:none; margin: 1.2em 0 .6em 0; letter-spacing:.02em; border:none; cursor:pointer;
  box-shadow: 0 2px 10px -4px #0073aa73; transition: background .18s;
}
.sim-estimate-btn:hover {background: linear-gradient(90deg,#0596d3 80%,#0073aa)}