.blind {
    font-size: 0;
    left: -9999px;
    position: absolute;
}

/* ============================================================
    공통
============================================================ */

/* btn */
.btn_blue {
    background-color: #003CFF;
    border: 1px solid #003CFF;
    color: #fff;
}
.btn_blue_bor {
    border: 1px solid #003CFF;
    color: #003CFF;
}
.btn_white_bor {
    border: 1px solid #fff;
}
.btn_gray {
    color: #111111;
    background: #f1f1f5;
}
.btn_gray_bor {
    background: #fff;
    border: 1px solid #666;
    color: #666;
    border-radius: 7px;
}
/* btn */

/* section 공통 */
.container .sec__inner {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.container .title_wrap {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
}
.container .title_left {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.container .title_left .point_title {
    font-size: 18px;
    font-weight: 600;
}
.container .title_left .point_blue {
    color: #003CFF;
}
.container .title_left .point_red {
    color: #FF0000;
}
.container .title_left .title {
    font-weight: 700;
    font-size: 24px;
    text-align: left;
}
.container .title_left .title_sub {
    font-size: 16px;
    font-weight: 400;
}
.container .title_right {
    display: flex;
    align-items: center;
    gap: 10px;
}
.container .title_right button {
    display: flex;
    align-items: center;
}
.container .title_right p {
    color: #666;
    font-size: 16px;
    font-weight: 400;
}
.container .title_right span {
    color: #333;
    font-weight: 600;
}
.img_box {
    position: relative;
    width: 100%;
    border-radius: 4px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.img_box img {
    border-radius: 4px;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s ease;
}
.class_list li a:hover .img_box img {
    transform: scale(1.08);
}
/* section 공통 */

/* new_badge */
.new_badge {
    font-size: 12px;
    font-weight: 600;
    padding: 8px 12px;
    /* border-radius: 4px; */
    border-radius: 0 4px 0 4px;
    color: #fff;
    width: fit-content;
    position: absolute;
    z-index: 50;
}
.new_badge_master {
    background: #1C64F2;
    left: 0;
    bottom: 0;
}
.new_badge_open,
.new_badge_offLine {
    background: rgba(38, 41, 48, 0.8);
    left: 0;
    bottom: 0;
}
.new_badge_onLine {
    background: #EC4561;
    left: 0;
    bottom: 0;
}
.new_badge_free{
    background: #003CFF;
    top: 10px;
    left: 10px;
}
.new_badge_paid {
    background: #FF2E5F;
    top: 10px;
    left: 10px;
}
.new_badge_live {
    background: #f00;
    top: 10px;
    left: 10px;

    display: flex;
    align-items: center;
    gap: 5px;
}
.new_badge_live::before {
    content: '';
    display: block;
    background: #fff;
    border-radius: 999px;
    width: 6px;
    height: 6px;
}
.new_badge_accepting {
    background: #16A34A;
    top: 10px;
    right: 10px;
    left: auto;
}
.new_badge_waiting {
    background: #6B7280;
    top: 10px;
    right: 10px;
    left: auto;
}
.new_badge_closed {
    background: #9CA3AF;
    top: 10px;
    right: 10px;
    left: auto;
}
.new_badge_time {
    background: rgba(125,125,125,0.6);
    border-radius: 999px;
    top: 10px;
    left: 10px;
    bottom: auto;
}
.role_badge {
    font-size: 12px;
    font-weight: 600;
    background: #f5efff;
    color: #7C3AED;
    padding: 8px 12px;
    width: fit-content;
    border-radius: 999px;
}
.new_purple_badge {
    font-size: 14px !important;
    font-weight: 500;
    padding: 8px 12px;
    border-radius: 4px;
    background: #f5efff;
    color: #7C3AED !important;
}
.new_green_badge {
    font-size: 14px !important;
    font-weight: 500;
    padding: 8px 12px;
    border-radius: 4px;
    color: #35a854 !important;
    background: #eafaee;
}
.new_blue_badge {
    font-size: 14px !important;
    font-weight: 500;
    padding: 8px 12px;
    border-radius: 4px;
    color: #003eff !important;
    background: #f1f4ff;
}
.new_red_badge {
    font-size: 14px !important;
    font-weight: 500;
    padding: 8px 12px;
    border-radius: 4px;
    color: #ff0000 !important;
    background: #fff1f1;
}
.new_org_badge {
    font-size: 14px !important;
    font-weight: 500;
    padding: 8px 12px;
    border-radius: 4px;
    color: #ffae00 !important;
    background: #fffdf1;
}
.new_gray_badge {
    font-size: 14px !important;
    font-weight: 500;
    padding: 8px 12px;
    border-radius: 4px;
    color: #767676 !important;
    background: #f5f5f5;
}
.new_black_badge {
    font-size: 14px !important;
    font-weight: 500;
    padding: 8px 12px;
    border-radius: 4px;
    color: #fff !important;
    background: #333;
}

/* badge_level */
.badge_level {
    font-size: 12px;
    font-weight: 400;
    line-height: 140%;
    padding: 6px 8px;
    border-radius: 4px;
}
.badge_level--beginner {
    color: #003eff;
    background: #f1f4ff;
}
.badge_level--intermediate {
    color: #35a854;
    background: #eafaee;
}
.badge_level--advanced {
    background: #f5efff;
    color: #7C3AED;
}

/* 공통 */
.keyword p {
    font-size: 12px;
    font-weight: 600;
    line-height: 140%;
    color: #555;
    padding: 6px 8px;
    border-radius: 4px;
    background: #f5f5f5;

    min-width: 0;
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: break-all; 
    white-space: normal;  
}

/* top_area */
.top_area {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    margin: 20px 0;
}
.top_area.top_area--right {
    justify-content: flex-end;
}
.class_list_header {
    border-top: 1px solid #111111;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 16px 0;
}
.class_list_header .gray_line {
    width: 100%;
    margin: 10px 0;
    background: #f1f1f5;
    height: 1px;
    min-height: 1px;
    border: none;
}
.class_list_header .category_wrap {
    width: 100%;
    display: flex;
    flex-direction: column;
}
.class_list_header .sub_area {
    width: 100%;
}
.class_list_header .filter_wrap {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
}



/* tab */
.tab_list {
    display: flex;
    /* width: 100%; */
    overflow: auto;
    gap: 10px;
    flex-wrap: nowrap;
}
.tab_list::-webkit-scrollbar {
    display: none;
}
.tab_list li {
    flex-shrink: 0;
}

.tab_list li a {
    display: block;
    padding: 10px 20px;
    color: #999999;
    background: #f3f3f3;
    border-radius: 4px;
    font-weight: 600;
    font-size: 16px;
    font-style: normal;
    cursor: pointer;
}
.tab_list li.active a {
    color: #fff;
    background: #384046;
    border-radius: 4px;
}

/* 목록 상단 필터 */
.filter_area {
    display: flex;
    align-items: center;
    gap: 15px;
}
.filter_area .filter-toolbar__label {
    font-size: 18px;
}
.filter_area .filter-toolbar__checkboxes {
    display: flex;
    align-items: center;
    gap: 15px;
}
.filter_area .filter-toolbar__checkboxes label {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 16px;
    color: #666;
}
.filter_area .check-A input:checked + em + span {
    color: #003CFF;
}
.control_area {
    display: flex;
    align-items: center;
    gap: 15px;
}
.sort_select {
    max-width: 120px;
    width: 100%;
    position: relative;
}
.sort_select select {
    width: 100%;
    border: 1px solid #e1e1e1;
    background: #fff;
    border-radius: 7px;
    padding: 0 36px 0 15px;
    height: 44px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    font-size: 14px;
    color: #121212;
    cursor: pointer;
    background: url(../_img/icon/icon_arrowdown.svg) no-repeat right 15px center / 12px;
}

/* 난이도 선택 팝오버 */
.filter-toolbar__filter-wrap {
    display: none;
    position: relative;
    width: 100%;
}
.filter-toolbar__filter-btn {
    height: 44px;
    padding: 0 12px;
    border: 1px solid #e1e1e1;
    border-radius: 7px;
    background: #fff;
    font-size: 14px;
    color: #333;
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
    cursor: pointer;
}
.filter-toolbar__arrow {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
    background: url(../_img/icon/icon_arrowdown.svg) no-repeat center / 100%;
    transition: transform 0.2s;
}
.filter-toolbar__filter-btn.is-active {
    border-color: #333;
}
.filter-toolbar__popover {
    display: none;
    position: absolute;
    top: 46px;
    left: 0;
    width: 100%;
    background: #fff;
    border: 1px solid #e1e1e1;
    border-radius: 7px;
    padding: 8px;
    z-index: 10;
}
.filter-toolbar__popover.is-open {
    display: block;
}
.filter-toolbar__popover label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    padding: 7px 6px;
    cursor: pointer;
}
/* 페이지네이션 */
.pagination {
    display: flex;
    align-items: center;
    gap: 16px;
    justify-content: center;
    margin-top: 32px;
}
.pagination .paging {
    display: flex;
    align-items: center;
    gap: 2px;
}
.pagination a {
    width: 38px;
    height: 38px;
    display: inline-block;
    text-align: center;
    line-height: 38px;
    color: #000000;
    font-weight: 600;
    font-size: 13px;
    border-radius: 100%;
}
.pagination .paging li.active a {
    background: #003CFF;
    color: #fff;
}
.pagination .prev_page {
    background: url(../_img/icon/icon_arrow_left.svg) no-repeat center center / contain;
}
.pagination .naxt_page {
    background: url(../_img/icon/icon_arrow_left.svg) no-repeat center center / contain;
    rotate: 180deg;
}

.class__inner .tit {
    font-weight: 700;
    font-size: 36px;
    line-height: 140%;
}
.class__inner .sub_tit {
    margin-top: 16px;
    margin-bottom: 32px;
    color: #767676;
    font-weight: 500;
    font-size: 16px;
    line-height: 140%;
}
.class__inner .top_area {
    border-top: 1px solid #111111;
    border-bottom: 1px solid #e5e5ec;
    padding: 16px 0;
}
.class__inner .top_area .flex.gap8 {
    gap: 8px;
    align-items: center;
}
/* 공통 반응형 */
@media screen and (max-width: 768px) {
    .class__inner .tit {
        font-size: 24px;
    }
    .class__inner .sub_tit {
        font-size: 14px;
        margin-bottom: 20px;
        margin-top: 10px;
    }
}
/* ============================================================
    /공통
============================================================ */


/* ============================================================
    메인페이지
============================================================ */

/* mv banner */
.mv_banner_section {
    width: 100%;
    overflow: hidden;
    position: relative;
    padding: 30px 0 10px;
}
.mv_banner_swiper {
    width: 100%;
    height: auto;
    position: relative;
}
/* .mv_banner_swiper .swiper-slide {
    width: 1260px !important;
    max-width: calc(100vw - 60px);
} */
.mv_banner_swiper .swiper-slide {
    width: 100%;   /* 고정 1260px 대신 컨테이너 폭 전체 */
    max-width: 100%;
    border-radius: 10px;
}
.mv_banner_inner {
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: 10px;
}
.mv_banner_inner img {
    aspect-ratio: 3 / 1;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border-radius: 10px;
}
.mv_banner_ui {
    position: absolute;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 1030px;
    padding: 0 20px;
    max-width: calc(100vw - 60px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    pointer-events: none;
    z-index: 10;
}
.mv_banner_pagination {
    background: rgba(0, 0, 0, 0.45);
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    padding: 7px 14px;
    border-radius: 20px;
}
.mv_banner_controls {
    display: flex;
    align-items: center;
    background: rgba(0, 0, 0, 0.45);
    border-radius: 20px;
    padding: 9px;
    pointer-events: all;
}
.mv_banner_controls button {
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
}
.mv_banner_controls button img {
    width: 12px;
    height: 12px;
    display: block;
}
/* mv banner */


/* 클래스 공통 */
.class_list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 20px;
    row-gap: 25px;
}
.class_list li a {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.class_list .txt_box {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.class_list .txt_top {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
}
.class_list .category {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #717784;
    font-weight: 600;
    font-size: 14px;
}
.class_list .category span:not(.current)::after {
    content: "";
    display: block;
    width: 14px;
    height: 14px;
    background: url(../_img/icon/icon_gray_arrow_B.svg) no-repeat center center / cover;
}
.breadcrumb {
    display: flex;
    align-items: center;
}
.breadcrumb span {
    color: #666;
    font-weight: 600;
    font-size: 14px;
    display: flex;
    align-items: center;
}
.breadcrumb span:not(.current)::after {
    content: "";
    width: 20px;
    height: 20px;
    background: url(../_img/icon/icon_gray_arrow_B.svg) no-repeat center center/contain;
    display: inline-block;
}
.breadcrumb span.current {
    color: #111111;
    font-weight: 500;
    font-size: 14px;
}

.class_list .keyword,
.class_list .keywords {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}
.class_list .keywords .keyword {
    display: inline-block;
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: break-all;
    white-space: normal;
}
.class_list h3 {
    font-weight: 600;
    font-size: 16px;
    text-overflow: ellipsis;
    overflow: hidden;
    word-break: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    color: #15161a;
}
.class_list .txt_bott {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
}
.class_list .txt_bott p {
    font-size: 14px;
    color: #717784;
    font-weight: 500;
}
.class_list .txt_bott .price {
    font-size: 14px;
    color: #15161a;
    font-weight: 600;
}
/* 클래스 공통 */

/* 인기 클래스 */
.popular_section {
    padding: 30px 0 10px;
}
.popular_slider_viewport {
    overflow: hidden;
}
.popular_section .class_list {
    display: flex;
    flex-wrap: nowrap;
    transition: transform 0.4s ease;
    will-change: transform;
}
.popular_section .class_list > li {
    flex: 0 0 calc((100% - 40px) / 3);
    min-width: 0;
}
.popular_section .prev_btn:disabled,
.popular_section .next_btn:disabled {
    opacity: 0.3;
    cursor: default;
}
/* 인기 클래스 */

/* 마스터 클래스 */
.master_section {
    padding: 30px 0 10px;
}
.master_section .class_list {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
}
/* 마스터 클래스 */

/* 라이브 클래스 */
.live_section {
    padding: 40px 0;
    background: radial-gradient(1300px 760px at 108% 50%, rgba(236, 69, 97, .11), transparent 74%), linear-gradient(90deg, #ffffff 0%, #fdf5f3 45%, #fdeeea 100%);
}
.live_section .class_list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}
/* 라이브 클래스 */

/* 오늘의 신규 오픈 클래스 */
.newOpenClass_section {
    padding: 30px 0 10px;
}
.newOpenClass_section .class_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}
/* 오늘의 신규 오픈 클래스 */

/* 파트너 지원하기 배너 */
.partner_banner {
    padding: 30px 0 70px;
}
.partner__inner {
    padding: 40px;
    border-radius: 10px;

    background: linear-gradient(
        90deg,
        #EEF2FB 0%,
        #DDE7F3 25%,
        #E4ECF7 50%,
        #F7F8FC 75%,
        #E7F3F1 100%
    );

    display: flex;
    align-items: flex-end;
    justify-content: space-between;
}
.partner_left {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.partner_left .green_new_badge {
    color: #fff;
    background: #33C18F;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
    width: fit-content;
    padding: 8px 14px;
}
.partner_left h2 {
    color: #121212;
    font-size: 30px;
    font-weight: 700;
}
.partner_left h2 span {
    color: #33C18F;
}
.partner_left p {
    font-size: 14px;
    color: #121212;
    font-weight: 400;
}
.partner_btn {
    padding: 12px 15px;
    border-radius: 4px;
    font-weight: 500;
    font-size: 12px;

    display: flex;
    align-items: center;
    gap: 10px;
}
.partner_btn::after {
    content: '';
    display: block;
    background: url(../_img/icon/icon_right_arrow.svg) no-repeat center / cover;
    width: 9px;
    height: 8px;
}
/* 파트너 지원하기 배너 */

/* 오늘의 클래스 */
.todayClass_section {
    padding: 30px 0 10px;
}
.todayClass_section .class_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}
/* 오늘의 클래스 */

/* 프로그램 배너 */
.program_banner {
    padding: 30px 0 10px;
}
.program__inner {
    grid-template-columns: repeat(2, 1fr);
    display: grid;
    column-gap: 20px;
}
.program__inner .banner {
    width: 100%;
    border-radius: 10px;
    background: linear-gradient(
        90deg,
        #5A00C9 0%,
        #2E015E 50%,
        #150054 100%
    );
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}
.program__inner .banner:last-child {
    background: linear-gradient(
        90deg,
        #001954 0%,
        #011B5E 50%,
        #0048C9 100%
    );
}
.program__inner .banner p {
    font-size: 12px;
    color: #fff;
    font-weight: 600;
}
.program__inner .banner .desc {
    font-size: 14px;
    font-weight: 400;
}
.program__inner .banner h2 {
    color: #fff;
    font-size: 22px;
    line-height: 140%;
    font-weight: 700;
}
/* 프로그램 배너 */

/* 입회테스트 배너 */
.test_banner {
    padding: 30px 0 10px;
}
.test_banner .banner {
    position: relative;
    width: 100%;
    border-radius: 10px;
    background: radial-gradient(640px 340px at 80% 26%, rgba(28, 100, 242, .20), transparent 72%), #15161a;
    border: 1px solid #23252b;
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}
.test_banner .banner .banner_deco {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background-image: radial-gradient(rgba(255, 255, 255, .10) 1.3px, transparent 1.4px);
    background-size: 17px 17px;
    -webkit-mask-image: linear-gradient(90deg, transparent 40%, #000 92%);
    mask-image: linear-gradient(90deg, transparent 40%, #000 92%);
}
.test_banner .banner .banner__inner {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.test_banner .banner .banner__inner > div {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.test_banner .banner h2 {
    color: #fff;
    font-size: 30px;
    line-height: 140%;
    font-weight: 700;
}
.test_banner .banner p {
    font-size: 14px;
    color: rgba(255, 255, 255, .62);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: color .25s ease; 
}
.test_banner .banner:hover p::after {
    transform: translateX(2px);
}
.test_banner .banner:hover p {
    color: #fff;
}
.test_banner .banner p::after {
    content: '';
    display: block;
    background: url(../_img/icon/icon_right_arrow.svg) no-repeat center / cover;
    width: 12px;
    height: 10px;
    transition: color .25s ease, transform .35s cubic-bezier(.34, 1.56, .64, 1);
}
.test_banner .banner span {
    color: #ec4561;
}
.test_banner .banner .mensa_word {
    font-size: 54px;
    font-weight: 800;
    color: rgba(243, 239, 218, .92);
}

@media screen and (max-width: 768px) {
    .test_banner .banner {
        padding: 30px;
    }
    .test_banner .banner h2 {
        font-size: 24px;
    }
    .test_banner .banner p {
        font-size: 14px;
    }
    .test_banner .banner .mensa_word {
        display: none;
    }
}
/* 입회테스트 배너 */

/* 메인 - 공지사항 */
.notice_section {
    padding: 30px 0 100px;
}
.notice_inner {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 20px;
}
.notice_section .notice_list {
    width: 70%;
    padding: 30px;
    border: 1px solid #e1e1e1;
    border-radius: 4px;
}
.notice_section .notice_list li a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #e1e1e1;
    padding: 20px 10px;
}
.notice_section .notice_list .notice_title {
    font-size: 16px;
    font-weight: 600;
    color: #121212;
    transition: all 0.3s ease;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.notice_section .notice_list .notice_date {
    font-size: 14px;
    font-weight: 400;
    color: #666;
}
.notice_section .notice_list li a:hover .notice_title {
    color: #1C64F2;
    padding-left: 10px;
}

.notice_right {
    max-width: 30%;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: linear-gradient(
        90deg,
        #1C64F2 0%,
        #004DC7 100%
    );
    border-radius: 4px;
    position: relative;
    overflow: hidden;
}
.notice_right .circle {
    position: absolute;
    width: 220px;
    height: 220px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    right: -12%;
    bottom: -12%;
}
.bnt_video {
    padding: 10px 12px;
    border-radius: 4px;
    font-weight: 500;
    color: #fff;
    width: fit-content;
    font-size: 12px;
}
.notice_right_text {
    position: absolute;
    top: 50%;
    transform: translate(0%, -50%);
    padding: 0 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.notice_right_text h2 {
    font-size: 20px;
    font-weight: 600;
    color: #fff;
}
.notice_right_text p {
    font-size: 12px;
    font-weight: 400;
    color: #fff;
    margin-bottom: 20px;
}
/* 1:1 문의 */

/* 메인페이지 반응형 */
@media screen and (max-width: 1024px) {
    /* 섹션 공통 */
    .master_section,
    .newOpenClass_section,
    .program_banner,
    .todayClass_section,
    .partner_banner,
    .notice_section,
    .notice_section,
    .live_section {
        padding: 40px 0;
    }

    /* mv banner */
    .mv_banner_section {
        padding: 10px 0;
    }
    .mv_banner_swiper .swiper-slide {
        width: 100%;
        max-width: 100%;
    }
    .mv_banner_ui {
        width: 100%;
        padding: 0 10px;
        max-width: 100%;
    }

    /* .popular_section .class_list > li {
        flex: 0 0 calc(50% - 14px);
    } */

    .master_section .class_list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }
}

@media screen and (max-width: 768px) {
    /* section 공통 */
    .master_section,
    .newOpenClass_section,
    .program_banner,
    .todayClass_section,
    .partner_banner,
    .notice_section,
    .notice_section,
    .live_section {
        padding: 30px 0;
    }

    /* mv banner */
    .mv_banner_inner img {
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }

    /* 타이틀 공통 */
    .container .title_left .title {
        font-size: 20px;
    }
    .container .title_left .title_sub {
        display: none;
    }
    .container .sec__inner {
        gap: 24px;
    }

    /* 클래스 */
    .class_list .txt_top {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .class_list h3 {
        font-size: 14px;
        height: calc(14px * 1.6 * 2);
    }
    .popular_section .class_list > li {
        flex: 0 0 calc(50% - 10px);
    }

    .master_section .class_list,
    .newOpenClass_section .class_list,
    .todayClass_section .class_list {
        grid-template-columns: repeat(2, 1fr);
    }

    /* 파트너 배너 */
    .partner__inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
        padding: 24px;
    }
    .partner_left h2 {
        font-size: 20px;
    }
    .partner_btn {
        width: 100%;
        justify-content: center;
    }

    /* 프로그램 배너 */
    .program__inner {
        grid-template-columns: 1fr;
        row-gap: 20px;
    }
    .program__inner .banner {
        padding: 20px;
    }
    .program__inner .banner h2 {
        font-size: 18px;
    }
    .program__inner .banner p {
        font-size: 10px;
    }
    .program__inner .banner .desc {
        font-size: 12px;
    }
    /* 공지사항 */
    .notice_right {
        aspect-ratio: auto;
    }
    .notice_inner {
        flex-direction: column;
    }
    .notice_section .notice_list {
        width: 100%;
        padding: 15px;
    }
    .notice_right {
        max-width: 100%;
        min-height: 180px;
    }
}
/* 메인페이지 반응형 */

/* ============================================================
    /메인페이지
============================================================ */




/* ============================================================
    정회원 전용 > 라이브 클래스
============================================================ */
.btn_join {
    padding: 10px 0;
    border-radius: 4px;
}
/* ============================================================
    /정회원 전용 > 라이브 클래스
============================================================ */


/* ============================================================
    정회원 전용 > MKSG 세미나
    미작성
============================================================ */


/* ============================================================
    정회원 전용 > 회원 전용 자료실
    미작성
============================================================ */


/* ============================================================
    아카데미 > 오픈 클래스
    
============================================================ */


/* ============================================================
    아카데미 > 마스터 클래스
============================================================ */

/* 목록 */
.premium_class_section .class_list {
    row-gap: 40px;
}
.empty_message {
    grid-column: 1 / -1;
    width: 100%;
    text-align: center;
    padding: 40px;
    background: #f5f5f5;
    border-radius: 10px;
}
.empty_message p {
    font-size: 16px;
    font-weight: 400;
}

/* 마스터 클래스 반응형 */
@media screen and (max-width: 768px) {
    .top_area {
        align-items: flex-start;
        gap: 15px;
    }
    .top_area2 {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }
    .control_area {
        width: 100%;
    }
    .class_sort {
        width: 45%;
    }
    .mksgClass_section .class_list,
    .liveClass_section .class_list,
    .premium_class_section .class_list {
        grid-template-columns: repeat(2, 1fr);
    }
    .class_list_header .filter_wrap {
        flex-direction: column;
        gap: 10px;
    }
    .filter_area {
        width: 100%;
    }
    .filter-toolbar__label,
    .filter_area .filter-toolbar__checkboxes {
        display: none;
    }
    .filter-toolbar__filter-wrap {
        display: block;
    }
}
/* 마스터 클래스 반응형 */

/* ============================================================
    /아카데미 > 마스터 클래스
============================================================ */


/* ============================================================
    클래스 상세보기 공통
============================================================ */

/* 상단 */
.class_de_wrap {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.class_de_inner .class_desc {
    display: flex;
    gap: 30px;
    align-items: flex-start;
}
.class_de_inner .class_desc .img_box .swiper {
    height: 100%;
}

.class_de_inner .class_desc .img_box {
    width: 50%;
    max-width: 720px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 4px;
}
.class_de_inner .class_desc .img_box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.class_de_inner .class_desc .desc_txt {
    width: 50%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 15px;
}
.class_de_inner .class_desc .desc_txt a {
    text-align: center;
}
.class_de_inner .class_desc .desc_txt h1 {
    word-wrap: break-word;
    overflow-wrap: break-word;
    font-weight: 700;
    font-size: 28px;
    line-height: 140%;
}
.class_de_inner .class_desc .desc_txt .class_meta {
    display: flex;
    align-items: center;
}
.class_de_inner .class_desc .desc_txt .class_meta li {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: #555;
    font-weight: 500;
}
.class_de_inner .class_desc .desc_txt .class_meta li::after {
    content: '';
    display: block;
    width: 1px;
    height: 12px;
    background: #999;
    margin: 0 7px;
}
.class_de_inner .class_desc .desc_txt .class_meta li:last-child::after {
    display: none;
}
.class_de_inner .class_desc .desc_txt .category {
    color: #666;
    font-weight: 400;
    font-size: 14px;
}
.class_de_inner .class_desc .desc_txt .class_prog_box {
    width: 100%;
    text-align: left;
}
.class_de_inner .class_desc .desc_txt .class_prog_box p {
    color: #384046;
    font-weight: 500;
    font-size: 14px;
    line-height: 140%;
}
.class_de_inner .class_desc .desc_txt .class_prog_box .blue_txt {
    color: #003CFF;
}
.class_de_inner .class_desc .desc_txt .class_prog_box .prog_thin {
    width: 100%;
}

.class_de_inner .inform {
    border-radius: 4px;
    padding: 16px;
    background: #f7f7fb;
}
.class_de_inner .inform h3 {
    font-weight: 600;
    font-size: 16px;
    line-height: 140%;
    margin-bottom: 10px;
}
.class_de_inner .inform .sub {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.class_de_inner .inform .sub p:not(:last-child)::after {
    content: "";
    width: 1px;
    height: 16px;
    background: #e5e5ec;
}
.class_de_inner .inform_text .class_desc {
    color: #666;
    font-width: 18px;
    line-height: 160%;
    font-weight: 400;
}
.class_de_inner .inform .sub p {
    color: #505050;
    font-weight: 500;
    font-size: 15px;
    line-height: 140%;
    display: flex;
    align-items: center;
    gap: 8px;
}
.class_de_inner .class_desc .desc_txt .inform .sub p {
    color: #505050;
    font-weight: 500;
    font-size: 15px;
    line-height: 140%;
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: break-word;
    white-space: normal;
}
.class_de_inner .class_desc .desc_txt .inform .sub p:not(:last-child)::after {
    content: "";
    width: 1px;
    height: 16px;
    background: #e5e5ec;
}
.class_de_inner .class_desc .desc_txt .keyword {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
}
.btn_payment {
    font-size: 16px;
    padding: 15px 0;
    width: 100%;
    border-radius: 7px;
}

.liveClass_url {
    background: #f7f7fb;
    padding: 20px;
    border-radius: 7px;
    text-align: center;
}
.liveClass_url p {
    font-size: 16px;
    font-weight: 600;
}

.class_course_wrap {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
}
.class_course_wrap > div {
    width: 50%;
}

/* 클래스 목차 */
.class_de_inner .sub_box .title {
    word-wrap: break-word;
    overflow-wrap: break-word;
    font-weight: 700;
    font-size: 24px;
    line-height: 140%;
    text-align: left;
    margin-bottom: 16px;
}
.class_course_area .blue_box {
    background: #f7f7fb;
    border-radius: 4px;
    padding: 12px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
    gap: 8px;
    flex-wrap: wrap;
}
.class_course_area .blue_box h2 {
    font-weight: 700;
    font-size: 20px;
    line-height: 140%;
}
.class_course_area .blue_box .btns {
    display: flex;
    gap: 8px;
}
.class_course_area .blue_box .btns .btn {
    height: 36px;
    line-height: 36px;
    font-size: 14px;
    font-weight: 600;
    display: flex;
    gap: 6px;
    align-items: center;
}
.class_course_area .blue_box .btns .video::before {
    content: "";
    width: 20px;
    height: 20px;
    background: url(../_img/icon/icon_play.svg) no-repeat center center/contain;
}
.class_course_area .blue_box .btns .file_down::before {
    content: "";
    width: 20px;
    height: 20px;
    background: url(../_img/icon/icon_down.svg) no-repeat center center/contain;
}
.course_list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.course_list li {
    border: 1px solid #e5e5ec;
    border-radius: 4px;
    }
.course_list li .btn-lnb {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;

    padding: 16px 20px;
}
.course_list li .btn-lnb .type_list {
    display: flex;
    align-items: center;
    gap: 17px;
    margin-bottom: 4px;
}
.course_list li .btn-lnb .type_list span {
    color: #666;
    font-weight: 500;
    font-size: 14px;
    display: flex;
    gap: 4px;
    align-items: center;
    position: relative;
}
.course_list li .btn-lnb .type_list span:not(:last-child)::after {
    width: 1px;
    height: 16px;
    background: #e5e5ec;
    content: "";
    position: absolute;
    top: 50%;
    right: -8px;
    transform: translateY(-50%);
}
.course_list li .btn-lnb h2 {
    font-weight: 600;
    font-size: 16px;
    line-height: 140%;
    text-align: left;
}
.course_list li .btn-lnb .arrow_down {
    background: url(../_img/icon/icon_gray_arrowdown.svg) no-repeat center center / contain;
    width: 18px;
    height: 18px;
    transition: transform 0.3s;
}
.course_list li .btn-lnb.active .arrow_down {
    transform: rotate(180deg);
}
.course_list li .btn-lnb.active {
    background: #f7f7fb;
}
.course_list .lnb__list {
    border-top: 1px solid #e5e5ec;
    padding: 12px 20px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.course_list .lnb__list .btns {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-top: 8px;
}
.course_list .lnb__list p {
    color: #000000;
    font-weight: 500;
    font-size: 14px;
    line-height: 140%;
}
.course_list .keyword {
    display: flex;
    align-items: center;
    gap: 7px;
}
/* 클래스 목차 */

/* 교수자 소개 */
.creator_area .instructor {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}
.creator_area .instructor img {
    width: 120px;
    height: 120px;
    object-fit: cover;
    overflow: hidden;
    border-radius: 100%;
}
.creator_area .instructor .txt {
    width: 50%;
    word-wrap: break-word;
    overflow-wrap: break-word;
}
.creator_area .instructor .txt .name {
    margin-bottom: 8px;
    font-weight: 700;
    font-size: 16px;
    line-height: 160%;
}
.creator_area .instructor .txt .instructor_his {
    color: #505050;
    font-weight: 400;
    font-size: 14px;
    line-height: 160%;
}
.creator_area .class_explan .gray_explan {
    color: #505050;
    font-weight: 500;
    font-size: 16px;
    line-height: 160%;
    margin-bottom: 15px;
    overflow-wrap: break-word;
    word-break: break-word;
}
.creator_area .gray_line {
    margin: 30px 0;
    background: #f1f1f5;
    height: 1px;
    min-height: 1px;
    border: none;
}
/* 교수자 소개 */

/* 클래스 평점 및 후기 */
.class_de_inner .rating_area {
    padding: 40px 0;
}
.class_de_inner .rating_area .rating_tit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}
.class_de_inner .rating_area .rating_tit h1 {
    font-weight: 700;
    font-size: 24px;
    line-height: 140%;
}
.class_de_inner .rating_area .rating_tit h1 b {
    font-weight: 700;
    color: #003CFF;
}
.class_de_inner .rating_area .rating_tit .go_rating {
    color: #767676;
    font-weight: 600;
    font-size: 16px;
    display: flex;
    align-items: center;
}
.class_de_inner .rating_area .rating_tit .go_rating::after {
    content: "";
    width: 20px;
    height: 20px;
    display: inline-block;
    background: url(../_img/icon/icon_gray_arrowdown.svg) no-repeat center center/contain;
    rotate: -90deg;
}
.rating_area .rating_list {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
}
.rating_area .rating_list li {
    width: 100%;
    box-shadow: 0 6px 20px 0 #00000014;
    border: 1px solid #f1f1f5;
    border-radius: 8px;
    padding: 16px 20px;
    background: #ffffff;
}
.rating_area .rating_list li .content {
    color: #505050;
    font-weight: 400;
    font-size: 14px;
    line-height: 160%;
    margin-top: 8px;
}
.rating_box {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.rating_box .rating_id {
    display: flex;
    gap: 8px;
    align-items: center;
}
.rating_box .rating_id .id {
    color: #767676;
    font-weight: 400;
    font-size: 14px;
    display: flex;
    gap: 8px;
    align-items: center;
}
.rating_box .rating_id .id::after {
    content: "";
    width: 1px;
    height: 16px;
    background: #e5e5ec;
}
.rating_box .rating_id .gray_badge {
    padding: 0 6px;
    height: 28px;
    line-height: 28px;
    border-radius: 4px;
    color: #111111;
    font-weight: 600;
    font-size: 14px;
}
.rating_box .rating_num {
    color: #111111;
    font-weight: 500;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 4px;
}
.rating_box .rating_num::before {
    content: "";
    width: 14px;
    height: 14px;
    background: url(../_img/icon/icon_blue_star.svg) no-repeat center center / contain;
}
/* 클래스 평점 및 후기 */

/* 클래스 상세보기 반응형 */


@media screen and (max-width: 1190px) {
    .class_de_inner .class_desc .desc_txt .inform_text .sub {
        flex-direction: column;
        align-items: flex-start;
    }
}
@media screen and (max-width: 1024px) {
    /* 클래스 상세 - 상단 */
    .class_de_inner .class_desc {
        gap: 24px;
    }
    .class_de_inner .class_desc .desc_txt h1 {
        font-size: 22px;
    }

    /* 클래스 목차 / 교수자 소개 */
    .class_course_wrap {
        gap: 24px;
        padding: 20px 0;
    }
    .class_de_inner .sub_box .title {
        font-size: 20px;
    }

    /* 평점 / 후기 */
    .class_de_inner .rating_area .rating_tit h1 {
        font-size: 20px;
    }
}

@media screen and (max-width: 768px) {
    /* 전체 컨테이너 */
    .class_de_wrap {
        gap: 24px;
    }

    /* 클래스 상세 - 상단 */
    .class_de_inner .class_desc {
        flex-direction: column;
        gap: 20px;
    }
    .class_de_inner .class_desc .img_box {
        width: 100%;
    }
    .class_de_inner .class_desc .desc_txt {
        width: 100%;
        gap: 10px;
    }
    .class_de_inner .class_desc .desc_txt h1 {
        font-size: 18px;
    }

    /* 클래스 목차 / 교수자 소개 */
    .class_course_wrap {
        flex-direction: column;
        padding: 16px 0;
        gap: 20px;
    }
    .class_course_wrap > div {
        width: 100%;
    }
    .class_de_inner .sub_box .title {
        font-size: 18px;
    }

    /* 교수자 소개 */
    .creator_area .gray_line {
        margin: 20px 0;
    }
    .creator_area .class_explan .gray_explan {
        font-size: 14px;
    }
    /* 평점 / 후기 */
    .class_de_inner .rating_area {
        padding: 20px 0;
    }
    .class_de_inner .rating_area .rating_tit h1 {
        font-size: 18px;
    }
    .rating_area .rating_list {
        grid-template-columns: 1fr;
    }
}
/* 클래스 상세보기 반응형 */

/* ============================================================
    /클래스 상세보기 공통
============================================================ */


/* ============================================================
    프로그램·접수
============================================================ */
/* 프로그램 리스트 */
.program_list {
    border: 1px solid #e1e1e1;
    border-radius: 4px;
    padding: 0 16px;
}
.program_list.is-empty,
.program_list.is-search-empty {
    padding: 20px;
    text-align: center;
}
.program_list li {
    border-bottom: 1px solid #e1e1e1;
}
.program_list li:last-child {
    border-bottom: none;
}
.program_list li > a {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 20px 0;
}
.program_list .program_text {
    display: flex;
    align-items: center;
    gap: 12px;
}
.program_list .txt {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.program_list .txt .txt_tit h1 {
    font-size: 16px;
    font-weight: 600;
    line-height: 140%;
    text-overflow: ellipsis;
    overflow: hidden;
    word-break: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}
.program_list .txt .txt_desc {
    display: flex;
    align-items: center;
}
.program_list .txt .txt_desc h2 {
    color: #767676;
    font-weight: 500;
    font-size: 14px;
    line-height: 100%;
    display: flex;
    align-items: center;
}
.program_list .txt .txt_desc h2::after {
    content: '';
    display: block;
    width: 1px;
    height: 12px;
    background: #999;
    margin: 0 10px;
}
.program_list .txt .txt_desc h2:last-child::after {
    display: none;
}
.program_list .img_box {
    width: 100px;
    aspect-ratio: 1/1;
    border-radius: 8px;
    overflow: hidden;
    min-width: 56px;
}
.program_list .img_box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.program_badge {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 20px 0 0 0;
}

/* 상세보기 */
.program_detail_wrap {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.program_detail_wrap .program_detail_left {
    width: 75%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
}

.program_top_meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 20px;
}
.program_top_meta .program_title {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%
}
.program_top_meta .program_title h1 {
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: keep-all;
    font-weight: 700;
    font-size: 24px;
    line-height: 140%;
}
.program_top_meta .date {
    display: flex;
    align-items: center;
}
.program_top_meta .date p {
    color: #767676;
    font-weight: 500;
    font-size: 16px;
    display: flex;
    align-items: center;
}
.program_top_meta .date p:not(:last-child)::after {
    content: '';
    display: block;
    width: 3px;
    height: 3px;
    background: #767676;
    border-radius: 999px;
    margin: 0 7px;
}

.program_detail_left .program_title {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.program_detail_left .program_title h1 {
    font-weight: 700;
    font-size: 24px;
    line-height: 140%;
}
.program_detail_left .date {
    display: flex;
    align-items: center;
}
.program_detail_left .date p {
    color: #767676;
    font-weight: 500;
    font-size: 16px;
    display: flex;
    align-items: center;
}
.program_detail_left .date p:not(:last-child)::after {
    content: '';
    display: block;
    width: 3px;
    height: 3px;
    background: #767676;
    border-radius: 999px;
    margin: 0 7px;
}

.program_detail_left .program_img {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 4px;
}
.program_detail_left .program_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.program_info {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
}
.program_info li {
    width: 33.333%;
    height: stretch;
    border: 1px solid #efefef;
    border-radius: 7px;
    padding: 18px 14px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.program_info li h2 {
    font-size: 16px;
    font-weight: 500;
    color: #121212;
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 7px;
}
.program_info li p {
    font-size: 12px;
    color: #666;
}
.program_info li::before {
    content: '';
    display: block;
    background: url(../_img/icon/icon_program_date.svg) no-repeat center / contain;
    width: 19px;
    height: 18px;
}
.program_info li:nth-child(2)::before {
    background: url(../_img/icon/icon_program_place.svg) no-repeat center / contain;
}
.program_info li:last-child::before {
    background: url(../_img/icon/icon_program_period.svg) no-repeat center / contain;
}

/* .program_detail_left .program_info {
    background: #f7f7fb;
    padding: 20px;
    border-radius: 4px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}
.program_detail_left .program_info p {
    color: #333;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}
.program_detail_left .program_info span {
    width: 60px;
    color: #666;
    font-weight: 400;
} */
.program_detail_left .program_content p {
    color: #505050;
    font-weight: 500;
    font-size: 16px;
    line-height: 140%;
}
.program_detail_left .program_content,
.program_detail_left .program_content .image {
    width: 100%;
}
.program_detail_left .program_content .image img {
    width: 100%;
    height: auto;
}
.program_detail_left .comment_title {
    font-size: 18px;
    font-weight: 500;
}
.program_detail_left .comment_count {
    color: #003CFF;
}

.program_detail_left .program_comment {
    border-top: 1px solid #e0e0e0;
    padding: 30px 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.program_detail_left .comment_write {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    justify-content: space-between;
    padding: 15px 0;
    border-radius: 7px;
}
.program_detail_left .comment_input_box {
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 10px 12px;
}
.program_detail_left .comment_profile {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #F4F6FB;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: #333;
}
.program_detail_left .comment_write_body {
    flex: 1;    
}
.program_detail_left .comment_textarea {
    width: 100%;
    border: none;
    outline: none;
    resize: none;
    background: transparent;
    font-size: 16px;
    line-height: 1.5;
    font-family: inherit;
    min-height: 20px;
    max-height: 160px;
    overflow-y: auto;
    display: block;

    scrollbar-width: none;
    -ms-overflow-style: none;
}
.program_detail_left .comment_write_bott  {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 10px;
}
.program_detail_left .comment_length {
    font-size: 14px;
    color: #aaa;
}
.program_detail_left .comment_submit_btn {
    font-size: 14px;
    padding: 9px 18px;
    border-radius: 4px;
    background: #003cff;
    color: #fff;
}
.program_detail_left .comment_submit_btn:disabled {
    background: #d9d9d9;
    cursor: default;
}
.program_detail_left .comment_list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.program_detail_left .comment_item {
    display: flex;
    gap: 15px;
}
.program_detail_left .comment_item .comment_author { 
    font-size: 16px;
    display: flex;
    align-items: center;
    gap: 7px;
}
.program_detail_left .comment_item .comment_author .name {
    font-weight: 500;
}
.program_detail_left .comment_item .comment_author .comment_date {
    color: #aaa;
    font-size: 12px;
}
.program_detail_left .comment_item .comment_text {
    font-size: 16px;
    color: #555;
    line-height: 1.5;
    padding: 7px 0;
}
.program_purchase {
    position: sticky;
    top: 20px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 25%;
    border: 1px solid #e5e5ec;
    height: fit-content;
    border-radius: 7px;
    box-shadow: 6px 6px 20px 0 #0000000a;
    padding: 30px;
}

.program_purchase .program_price p {
    color: #505050;
    font-weight: 600;
    font-size: 16px;
    padding: 10px 0;
}
.program_purchase .program_price h2 {
    font-weight: 700;
    font-size: 26px;
}
.program_purchase .program_price span {
    font-size: 14px;
    color: #666;
}
.program_purchase ul {
    display: flex;
    flex-direction: column;
}
.program_purchase ul li {
    border-bottom: 1px solid #e1e1e1;
    color: #505050;
    font-weight: 600;
    font-size: 16px;
    display: flex;
    align-items: flex-start;
    padding: 10px 0;
}
.program_purchase ul li span {
    color: #505050;
    font-weight: 400;
    min-width: 80px;
}
.program_purchase .program_prog_box > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.program_purchase .program_prog_box p {
    font-size: 14px;
    color: #666;
}
.program_purchase .program_prog_box span {
    font-size: 14px;
    font-weight: 600;
    color: #FF4D66;
}
.program_purchase .program_prog_box .prog_thin {
    width: 100%;
}
.program_purchase .purchase_notice {
    font-size: 14px;
    color: #666;
    text-align: center;
}
/* 프로그램·접수 반응형 */
@media screen and (max-width: 1000px) {
    .program_detail_wrap {
        flex-direction: column;
    }
    .program_detail_wrap .program_detail_left {
        width: 100%;
    }
    .program_purchase {
        width: 100%;
    }
}

@media screen and (max-width: 768px) {
    .program_list li > a {
        flex-direction: column-reverse;
        gap: 15px;
    }
    .program_list .txt .txt_desc {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    .program_list .txt .txt_desc h2::after {
        display: none;
    }
    .program_info {
        flex-direction: column;
        align-items: flex-start;
    }
    .program_info li {
        width: 100%;
    }
}

/* ============================================================
    프로그램·접수
============================================================ */



/* ============================================================
    고객지원
============================================================ */

/* 홈 */
.notice_preview {
    margin: 20px 0;
}
.notice_preview a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 0;
    border-radius: 4px;
    border-bottom: 1px solid #e1e1e1;
}
.notice_preview a:hover .text h3 {
    color: #003CFF;
}

.notice_preview .text {
    display: flex;
    align-items: center;
    gap: 20px;
}
.notice_preview .text .notice_txt {
    color: #767676;
    font-weight: 500;
    font-size: 14px;
    border: 1px solid #e1e1e1;
    border-radius: 7px;
    padding: 6px 16px;
}
.notice_preview .text h3 {
    color: #111111;
    font-weight: 600;
    font-size: 18px;
    text-overflow: ellipsis;
    overflow: hidden;
    word-break: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    webkit-box-orient: vertical;
    transition: color 0.25s ease;
}
.notice_preview .arrow_right {
    width: 40px;
    height: 40px;
    background: url(../_img/icon/icon_arrow_btn.svg) no-repeat center center / contain;
    flex-shrink: 0;
}
/* 다른 도움 목록 */
.other_help_list {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}
.other_help_list li {
    flex: 1;
    align-self: stretch;
}
.other_help_list li a {
    background: #f5f5f5;
    border-radius: 4px;
    padding: 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    width: 100%;
    gap: 20px;
    min-width: 300px;
}
.other_help_list li .arrow_right {
    width: 40px;
    height: 40px;
    background: url(../_img/icon/icon_arrow_btn_wh.svg) no-repeat center center/contain;
    flex-shrink: 0;
}
.other_help_list .help_left {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: flex-start;
}
.other_help_list li .help_icon {
    width: 50px;
    height: 50px;
    flex-shrink: 0;
}
.other_help_list li .txt h1 {
    font-weight: 700;
    font-size: 20px;
    line-height: 140%;
    margin-bottom: 8px;
}
.other_help_list li .txt h4 {
    font-weight: 500;
    font-size: 14px;
    line-height: 140%;
}
/* 홈 */

/* 자주 묻는 질문 */
/* 카테고리 필터 */
.faq_radios {

    margin-bottom: 16px;
}
.faq_list .no-result,
.no_cource_box {
    background: #f7f7fb;
    border-radius: 4px;
    padding: 12px 16px;
    display: flex;
    gap: 12px;
    align-items: center;
    margin-top: 16px;
    height: 56px;
    width: 100%;
}
.faq_list .no-result p,
.no_cource_box p {
    color: #767676;
    font-size: 16px;
    font-weight: 600;
}
.faq_list {
    border-top: 1px solid #f1f1f5;
}
.faq_list li .btn-lnb {
    position: relative;
    width: 100%;
    padding: 20px;
    border-bottom: 1px solid #f1f1f5;
    text-align: left;
    display: flex;
    gap: 16px;
    align-items: center;
}
.faq_list li .btn-lnb .gray_txt {
    margin-bottom: 4px;
    color: #767676;
    font-weight: 500;
    font-size: 16px;
    line-height: 140%;
}
.faq_list li .btn-lnb h2 {
    font-weight: 600;
    font-size: 18px;
    line-height: 140%;
    padding-right: 30px;
    display: flex;
}
.faq_list li .btn-lnb::before {
    content: "";
    width: 32px;
    height: 32px;
    background: url(../_img/icon/icon_q.svg) no-repeat center center / contain;
}
.faq_list li .btn-lnb.active h2 {
    color: #003CFF;
}
.faq_list li .btn-lnb.active::before {
    background: url(../_img/icon/icon_q_on.svg) no-repeat center center / contain;
}
.faq_list li .btn-lnb .arrow_down {
    background: url(../_img/icon/icon_gray_arrowdown.svg) no-repeat center center / contain;
    width: 22px;
    height: 22px;
    transition: transform 0.3s;
    position: absolute;
    bottom: 23px;
    right: 20px;
}
.faq_list li .btn-lnb.active .arrow_down {
    transform: rotate(180deg);
}

.faq_list li .lnb__list {
    background: #f8f8f8;
    border-bottom: 1px solid #f7f7fb;
    padding: 20px;
    display: flex;
    gap: 13px;
}
.faq_list li .lnb__list::before {
    content: "";
    width: 32px;
    height: 32px;
    background: url(../_img/icon/icon_a.svg) no-repeat center center / contain;
    flex-shrink: 0;
    display: inline-block;
}
.faq_list li .lnb__list .lnb_text {
    display: block;
}
.faq_list li .lnb__list p {
    color: #505050;
    font-weight: 500;
    font-size: 16px;
    line-height: 160%;
}
/* 자주 묻는 질문 */

/* 공지사항 */
.notice_list {
    border-top: 1px solid #f1f1f5;
}
.notice_list li a {
    align-items: center;
    border-bottom: 1px solid #f1f1f5;
    border-top: 1px solid transparent;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    gap: 20px;
}
.notice_list li a .text {
    display: flex;
    gap: 20px;
    align-items: center;
}
.notice_list li a:hover {
    background: #f7f7fb;
}
.notice_list li a .notice_txt {
    color: #767676;
    font-weight: 500;
    font-size: 18px;
}
.notice_list li a .title_box {
    display: flex;
    align-items: center;
    gap: 8px;
}
.notice_list li a h3 {
    font-weight: 600;
    font-size: 18px;
    width: 100%;
    text-overflow: ellipsis;
    overflow: hidden;
    word-break: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}
.notice_list li a .date_txt {
    color: #767676;
    font-weight: 500;
    font-size: 16px;
}
/* 공지사항 상세 */
.notice_de {
    margin-top: 32px;
}
.notice_de .title_area {
    padding-bottom: 20px;
    border-bottom: 1px solid #e5e5ec;
}
.notice_de .title_area h1 {
    font-weight: 700;
    font-size: 24px;
    line-height: 160%;
    margin-bottom: 12px;
    overflow-wrap: break-word;
    word-wrap: break-word;
}

.notice_de .editor_content p {
    overflow-wrap: break-word;
    word-wrap: break-word;
    line-height: 160%;
}
.notice_de .title_area .date {
    display: flex;
    gap: 8px;
    align-items: center;
}
.notice_de .title_area .date p,
.notice_de .title_area .lesson {
    color: #767676;
    font-weight: 500;
    font-size: 16px;
    line-height: 140%;
}
.notice_de .title_area .lesson {
    margin-bottom: 24px;
}
.notice_de .notice_content {
    margin: 20px 0;
    color: #505050;
    font-weight: 500;
    font-size: 16px;
}
.notice_de_btns {
    margin-top: 64px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}
.notice_de_btns.mt28 {
    margin-top: 28px;
}
.notice_de_btns .right {
    display: flex;
    gap: 8px;
    align-items: center;
}
/* 공지사항 */

/* 문의하기 */
.customer_flex {
    gap: 40px;
}
.customer_flex.customer_faq .box {
    padding: 40px 0;
    width: 100%;
}
.customer_flex .box.two {
    flex: 0 0 calc((100% - 40px) * 0.5875);
}
.customer_flex .box.one {
    flex: 0 0 calc((100% - 40px) * 0.4125);
}
.customer_flex .box.one277 {
    min-width: 277px;
}
.customer_flex .box.one277 h2 {
    font-size: 18px;
    line-height: 140%;
}
.customer_flex .box.one277 h2.fw700 {
    margin-bottom: 8px;
}
.customer_flex .box.one277 h1 {
    font-size: 36px;
    line-height: 140%;
    margin-bottom: 8px;
}
/* 1:1 문의 안내 박스 */
.qna_go_box {
    border: 1px solid #e5e5ec;
    padding: 32px;
    border-radius: 4px;
}
.qna_go_box h1 {
    color: #333333;
    font-weight: 400;
    font-size: 36px;
    line-height: 140%;
    margin-bottom: 8px;
}
.qna_go_box h2 {
    margin-bottom: 8px;
    font-weight: 700;
    font-size: 16px;
    line-height: 140%;
}
.qna_go_box h3 {
    margin-bottom: 12px;
    font-weight: 400;
    font-size: 16px;
    line-height: 140%;
}
.qna_go_box p {
    color: #767676;
    font-weight: 500;
    font-size: 14px;
    line-height: 140%;
}
.qna_go_box .btn {
    margin-top: 32px;
}
/* 제목 영역 */
.justi-title_box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
    margin-top: 32px;
}
.justi-title_box .sub_tit {
    font-weight: 700;
    font-size: 20px;
    line-height: 140%;
}
/* 문의 작성 폼 */
.qna_write_inner {
    max-width: 1000px;
    width: 100%;
    padding: 0 20px;
    margin: 0 auto;
}
.qna__area {
    padding-top: 32px;
    border-top: 1px solid #111111;
}
.qna__area .qna__input {
    border: 1px solid #e5e5ec;
    border-radius: 4px;
    padding: 16px;
}
.qna__area .qna__input input {
    height: 48px;
    width: 100%;
    padding: 0;
    padding: 13px 0 9px;
    font-size: 16px;
    border: none;
    border-bottom: 1px solid #e5e5ec;
}
.qna__area .qna__input textarea {
    padding: 13px 0 0;
    width: 100%;
    margin-top: 8px;
    height: 312px;
    border: none;
}
.qna__area .qna__input input::placeholder,
.qna__area .qna__input textarea::placeholder {
    font-size: 16px;
    color: #999999;
}
.file_area {
    width: 100%;
    margin-top: 20px;
    border: 1px solid #e5e5ec;
    border-radius: 4px;
    padding: 4px 4px 4px 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #fff;
}
.file_area .file-upload {
    background: #f1f1f5;
    color: #111111;
    cursor: pointer;
    flex-shrink: 0;
    width: 108px;
}
.file_area #uploadfile {
    display: none;
}
.file_area .placeholder {
    color: #999999;
    font-weight: 400;
    font-size: 16px;
}
.file_area .file_text {
    color: #767676;
    font-weight: 500;
    font-size: 16px;
}
.file_area .file_name {
    display: flex;
    gap: 8px;
    align-items: center;
}
.file_area .file_name p {
    font-weight: 400;
    font-size: 16px;
    line-height: 140%;
    color: #111111;
    text-overflow: ellipsis;
    overflow: hidden;
    word-break: break-word;

    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}
.file_area .file_name .x_btn {
    width: 20px;
    height: 20px;
    background: url(../_img/icon/icon_x_btn_one.svg) no-repeat center center / contain;
}
.file_guide_txt {
    font-size: 14px;
    color: #999;
    padding: 7px 0;
}
.qna__area .right_btns {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: end;
    margin-top: 32px;
}
/* 답변 */
.qna_answer {
    background: #f7f7fb;
    padding: 24px;
    margin-top: 20px;
}
.qna_answer h1 {
    font-weight: 600;
    font-size: 16px;
    line-height: 160%;
    margin-bottom: 12px;
}
.qna_answer .answer {
    color: #505050;
    font-weight: 500;
    font-size: 16px;
    line-height: 160%;
}
.qna_answer .no_answer {
    color: #767676;
    font-weight: 500;
    font-size: 16px;
    line-height: 140%;
    text-align: center;
}
.qna_answer .file_area {
    margin-top: 24px;
}
/* 문의하기 */

/* 고객지원 반응형 */
@media screen and (max-width: 768px) {
    /* 홈 */
    .notice_preview a {
        height: 54px;
    }
    .notice_preview .arrow_right {
        display: none;
    }
    .notice_preview .text .notice_txt,
    .notice_preview .text h3 {
        font-size: 16px;
    }

    /* 자주 묻는 질문 */
    .faq_list li .btn-lnb {
        padding: 20px;
        gap: 12px;
    }
    .faq_list li .btn-lnb .gray_txt {
        font-size: 14px;
    }
    .faq_list li .btn-lnb h2 {
        font-size: 16px;
    }
    .faq_list li .btn-lnb .arrow_down {
        top: 50%;
        transform: translateY(-50%);
    }
    .faq_list li .btn-lnb::before,
    .faq_list li .lnb__list p::before {
        width: 26px;
        height: 26px;
        flex-shrink: 0;
    }
    .faq_list li .lnb__list p {
        gap: 12px;
    }

    /* 공지사항 */
    .notice_list li a .text {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    .notice_list li a h3 {
        font-size: 16px;
    }
    .notice_list li a .title_box {
        gap: 6px;
    }
    .notice_de .title_area h1 {
        font-size: 20px;
    }
    .notice_de .notice_content {
        font-size: 15px;
    }
    .notice_de_btns {
        align-items: flex-start;
        flex-direction: column;
    }
    .notice_de_btns.mo_flex {
        flex-direction: unset;
    }
    .notice_de_btns.mo_flex .btn {
        width: fit-content;
    }
    .notice_de_btns .right {
        width: 100%;
        order: 2;
    }
    .notice_de_btns .btn {
        width: 100%;
    }
    .notice_de_btns .right.col {
        flex-direction: column;
        order: 1;
    }
    .notice_de_btns .qna_answer_btn {
        width: 100%;
    }

    /* 문의하기 */
    .customer_flex {
        flex-direction: column;
        gap: 32px;
    }
    .customer_flex .box.one277 h1 {
        font-size: 28px;
    }
    .customer_flex .box.one277 h2.fw700.mt40 {
        margin-top: 32px;
    }
    .customer_flex .box.one277 h2,
    .custom__inner .info_ip_area h1 {
        font-size: 18px;
    }
    .qna_go_box {
        padding: 24px;
    }
    .qna_go_box h2,
    .qna_go_box h3,
    .notice_list li a .notice_txt,
    .notice_list li a .date_txt,
    .notice_de .title_area .date p,
    .notice_de .title_area .lesson,
    .faq_list li .lnb__list p {
        font-size: 14px;
    }
    .qna_go_box h1 {
        font-size: 28px;
    }
    .other_help_list li a {
        padding: 24px;
        gap: 32px;
    }
    .other_help_list li .txt h1 {
        font-size: 18px;
    }
    .qna_tit_area {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    .qna_answer {
        padding: 16px;
    }
    .qna_answer h1 {
        margin-bottom: 12px;
    }
    .qna_answer .answer {
        font-size: 15px;
    }
    .qna_answer .no_answer {
        font-size: 15px;
    }

    /* 고객지원 공통 */
    .custom__inner .sub_title {
        font-size: 18px;
    }
    .justi-title_box {
        flex-direction: column;
        gap: 16px;
        align-items: flex-start;
    }
    .custom__inner .agree_box .agree_item {
        padding: 12px 0 0;
        height: fit-content;
    }
    .custom__inner .info_ip_area .flex {
        flex-direction: column;
    }
    .custom__inner .btn_right .btn {
        width: 100%;
    }
    .custom__inner .location_area .radio_btns {
        flex-direction: initial;
        flex-wrap: wrap;
    }
    .custom__inner .location_area .input_txt input + em {
        width: 101px;
    }
    .custom__inner .location_area .map_desc .map_area {
        aspect-ratio: 322/256;
    }
    .custom__inner .location_area .map_desc .map_text {
        gap: 24px;
    }
    .custom__inner .location_area .map_desc .map_text li {
        flex-direction: column;
        gap: 8px;
        align-items: flex-start;
    }
    .custom__inner .location_area .map_desc .map_text li h4 {
        font-size: 14px;
    }
    .custom__inner .location_area .map_desc .map_text li .txt {
        align-items: flex-start;
    }
    .custom__inner .location_area .map_desc .map_text li .bus_icon {
        height: 26px;
        line-height: 26px;
        padding: 0 10px;
        font-size: 13px;
        width: 57px;
    }
    .custom__inner .location_area .map_desc .map_text li .txt.col {
        flex-direction: column;
        gap: 4px;
    }
    .custom__inner .location_area .map_desc .map_text li .subway_icon {
        width: 20px;
        height: 20px;
        font-size: 13px;
        line-height: 20px;
    }
}
/* 고객지원 반응형 */

/* ============================================================
    /고객지원
============================================================ */


/* ============================================================
    /결제하기
============================================================ */
.payment_title {
    font-weight: 700;
    font-size: 36px;
    line-height: 140%;
    padding-bottom: 32px;
    border-bottom: 1px solid #111111;
}
.payment_area {
    gap: 40px;
    padding-top: 32px;
}
.payment_area .inform_area {
    max-width: 760px;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.payment_area .sub_title {
    font-weight: 700;
    font-size: 20px;
    line-height: 140%;
    margin-bottom: 12px;
}
.payment_area .sub_title .blue {
    color: #159bff;
    font-weight: 700;
    margin-left: 4px;
}
.payment_area .pay_list {
    gap: 12px;
}
.payment_area .pay_list label {
    width: 100%;
}
.payment_area .class_inform.pc,
.payment_area .class_inform.membership {
    border: 1px solid #e5e5ec;
    border-radius: 4px;
    padding: 16px;
    display: flex;
    gap: 20px;
}
.payment_area .class_inform.blue {
    background: #f7f7fb;
}
.payment_area .class_inform.blue h1 {
    font-weight: 600;
    font-size: 16px;
    line-height: 140%;
}
.payment_area .class_inform .payment_img {
    width: 100%;
    height: 100%;
    aspect-ratio : 16/9;
}
.payment_area .class_inform img {
    width: 100%;
    height: 100%;
    flex-shrink: 0;
    object-fit: cover;
    border-radius: 4px;
    overflow: hidden;
}
.payment_area .class_inform .desc_txt {
    width: 70%;
}
.payment_area .class_inform .desc_txt h2 {
    font-weight: 600;
    font-size: 18px;
    line-height: 140%;
    margin-bottom: 8px;
}
.payment_area .class_inform .desc_txt .type_list {
    margin-bottom: 8px;
}
.payment_area .class_inform .desc_txt .sub {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}
.payment_area .class_inform .desc_txt .sub p {
    color: #767676;
    font-weight: 500;
    font-size: 14px;
    line-height: 140%;
    display: flex;
    align-items: center;
    gap: 8px;
}
.payment_area .class_inform .desc_txt .sub p:not(:last-child)::after {
    content: "";
    width: 1px;
    height: 16px;
    background: #e5e5ec;
}
.payment_area .period_box {
    background: #f7f7fb;
    border-radius: 4px;
    padding: 12px 16px;
    width: 100%;
}
.payment_area .period_box.mt12 {
    margin-top: 12px;
}
.payment_area .period_box.mt12 h3 {
    align-items: flex-start;
}
.payment_area .period_box h3 {
    display: flex;
    gap: 6px;
    align-items: center;
    font-weight: 600;
    font-size: 14px;
}
.payment_area .inform_area .point_box {
    display: flex;
    align-items: center;
    gap: 20px;
    background: #f7f7fb;
    padding: 12px 16px;
    height: 56px;
    border-radius: 4px;
    margin-bottom: 12px;
}
.payment_area .inform_area .point_box p {
    color: #111111;
    font-weight: 600;
    font-size: 16px;
}
.payment_area .inform_area .point_box h4 {
    color: #111111;
    font-weight: 600;
    font-size: 18px;
}
.payment_area .inform_area .ip_box {
    position: relative;
    width: 100%;
}
.payment_area .inform_area .ip_box input {
    height: 48px;
    width: 100%;
    font-size: 16px;
    font-weight: 600;
}
.payment_area .inform_area .ip_box .btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 4px;
}
.payment_area .custom_area {
    max-width: 440px;
    width: 100%;
    border: 1px solid #e5e5ec;
    height: fit-content;
    border-radius: 4px;
    box-shadow: 6px 6px 20px 0 #0000000a;
}
.payment_area .custom_area .customer_inform {
    padding: 24px;
}
.payment_area .custom_area .customer_inform h1 {
    margin-bottom: 16px;
    font-weight: 700;
    font-size: 20px;
    line-height: 140%;
}
.payment_area .custom_area .customer_inform .customer_list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.payment_area .custom_area .customer_inform .customer_list li {
    display: flex;
    gap: 16px;
    align-items: center;
}
.payment_area .custom_area .customer_inform .customer_list li p {
    color: #505050;
    font-size: 16px;
    line-height: 140%;
}
.payment_area .custom_area .customer_inform .customer_list li .w72 {
    width: 72px;
}
.program_success_area {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0;
}
.program_registration_inner {
    padding: 30px 0;
    max-width: 480px;
    width: 100%;
    margin: 0 auto;
}
.program_registration_inner .join_success_img {
    width: 56px;
    height: 56px;
    margin: 0 auto 20px;
}
.program_registration_inner .join_success_img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.program_registration_inner .title {
    font-weight: 700;
    font-size: 28px;
    line-height: 140%;
    text-align: center;
}
.program_registration_inner .sub_desc {
    margin-top: 16px;
    color: #767676;
    font-weight: 500;
    font-size: 16px;
    line-height: 140%;
    text-align: center;
    margin-bottom: 32px;
}
.program_registration_inner a {
    margin-top: 15px;
}

.program_success_inner {
    padding: 10px 0 20px;
    max-width: 480px;
    width: 100%;
    margin: 0 auto;
}
.program_success_inner > div {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 14px 0;
}
.program_success_inner > div + div {
    border-top: 1px solid #f0f1f3;
}
.program_success_inner > div p {
    margin: 0;
    font-size: 16px;
    color: #8b8f99;
    flex-shrink: 0;
}
.program_success_inner > div span {
    font-size: 14px;
    color: #1a1c20;
    text-align: right;
}
.program_success_inner > div span.product_name {
    font-size: 16px;
    font-weight: 700;
    color: #111318;
    min-width: 0;
    max-width: 70%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.program_success_inner > div:last-child span {
    font-size: 16px;
    font-weight: 700;
    color: #003CFF;
}


.price-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid #e5e5ec;
    border-bottom: 1px solid #e5e5ec;
    overflow: hidden;
    background: #fff;
}
.price-summary.four_grid {
    grid-template-columns: repeat(4, 1fr);
}
.price-summary .cell {
    position: relative;
    text-align: center;
    padding: 0 24px;
    height: 80px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.price-summary .cell + .cell {
    border-left: 1px solid #e5e5ec;
}

.price-summary .label {
    font-size: 14px;
    color: #111111;
    font-weight: 500;
    margin-bottom: 3px;
}

.price-summary .value {
    font-size: 16px;
    font-weight: 700;
}

.price-summary .label.total,
.price-summary .value.total {
    color: #159bff;
}

.price-summary .op-minus::after,
.price-summary .op-equals::after {
    z-index: 1;
    content: "";
    position: absolute;
    top: 50%;
    right: -1px;
    transform: translate(50%, -50%);
    width: 20px;
    height: 20px;
    content: "";
    border-radius: 50%;
}
.price-summary .op-minus::after {
    background: url(../_img/icon/icon_minus.svg) no-repeat center center / contain;
}
.price-summary .op-equals::after {
    background: url(../_img/icon/icon_equals.svg) no-repeat center center / contain;
}

.payment_area .refund-box {
    padding: 16px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.payment_area .refund-box .check-A {
    display: flex;
    gap: 8px;
    align-items: center;
}
.payment_area .refund-box .check-A h6 {
    font-weight: 400;
    font-size: 16px;
}
.payment_area .refund-box .check-A h6 b {
    font-weight: 600;
    color: #159bff;
}
.payment_area .refund-box .refund_blue {
    background: #f7f7fb;
    border-radius: 4px;
    padding: 16px;
}
.payment_area .refund-box .refund_blue h4 {
    margin-bottom: 12px;
    font-weight: 500;
    font-size: 15px;
    line-height: 150%;
}
.payment_area .refund-box .refund_blue .refund_list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.payment_area .refund-box .refund_blue .refund_list li {
    color: #111111;
    font-weight: 400;
    font-size: 14px;
    line-height: 150%;
}
.payment_area .refund-box .refund_blue hr.gray_line {
    margin: 8px 0;
}

/* 결제하기 반응형 */
@media screen and (max-width: 1000px) {
    .payment_area {
        flex-direction: column;
    }
    .payment_area .custom_area {
        max-width: 100%;
    }
    .payment_area .inform_area {
        max-width: 100%;
    }
}
@media screen and (max-width: 768px) {
    .payment_title {
        font-size: 24px;
        padding-bottom: 20px;
    }
    .payment_area .sub_title {
        font-size: 18px;
        margin-bottom: 16px;
    }
    .payment_area .pay_list {
        flex-direction: column;
        gap: 8px;
    }
    .payment_area .class_inform.pc {
        flex-direction: column;
    }
    /* .payment_area .class_inform.mo {
        display: flex;
        flex-direction: column;
    } */
    .payment_area .class_inform .inform_desc {
        display: flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 12px;
    }
    .payment_area .class_inform img {
        width: 100%;
        height: 100%;
    }
    .payment_area .class_inform .inform_desc h2 {
        font-weight: 600;
        font-size: 16px;
        line-height: 140%;
    }
    .payment_area .class_inform .desc_txt .sub {
        flex-direction: column;
        align-items: flex-start;
    }
    .payment_area .class_inform .desc_txt .sub p,
    .payment_area .class_inform .desc_txt .period_box h3 {
        font-size: 13px;
    }
    .payment_area .class_inform .desc_txt .period_box {
        padding: 12px 8px;
    }
    .payment_area .inform_area {
        gap: 32px;
    }
    .payment_area .inform_area .point_box {
        margin-bottom: 16px;
    }
    .payment_area .inform_area .point_box p {
        font-size: 14px;
    }
    .payment_area .inform_area .point_box h4 {
        font-size: 16px;
    }
    .payment_area .custom_area .customer_inform,
    .payment_area .refund-box {
        padding: 16px;
    }
    .payment_area .custom_area .customer_inform h1 {
        font-size: 18px;
        margin-bottom: 12px;
    }
    .payment_area .custom_area .customer_inform .customer_list li p,
    .price-summary .value,
    .payment_area .refund-box .check-A h6 {
        font-size: 14px;
    }
    .price-summary .cell {
        padding: 0;
    }
    .price-summary .label,
    .payment_area .refund-box .refund_blue .refund_list li {
        font-size: 13px;
    }
    .payment_area .refund-box .refund_blue h4 {
        font-size: 14px;
        margin-bottom: 8px;
    }
    .payment_area .class_inform .desc_txt {
        width: 100%;
    }
}
/* ============================================================
    결제하기
============================================================ */



/* ============================================================
    통합검색
============================================================ */
.total_list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 10px;
    row-gap: 25px;
}
.total_list li a {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.total_list .txt_box {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.total_list .txt_top {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
}
.total_list .category {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #666;
    font-weight: 600;
    font-size: 14px;
}
.total_list .keywords {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    min-width: 0;
}
.total_list .keyword {
    font-size: 12px;
    font-weight: 600;
    line-height: 140%;
    color: #555;
    padding: 6px 8px;
    border-radius: 4px;
    background: #f5f5f5;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: break-all;
    white-space: normal;
}
.total_list h3 {
    font-weight: 600;
    font-size: 16px;
    line-height: 160%;
    height: calc(16px * 1.6 * 2); 
    text-overflow: ellipsis;
    overflow: hidden;
    word-break: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.total_list .txt_bott {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.total_list .txt_bott p {
    font-size: 14px;
    color: #555;
    font-weight: 500;
}
.total_list .txt_bott .price {
    font-size: 14px;
    color: #121212;
    font-weight: 600;
}

/* 통합검색 반응형 */
@media screen and (max-width: 768px) {
    .total_list {
        grid-template-columns: repeat(2, 1fr);
    }
    .total_list .txt_top {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .total_list h3 {
        font-size: 14px;
        height: calc(14px * 1.6 * 2);
    }
}
/* ============================================================
    /통합검색
============================================================ */