/* ============================================================
   Unified form style (.form-std)
   ------------------------------------------------------------
   사이트 표준 폼 스타일. 기준: 견적 옵션 폼(.options).
   라벨 20px/500/#000, 인풋 50px·18px/#333, letter-spacing -0.02em,
   border #d1d5db / radius 6px / focus navy, 체크박스 27×27.
   <form>(또는 컨테이너)에 class="... form-std" 만 추가하면 적용됨.
   기존 .request__* 구조도 함께 커버한다.
   ============================================================ */

/* 폼 컨테이너(.request 패널에 얹었을 때) */
.form-std.request { padding: 40px 32px 32px; }
.form-std h3 { color: #000; letter-spacing: -0.02em; }

/* ── 필드 행: 라벨(위) → 컨트롤(아래) 세로 배치 ── */
.form-std .request__row {
  display: block;
  grid-template-columns: none;
  gap: 0;
  padding: 20px 0;
  border-bottom: 1px solid var(--color-border);
  align-items: stretch;
}
.form-std .request__row:first-of-type { padding-top: 0; }
.form-std .request__row:last-of-type { border-bottom: none; }

/* ── 라벨: 20px / 500 / #000 / -0.02em, 인풋 위 16px ── */
.form-std .request__row > label,
.form-std .form-field > label {
  display: block;
  font-size: 20px;
  font-weight: 500;
  color: #000;
  letter-spacing: -0.02em;
  padding-top: 0;
  margin-bottom: 16px;
}
.form-std .request__row > label b { color: var(--color-red); margin-left: 4px; }

/* ── 인풋 / 셀렉트 / 텍스트에어리어 ── */
.form-std .request__row input:not([type="checkbox"]):not([type="radio"]),
.form-std .request__row textarea,
.form-std .request__row select,
.form-std input:not([type="checkbox"]):not([type="radio"]),
.form-std textarea,
.form-std select {
  width: 100%;
  min-height: 50px;
  padding: 12px 16px;
  border: 1px solid var(--color-border-strong);
  border-radius: 6px;
  font-size: 18px;
  font-family: inherit;
  color: #333;
  letter-spacing: -0.02em;
  background: #fff;
  outline: none;
  transition: border-color .15s;
  box-sizing: border-box;
}
.form-std input::placeholder,
.form-std textarea::placeholder { color: #999; font-weight: 400; }
.form-std input:focus,
.form-std textarea:focus,
.form-std select:focus { border-color: var(--color-navy); }

.form-std .request__row textarea,
.form-std textarea { min-height: 140px; resize: vertical; line-height: 1.6; }

/* ── 체크박스 / 라디오: 27×27 / accent navy ── */
.form-std input[type="checkbox"],
.form-std input[type="radio"] {
  width: 27px;
  height: 27px;
  min-height: 0;
  padding: 0;
  margin: 0;
  accent-color: var(--color-navy);
  flex-shrink: 0;
  cursor: pointer;
}

/* ── 첨부파일 행 ── */
.form-std .request__file { display: flex; gap: 12px; align-items: center; }
.form-std .request__file button {
  height: 50px;
  padding: 0 20px;
  border: 1px solid var(--color-border-strong);
  border-radius: 6px;
  background: #fff;
  font-size: 18px;
  color: #333;
  letter-spacing: -0.02em;
  white-space: nowrap;
  cursor: pointer;
  flex-shrink: 0;
  transition: all .12s;
}
.form-std .request__file button:hover { border-color: var(--color-navy); color: var(--color-navy); }
.form-std .request__file input[type="text"] { flex: 1; }

/* ── 동의 체크 라벨 ── */
.form-std .request__agree {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 0 0;
  font-size: 15px;
  color: #333;
  letter-spacing: -0.02em;
  cursor: pointer;
}
.form-std .request__agree:hover { color: var(--color-text); }

/* ── 액션 버튼 ── */
.form-std .request__actions { display: flex; gap: 12px; justify-content: center; padding-top: 28px; }
.form-std .request__actions .btn {
  min-width: 180px;
  height: 58px;
  padding: 0 28px;
  font-size: 18px;
  letter-spacing: -0.02em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 640px) {
  .form-std.request { padding: 24px 20px; }
  .form-std .request__row > label,
  .form-std .form-field > label { font-size: 16px; margin-bottom: 10px; }
  .form-std .request__actions { flex-direction: column; }
  .form-std .request__actions .btn { width: 100%; min-width: 0; }
}
