/* ===== CONTACT: 상담 신청 폼 (레퍼런스 구조 / 매트블랙·Work Sans 유지) ===== */

.cform-page { color-scheme: dark; }       /* date 등 네이티브 컨트롤 다크 */
/* 폼 영역 가로폭을 지도와 동일하게: 좌 2cm, 우 경계선에서 2cm */
body.page .cform-page { padding: 130px calc(var(--reserve) + 2cm) 0 2cm; }
.cf-divider { border: none; border-top: 1px solid rgba(255, 255, 255, .25); margin: 18px 0 60px; }

.cf-block { margin-bottom: 70px; }
.cf-h {
  font-size: 15px; font-weight: 700; letter-spacing: -0.3px; color: #fff;
  margin-bottom: 22px;
}

/* 안내사항 / 개인정보 박스 */
.cf-box {
  border: 1px solid rgba(255, 255, 255, .2); padding: 26px 28px;
  font-size: 14px; line-height: 1.7; color: rgba(255, 255, 255, .8);
}
.cf-notice p { margin: 0 0 8px; }
.cf-notice p:last-child { margin-bottom: 0; }
.cf-policy { max-height: 180px; overflow-y: auto; }
.cf-policy p { margin: 0 0 12px; }
.cf-agree-center { display: block; text-align: center; margin-top: 26px; font-size: 14px; color: rgba(255,255,255,.85); }
.cf-agree-center input { width: 15px; height: 15px; accent-color: #fff; vertical-align: -2px; margin-right: 8px; }

/* 2단 레이아웃 */
.cf-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; }
.cf-field { margin-bottom: 30px; display: flex; flex-direction: column; }
.cf-field > label {
  font-size: 14px; font-weight: 600; color: rgba(255, 255, 255, .85); margin-bottom: 12px;
}

/* 입력 공통 */
.cform input[type="text"], .cform input[type="email"], .cform input[type="password"],
.cform input[type="url"], .cform input[type="date"], .cform textarea {
  width: 100%; background: transparent; color: #fff; font-family: inherit; font-size: 15px;
  border: 1px solid rgba(255, 255, 255, .25); padding: 13px 14px; transition: border-color .25s;
}
.cform textarea { resize: vertical; line-height: 1.6; }
.cform input:focus, .cform textarea:focus { outline: none; border-color: #fff; }
.cform input::placeholder, .cform textarea::placeholder { color: rgba(255, 255, 255, .3); }

/* 연락처 3분할 */
.cf-phone { display: flex; align-items: center; gap: 8px; }
.cf-phone input { width: 100%; text-align: center; }
.cf-phone span { color: rgba(255, 255, 255, .4); }

/* 라디오 그룹 */
.cf-radios { display: flex; flex-wrap: wrap; gap: 14px 22px; padding-top: 4px; }
.cf-radios label { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; color: rgba(255,255,255,.8); cursor: pointer; }
.cf-radios input { width: 15px; height: 15px; accent-color: #fff; }

/* 공간구성 (인라인) */
.cf-compose { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; color: rgba(255,255,255,.8); font-size: 14px; }
.cf-compose input { width: 90px; text-align: center; }
.cf-compose .bar { color: rgba(255, 255, 255, .25); }

/* 파일 */
.cf-file { font-size: 14px; color: rgba(255,255,255,.7); }
.cf-file::file-selector-button {
  background: #fff; color: #000; border: none; font-family: inherit; font-weight: 700;
  font-size: 13px; padding: 10px 18px; margin-right: 14px; cursor: pointer;
}

/* 제출 (알약형, 가운데) */
.cf-submit-wrap { text-align: center; margin-top: 30px; }
.cf-submit-pill {
  background: #fff; color: #000; border: none; cursor: pointer;
  font-family: inherit; font-size: 15px; font-weight: 700; letter-spacing: 0.3px;
  padding: 17px 60px; border-radius: 40px; transition: opacity .25s;
}
.cf-submit-pill:hover { opacity: .82; }
.cf-done { text-align: center; margin-top: 22px; font-size: 14px; color: #fff; }

/* ===== 구글지도: 경계선 침범 금지, 좌측 2cm·경계선에서 2cm ===== */
.map-section { padding: 40px 0 90px; }
.map-frame {
  display: block; height: 460px; border: 0; filter: grayscale(0.2) contrast(1.05);
  width: calc(100% - var(--reserve) - 4cm);   /* 경계선 안쪽 + 양옆 2cm */
  margin: 0 0 0 2cm;
}

/* 텍스트 15% 확대 */
.cf-h { font-size: 17px; }
.cf-box { font-size: 16px; }
.cf-agree-center { font-size: 16px; }
.cf-field > label { font-size: 16px; }
.cf-radios label { font-size: 16px; }
.cf-compose { font-size: 16px; }
.cf-file { font-size: 16px; }
.cf-done { font-size: 16px; }
.cform-page .cform input, .cform-page .cform select, .cform-page .cform textarea { font-size: 17px; }
.cf-submit-pill { font-size: 17px; }

@media (max-width: 760px) {
  body.page .cform-page { padding: 90px 2cm 0; }
  .cf-grid2 { grid-template-columns: 1fr; gap: 0; }
  /* 모바일: 양옆 0.5cm */
  .map-frame { width: calc(100% - 1cm); margin: 0 0.5cm; height: 320px; }
}
