/* 見積ページ固有スタイル（共通ヘッダー／フッターは marching-common.css） */
body.estimate-page { background: var(--bg); }
main { padding: 58px 0 90px; }
.head { text-align: center; margin-bottom: 28px; }
.eyebrow { color: var(--red); font-size: 13px; font-weight: 900; letter-spacing: .12em; }
.head h1 { font-size: 36px; line-height: 1.25; margin: 8px 0; }
.head p { color: var(--muted); margin: 0; }
.card { background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 28px; box-shadow: 0 12px 30px rgba(6, 27, 58, .08); }
.badges { display: flex; gap: 10px; flex-wrap: wrap; margin: 0 0 24px; }
.badges span { background: #eef3fa; border-radius: 999px; padding: 7px 11px; font-size: 12px; font-weight: 900; }
.grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.wide { grid-column: 1 / -1; }
label span { display: block; font-weight: 900; margin-bottom: 6px; }
em { font-style: normal; color: var(--red); font-size: 12px; margin-left: 5px; }
main input, main select, main textarea { width: 100%; padding: 13px 14px; border: 1px solid #cbd6e4; border-radius: 10px; background: #fff; color: var(--ink); }
main textarea { resize: vertical; }
small { display: block; color: var(--muted); margin-top: 6px; }
.privacy { margin-top: 22px; padding: 16px; border: 1px solid var(--line); background: #f9fbfe; border-radius: 12px; }
.privacy label { display: flex; gap: 10px; align-items: flex-start; font-weight: 700; }
.privacy input { width: auto; margin-top: 7px; }
.privacy a { color: var(--red); text-decoration: underline; }
.actions { text-align: center; margin-top: 24px; }
.btn { border: 0; background: var(--red); color: #fff; border-radius: 999px; padding: 13px 28px; font-weight: 900; font-size: 16px; cursor: pointer; }
.note { margin-top: 18px; text-align: center; color: var(--muted); font-size: 13px; }
.preview { position: fixed; inset: 0; background: rgba(4, 19, 41, .78); display: none; align-items: center; justify-content: center; padding: 18px; z-index: 50; }
.preview.open { display: flex; }
.previewCard { background: #fff; border-radius: 20px; max-width: 760px; width: 100%; max-height: 90vh; overflow: auto; padding: 26px; }
.previewCard h2 { margin: 0 0 12px; }
.row { display: grid; grid-template-columns: 180px 1fr; gap: 15px; border-top: 1px solid var(--line); padding: 11px 0; }
.row b { color: var(--navy); }
.previewBtns { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; margin-top: 20px; }
.previewBtns .ghost { padding: 11px 18px; cursor: pointer; }
.send { border: 0; background: var(--red); color: #fff; border-radius: 999px; padding: 11px 18px; font-weight: 900; line-height: 1.2; cursor: pointer; }

@media (max-width: 700px) {
  .grid { grid-template-columns: 1fr; }
  .wide { grid-column: auto; }
  .row { grid-template-columns: 1fr; }
  .head h1 { font-size: 28px; }
  .card { padding: 20px; }
  .previewBtns { flex-direction: column-reverse; }
  .previewBtns .ghost, .send { width: 100%; min-width: 0; white-space: normal; }
}
