/* 라인컬처 리얼모델 신청 폼 — 모든 규칙은 .lcrm-form / .lcrm-done 아래로 스코프.
   페이지(D)가 --lcrm-accent 등 변수를 덮어쓰면 색이 바뀐다. */
.lcrm-form, .lcrm-done {
  --lcrm-accent: var(--gold-warm, #a8834f);
  --lcrm-ink: var(--deep, #1f1d1a);
  --lcrm-muted: #6b665e;
  --lcrm-line: #d9d3c9;
  --lcrm-bg: #fff;
  --lcrm-err: #b3261e;
  --lcrm-radius: 10px;
  color: var(--lcrm-ink);
  font: inherit;
  max-width: 640px;
  margin: 0 auto;
  box-sizing: border-box;
}
.lcrm-form *, .lcrm-done * { box-sizing: border-box; }
.lcrm-form .lcrm-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lcrm-form .lcrm-group { border: 0; padding: 0; margin: 0 0 28px; min-width: 0; }
.lcrm-form .lcrm-group[disabled] { opacity: .55; }
.lcrm-form .lcrm-legend { font-weight: 700; font-size: 18px; margin-bottom: 12px; padding: 0; }
.lcrm-form .lcrm-field { margin-bottom: 16px; }
.lcrm-form .lcrm-label { display: block; font-weight: 600; margin-bottom: 6px; }
.lcrm-form .lcrm-req { color: var(--lcrm-accent); font-size: 12px; font-weight: 600; margin-left: 4px; }
.lcrm-form .lcrm-opt, .lcrm-form .lcrm-hint-inline { color: var(--lcrm-muted); font-size: 12px; font-weight: 400; margin-left: 4px; }
.lcrm-form .lcrm-input {
  width: 100%; padding: 12px 14px; border: 1px solid var(--lcrm-line); border-radius: var(--lcrm-radius);
  background: var(--lcrm-bg); color: inherit; font: inherit; font-size: 16px; /* iOS 확대 방지 */
}
.lcrm-form .lcrm-input:focus { outline: 2px solid var(--lcrm-accent); outline-offset: 1px; border-color: transparent; }
.lcrm-form textarea.lcrm-input { resize: vertical; min-height: 110px; }
.lcrm-form .lcrm-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lcrm-form .lcrm-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.lcrm-form .lcrm-choices-stack { flex-direction: column; }
.lcrm-form .lcrm-choice {
  display: inline-flex; align-items: flex-start; gap: 8px; padding: 10px 12px;
  border: 1px solid var(--lcrm-line); border-radius: var(--lcrm-radius); cursor: pointer; line-height: 1.4; min-height: 44px; font-size: 15px;
}
.lcrm-form .lcrm-choice input { font-size: 15px; margin: 3px 0 0; accent-color: var(--lcrm-accent); flex: none; }
.lcrm-form .lcrm-choice:has(input:checked) { border-color: var(--lcrm-accent); background: color-mix(in srgb, var(--lcrm-accent) 8%, transparent); }
.lcrm-form .lcrm-consents .lcrm-choice, .lcrm-form [data-lcrm-field="age19"] .lcrm-choice,
.lcrm-form [data-lcrm-field="commit_6m"] .lcrm-choice, .lcrm-form [data-lcrm-field="not_recent_patient"] .lcrm-choice { border: 0; padding: 4px 0; }
.lcrm-form .lcrm-hint, .lcrm-form .lcrm-count, .lcrm-form .lcrm-note { color: var(--lcrm-muted); font-size: 13px; margin: 6px 0 0; }
.lcrm-form .lcrm-count { text-align: right; }
.lcrm-form .lcrm-note { margin: 0 0 24px; padding: 12px 14px; background: color-mix(in srgb, var(--lcrm-accent) 6%, transparent); border-radius: var(--lcrm-radius); }
.lcrm-form .lcrm-error { color: var(--lcrm-err); font-size: 13px; margin: 6px 0 0; min-height: 0; }
.lcrm-form .lcrm-error:empty { display: none; }
.lcrm-form .lcrm-field.is-invalid .lcrm-input { border-color: var(--lcrm-err); }
.lcrm-form .lcrm-consent { padding: 10px 0; border-top: 1px solid var(--lcrm-line); }
.lcrm-form .lcrm-consent-toggle {
  background: none; border: 0; padding: 0 4px; min-height: 44px; color: var(--lcrm-muted); text-decoration: underline; cursor: pointer; font: inherit; font-size: 13px;
}
.lcrm-form .lcrm-consent-body { font-size: 13px; color: var(--lcrm-muted); padding: 8px 0 4px; }
.lcrm-form .lcrm-consent-table { width: 100%; border-collapse: collapse; margin-bottom: 8px; }
.lcrm-form .lcrm-consent-table th, .lcrm-form .lcrm-consent-table td { border: 1px solid var(--lcrm-line); padding: 6px 8px; text-align: left; vertical-align: top; }
.lcrm-form .lcrm-consent-table th { width: 6.5em; white-space: nowrap; font-weight: 600; }
.lcrm-form .lcrm-status { min-height: 1.2em; margin: 8px 0; font-size: 14px; color: var(--lcrm-err); }
.lcrm-form .lcrm-submit {
  width: 100%; padding: 16px; border: 0; border-radius: var(--lcrm-radius); background: var(--lcrm-ink); color: #fff;
  font: inherit; font-weight: 700; font-size: 16px; min-height: 52px; cursor: pointer;
}
.lcrm-form[aria-busy="true"] .lcrm-submit { opacity: .6; cursor: progress; }
.lcrm-done { text-align: center; padding: 40px 16px; }
.lcrm-done .lcrm-done-title { font-size: 20px; font-weight: 700; margin: 0 0 12px; }
@media (max-width: 480px) { .lcrm-form .lcrm-row { grid-template-columns: 1fr 1fr; gap: 8px; } }
/* 사진 슬롯 (v2) */
.lcrm-form .lcrm-guide { padding: 14px 16px; border-radius: var(--lcrm-radius); background: color-mix(in srgb, var(--lcrm-accent) 6%, transparent); margin-bottom: 14px; font-size: 14px; }
.lcrm-form .lcrm-guide-title { font-weight: 700; margin: 0 0 6px; }
.lcrm-form .lcrm-guide ul { margin: 0; padding-left: 18px; list-style: disc; }
.lcrm-form .lcrm-guide li { margin: 2px 0; }
.lcrm-form .lcrm-slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.lcrm-form .lcrm-slot[hidden] { display: none; }
.lcrm-form .lcrm-slot-box {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  aspect-ratio: 3 / 4; padding: 8px; border: 1px dashed var(--lcrm-line); border-radius: var(--lcrm-radius);
  text-align: center; font-size: 13px; line-height: 1.35; cursor: pointer; overflow: hidden; background: var(--lcrm-bg);
}
.lcrm-form .lcrm-slot-box small { font-size: 12px; color: var(--lcrm-muted); }
.lcrm-form .lcrm-slot-box input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; font-size: 13px; }
.lcrm-form .lcrm-slot-box:focus-within { outline: 2px solid var(--lcrm-accent); outline-offset: 1px; }
.lcrm-form .lcrm-slot-preview { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.lcrm-form .lcrm-slot.has-photo .lcrm-slot-box { border-style: solid; border-color: var(--lcrm-accent); }
.lcrm-form .lcrm-slot.is-busy .lcrm-slot-box { opacity: .5; }
.lcrm-form .lcrm-slot.is-invalid .lcrm-slot-box { border-color: var(--lcrm-err); }
@media (max-width: 480px) { .lcrm-form .lcrm-slots { grid-template-columns: repeat(2, 1fr); } }
.lcrm-form .lcrm-privacy-note { margin: 0 0 20px; padding: 12px 14px; border-radius: var(--lcrm-radius); background: color-mix(in srgb, var(--lcrm-accent) 6%, transparent); font-size: 14px; }
.lcrm-form .lcrm-subhead { margin: 6px 0 0; font-size: 13px; font-weight: 600; color: var(--lcrm-muted); }
.lcrm-form .lcrm-choice-sep { margin-top: 8px; }
/* v9: 슬롯 예시 일러스트·삭제 버튼 */
.lcrm-form .lcrm-slot { position: relative; }
.lcrm-form .lcrm-slot-box { background: var(--lcrm-guide-bg, #F3F1EC); }
.lcrm-form .lcrm-slot-guide { color: var(--lcrm-guide-ink, #293B3E); opacity: .32; width: 46%; max-width: 72px; line-height: 0; }
.lcrm-form .lcrm-slot-guide svg { width: 100%; height: auto; }
.lcrm-form .lcrm-slot.has-photo .lcrm-slot-guide { display: none; }
.lcrm-form .lcrm-slot-del {
  position: absolute; top: 6px; right: 6px; z-index: 2; width: 32px; height: 32px; border: 0; border-radius: 50%;
  background: rgba(41, 59, 62, .78); color: #fff; font: inherit; font-size: 18px; line-height: 32px; text-align: center; cursor: pointer; padding: 0;
}
.lcrm-form .lcrm-slot-del::before { content: ""; position: absolute; inset: -6px; }   /* 탭 영역 44px */
.lcrm-form .lcrm-slot-del[hidden] { display: none; }

/* v12 SNS 링크 여러 줄 */
.lcrm-form .lcrm-links { display: grid; gap: 8px; }
.lcrm-form .lcrm-link { display: grid; grid-template-columns: 118px minmax(0,1fr) 44px; gap: 6px; align-items: center; }
.lcrm-form .lcrm-link .lcrm-input { margin: 0; min-width: 0; }
.lcrm-form .lcrm-link-del { width: 44px; height: 44px; border: 1px solid #e3dfda; background: #fff; border-radius: 10px; font-size: 18px; line-height: 1; color: #8a8580; cursor: pointer; }
.lcrm-form .lcrm-link-del[hidden] { display: block; visibility: hidden; }
.lcrm-form .lcrm-link-add { margin-top: 10px; width: 100%; height: 44px; border: 1px dashed #c9c3bc; background: #faf9f7; border-radius: 10px; font: inherit; font-size: 14px; color: #5b5650; cursor: pointer; }
.lcrm-form .lcrm-link-add[disabled] { opacity: .45; cursor: default; }
.lcrm-form .lcrm-hint { font-size: 12px; color: #8a8580; margin: 6px 0 0; }
@media (max-width: 380px) { .lcrm-form .lcrm-link { grid-template-columns: 100px minmax(0,1fr) 44px; } }
