/* ---------- 料金シミュレーション（/price/） ---------- */
.calc{ margin-top:var(--sp-block); }

.calc-grid{
  display:grid; gap:20px 24px; grid-template-columns:repeat(4,1fr);
}
@media (max-width:900px){ .calc-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:760px){ .calc-grid{ grid-template-columns:1fr; } }

.calc-field{ display:flex; flex-direction:column; gap:8px; min-width:0; }
.calc-field label{ font-size:13px; font-weight:700; color:var(--c-navy-ink); }
.calc-field select,
.calc-field input[type="number"]{
  width:100%; max-width:100%;
  padding:12px 14px; border:1.5px solid var(--c-line); border-radius:var(--radius-sm);
  font:inherit; font-size:15px; color:var(--c-ink); background:#fff;
}
.calc-field select:focus-visible,
.calc-field input:focus-visible{ outline:3px solid var(--c-teal); outline-offset:2px; }
.calc-field-hint{ font-size:12px; color:var(--c-muted); }

.calc-options{
  margin-top:24px; background:#fff; border:1.5px solid var(--c-line); border-radius:var(--radius-sm);
  padding:2px 20px;
}
.calc-options summary{
  padding-block:16px; font-weight:700; color:var(--c-navy-ink); cursor:pointer; list-style:none;
  position:relative; padding-right:28px;
}
.calc-options summary::-webkit-details-marker{ display:none; }
.calc-options summary::after{
  content:"+"; position:absolute; right:0; top:14px; font-size:20px; color:var(--c-muted);
}
.calc-options[open] summary::after{ content:"−"; }
.calc-options-body{
  display:grid; gap:20px 24px; grid-template-columns:repeat(2,1fr);
  padding-block:4px 22px;
}
@media (max-width:760px){ .calc-options-body{ grid-template-columns:1fr; } }

.calc-result{
  margin-top:32px; background:var(--c-bg-soft); border:1.5px solid var(--c-line);
  border-radius:var(--radius); padding:28px 24px;
}

.calc-result-row{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 16px;
  padding-block:10px; border-bottom:1px solid var(--c-line); font-size:14.5px;
}
.calc-result-row .label{ color:var(--c-muted); }
.calc-result-row .value{ color:var(--c-ink); font-weight:500; font-variant-numeric:tabular-nums; text-align:right; }

.calc-total{ margin-top:8px; padding-top:24px; border-top:2px solid var(--c-teal); text-align:center; }
.calc-total-label{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--c-teal-deep); }
.calc-total-num{
  font-family:var(--ff-serif); font-size:clamp(32px,5.5vw,48px); color:var(--c-navy-ink);
  margin-top:8px; line-height:1.2; font-variant-numeric:tabular-nums;
}
.calc-total-tax{ font-size:14px; color:var(--c-muted); margin-top:6px; }

.calc-note{ margin-top:16px; font-size:12.5px; color:var(--c-muted); }
.calc-breakdown{ margin-top:8px; }
.calc-breakdown .table{ font-size:13.5px; }

.calc-quote-message{
  background:#FFF7E8; border:1px solid #F0DDAE; border-radius:var(--radius-sm);
  padding:20px 22px; color:#8a6a1f; font-weight:500; text-align:center;
}

.calc-fallback{ margin-top:var(--sp-block); }
