/* ======================================================
   Policy Page
   - privacy.asp
   - util.css / common.css 기반
   - 섹션별 responsive 관리
   ====================================================== */

.policy_page {
    color: var(--gray_1);
    background: var(--gray_f8);
}

.policy_main {
    background:
        radial-gradient(circle at 88% 12%, rgba(var(--point_rgb), .10), transparent 30%),
        linear-gradient(180deg, var(--gray_f8) 0%, var(--gray_f) 48%, var(--gray_f8) 100%);
}

/* ======================================================
   Policy Visual
   ====================================================== */

.policy_visual {
    padding: calc(var(--p100) + var(--p40)) 0 var(--p70);
    color: var(--gray_f);
    background:
        radial-gradient(circle at 86% 20%, rgba(var(--point_rgb), .36), transparent 32%),
        radial-gradient(circle at 14% 86%, rgba(var(--point3_rgb), .22), transparent 34%),
        linear-gradient(135deg, var(--point2_darker) 0%, var(--point2_dark) 52%, var(--point3_darker) 100%);
}

.policy_visual_wrap {
    text-align: center;
    word-break: keep-all;
}

.policy_kicker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--mnh40);
    margin: 0 0 var(--m20);
    padding: 0 var(--p18);
    border: var(--w1) solid rgba(var(--gray_f_rgb), .22);
    border-radius: var(--br_pill);
    background: rgba(var(--gray_f_rgb), .12);
    color: rgba(var(--gray_f_rgb), .86);
    font-size: var(--fs_14);
    font-weight: 900;
    line-height: 1;
    letter-spacing: .08em;
    box-shadow: inset 0 var(--h1) 0 rgba(var(--gray_f_rgb), .18);
    backdrop-filter: blur(var(--w10));
    -webkit-backdrop-filter: blur(var(--w10));
}

.policy_title {
    margin: 0;
    color: var(--gray_f);
    font-size: var(--fs_50);
    font-weight: 900;
    line-height: 1.15;
    letter-spacing: -0.06em;
}

.policy_desc {
    max-width: var(--mxw760);
    margin: var(--m20) auto 0;
    color: rgba(var(--gray_f_rgb), .78);
    font-size: var(--fs_18);
    font-weight: 500;
    line-height: 1.65;
}

.policy_tabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--gap10);
    margin-top: var(--m35);
}

.policy_tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--mnh45);
    padding: 0 var(--p20);
    border: var(--w1) solid rgba(var(--gray_f_rgb), .24);
    border-radius: var(--br_pill);
    background: rgba(var(--gray_f_rgb), .12);
    color: var(--gray_f);
    font-size: var(--fs_15);
    font-weight: 800;
    line-height: 1;
    box-shadow:
        inset 0 var(--h1) 0 rgba(var(--gray_f_rgb), .18),
        0 var(--h10) var(--w25) rgba(var(--gray_0_rgb), .12);
    transition: background .18s ease, transform .18s ease, border-color .18s ease;
}

.policy_tab:hover {
    transform: translateY(calc(var(--h2) * -1));
    border-color: rgba(var(--gray_f_rgb), .38);
    background: rgba(var(--gray_f_rgb), .18);
}

@media (max-width: 991px) {
    .policy_visual {
        padding: calc(var(--p70) + var(--p30)) 0 var(--p55);
    }

    .policy_title {
        font-size: var(--fs_44);
    }

    .policy_desc {
        font-size: var(--fs_17);
    }
}

@media (max-width: 767px) {
    .policy_visual {
        padding: calc(var(--p65) + var(--p25)) 0 var(--p45);
    }

    .policy_title {
        font-size: var(--fs_36);
    }

    .policy_desc {
        font-size: var(--fs_15);
    }

    .policy_tabs {
        display: grid;
        grid-template-columns: 1fr;
        gap: var(--gap8);
    }

    .policy_tab {
        width: 100%;
        min-height: var(--mnh42);
        font-size: var(--fs_14);
    }
}

/* ======================================================
   Policy Section
   ====================================================== */

.policy_section {
    padding: var(--p90) 0;
    scroll-margin-top: var(--h110);
}

.policy_section_tint {
    background: var(--point2_lighter);
}

.policy_wrap {
    display: grid;
    gap: var(--gap30);
}

.policy_section_head {
    text-align: center;
    word-break: keep-all;
}

.policy_section_kicker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--mnh35);
    margin: 0 0 var(--m15);
    padding: 0 var(--p15);
    border: var(--w1) solid rgba(var(--point_rgb), .12);
    border-radius: var(--br_pill);
    background: rgba(var(--point_rgb), .08);
    color: var(--point);
    font-size: var(--fs_13);
    font-weight: 900;
    line-height: 1;
    letter-spacing: .08em;
}

.policy_section_title {
    margin: 0;
    color: var(--gray_1);
    font-size: var(--fs_40);
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.05em;
}

@media (max-width: 991px) {
    .policy_section {
        padding: var(--p70) 0;
        scroll-margin-top: var(--h80);
    }

    .policy_section_title {
        font-size: var(--fs_34);
    }
}

@media (max-width: 767px) {
    .policy_section {
        padding: var(--p55) 0;
    }

    .policy_wrap {
        gap: var(--gap22);
    }

    .policy_section_title {
        font-size: var(--fs_30);
    }
}

/* ======================================================
   Policy Content
   - 긴 약관 원문은 내부 태그를 유지한 상태로 스코프 지정
   ====================================================== */

.policy_content {
    padding: var(--p45);
    border: var(--w1) solid rgba(var(--point2_rgb), .08);
    border-radius: var(--br_30);
    background: rgba(var(--gray_f_rgb), .96);
    box-shadow: 0 var(--h20) var(--w55) rgba(var(--point2_rgb), .08);
    color: var(--gray_4);
    font-size: var(--fs_16);
    line-height: 1.75;
    letter-spacing: -0.03em;
    word-break: keep-all;
}

.policy_content > h3 {
    margin: var(--m40) 0 var(--m20);
    color: var(--point);
    font-size: var(--fs_24);
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: -0.04em;
}

.policy_content > h3:first-child {
    margin-top: 0;
}

.policy_content article {
    margin-top: var(--m18);
}

.policy_content article > h3 {
    margin: var(--m25) 0 var(--m10);
    color: var(--gray_2);
    font-size: var(--fs_18);
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: -0.03em;
}

.policy_content p {
    margin: var(--m15) 0 0;
    color: var(--gray_4);
}

.policy_content .p_point {
    display: inline-flex;
    align-items: center;
    margin: 0 0 var(--m15);
    padding: var(--p10) var(--p15);
    border-radius: var(--br_10);
    background: rgba(var(--point_rgb), .08);
    color: var(--point_dark);
    font-weight: 800;
}

.policy_content ol,
.policy_content ul {
    margin: 0 0 var(--m25);
    padding-left: var(--p22);
    line-height: 1.75;
}

.policy_content ol {
    list-style: decimal;
}

.policy_content ul {
    list-style: disc;
}

.policy_content li {
    margin: 0;
    color: var(--gray_4);
    font-size: var(--fs_15);
    line-height: 1.75;
}

.policy_content li:not(:last-child) {
    margin-bottom: var(--m12);
}

.policy_content .second_list {
    margin-top: var(--m10);
    margin-bottom: var(--m15);
}

.policy_content ul.second_list {
    list-style: circle;
}

.policy_content .second_list li {
    font-size: var(--fs_14);
}

.policy_content .second_list li:not(:last-child) {
    margin-bottom: var(--m8);
}

.policy_content strong {
    color: var(--gray_2);
    font-weight: 800;
}

@media (max-width: 991px) {
    .policy_content {
        padding: var(--p35);
        border-radius: var(--br_25);
        font-size: var(--fs_15);
    }

    .policy_content > h3 {
        font-size: var(--fs_22);
    }

    .policy_content article > h3 {
        font-size: var(--fs_17);
    }
}

@media (max-width: 767px) {
    .policy_content {
        padding: var(--p25);
        border-radius: var(--br_20);
    }

    .policy_content > h3 {
        margin: var(--m32) 0 var(--m15);
        font-size: var(--fs_20);
    }

    .policy_content article > h3 {
        margin-top: var(--m22);
        font-size: var(--fs_16);
    }

    .policy_content ol,
    .policy_content ul {
        padding-left: var(--p18);
    }

    .policy_content li {
        font-size: var(--fs_14);
    }

    .policy_content .second_list li {
        font-size: var(--fs_13);
    }
}
/* ======================================================
   Policy Header
   - privacy.asp에서만 메뉴 3개 추가 대응
   ====================================================== */

.policy_page .site_nav {
    gap: var(--gap20);
    font-size: var(--fs_15);
}

.policy_page .nav_cta {
    padding: var(--p8) var(--p18);
}

.policy_page .policy_nav_link {
    color: rgba(var(--gray_2_rgb), .82);
}

.policy_page .policy_nav_link.is_active {
    color: var(--point);
}

@media (min-width: 992px) and (max-width: 1199px) {
    .policy_page .site_nav {
        gap: var(--gap14);
        font-size: var(--fs_14);
    }

    .policy_page .nav_cta {
        padding: var(--p7) var(--p14);
    }
}