/*
 * 개인정보 수집·이용 동의 공통 모듈 — app/templates/common/_privacy_consent.html 전용 (2026-10-17)
 * 전 규칙 `.pc-*` 스코프. 응시 화면 전용(PC Web·Mobile Web) — 결과지·PDF 무관.
 * 주의: 분석검사 public-invite-profile.css 는 전역 `input{width:100%;padding…}`·`label{display:block}` 을 둔다.
 *       체크박스·라디오·라벨은 아래에서 `.pc-root` 셀렉터로 명시적으로 되돌린다.
 * 색은 기존 응시 화면 값(#1a2030 · #718096 · #d9e1ec · 금색 #c9a84c)을 그대로 쓴다.
 */

.pc-root {
  min-width: 0;
  color: #1a2030;
  font-family: inherit;
}

.pc-title {
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.45;
  color: #1a2030;
  margin: 0 0 8px;
}

.pc-root.pc-compact .pc-title { font-size: 0.98rem; }

.pc-lead {
  font-size: 0.88rem;
  line-height: 1.6;
  color: #4a5568;
  margin: 0 0 12px;
}

/* 본문 스크롤 상자 — 1~7절 전문 */
.pc-doc {
  max-height: 45vh;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  border: 1px solid #d9e1ec;
  border-radius: 8px;
  background: #f8fafc;
  padding: 14px 14px 6px;
  font-size: 0.88rem;
  line-height: 1.6;
  color: #2d3748;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.pc-doc:focus-visible {
  outline: 0;
  border-color: #c9a84c;
  box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.16);
}

.pc-sec { margin: 0 0 14px; }

.pc-sec-title {
  font-size: 0.9rem;
  font-weight: 800;
  color: #1a2030;
  margin: 0 0 6px;
}

.pc-sec p { margin: 0 0 6px; }

.pc-list {
  margin: 0 0 6px;
  padding-left: 1.15em;
  list-style: disc;
}

.pc-list li { margin: 0 0 4px; }

/* 2절 항목 — 표 대신 구분별 목록(모든 폭 동일, 가로 넘침 없음) */
.pc-items { margin: 0 0 6px; }

.pc-item {
  padding: 8px 0;
  border-top: 1px solid #e2e8f0;
}

.pc-item:first-child { border-top: 0; padding-top: 2px; }

.pc-item dt {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  font-weight: 700;
  color: #1a2030;
  margin: 0 0 2px;
}

.pc-item dd { margin: 0; color: #4a5568; }

/* 6절 위탁 — 위탁받는 곳 → 위탁 업무 */
.pc-entrust dt { font-weight: 700; color: #1a2030; }
.pc-entrust dd { margin: 0 0 6px; color: #4a5568; }

.pc-badge {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.6;
  white-space: nowrap;
  background: #edf2f7;
  color: #4a5568;
}

.pc-badge-required { background: rgba(201, 168, 76, 0.18); color: #7a5d10; }
.pc-badge-optional { background: #edf2f7; color: #4a5568; }
.pc-badge-auto { background: #ebf4ff; color: #2c5282; }

/* 동의 컨트롤 */
.pc-controls { margin-top: 16px; }

.pc-ages {
  border: 0;
  margin: 0 0 12px;
  padding: 0;
  min-width: 0;
}

.pc-legend {
  font-size: 0.86rem;
  font-weight: 800;
  color: #1a2030;
  margin: 0 0 8px;
  padding: 0;
}

.pc-root label.pc-choice,
.pc-root label.pc-check {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  margin: 0 0 8px;
  padding: 10px 12px;
  border: 1px solid #d9e1ec;
  border-radius: 8px;
  background: #fff;
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.5;
  color: #1a2030;
  cursor: pointer;
}

.pc-root label.pc-check { align-items: flex-start; }

.pc-root label.pc-choice:has(input:checked),
.pc-root label.pc-check:has(input:checked) {
  border-color: #c9a84c;
  background: rgba(201, 168, 76, 0.07);
}

.pc-root input[type="radio"],
.pc-root input[type="checkbox"] {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  accent-color: #b08d2c;
  cursor: pointer;
}

.pc-root label.pc-check input[type="checkbox"] { margin-top: 2px; }

.pc-check-text { min-width: 0; }

.pc-tag { font-weight: 800; }
.pc-tag-required { color: #9c7413; }
.pc-tag-optional { color: #718096; }

.pc-block[hidden] { display: none; }

.pc-field { margin: 0 0 10px; }

.pc-root .pc-field label {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  color: #1a2030;
  margin: 0 0 6px;
}

.pc-root .pc-field input[type="text"] {
  scroll-margin-block: 24px;
  width: 100%;
  min-width: 0;
  height: 44px;
  padding: 0 12px;
  border: 1px solid #d9e1ec;
  border-radius: 8px;
  font-family: inherit;
  font-size: 16px;               /* iOS 포커스 확대 방지 */
  color: #1a2030;
  background: #f8fafc;
}

.pc-root .pc-field input[type="text"]:focus {
  outline: 0;
  border-color: #c9a84c;
  box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.16);
}

.pc-hint {
  margin: 6px 0 0;
  font-size: 0.8rem;
  line-height: 1.5;
  color: #718096;
}

/* 오류 표시(JS focus) */
.pc-root .pc-invalid,
.pc-root label.pc-invalid {
  border-color: #e53e3e;
  box-shadow: 0 0 0 3px rgba(229, 62, 62, 0.12);
}

.pc-root .pc-ages.pc-invalid { border-radius: 8px; padding: 6px; }

.pc-root .pc-field.pc-invalid { box-shadow: none; }
.pc-root .pc-field.pc-invalid input { border-color: #e53e3e; }

@media (max-width: 560px) {
  .pc-doc { max-height: 42vh; padding: 12px 12px 4px; }
  .pc-root label.pc-choice,
  .pc-root label.pc-check { padding: 10px; }
}
