/* ==========================================================================
   policy-common.css
   개인정보처리방침 / 이용약관 / 이메일무단수집거부 / 부정행위방지정책
   4개 정책 페이지 공통 스타일
   Primary Color: #3060bb
   ========================================================================== */

/* 최상위 래퍼 (Scope) */
.policy-page {
    font-family: 'pretendard-regular', sans-serif;
    color: #333333;
    line-height: 1.6;
    width: 100%;
    background-color: #ffffff;
}

/* 내부 리셋 */
.policy-page * { box-sizing: border-box; margin: 0; padding: 0; }
.policy-page li { list-style: none; }
.policy-page a { text-decoration: none; color: inherit; }
.policy-page ol,
.policy-page ul { padding-left: 0; margin: 0; }
.policy-page table { border-collapse: collapse; border-spacing: 0; width: 100%; }

/* 폰트 웨이트 매핑 */
.policy-page-fw-500 { font-family: 'pretendard-regular', sans-serif; font-weight: 500; }
.policy-page-fw-700 { font-family: 'pretendard-medium', sans-serif; font-weight: 700; }
.policy-page-fw-bold { font-family: 'pretendard-bold', sans-serif; font-weight: 800; }

/* =========================================
   [레이아웃]
   ========================================= */
.policy-page-container {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 0 150px;
}

/* 구분선 */
.policy-page-divider {
    width: 100%;
    height: 1px;
    background-color: #e3e4e8;
    margin: 60px 0;
    border: none;
}

/* =========================================
   [섹션]
   ========================================= */
.policy-page-section {
    margin-bottom: 60px;
}
.policy-page-section:first-child {
    padding-top: 80px;
}

/* =========================================
   [상단 인트로]
   ========================================= */
.policy-page-header {
    padding-top: 80px;
}
.policy-page-intro {
    font-family: 'pretendard-regular', sans-serif;
    font-weight: 500;
    font-size: clamp(16px, calc(13.57px + 0.317vw), 18px);
    color: #333333;
    line-height: 1.6;
    word-break: keep-all;
}

/* =========================================
   [타이포그래피]
   ========================================= */

/* 대제목 */
.policy-page-title-lg {
    font-family: 'pretendard-bold', sans-serif;
    font-size: clamp(20px, calc(15.14px + 0.633vw), 24px);
    color: #3060bb;
    margin-bottom: 24px;
}

/* 중제목 */
.policy-page-title-md {
    font-family: 'pretendard-bold', sans-serif;
    font-size: clamp(18px, calc(15.57px + 0.317vw), 20px);
    color: #1a1a1a;
    margin-top: 32px;
    margin-bottom: 16px;
}
.policy-page-title-md:first-child { margin-top: 0; }

/* 본문 텍스트 */
.policy-page-text {
    font-family: 'pretendard-medium', sans-serif;
    font-size: clamp(14px, calc(9.14px + 0.633vw), 18px);
    color: #333333;
    margin-bottom: 12px;
    line-height: 1.4;
    word-break: keep-all;
}

/* 서브 텍스트 (리스트 하위 설명) */
.policy-page-sub-text {
    font-family: 'pretendard-regular', sans-serif;
    font-weight: 500;
    font-size: clamp(14px, calc(11.57px + 0.317vw), 16px);
    color: #555555;
    margin-top: 6px;
    margin-left: 14px;
    line-height: 1.6;
}

/* =========================================
   [리스트 — 불릿 (•)]
   ========================================= */
.policy-page-list {
    padding-left: 0;
}
.policy-page-list li {
    position: relative;
    padding-left: 16px;
    font-family: 'pretendard-medium', sans-serif;
    font-size: clamp(14px, calc(9.14px + 0.633vw), 18px);
    color: #1a1a1a;
    margin-bottom: 8px;
    line-height: 1.4;
}
.policy-page-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 10px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background-color: #555;
}
.policy-page-list--no-bullet li::before { content: none; }
.policy-page-list--no-bullet li { padding-left: 0; }
.policy-page-list li strong {
    font-size: clamp(16px, calc(13.57px + 0.317vw), 18px);
    font-weight: 700;
}

/* =========================================
   [테이블]
   ========================================= */
.policy-page-table-wrap {
    margin-top: 20px;
    overflow-x: auto;
    border-radius: 16px;
    border: 1px solid #e3e4e8;
}

.policy-page-table {
    min-width: 600px;
}

.policy-page-table th,
.policy-page-table td {
    padding: 16px;
    border-bottom: 1px solid #e3e4e8;
    font-size: clamp(13px, calc(10.57px + 0.317vw), 16px);
    text-align: center;
    vertical-align: middle;
    color: #555;
}

.policy-page-table tr:last-child td {
    border-bottom: none;
}

.policy-page-table th {
    background-color: #f4f9ff;
    color: #3060bb;
    font-family: 'pretendard-medium', sans-serif;
    font-weight: 700;
    border-right: 1px solid #e3e4e8;
}
.policy-page-table th:first-child { border-left: none; }
.policy-page-table th:last-child { border-right: none; }

.policy-page-table td {
    font-family: 'pretendard-regular', sans-serif;
    border-right: 1px solid #e3e4e8;
}
.policy-page-table td:first-child { border-left: none; }
.policy-page-table td:last-child { border-right: none; }

/* 마지막 열이 아닌 td에 우측 border 유지 */
.policy-page-table-not-last {
    border-right: 1px solid #e3e4e8 !important;
}

/* =========================================
   [모바일 반응형] (Max Width 768px)
   ========================================= */
@media screen and (max-width: 768px) {

    .policy-page-container {
        padding-bottom: 80px;
    }

    .policy-page-divider {
        margin: 40px 0;
    }

    .policy-page-section {
        margin-bottom: 40px;
    }
    .policy-page-section:first-child {
        padding-top: 40px;
    }

    .policy-page-header {
        padding: 40px 0 20px;
    }

    .policy-page-title-lg {
        font-size: 20px;
        margin-bottom: 12px;
    }

    .policy-page-title-md {
        font-size: 18px;
        margin-top: 24px;
    }

    .policy-page-text,
    .policy-page-list li {
        font-size: 14px;
    }

    .policy-page-table-wrap {
        border-top: 1px solid #3060bb;
    }

    .policy-page-table th,
    .policy-page-table td {
        padding: 12px 10px;
        font-size: 13px;
    }
}
