@charset "utf-8";

/* CODEX UP 쇼핑몰 메인 전용 스타일 */

body {
    background: var(--kr-bg);
    color: var(--kr-text);
}

/* 상단 */
#hd {
    background: var(--kr-surface);
    border-bottom: 1px solid var(--kr-line);
}

#tnb {
    height: 36px;
    border-color: var(--kr-line);
    background: var(--kr-surface-2);
}

#tnb .inner {
    height: 36px;
}

#hd_define li,
#hd_qnb li {
    margin: 0 11px 0 0;
    padding: 0 11px 0 0;
    border-color: var(--kr-line);
    font-size: 11px;
    line-height: 36px;
}

#hd_define li a,
#hd_qnb li a {
    color: var(--kr-muted);
}

#hd_define li.active a,
#hd_qnb li a:hover {
    color: var(--kr-text);
}

#hd_wrapper {
    display: flex;
    width: min(var(--kr-max), calc(100% - 32px));
    height: 86px;
    align-items: center;
    gap: 42px;
}

#logo {
    float: none;
    width: 150px;
    padding: 0;
}

#logo a {
    position: relative;
    display: block;
    min-height: 40px;
}

#logo img {
    display: none;
}

#logo a::before {
    content: "CODEX UP";
    display: block;
    color: var(--kr-text);
    font-size: 20px;
    font-weight: 800;
    line-height: 24px;
    letter-spacing: -.045em;
}

#logo a::after {
    content: "쇼핑몰";
    display: block;
    margin-top: 2px;
    color: var(--kr-muted);
    font-size: 10px;
    line-height: 14px;
    letter-spacing: .08em;
}

.hd_sch_wr {
    float: none;
    flex: 1 1 auto;
    width: auto;
    max-width: 470px;
    margin: 0 auto;
    padding: 0;
}

#hd_sch {
    display: flex;
    height: 40px;
    overflow: hidden;
    border: 1px solid var(--kr-line-strong);
    border-radius: 7px;
    background: var(--kr-surface);
}

#hd_sch form {
    display: flex;
    width: 100%;
}

#hd_sch #sch_str {
    float: none;
    flex: 1 1 auto;
    width: auto;
    height: 38px;
    padding: 0 13px;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--kr-text) !important;
    font-size: 12px;
    box-shadow: none !important;
}

#hd_sch #sch_submit {
    float: none;
    width: 44px;
    height: 38px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--kr-muted);
    font-size: 13px;
}

#hd_sch #sch_submit:hover {
    color: var(--kr-primary);
}

.hd_login {
    position: static;
    display: flex;
    flex: none;
    align-items: center;
    gap: 5px;
    justify-self: end;
}

.hd_login > li {
    float: none;
    margin: 0;
}

.hd_login > li.login a,
.hd_login > li > a {
    display: inline-flex;
    min-width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    padding: 0 11px;
    border: 1px solid var(--kr-line) !important;
    border-radius: 6px;
    background: var(--kr-surface);
    color: var(--kr-muted);
    font-size: 12px;
}

.hd_login .kr_theme_toggle {
    display: inline-grid;
    width: 34px;
    height: 34px;
    place-items: center;
    padding: 0;
    border: 1px solid var(--kr-line);
    border-radius: 6px;
    background: var(--kr-surface);
    color: var(--kr-muted);
    font-size: 12px;
}

.hd_login .kr_theme_toggle:hover {
    border-color: var(--kr-primary);
    background: var(--kr-primary-soft);
    color: var(--kr-primary);
}

.hd_login > li.login a:hover,
.hd_login > li > a:hover {
    border-color: var(--kr-primary) !important;
    background: var(--kr-primary-soft);
    color: var(--kr-primary);
}

.hd_login > li.shop_login {
    position: relative;
    margin-top: 0;
}

.shop_login .btn_member_mn {
    display: inline-flex;
    min-width: 0;
    max-width: 210px;
    height: 38px;
    align-items: center;
    gap: 8px;
    padding: 0 11px 0 6px;
    border: 1px solid var(--kr-line) !important;
    border-radius: 7px;
    background: var(--kr-surface);
    color: var(--kr-text);
    text-align: left;
    cursor: pointer;
}

.shop_login .btn_member_mn:hover,
.shop_login .btn_member_mn:focus-visible,
.shop_login .btn_member_mn.btn_member_mn_on {
    border-color: var(--kr-primary) !important;
    background: var(--kr-primary-soft);
    color: var(--kr-primary);
    outline: 0;
}

.shop_login .btn_member_mn .profile_img,
.shop_login #shop_member_menu .profile_img {
    display: inline-flex;
    flex: 0 0 auto;
    margin: 0;
}

.shop_login .btn_member_mn .profile_img img {
    width: 28px;
    height: 28px;
    border: 1px solid var(--kr-line);
    border-radius: 50%;
    background: var(--kr-surface-2);
    object-fit: cover;
}

.shop_login .btn_member_mn .profile_identity {
    display: inline-flex;
    min-width: 0;
    align-items: center;
}

.shop_login .btn_member_mn .profile_name {
    display: block;
    max-width: 92px;
    overflow: hidden;
    color: var(--kr-text);
    font-size: 13px;
    font-weight: 700;
    line-height: 20px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop_login .btn_member_mn .profile_name a,
.shop_login .btn_member_mn .profile_suffix {
    color: inherit;
}

.shop_login .btn_member_mn .profile_name * {
    color: inherit !important;
}

.shop_login .btn_member_mn .profile_suffix {
    flex: 0 0 auto;
    margin-left: 2px;
    font-size: 12px;
}

.shop_login .btn_member_mn .member_toggle_icon {
    flex: 0 0 auto;
    margin: 0 0 0 1px;
    color: var(--kr-muted);
    font-size: 13px;
    transition: transform .18s ease;
}

.shop_login .btn_member_mn[aria-expanded="true"] .member_toggle_icon {
    color: var(--kr-primary);
    transform: rotate(180deg);
}

.shop_login #shop_member_menu.member_mn {
    position: absolute;
    z-index: 150;
    top: calc(100% + 9px);
    right: 0;
    left: auto;
    width: 270px;
    overflow: hidden;
    padding: 0;
    border: 1px solid var(--kr-line) !important;
    border-radius: 10px;
    background: var(--kr-surface) !important;
    color: var(--kr-text);
    box-shadow: 0 16px 40px rgba(15, 23, 42, .16);
}

.shop_login #shop_member_menu > h2 {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    margin: -1px;
    padding: 0;
    clip: rect(0, 0, 0, 0);
}

.shop_login #shop_member_menu .member_mn_head {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 16px;
    border-bottom: 1px solid var(--kr-line);
    background: var(--kr-surface-2);
}

.shop_login #shop_member_menu .member_mn_head .profile_img img {
    display: block;
    width: 42px;
    height: 42px;
    border: 1px solid var(--kr-line);
    border-radius: 50%;
    background: var(--kr-surface);
    object-fit: cover;
}

.shop_login #shop_member_menu .member_mn_head > div {
    min-width: 0;
}

.shop_login #shop_member_menu .member_mn_head strong,
.shop_login #shop_member_menu .member_mn_head strong a {
    display: block;
    overflow: hidden;
    color: var(--kr-text);
    font-size: 14px;
    line-height: 21px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop_login #shop_member_menu .member_mn_head strong * {
    color: inherit !important;
}

.shop_login #shop_member_menu .member_mn_head > div > span {
    display: block;
    margin-top: 2px;
    color: var(--kr-muted);
    font-size: 11px;
    line-height: 16px;
}

.shop_login #shop_member_menu #ol_after_private {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin: 0;
    padding: 12px !important;
    list-style: none;
    text-align: left;
}

.shop_login #shop_member_menu #ol_after_private li {
    float: none;
    min-width: 0;
    margin: 0;
    background: transparent !important;
}

.shop_login #shop_member_menu #ol_after_private a {
    display: flex;
    min-height: 42px;
    align-items: center;
    gap: 8px;
    padding: 0 10px !important;
    border: 1px solid transparent;
    border-radius: 7px;
    background: transparent !important;
    color: var(--kr-text) !important;
    font-size: 12px;
    line-height: 18px !important;
}

.shop_login #shop_member_menu #ol_after_private a:hover,
.shop_login #shop_member_menu #ol_after_private a:focus-visible {
    border-color: var(--kr-line);
    background: var(--kr-surface-2) !important;
    color: var(--kr-primary) !important;
    outline: 0;
}

.shop_login #shop_member_menu #ol_after_private a > i {
    flex: 0 0 auto;
    width: 16px !important;
    margin: 0 !important;
    color: var(--kr-muted) !important;
    text-align: center;
}

.shop_login #shop_member_menu #ol_after_private a:hover > i,
.shop_login #shop_member_menu #ol_after_private a:focus-visible > i {
    color: var(--kr-primary) !important;
}

.shop_login #shop_member_menu #ol_after_private a > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop_login #shop_member_menu #ol_after_private a strong {
    flex: 0 0 auto;
    float: none;
    min-width: 18px;
    margin-left: auto;
    padding: 0 5px !important;
    border-radius: 9px;
    background: var(--kr-primary-soft) !important;
    color: var(--kr-primary) !important;
    font-size: 10px !important;
    font-weight: 700;
    line-height: 18px;
    text-align: center;
}

.shop_login #shop_member_menu #ol_after_ft {
    padding: 0 12px 12px;
}

.shop_login #shop_member_menu #ol_after_logout {
    display: flex;
    height: 38px;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0 !important;
    border: 1px solid var(--kr-line) !important;
    border-radius: 7px;
    background: var(--kr-surface-2);
    color: var(--kr-muted) !important;
    font-size: 11px;
    line-height: 36px;
}

.shop_login #shop_member_menu #ol_after_logout:hover,
.shop_login #shop_member_menu #ol_after_logout:focus-visible {
    border-color: var(--kr-primary) !important;
    background: var(--kr-primary-soft);
    color: var(--kr-primary) !important;
    outline: 0;
}

html[data-theme="dark"] .shop_login #shop_member_menu.member_mn {
    box-shadow: 0 18px 44px rgba(0, 0, 0, .45);
}

.hd_login .fa-shopping-cart {
    font-size: 14px;
}

.hd_login .count {
    top: -6px;
    right: -7px;
    height: 16px;
    min-width: 16px;
    padding: 0 4px;
    background: var(--kr-primary);
    font-size: 9px;
    line-height: 16px;
}

#hd_menu {
    display: flex;
    width: min(var(--kr-max), calc(100% - 32px));
    height: 48px;
    border-top: 1px solid var(--kr-line);
    background: var(--kr-surface);
}

#hd_menu button#menu_open {
    float: none;
    width: 205px;
    height: 47px;
    padding: 0 16px;
    border-right: 1px solid var(--kr-line);
    background: transparent;
    color: var(--kr-text);
    font-size: 12px;
    font-weight: 650;
}

#hd_menu button#menu_open i {
    margin-right: 8px;
    color: var(--kr-muted);
}

.hd_menu {
    display: flex;
    float: none;
    flex: 1 1 auto;
    width: auto;
    font-size: 12px;
}

.hd_menu li {
    float: none;
    flex: 1 1 20%;
    padding: 0;
    line-height: 47px;
}

.hd_menu li a {
    border: 0;
    color: var(--kr-muted);
}

.hd_menu li a:hover {
    color: var(--kr-primary);
}

#category {
    top: 48px;
    border-color: var(--kr-line);
    border-radius: 0 0 8px 8px;
    background: var(--kr-surface);
    box-shadow: 0 16px 35px rgba(16, 24, 40, .12);
}

#category h2,
#category .cate_li_1 {
    border-color: var(--kr-line);
}

#category .cate_li_1_a {
    color: var(--kr-text);
    font-size: 13px;
}

#category .cate_li_2 a,
#category .no-cate {
    color: var(--kr-muted);
}

#category .close_btn {
    background: transparent;
    color: var(--kr-muted);
}

/* 메인 배치 */
#wrapper {
    background: var(--kr-bg);
}

#container {
    display: grid;
    grid-template-columns: 205px minmax(0, 1fr);
    gap: 18px;
    width: min(var(--kr-max), calc(100% - 32px));
    min-height: 620px;
    padding: 24px 0 64px;
}

#aside {
    position: static;
    width: auto;
    margin: 0;
}

#container .shop-content.is_index {
    min-width: 0;
    margin-left: 0;
    padding: 0;
}

#gnb,
#side_pd,
#aside > #poll,
#aside > #sbn_side {
    overflow: hidden;
    margin: 0 0 12px;
    border: 1px solid var(--kr-line);
    border-radius: var(--kr-radius);
    background: var(--kr-surface);
}

#gnb {
    min-height: 52px;
    border-top: 1px solid var(--kr-line);
}

#gnb #gnb_1dul:not(:has(.gnb_1dli))::before {
    content: "등록된 카테고리가 없습니다.";
    display: block;
    padding: 17px 15px;
    color: var(--kr-muted);
    font-size: 11px;
}

.gnb_1da {
    padding: 0 15px;
    color: var(--kr-text);
    font-size: 12px;
    line-height: 42px;
}

.gnb_1da i {
    padding: 12px 14px;
    color: var(--kr-muted);
    font-size: 13px;
}

.gnb_1dli_on .gnb_1da {
    background: var(--kr-surface-2);
    color: var(--kr-primary);
}

.gnb_1dli_on .gnb_1da::after {
    background: var(--kr-primary);
}

.gnb_1dli_over .gnb_2dul,
.gnb_1dli_over2 .gnb_2dul {
    left: 203px;
    border-color: var(--kr-line);
    background: var(--kr-surface);
}

#side_pd h2 {
    padding: 13px 14px;
    border-color: var(--kr-line);
    color: var(--kr-text);
    font-size: 12px;
}

#side_pd .bx-wrapper {
    height: auto;
    min-height: 128px;
    padding: 0;
}

#side_pd .sct_noitem {
    min-height: 128px;
    border: 0;
}

.shop_main_intro {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
    min-height: 214px;
    margin: 0 0 30px;
    overflow: hidden;
    border: 1px solid var(--kr-line);
    border-radius: 10px;
    background: var(--kr-surface);
}

.shop_main_intro_text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 36px 40px;
}

.shop_main_kicker {
    margin-bottom: 12px;
    color: var(--kr-primary);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .12em;
}

.shop_main_intro h2 {
    margin: 0;
    color: var(--kr-text);
    font-size: 24px;
    line-height: 1.35;
    letter-spacing: -.04em;
}

.shop_main_intro p {
    margin: 9px 0 0;
    color: var(--kr-muted);
    font-size: 12px;
}

.shop_main_shortcuts {
    display: grid;
    grid-template-rows: repeat(2, 1fr);
    border-left: 1px solid var(--kr-line);
    background: var(--kr-surface-2);
}

.shop_main_shortcuts a {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px 48px 20px 24px;
    color: var(--kr-text);
}

.shop_main_shortcuts a + a {
    border-top: 1px solid var(--kr-line);
}

.shop_main_shortcuts a:hover {
    background: var(--kr-primary-soft);
}

.shop_main_shortcuts span {
    color: var(--kr-muted);
    font-size: 10px;
}

.shop_main_shortcuts strong {
    margin-top: 3px;
    font-size: 13px;
}

.shop_main_shortcuts i {
    position: absolute;
    right: 22px;
    color: var(--kr-muted);
    font-size: 11px;
}

#main_bn {
    overflow: hidden;
    margin: 0 0 30px;
    border-color: var(--kr-line);
    border-radius: 10px;
    background: var(--kr-surface);
}

#main_bn .owl_pager {
    border-color: var(--kr-line);
    background: var(--kr-surface);
}

#main_bn .owl_pager li {
    height: 40px;
    border-color: var(--kr-line);
    color: var(--kr-muted);
    font-size: 11px;
    line-height: 40px;
}

#main_bn .owl_pager li.active a {
    color: var(--kr-primary);
}

/* 상품 섹션 */
.sct_wrap {
    margin: 0 0 34px;
}

.sct_wrap header {
    display: flex;
    min-height: 52px;
    align-items: flex-start;
    justify-content: space-between;
    padding: 0 2px 12px;
    border-bottom: 1px solid var(--kr-line-strong);
}

.sct_wrap header > div {
    min-width: 0;
}

.sct_wrap h2 {
    float: none;
    margin: 0;
    color: var(--kr-text);
    font-size: 16px;
    line-height: 22px;
}

.sct_wrap h2 a {
    color: inherit;
}

.sct_wrap header p {
    margin: 3px 0 0;
    color: var(--kr-muted);
    font-size: 10px;
    line-height: 16px;
}

.shop_section_more {
    display: inline-flex;
    height: 28px;
    align-items: center;
    gap: 5px;
    padding: 0 9px;
    border: 1px solid var(--kr-line);
    border-radius: 5px;
    color: var(--kr-muted);
    font-size: 10px;
}

.shop_section_more:hover {
    border-color: var(--kr-primary);
    background: var(--kr-primary-soft);
    color: var(--kr-primary);
}

.sct_noitem {
    display: grid;
    min-height: 124px;
    margin: 12px 0 0;
    place-items: center;
    padding: 24px;
    border: 1px dashed var(--kr-line-strong);
    border-radius: var(--kr-radius);
    background: var(--kr-surface);
    color: var(--kr-muted);
    font-size: 11px;
}

.sct_noitem::before {
    content: "\f06b";
    display: block;
    margin-bottom: -32px;
    color: var(--kr-line-strong);
    font-family: FontAwesome;
    font-size: 16px;
}

.smt_10,
.smt_20,
.smt_30,
.smt_40 {
    margin-top: 14px;
}

.smt_10,
.smt_20 {
    margin-right: -7px;
    margin-left: -7px;
}

.smt_10 .sct_li,
.smt_20 .sct_li,
.smt_40 .sct_li {
    margin: 0 0 24px;
    padding: 0 7px;
}

.smt_10 .sct_img,
.smt_20 .sct_img,
.smt_40 .sct_img {
    overflow: hidden;
    border-radius: 7px;
    background: var(--kr-surface-2);
}

.smt_10 .sct_img img,
.smt_20 .sct_img img,
.smt_40 .sct_img img {
    width: 100%;
    height: auto;
    transition: transform .2s ease;
}

.smt_10 .sct_img:hover img,
.smt_20 .sct_img:hover img,
.smt_40 .sct_img:hover img {
    transform: scale(1.02);
}

.smt_10 .sct_txt,
.smt_20 .sct_txt,
.smt_40 .sct_txt {
    margin: 10px 0 5px;
    padding: 0;
    border: 0;
    color: var(--kr-text);
    font-size: 12px;
    line-height: 18px;
}

.smt_10 .sct_basic,
.smt_20 .sct_basic,
.smt_40 .sct_basic {
    color: var(--kr-muted);
    font-size: 10px;
}

.smt_10 .sct_cost,
.smt_20 .sct_cost,
.smt_30 .sct_cost,
.smt_40 .sct_cost {
    color: var(--kr-text);
    font-size: 13px;
}

.smt_30 li {
    border-bottom: 1px solid var(--kr-line);
    background: var(--kr-surface);
}

.smt_30 .sct_txt a {
    color: var(--kr-text);
    font-size: 11px;
}

.smt_40 {
    padding: 14px;
    border-color: var(--kr-line);
    border-radius: var(--kr-radius);
    background: var(--kr-surface);
}

.sctrl {
    display: none;
}

.shop_icon {
    border-radius: 4px;
    font-size: 9px;
    line-height: 18px;
}

/* 빠른 메뉴 */
#side_menu {
    position: fixed !important;
    top: 50% !important;
    right: max(0px, calc((100% - var(--kr-max)) / 2 - 64px)) !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 120;
    width: 52px;
    height: auto;
    margin: 0 !important;
    padding: 0;
    border: 1px solid var(--kr-line);
    border-radius: 9px;
    background: var(--kr-surface);
    box-shadow: 0 8px 24px rgba(16, 24, 40, .08);
    transform: translate3d(0, -50%, 0);
}

#quick {
    position: static;
    width: auto;
    margin: 0;
}

#quick li + li {
    border-top: 1px solid var(--kr-line);
}

#quick li button,
#quick li > a {
    display: grid;
    place-items: center;
    width: 51px;
    height: 48px;
    background: transparent;
    color: var(--kr-muted);
    font-size: 17px;
    text-decoration: none;
}

#quick li button:hover,
#quick li > a:hover,
#quick li button.btn_sm_on {
    background: var(--kr-primary-soft);
    color: var(--kr-primary);
}

#quick li button.btn_sm_on .qk_tit {
    display: none;
}

#quick .qk_tit {
    top: 9px;
    right: 62px;
    border-radius: 5px;
    background: var(--kr-text);
    color: var(--kr-surface);
    font-size: 10px;
}

#quick .qk_tit::after {
    border-left-color: var(--kr-text);
}

#side_menu #top_btn {
    position: static;
    display: block;
    width: 51px;
    height: 48px;
    margin: 0;
    padding: 0;
    border: 0;
    border-top: 1px solid var(--kr-line);
    border-radius: 0 0 8px 8px;
    color: var(--kr-muted);
    font-size: 17px;
    line-height: 47px;
}

#side_menu #top_btn:hover {
    background: var(--kr-primary-soft);
    color: var(--kr-primary);
}

#tabs_con {
    height: auto;
}

.qk_con {
    position: fixed;
    top: 50%;
    right: max(64px, calc((100% - var(--kr-max)) / 2));
    width: 320px !important;
    height: auto !important;
    max-height: min(560px, calc(100vh - 32px));
    overflow: hidden !important;
    border: 1px solid var(--kr-line);
    border-radius: 12px;
    background: var(--kr-surface);
    color: var(--kr-text);
    box-shadow: 0 18px 48px rgba(16, 24, 40, .16);
    transform: translateY(-50%);
}

.qk_con_wr {
    position: relative;
    height: auto;
    max-height: min(558px, calc(100vh - 34px));
    overflow-x: hidden;
    overflow-y: auto;
    border-color: var(--kr-line);
    background: var(--kr-surface);
    color: var(--kr-text);
}

.qk_con h2.s_h2 {
    min-height: 58px;
    margin: 0;
    padding: 17px 58px 16px 20px;
    border-bottom: 1px solid var(--kr-line);
    background: var(--kr-surface);
    color: var(--kr-text);
    font-size: 16px;
    line-height: 24px;
}

.qk_con h2.s_h2 span {
    min-width: 24px;
    margin-left: 5px;
    padding: 1px 7px;
    background: var(--kr-primary-soft);
    color: var(--kr-primary);
    font-size: 12px;
    line-height: 20px;
}

.qk_con_wr .con_close {
    position: absolute;
    top: 11px;
    right: 11px;
    z-index: 2;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--kr-muted);
    font-size: 20px;
    line-height: 36px;
}

.qk_con_wr .con_close:hover {
    background: var(--kr-surface-2);
    color: var(--kr-text);
}

.qk_con_wr .side_tnb {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 16px 20px 20px;
    border-top: 1px solid var(--kr-line);
}

.qk_con_wr .side_tnb li a {
    display: block;
    padding: 9px 10px;
    border: 1px solid var(--kr-line);
    border-radius: 7px;
    color: var(--kr-text);
    font-size: 13px;
    line-height: 20px;
    text-align: center;
}

.qk_con_wr .side_tnb li a:hover {
    border-color: var(--kr-primary);
    background: var(--kr-primary-soft);
    color: var(--kr-primary);
}

/* 빠른 메뉴 로그인 */
#side_menu .s_ol {
    border-bottom: 0;
}

#side_menu .s_ol #s_ol_be_cate {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-bottom: 1px solid var(--kr-line);
}

#side_menu .s_ol h2,
#side_menu .s_ol .join {
    float: none;
    width: auto;
    padding: 17px 20px;
    background: var(--kr-surface);
    color: var(--kr-text);
    font-size: 16px;
    line-height: 24px;
    text-align: left;
}

#side_menu .s_ol .join {
    padding-right: 58px;
    color: var(--kr-primary);
    font-size: 13px;
    text-align: right;
}

#side_menu .s_ol form {
    padding: 20px;
}

#side_menu #ol_id,
#side_menu #ol_pw,
#side_menu #ol_submit {
    height: 42px;
    border-color: var(--kr-line);
    border-radius: 7px;
    font-size: 14px;
}

#side_menu #ol_id,
#side_menu #ol_pw {
    background: var(--kr-surface);
    color: var(--kr-text);
}

#side_menu #ol_submit {
    border: 0;
    background: var(--kr-primary);
}

#side_menu #ol_auto,
#side_menu #ol_svc {
    font-size: 12px;
}

#side_menu #ol_auto label {
    color: var(--kr-muted);
}

#side_menu #ol_svc a {
    border-color: var(--kr-line);
    background: var(--kr-surface);
}

/* 빠른 메뉴 회원정보 */
#side_menu #s_ol_after {
    border-bottom: 0;
    background: var(--kr-surface);
}

#side_menu #s_ol_after_hd {
    min-height: 100px;
    height: auto;
    padding: 18px 56px 17px 84px;
    border-bottom: 1px solid var(--kr-line);
}

#side_menu #s_ol_after_hd .profile_img {
    top: 20px;
    left: 20px;
}

#side_menu #s_ol_after_hd .profile_img img {
    width: 48px;
    height: 48px;
    border: 1px solid var(--kr-line);
}

#side_menu #s_ol_after_hd strong {
    overflow: hidden;
    margin: 0 0 9px;
    color: var(--kr-text);
    font-size: 15px;
    line-height: 22px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#side_menu #s_ol_after_info,
#side_menu #s_ol_after_logout {
    height: 28px;
    padding: 3px 7px;
    border-color: var(--kr-line);
    background: var(--kr-surface);
    color: var(--kr-muted);
    font-size: 12px;
    line-height: 20px;
}

#side_menu #s_ol_after_info:hover,
#side_menu #s_ol_after_logout:hover {
    border-color: var(--kr-primary);
    color: var(--kr-primary);
}

#side_menu #s_ol_after_private {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 12px;
}

#side_menu #s_ol_after_private a {
    padding: 11px 12px;
    border-radius: 7px;
    background: var(--kr-surface);
    color: var(--kr-text);
    font-size: 13px;
    line-height: 20px;
}

#side_menu #s_ol_after_private a:hover {
    background: var(--kr-primary-soft);
    color: var(--kr-primary);
}

#side_menu #s_ol_after_private li a:hover::after {
    display: none;
}

#side_menu #s_ol_after_private li i {
    width: 20px;
    margin-right: 3px;
    color: var(--kr-muted);
}

#side_menu #s_ol_after_private a strong {
    float: right;
    padding: 0;
    background: transparent;
    color: var(--kr-primary);
}

/* 빠른 메뉴 상품 목록 */
#side_menu #stv,
#side_menu #sbsk,
#side_menu #wish {
    height: auto;
    background: var(--kr-surface);
}

#side_menu .stv_item,
#side_menu #sbsk li,
#side_menu #wish li {
    min-height: 96px;
    padding: 15px 20px;
    border-bottom: 1px solid var(--kr-line);
}

#side_menu .prd_img {
    margin-right: 12px;
}

#side_menu .prd_img img {
    border-radius: 7px;
}

#side_menu .prd_cnt .prd_name,
#side_menu .prd_cnt .prd_cost,
#side_menu .prd_cnt .prd_price {
    max-width: 175px;
    color: var(--kr-text);
    font-size: 13px;
    line-height: 20px;
}

#side_menu .prd_cnt .prd_cost,
#side_menu .prd_cnt .prd_price {
    margin-top: 4px;
    font-weight: 700;
}

#side_menu .li_empty {
    padding: 44px 20px;
    color: var(--kr-muted);
    font-size: 14px;
    line-height: 22px !important;
    text-align: center;
}

#side_menu #stv_pg {
    position: static;
    width: auto;
    margin: 0;
    padding: 12px 20px;
    border-top: 1px solid var(--kr-line);
    background: var(--kr-surface);
    color: var(--kr-muted);
}

#side_menu #stv_btn {
    top: 14px;
    right: 56px;
}

#side_menu #sbsk .go_cart {
    top: 14px;
    right: 56px;
    height: 30px;
    padding: 4px 9px;
    border-color: var(--kr-line);
    border-radius: 6px;
    background: var(--kr-surface);
    font-size: 12px;
    line-height: 20px;
}

#side_menu #sbsk .cart_del {
    right: 10px;
    bottom: 10px;
    border-radius: 5px;
    background: transparent;
}

#side_menu #sbsk .btn_buy {
    padding: 16px 20px;
}

#side_menu #sbsk .btn_buy .btn_submit {
    height: 42px;
    border-radius: 7px;
}

/* 하단 */
#ft {
    border-top: 1px solid var(--kr-line);
    background: var(--kr-surface);
    color: var(--kr-muted);
    text-align: left;
}

#ft_wr {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr) 240px 150px;
    gap: 28px;
    width: min(var(--kr-max), calc(100% - 32px));
    max-width: none;
    margin: 0 auto;
    padding: 30px 0;
}

#ft_wr .ft_cnt {
    float: none;
    width: auto;
    padding: 0;
}

#ft_link a {
    color: var(--kr-muted);
    font-size: 11px;
    font-weight: 500;
    line-height: 25px;
}

#ft_link {
    display: block;
}

#ft_link a:hover {
    color: var(--kr-text);
}

#ft_company,
#ft_company h2 {
    color: var(--kr-muted);
}

#ft_company h2 {
    margin: 0 0 8px;
    color: var(--kr-text);
    font-size: 12px;
}

#ft_company {
    font-size: 10px;
    line-height: 19px;
}

#ft_company .ft_info span {
    display: inline;
    margin-right: 8px;
}

#ft_company b {
    color: var(--kr-text);
    font-weight: 550;
}

#sidx_lat,
#visit {
    min-width: 0;
    color: var(--kr-muted);
    font-size: 10px;
}

#ft_copy {
    width: min(var(--kr-max), calc(100% - 32px));
    margin: 0 auto;
    padding: 14px 0 20px;
    border-color: var(--kr-line);
    color: var(--kr-muted);
    font-size: 10px;
    text-align: left;
}

html[data-theme="dark"] #side_menu,
html[data-theme="dark"] .qk_con {
    box-shadow: none;
}

@media (max-width: 1100px) {
    #hd_wrapper {
        gap: 24px;
    }

    #hd_qnb li:nth-child(-n+2) {
        display: none;
    }

    #container {
        grid-template-columns: 180px minmax(0, 1fr);
    }

    #hd_menu button#menu_open {
        width: 180px;
    }

    .gnb_1dli_over .gnb_2dul,
    .gnb_1dli_over2 .gnb_2dul {
        left: 178px;
    }

    #side_menu {
        display: none;
    }

    #ft_wr {
        grid-template-columns: 160px minmax(0, 1fr) 220px;
    }

    #ft_wr > #visit {
        display: none;
    }
}

@media (max-width: 820px) {
    #tnb {
        display: none;
    }

    #hd_wrapper {
        display: grid;
        grid-template-columns: 1fr auto;
        height: auto;
        gap: 12px;
        padding: 16px 0;
    }

    #logo {
        width: auto;
    }

    .hd_sch_wr {
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        max-width: none;
    }

    #hd_menu {
        width: 100%;
        overflow-x: auto;
        padding: 0 16px;
    }

    #hd_menu button#menu_open {
        flex: 0 0 130px;
        width: 130px;
    }

    .hd_menu {
        flex: 0 0 470px;
    }

    #category {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        max-height: 100vh;
        overflow-y: auto;
        border-radius: 0;
    }

    #category .cate_li_1 {
        width: 50%;
    }

    #container {
        display: block;
        padding-top: 18px;
    }

    #aside {
        display: none;
    }

    .shop_main_intro {
        grid-template-columns: 1fr;
    }

    .shop_main_intro_text {
        padding: 30px 26px;
    }

    .shop_main_shortcuts {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: none;
        border-top: 1px solid var(--kr-line);
        border-left: 0;
    }

    .shop_main_shortcuts a + a {
        border-top: 0;
        border-left: 1px solid var(--kr-line);
    }

    #ft_wr {
        grid-template-columns: 140px minmax(0, 1fr);
    }

    #ft_wr > #sidx_lat,
    #ft_wr > #visit {
        display: none;
    }
}

@media (max-width: 560px) {
    #hd_wrapper,
    #container,
    #ft_wr,
    #ft_copy {
        width: calc(100% - 24px);
    }

    .hd_login > li.login a {
        padding: 0 9px;
    }

    .shop_main_intro {
        min-height: 0;
        margin-bottom: 24px;
    }

    .shop_main_intro_text {
        padding: 27px 21px;
    }

    .shop_main_intro h2 {
        font-size: 20px;
    }

    .shop_main_intro p {
        max-width: 260px;
    }

    .shop_main_shortcuts a {
        padding: 17px 34px 17px 16px;
    }

    .shop_main_shortcuts i {
        right: 14px;
    }

    .sct_wrap {
        margin-bottom: 28px;
    }

    .sct_wrap h2 {
        font-size: 15px;
    }

    #ft_wr {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    #ft_link {
        display: flex;
        flex-wrap: wrap;
        gap: 4px 14px;
    }

    #ft_link a {
        line-height: 20px;
    }
}

/* 정돈된 쇼핑몰 메인 UI */
body {
    font-size: 16px;
    line-height: 1.6;
}

#tnb,
#tnb .inner {
    height: 39px;
}

#hd_define li,
#hd_qnb li {
    font-size: 13px;
    line-height: 39px;
}

#hd_wrapper {
    height: 96px;
}

#logo a::before {
    font-size: 24px;
    line-height: 29px;
}

#logo a::after {
    font-size: 12px;
    line-height: 16px;
}

#hd_sch {
    height: 44px;
}

#hd_sch #sch_str,
#hd_sch #sch_submit {
    height: 42px;
}

#hd_sch #sch_str {
    font-size: 14px;
}

.hd_login > li.login a,
.hd_login > li > a,
.hd_login .kr_theme_toggle {
    height: 38px;
    font-size: 14px;
}

.hd_login .kr_theme_toggle {
    width: 38px;
}

#hd_menu {
    height: 52px;
}

#hd_menu button#menu_open {
    height: 51px;
    font-size: 14px;
}

.hd_menu {
    font-size: 14px;
}

.hd_menu li {
    line-height: 51px;
}

#category {
    top: 52px;
}

#container {
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 24px;
    width: min(var(--kr-max), calc(100% - 32px));
    margin: 0 auto;
    padding-top: 30px;
}

#gnb {
    min-height: 0;
    overflow: visible;
}

#gnb #gnb_1dul {
    display: block;
    height: auto;
    overflow: visible;
    border: 0;
    font-size: 14px;
}

#gnb .gnb_1dli {
    float: none;
    height: 48px;
    border-top: 1px solid var(--kr-line);
    line-height: 48px;
}

#gnb .gnb_1dli:first-child {
    border-top: 0;
}

#gnb .gnb_1da {
    height: 47px;
    padding: 0 17px;
    color: var(--kr-text);
    font-size: 14px;
    font-weight: 650;
    line-height: 47px;
}

#gnb .gnb_1da i {
    top: 0;
    padding: 15px 16px;
    font-size: 13px;
}

.gnb_1dli_over .gnb_2dul,
.gnb_1dli_over2 .gnb_2dul {
    left: 218px;
    width: 190px;
    padding: 9px;
    border-radius: 7px;
    box-shadow: 0 12px 28px rgba(16, 24, 40, .1);
}

.gnb_1dli_over .gnb_2da,
.gnb_1dli_over2 .gnb_2da {
    padding: 7px 10px;
    border-radius: 5px;
    color: var(--kr-muted);
    font-size: 13px;
    line-height: 21px;
}

.gnb_1dli_over .gnb_2da:hover,
.gnb_1dli_over2 .gnb_2da:hover {
    background: var(--kr-surface-2);
    color: var(--kr-primary);
}

#side_pd {
    overflow: hidden;
}

#side_pd h2 {
    padding: 15px 16px;
    font-size: 15px;
    line-height: 22px;
}

.shop_side_products {
    margin: 0;
    padding: 0;
    list-style: none;
}

.shop_side_products li {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 12px;
    border-top: 1px solid var(--kr-line);
}

.shop_side_product_image {
    display: block;
    overflow: hidden;
    border-radius: 7px;
    background: var(--kr-surface-2);
}

.shop_side_product_image img {
    display: block;
    width: 72px !important;
    height: 72px !important;
    object-fit: cover;
}

.shop_side_products li > div {
    min-width: 0;
}

.shop_side_product_name {
    display: -webkit-box;
    overflow: hidden;
    margin-bottom: 6px;
    color: var(--kr-text);
    font-size: 13px;
    font-weight: 600;
    line-height: 19px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.shop_side_products strong {
    color: var(--kr-text);
    font-size: 13px;
    line-height: 19px;
}

.shop_main_intro {
    min-height: 242px;
    margin-bottom: 44px;
}

.shop_main_intro_text {
    padding: 42px 44px;
}

.shop_main_kicker {
    margin-bottom: 14px;
    font-size: 12px;
}

.shop_main_intro h2 {
    font-size: 30px;
    line-height: 1.35;
}

.shop_main_intro p {
    margin-top: 11px;
    font-size: 15px;
}

.shop_main_shortcuts span {
    font-size: 12px;
}

.shop_main_shortcuts strong {
    margin-top: 4px;
    font-size: 16px;
}

.sct_wrap {
    margin-bottom: 48px;
}

.sct_wrap header {
    min-height: 58px;
    padding: 0 2px 15px;
}

.sct_wrap h2 {
    font-size: 21px;
    line-height: 28px;
}

.sct_wrap header p {
    margin-top: 4px;
    font-size: 13px;
    line-height: 19px;
}

.shop_section_more {
    height: 34px;
    padding: 0 12px;
    font-size: 13px;
}

.shop_product_grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.shop_product_card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--kr-line);
    border-radius: 10px;
    background: var(--kr-surface);
    transition: border-color .18s ease, transform .18s ease;
}

.shop_product_card:hover {
    border-color: var(--kr-line-strong);
    transform: translateY(-2px);
}

.shop_product_image {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: var(--kr-surface-2);
}

.shop_product_image img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    transition: transform .25s ease;
}

.shop_product_card:hover .shop_product_image img {
    transform: scale(1.025);
}

.shop_product_discount {
    position: absolute;
    top: 11px;
    left: 11px;
    min-width: 38px;
    height: 25px;
    padding: 0 8px;
    border-radius: 5px;
    background: var(--kr-primary);
    color: #fff;
    font-size: 12px;
    font-weight: 750;
    line-height: 25px;
    text-align: center;
}

.shop_product_soldout {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: rgba(20, 23, 28, .58);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
}

.shop_product_body {
    padding: 15px 15px 17px;
}

.shop_product_name {
    display: block;
    overflow: hidden;
    color: var(--kr-text);
    font-size: 15px;
    font-weight: 700;
    line-height: 22px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop_product_name:hover {
    color: var(--kr-primary);
}

.shop_product_basic {
    display: -webkit-box;
    min-height: 42px;
    overflow: hidden;
    margin: 7px 0 13px;
    color: var(--kr-muted);
    font-size: 13px;
    line-height: 21px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.shop_product_price {
    display: flex;
    min-height: 23px;
    align-items: baseline;
    gap: 7px;
}

.shop_product_price strong {
    color: var(--kr-text);
    font-size: 17px;
    line-height: 24px;
}

.shop_product_price del {
    color: var(--kr-muted);
    font-size: 12px;
    line-height: 19px;
}

#ft_link a,
#ft_company {
    font-size: 13px;
}

#ft_company h2 {
    font-size: 14px;
}

#ft_copy {
    font-size: 12px;
}

html[data-theme="dark"] .shop_product_card,
html[data-theme="dark"] .shop_main_intro,
html[data-theme="dark"] #gnb,
html[data-theme="dark"] #side_pd {
    box-shadow: none;
}

@media (max-width: 1100px) {
    #container {
        grid-template-columns: 200px minmax(0, 1fr);
        gap: 20px;
    }

    .gnb_1dli_over .gnb_2dul,
    .gnb_1dli_over2 .gnb_2dul {
        left: 198px;
    }

    .shop_product_grid {
        gap: 13px;
    }

    .shop_product_body {
        padding: 13px 13px 15px;
    }
}

@media (max-width: 820px) {
    #container {
        display: block;
    }

    .shop_main_intro {
        min-height: 0;
        margin-bottom: 36px;
    }

    .shop_product_grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    body {
        font-size: 15px;
    }

    .shop_main_intro_text {
        padding: 32px 24px;
    }

    .shop_main_intro h2 {
        font-size: 25px;
    }

    .shop_main_intro p {
        font-size: 14px;
    }

    .sct_wrap {
        margin-bottom: 38px;
    }

    .sct_wrap h2 {
        font-size: 20px;
    }

    .shop_product_grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        margin-top: 14px;
    }

    .shop_product_name {
        font-size: 14px;
    }

    .shop_product_basic {
        min-height: 40px;
        font-size: 12px;
        line-height: 20px;
    }

    .shop_product_price {
        display: block;
    }

    .shop_product_price strong,
    .shop_product_price del {
        display: block;
    }

    .shop_product_price strong {
        font-size: 16px;
    }
}

/* PC template responsive guard: keep desktop markup usable at narrow widths. */
@media (max-width: 560px) {
    html,
    body,
    #wrapper {
        max-width: 100%;
        overflow-x: hidden;
    }

    #hd_wrapper {
        grid-template-columns: minmax(0, 1fr) auto;
        width: calc(100% - 24px);
        height: auto;
        min-width: 0;
        gap: 10px;
    }

    #logo,
    .hd_login,
    .hd_sch_wr,
    #hd_sch form {
        min-width: 0;
    }

    .hd_login {
        gap: 4px;
    }

    .shop_login .btn_member_mn {
        width: 38px;
        min-width: 38px;
        max-width: 38px;
        padding: 0;
        justify-content: center;
    }

    .shop_login .btn_member_mn .profile_identity,
    .shop_login .btn_member_mn .member_toggle_icon {
        display: none;
    }

    .shop_login #shop_member_menu.member_mn {
        position: fixed;
        top: 72px;
        right: 12px;
        width: min(300px, calc(100% - 24px));
    }

    #hd_menu {
        width: 100%;
        max-width: 100%;
        padding: 0 12px;
        overflow-x: auto;
        box-sizing: border-box;
        scrollbar-width: none;
    }

    #hd_menu::-webkit-scrollbar {
        display: none;
    }

    #hd_menu button#menu_open {
        flex-basis: 120px;
        width: 120px;
        padding: 0 10px;
    }

    .hd_menu {
        flex: 0 0 430px;
        min-width: 430px;
    }

    #container,
    #ft_wr,
    #ft_copy {
        width: calc(100% - 24px);
        min-width: 0;
        box-sizing: border-box;
    }

    #ft_wr,
    #ft_company,
    #ft_company .ft_info {
        min-width: 0;
        max-width: 100%;
    }

    #ft_company .ft_info,
    #ft_company .ft_info span {
        white-space: normal;
        overflow-wrap: anywhere;
    }
}
