/* ===== 약관 동의 공용 스타일 ===== */

/* 약관 박스 */
.terms-box {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-md, 14px) var(--space-lg, 18px);
    background: var(--color-bg-soft, #f9fafb);
}

/* 전체 동의 */
.terms-all {
    padding-bottom: 10px;
    margin-bottom: 10px;
    border-bottom: 1px solid var(--color-border, #e5e7eb);
}
.terms-all label { font-weight: 700; font-size: 0.95rem; }

/* 개별 항목 */
.terms-item { padding: 4px 0; }
.terms-item label { font-size: 0.9rem; }

/* 필수/선택 배지 */
.terms-badge {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 4px;
    margin-right: 4px;
    vertical-align: middle;
}
.terms-badge.required { background: #FEE2E2; color: #DC2626; }
.terms-badge.optional { background: #F0F9FF; color: #2563EB; }

/* 보기 버튼 */
.terms-view-btn {
    background: none;
    border: none;
    color: var(--color-primary, #EA580C);
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
    margin-left: 4px;
}
.terms-view-btn:hover { text-decoration: underline; }

/* 모달 본문 */
.terms-modal-body {
    max-height: 60vh;
    overflow-y: auto;
    padding: 20px;
}
.terms-doc-title {
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 16px;
    color: #333;
}
.terms-effective {
    font-size: 0.85rem;
    color: #888;
    margin-bottom: 16px;
}
.terms-section { margin-bottom: 18px; }
.terms-section h6 {
    font-weight: 700;
    font-size: 0.95rem;
    color: #333;
    margin-bottom: 8px;
}
.terms-section p,
.terms-section li {
    font-size: 0.9rem;
    color: #555;
    line-height: 1.7;
}
.terms-section ul,
.terms-section ol { padding-left: 20px; }
.terms-section li { margin-bottom: 4px; }
