@charset "utf-8";
/* ==========================================================================
   見積・ご注文フォーム 専用スタイル（/contact）
   site.css を読み込んだうえで、このファイルを追加で読み込みます。
   ========================================================================== */

body.form-page{background:var(--bg-alt);}

/* ---------- フォーム用ヘッダー ---------- */
.form-header{background:#ffffff;border-bottom:1px solid var(--line-3);}
.form-header__inner{
  max-width:900px;margin:0 auto;padding:14px var(--pad-x);
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
}
.form-header__label{
  font-size:12px;color:var(--muted-2);letter-spacing:.1em;
  padding-left:12px;border-left:1px solid var(--line-2);
}
.form-header__back{
  margin-left:auto;font-size:12.5px;color:#555555;text-decoration:none;white-space:nowrap;
}
.form-header__back:hover{text-decoration:underline;}

.form-main{max-width:900px;margin:0 auto;padding:32px var(--pad-x) 72px;}

/* ---------- カード（各ステップの外枠） ---------- */
.fcard{
  background:#ffffff;border:1px solid var(--line);border-radius:16px;
  padding:32px 34px;margin-bottom:18px;
}
.fcard > h1{font-size:22px;font-weight:900;letter-spacing:.08em;margin:0 0 24px;line-height:1.5;}
.fcard > h1.with-desc{margin-bottom:10px;}
.fcard__desc{font-size:13px;color:var(--muted);line-height:2;margin:0 0 24px;}

/* ---------- ルート選択 ---------- */
.route-pick{text-align:center;}
.route-pick h1{font-size:26px;font-weight:900;letter-spacing:.1em;margin:0 0 10px;}
.route-pick__desc{font-size:13px;color:var(--muted);margin:0 0 28px;}
.route-list{display:flex;flex-direction:column;gap:12px;text-align:left;}
.route-btn{
  display:flex;align-items:center;gap:16px;width:100%;
  background:#ffffff;border:1.5px solid var(--line-2);border-radius:14px;
  padding:20px 22px;cursor:pointer;color:var(--ink);text-align:left;
  transition:border-color .15s ease,background-color .15s ease;
}
.route-btn:hover{border-color:var(--ink);background:var(--bg-soft);}
.route-btn__icon{
  flex:none;width:38px;height:38px;border-radius:50%;
  background:var(--ink);color:#ffffff;
  display:flex;align-items:center;justify-content:center;
}
.route-btn__body{flex:1;display:flex;flex-direction:column;gap:4px;}
.route-btn__title{font-size:15px;font-weight:700;letter-spacing:.04em;}
.route-btn__desc{font-size:12.5px;color:var(--muted);line-height:1.8;}
.route-btn__arrow{flex:none;color:var(--muted-3);font-size:16px;}

/* ---------- ステップ表示 ---------- */
.step-bar{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap;}
.step-back{
  border:none;background:transparent;color:#666666;font-size:12.5px;
  cursor:pointer;padding:4px 0;text-decoration:underline;
}
.chips{display:flex;gap:6px;flex-wrap:wrap;}
.chip{
  white-space:nowrap;font-size:11.5px;padding:5px 12px;border-radius:999px;letter-spacing:.03em;
  background:#ffffff;border:1px solid #e0e0dc;color:#aaaaaa;
}
.chip.is-done{background:var(--line);border-color:var(--line);color:#555555;}
.chip.is-current{background:var(--ink);border-color:var(--ink);color:#ffffff;font-weight:700;}

/* ---------- 入力フィールド ---------- */
.field{margin-bottom:24px;}
.field:last-child{margin-bottom:0;}
.field > label,.field__label{
  display:block;font-size:13px;font-weight:700;letter-spacing:.03em;
  margin-bottom:10px;line-height:1.7;
}
.req{color:#c0392b;font-weight:700;font-size:12px;margin-left:2px;}
.opt{color:var(--muted-3);font-weight:400;font-size:11.5px;margin-left:4px;}

.input,.textarea,.select{
  width:100%;border:1.5px solid var(--line-2);border-radius:10px;
  padding:11px 14px;font-size:14px;color:var(--ink);background:#ffffff;
  transition:border-color .15s ease;
}
.input:focus,.textarea:focus,.select:focus{border-color:var(--ink);outline:none;}
.input:disabled{background:#f4f4f2;color:#aaaaaa;}
.textarea{resize:vertical;line-height:1.9;}
.input--sm{width:110px;}

.field__help{font-size:11.5px;color:var(--muted-3);margin:8px 0 0;line-height:1.8;}
.field__error{
  display:none;font-size:12px;color:#c0392b;margin:8px 0 0;font-weight:700;
}
.field.has-error .input,.field.has-error .textarea{border-color:#c0392b;}
.field.has-error .field__error{display:block;}

.row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.row--3{grid-template-columns:1fr 1fr 1fr;}
.row > .field{margin-bottom:0;}

/* ---------- 選択肢（ピル） ---------- */
.pills{display:flex;gap:8px;flex-wrap:wrap;}
.pill{
  display:inline-block;white-space:nowrap;border:1.5px solid var(--line-2);background:#ffffff;color:#444444;
  border-radius:999px;padding:10px 18px;font-size:13px;font-weight:500;
  transition:border-color .12s ease,background-color .12s ease,color .12s ease;
}
.pills--wrap .pill{white-space:normal;text-align:left;line-height:1.6;}

/* pill-choice: 見た目はピルボタン、実体はネイティブ radio/checkbox。
   キーボード操作・required判定・FormData収集をブラウザ標準に任せられます。 */
.pill-choice{position:relative;display:inline-flex;cursor:pointer;}
.pill-choice input{
  position:absolute;opacity:0;width:1px;height:1px;margin:0;padding:0;
  pointer-events:none;
}
.pill-choice:hover .pill{border-color:#b5b5ae;}
.pill-choice input:checked + .pill{border-color:var(--ink);background:var(--ink);color:#ffffff;font-weight:700;}
.pill-choice input:focus-visible + .pill{outline:2px solid var(--ink);outline-offset:2px;}

/* ---------- 付属機材の選択行 ---------- */
.acc-list{border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.acc-row{
  display:flex;align-items:center;gap:12px;
  padding:11px 16px;border-bottom:1px solid var(--line);
  background:#ffffff;cursor:pointer;margin:0;
}
.acc-row:last-child{border-bottom:none;}
.acc-row.is-on{background:var(--bg-soft);}
.acc-row input[type="checkbox"]{width:17px;height:17px;flex:none;accent-color:#222222;cursor:pointer;}
.acc-row__name{flex:1;font-size:13px;line-height:1.6;}
.acc-row__price{font-size:12px;color:var(--muted);white-space:nowrap;}
.acc-row__qty{
  width:76px;flex:none;border:1.5px solid var(--line-2);border-radius:8px;
  padding:7px 10px;font-size:13px;text-align:right;
}
.acc-row__qty:disabled{background:#f4f4f2;color:#bbbbbb;}

/* ---------- グレード情報カード ---------- */
.grade-info{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px;}
.grade-info__item{
  border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--bg-soft);
}
.grade-info__name{font-size:13px;font-weight:700;line-height:1.6;}
.grade-info__price{font-size:12.5px;font-weight:700;color:var(--ink);margin:4px 0 8px;}
.grade-info__spec{font-size:11.5px;color:var(--muted);line-height:1.9;}

/* ---------- 情報バナー・注意 ---------- */
.fnote{
  border:1px solid var(--line);background:var(--bg-alt);border-radius:10px;
  padding:14px 16px;font-size:12.5px;line-height:2;color:#444444;margin-bottom:22px;
}
.fwarn{
  background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-ink);
  border-radius:10px;padding:14px 16px;font-size:12.5px;line-height:1.95;margin-bottom:22px;
}
.fok{
  border:1px solid var(--ok);border-radius:10px;padding:14px 16px;
  font-size:13px;line-height:2;color:#0a5c34;background:#f2fbf6;margin-bottom:22px;
}
.fdiag{
  border:1px solid var(--ink);border-radius:12px;padding:18px 20px;background:var(--bg-soft);
  margin-top:20px;
}
.fdiag__label{
  font-size:11px;letter-spacing:.2em;color:var(--muted-3);font-weight:700;margin-bottom:8px;
}
.fdiag p{margin:0;font-size:13.5px;line-height:2;color:#333333;}
.fdiag .note{margin-top:8px;}

.calc-band{
  border:1px solid var(--line-2);border-radius:10px;background:#ffffff;
  padding:14px 16px;font-size:13px;line-height:2.1;color:#333333;margin-bottom:22px;
}
.calc-band strong{font-weight:700;}

/* ---------- ボタン行 ---------- */
.fnav{display:flex;gap:12px;align-items:center;margin-top:30px;flex-wrap:wrap;}
.fnav .spacer{flex:1;}
.btn-next{
  border:none;background:var(--ink);color:#ffffff;font-weight:700;font-size:13.5px;
  padding:13px 30px;border-radius:999px;cursor:pointer;letter-spacing:.05em;
}
.btn-back{
  border:1.5px solid var(--line-2);background:#ffffff;color:#666666;font-weight:500;
  font-size:13px;padding:12px 22px;border-radius:999px;cursor:pointer;
}
.btn-submit{
  border:none;background:var(--ink);color:#ffffff;font-weight:700;font-size:14px;
  padding:14px 34px;border-radius:999px;cursor:pointer;letter-spacing:.05em;
}
.btn-next:hover,.btn-submit:hover{opacity:.85;}
.btn-back:hover{border-color:#b5b5ae;}
.btn-submit[disabled]{opacity:.5;cursor:progress;}
.btn-inline{
  border:1px solid var(--line-2);background:#ffffff;color:#555555;
  font-size:11.5px;padding:7px 12px;border-radius:999px;cursor:pointer;white-space:nowrap;
}
.btn-inline:hover{border-color:var(--ink);color:var(--ink);}

/* ---------- 送信完了 ---------- */
.done{
  background:#ffffff;border:1px solid var(--ok);border-radius:16px;
  padding:56px 34px;text-align:center;
}
.done__mark{
  width:56px;height:56px;border-radius:50%;background:var(--ok);color:#ffffff;
  font-size:28px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;
}
.done h1{font-size:22px;font-weight:900;letter-spacing:.08em;color:var(--ok);margin:0 0 16px;}
.done p{font-size:13.5px;line-height:2.1;color:#444444;margin:0 auto;max-width:520px;}
.done__actions{margin-top:28px;}

/* ---------- ショートカット（ルートC上部） ---------- */
.quick-links{
  background:#ffffff;border:1px solid var(--line);border-radius:14px;
  padding:20px 24px;margin-bottom:18px;
}
.quick-links p{margin:0 0 14px;font-size:13px;line-height:1.9;color:#444444;}
.quick-links__sub{font-size:12px;color:var(--muted-2);}
.quick-links__row{display:flex;gap:10px;flex-wrap:wrap;}

.form-footer{
  text-align:center;font-size:11.5px;color:var(--muted-2);
  padding:0 var(--pad-x) 36px;
}
.form-footer a{color:#666666;}

/* honeypot（スパム対策・人間には見えない） */
.hp-field{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}

/* ---------- レスポンシブ ---------- */
@media (max-width:760px){
  .grade-info{grid-template-columns:1fr;}
}

@media (max-width:680px){
  .form-main{padding:20px var(--pad-x) 56px;}
  .fcard{padding:24px 20px;border-radius:14px;}
  .fcard > h1{font-size:19px;}
  .route-pick h1{font-size:21px;}
  .route-btn{padding:16px 16px;gap:12px;}
  .route-btn__icon{width:32px;height:32px;}
  .route-btn__title{font-size:14px;}

  .row,.row--3{grid-template-columns:1fr;gap:20px;}
  .row > .field{margin-bottom:0;}

  /* iOS で入力時に画面が拡大しないよう 16px を確保 */
  .input,.textarea,.select{font-size:16px;padding:12px 14px;}
  .acc-row__qty{font-size:16px;width:84px;}

  .pill{font-size:12.5px;padding:10px 14px;}
  .acc-row{flex-wrap:wrap;gap:8px 10px;padding:12px 14px;}
  .acc-row__name{flex:1 1 100%;order:1;}
  .acc-row input[type="checkbox"]{order:0;}
  .acc-row__price{order:2;}
  .acc-row__qty{order:3;margin-left:auto;}

  .fnav{gap:10px;}
  .fnav .btn-next,.fnav .btn-submit{flex:1;}
  .done{padding:44px 20px;}
}
