@charset "utf-8";

/**
 * style_shop.css - 쇼핑몰 전용 스타일 (테마)
 *
 * @version 20260302-001
 *
 * 제거된 항목 (다른 CSS에서 처리):
 * - 글로벌 리셋 / box-sizing → Bootstrap 5 reboot
 * - 레이아웃 프레임(#hd, #wrapper, #ft, #container) → bootstrap-custom.css .shop-*
 * - 사이드메뉴(#side_menu, #quick) → default_compat_shop.css
 * - 카테고리(#category) → default_compat_shop.css
 * - 팝업레이어(#hd_pop) → default_compat_shop.css
 * - Swiper 네비(#idx_hit) → default_compat_shop.css
 * - 접근성(.sound_only, #skip_to_container) → default_compat_shop.css
 * - 마이페이지(#smb_my_*) → Bootstrap card/badge 전환 완료
 */


/* ==========================================================================
   0. 쇼핑몰 공통 CSS 변수
   ========================================================================== */
:root {
    /* 레거시 버튼 */
    --shop-btn-cancel-bg: #969696;
    --shop-btn-cancel-hover: #aaa;
    --shop-btn-secondary-bg: #4b545e;
    --shop-btn-secondary-border: #3b3c3f;
    --shop-btn-board-bg: #253dbe;
    --shop-btn-board-hover: #0025eb;
    --shop-btn-board-outline-text: #646982;
    --shop-btn-board-outline-hover: #ebedf6;
    --shop-btn-list-bg: #617D46;
    /* 알림/경고 배너 */
    --shop-alert-bg: #f2838f;
    --shop-alert-accent: #da4453;
    --shop-alert-text: #fff;
    /* 안내 메시지 */
    --shop-notice-bg: #ffeef9;
    --shop-notice-border: #fccdff;
    /* PG 팝업 탭 */
    --shop-pg-tab-border: #d6e9ff;
    --shop-pg-tab-text: #6794d3;
    /* 폼 */
    --shop-input-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
    /* QA 탭 배지 */
    --shop-qa-badge-inactive: #aaa;
    --shop-qa-badge-active: #55bfb1;
    /* 배송지 */
    --shop-addr-select-color: #19bc9b;
    --shop-addr-checked-bg: #3476be;
    /* PG/결제 */
    --shop-cash-btn-bg: #565e60;
    --shop-pg-table-header: #959da6;
    /* 브랜드 (라이트/다크 동일) */
    --brand-kakao: #ffeb00;
}

[data-theme="dark"] {
    --shop-btn-cancel-bg: #6e7681;
    --shop-btn-cancel-hover: #8b949e;
    --shop-btn-secondary-bg: #484f58;
    --shop-btn-secondary-border: #484f58;
    --shop-btn-board-bg: #4466dd;
    --shop-btn-board-hover: #5577ee;
    --shop-btn-board-outline-text: #8b949e;
    --shop-btn-board-outline-hover: #21262d;
    --shop-btn-list-bg: #4a6a33;
    --shop-alert-bg: rgba(218,68,83,0.2);
    --shop-alert-accent: #da4453;
    --shop-alert-text: #f2838f;
    --shop-notice-bg: rgba(252,205,255,0.08);
    --shop-notice-border: rgba(252,205,255,0.2);
    --shop-pg-tab-border: var(--gb-border-default);
    --shop-pg-tab-text: var(--gb-text-link);
    --shop-input-shadow: inset 0 1px 1px rgba(0,0,0,0.2);
    --shop-qa-badge-inactive: #6e7681;
    --shop-addr-select-color: #15a97a;
    --shop-addr-checked-bg: #3476be;
    --shop-cash-btn-bg: #484f58;
    --shop-pg-table-header: #484f58;
}


/* ========================================
   쇼핑몰 회원가입
   ======================================== */

.register {margin-bottom:30px}
#register_form .register_form_inner {background:var(--gb-surface-card)}

/* 비회원 주문조회 */
#mb_login_od_wr {margin:20px auto 0;border:1px solid var(--gb-border-default);width:100%;max-width:360px;background:var(--gb-surface-card);text-align:center}
#mb_login_od_wr h2 {font-size:1.25em;margin:20px 0 10px}
#mb_login_od_wr .frm_input {width:100%;margin:10px 0 0}
#mb_login_od_wr .btn_submit {width:100%;margin:10px 0 0;height:45px;font-weight:bold;font-size:1.25em}
#mb_login_od_wr p {background:var(--gb-gray-50);margin:20px 0 0;padding:15px 20px;line-height:1.5em}

#mb_login #sns_login {margin-top:0;border-color:var(--gb-border-default);padding:25px}
#mb_login #sns_login:after {display:block;visibility:hidden;clear:both;content:""}
#mb_login #sns_login h3 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#mb_login #sns_login .sns-wrap {margin:0 !important}
#mb_login #sns_login .sns-icon {width:49% !important;float:left !important}
#mb_login #sns_login .sns-icon:nth-child(odd) {margin-right:2%}
#mb_login #sns_login .txt {font-size:0.95em;padding-left:5px !important;border-left:0 !important}

/* 비회원 구매 */
#mb_login_notmb {width:100%;max-width:360px;margin:30px auto;padding:20px 30px;box-sizing:border-box;background:var(--gb-surface-card);border:1px solid var(--gb-border-default)}
#mb_login_notmb h2 {font-size:1.25em;margin:10px 0;text-align:center}
#mb_login_notmb p {text-align:left}
#mb_login_notmb label {text-align:left}
#guest_privacy {border:1px solid var(--gb-gray-300);text-align:left;line-height:1.6em;color:var(--gb-gray-500);background:var(--gb-gray-50);padding:10px;height:150px;margin:10px 0;overflow-y:auto}
#mb_login_notmb .btn_submit {display:block;text-align:center;margin-top:10px;line-height:45px}

/* 쇼핑몰 로그인 */
.mb_log_cate h2 {width:50%;float:left;padding:20px 0;text-align:center}
.mb_log_cate .join {width:50%;float:left;padding:20px 0;text-align:center;background:var(--gb-surface-page);color:var(--gb-text-secondary)}
.mb_log_cate:after {display:block;visibility:hidden;clear:both;content:""}
.mbskin .chk_box input[type="checkbox"] + label span {position:relative}


/* ========================================
   커뮤니티 (쇼핑몰 내 게시판)
   ======================================== */

.is_community .tbl_head01 td {color:var(--gb-gray-500);padding:10px 5px;border-top:1px solid var(--gb-border-subtle);border-bottom:1px solid var(--gb-border-subtle);border-left:0 none;line-height:1.4em;height:60px;word-break:break-all}
.is_community .chk_box input[type="checkbox"] + label span {top:2px;left:0}
.is_community .bo_fx {margin-bottom:20px}


/* ========================================
   이미지 리사이징
   ======================================== */

.img_fix {width:100%;height:auto}


/* ========================================
   캡챠 (자동등록방지)
   ======================================== */

#captcha {display:inline-block;position:relative}
#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden}
#captcha #captcha_img {height:40px;border:1px solid var(--gb-border-strong);vertical-align:top;padding:0;margin:0}
#captcha #captcha_mp3 {margin:0;padding:0;width:40px;height:40px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../img/captcha2.png') no-repeat;text-indent:-999px;border-radius:3px}
#captcha #captcha_reload {margin:0;padding:0;width:40px;height:40px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../img/captcha2.png') no-repeat 0 -40px;text-indent:-999px;border-radius:3px}
#captcha #captcha_key {margin:0 0 0 3px;padding:0 5px;width:90px;height:40px;border:1px solid var(--gb-border-strong);background:var(--gb-surface-input);font-size:1.333em;font-weight:bold;text-align:center;border-radius:3px;vertical-align:top}
#captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em}


/* ========================================
   CKEditor
   ======================================== */

.cke_sc {margin:0 0 5px;text-align:right}
.btn_cke_sc {display:inline-block;padding:0 10px;height:23px;border:1px solid var(--gb-gray-300) !important;background:var(--gb-gray-50) !important;color:var(--gb-text-primary) !important;text-decoration:none !important;line-height:1.9em;vertical-align:middle}
.cke_sc_def {margin:0 0 5px;padding:10px;border:1px solid var(--gb-gray-300);background:var(--gb-gray-50);text-align:center}
.cke_sc_def dl {margin:0 0 5px;text-align:left}
.cke_sc_def dl:after {display:block;visibility:hidden;clear:both;content:""}
.cke_sc_def dt, .cke_sc_def dd {float:left;margin:0;padding:5px 0;border-bottom:1px solid var(--gb-gray-200)}
.cke_sc_def dt {width:20%;font-weight:bold}
.cke_sc_def dd {width:30%}

/* CKEditor 태그 기본값 */
#bo_v_con ul {display:block;list-style-type:disc;margin-top:1em;margin-bottom:1em;margin-left:0;margin-right:0;padding-left:40px}
#bo_v_con ol {display:block;list-style-type:decimal;margin-top:1em;margin-bottom:1em;margin-left:0;margin-right:0;padding-left:40px}
#bo_v_con li {display:list-item}


/* ========================================
   Mobile 화면 전환 링크
   ======================================== */

#mobile_cng {display:block;margin:0.3em;padding:0.5em 0;border:1px solid var(--gb-border-default);border-radius:2em;background:var(--gb-surface-card);color:var(--gb-text-primary);font-size:2em;text-decoration:none;text-align:center}


/* ========================================
   목록 바로가기 (.sanchor) — 상품상세 탭
   ======================================== */

.sanchor {margin:30px 0 20px;padding:0}
.sanchor:after {display:block;visibility:hidden;clear:both;content:""}
.sanchor li {float:left;width:20%;text-align:center;list-style:none}
.sanchor li a {display:block;position:relative;height:60px;margin-left:-1px;background-color:var(--gb-surface-page);border:1px solid var(--gb-gray-300);border-bottom:1px solid var(--gb-text-primary);font-size:1.25em;color:var(--gb-gray-500);line-height:58px;text-align:center;z-index:1}
.sanchor li .sanchor_on {margin:0 0 0 -1px;border:1px solid var(--gb-text-primary);background:var(--shop-tab-bg);z-index:2;border-bottom-color:var(--shop-tab-bg);color:var(--gb-text-primary);font-weight:bold}
.sanchor li a .item_qa_count, .sanchor li a .item_use_count {display:inline-block;background:var(--shop-qa-badge-inactive);padding:0 5px;line-height:23px;border-radius:15px;color:var(--gb-text-on-primary);min-width:23px;font-size:12px}
.sanchor li .sanchor_on .item_qa_count, .sanchor li .sanchor_on .item_use_count {background:var(--shop-qa-badge-active)}

.cnt_cmt {display:inline-block;margin:0 0 0 3px;font-weight:bold}
.sale_prd h2 {font-size:1.167em;margin:20px 0 10px}
.st_bg {display:inline-block;width:1px;height:10px;margin:0 10px;background:var(--gb-border-default);vertical-align:-1px}


/* ========================================
   버튼 (레거시 호환 — 미전환 스킨용)
   ======================================== */

a.btn01 {display:inline-block;padding:7px;border:1px solid var(--gb-border-strong);border-radius:3px;background:var(--gb-surface-card);color:var(--gb-text-secondary);text-decoration:none;vertical-align:middle}
a.btn01:focus, a.btn01:hover {text-decoration:none}
button.btn01 {display:inline-block;margin:0;padding:7px;border:1px solid var(--gb-gray-300);background:var(--gb-gray-50);color:var(--gb-text-primary);text-decoration:none}
a.btn02 {display:inline-block;padding:7px;background:var(--gb-primary);color:var(--gb-text-on-primary);border-radius:3px;text-decoration:none;vertical-align:middle}
a.btn02:focus, .btn02:hover {text-decoration:none}
button.btn02 {display:inline-block;margin:0;padding:7px;border:1px solid var(--shop-btn-secondary-border);background:var(--shop-btn-secondary-bg);color:var(--gb-text-on-primary);text-decoration:none}

.btn_confirm {text-align:center}

.btn_submit {border:1px solid var(--gb-primary-hover);background:var(--gb-primary);color:var(--gb-text-on-primary);cursor:pointer;border-radius:3px}
.btn_submit:hover {background:var(--gb-primary-hover)}
.btn_close {border:1px solid var(--gb-border-default);cursor:pointer;border-radius:3px;background:var(--gb-surface-card)}
a.btn_close {text-align:center;line-height:50px}

a.btn_cancel {display:inline-block;background:var(--shop-btn-cancel-bg);color:var(--gb-text-on-primary);text-decoration:none;vertical-align:middle}
button.btn_cancel {display:inline-block;background:var(--shop-btn-cancel-bg);color:var(--gb-text-on-primary);text-decoration:none;vertical-align:middle}
.btn_cancel:hover {background:var(--shop-btn-cancel-hover)}
a.btn_frmline, button.btn_frmline {display:inline-block;width:128px;padding:0 5px;height:40px;border:0;background:var(--gb-gray-700);border-radius:3px;color:var(--gb-text-on-primary);text-decoration:none;vertical-align:top}
button.btn_frmline {font-size:1em}
a.btn_frmline {line-height:24px}

/* 게시판용 버튼 */
a.btn_b01, .btn_b01 {display:inline-block;color:var(--gb-text-tertiary);text-decoration:none;vertical-align:middle;border:0;background:transparent}
.btn_b01:hover {color:var(--gb-text-primary)}
a.btn_b02, .btn_b02 {display:inline-block;background:var(--shop-btn-board-bg);padding:0 10px;color:var(--gb-text-on-primary);text-decoration:none;border:0;vertical-align:middle}
a.btn_b02:hover, .btn_b02:hover {background:var(--shop-btn-board-hover)}
a.btn_b03, .btn_b03 {display:inline-block;background:var(--gb-surface-card);border:1px solid var(--gb-border-default);color:var(--shop-btn-board-outline-text);text-decoration:none;vertical-align:middle}
a.btn_b03:hover, .btn_b03:hover {background:var(--shop-btn-board-outline-hover)}
a.btn_b04, .btn_b04 {display:inline-block;background:var(--gb-surface-card);border:1px solid var(--gb-border-strong);color:var(--gb-text-secondary);text-decoration:none;vertical-align:middle}
a.btn_b04:hover, .btn_b04:hover {color:var(--gb-text-primary);background:var(--gb-gray-50)}
a.btn_admin, .btn_admin {display:inline-block;color:var(--gb-danger);text-decoration:none;vertical-align:middle}
.btn_admin:hover, a.btn_admin:hover {color:var(--gb-danger-hover)}

/* 선택수정 버튼 */
.btn_list {margin:0 auto;width:93%}
.btn_list input, .btn_list button {background:none repeat scroll 0 0 var(--shop-btn-list-bg);border:0 none;color:var(--gb-text-on-primary);height:28px;line-height:2.2em;padding:0 15px;vertical-align:middle}


/* ========================================
   기본 테이블
   ======================================== */

.tbl_wrap table {width:100%;border-collapse:collapse;border-spacing:0}
.tbl_wrap caption {padding:10px 0;font-weight:bold;text-align:left}

.tbl_head01 {margin:0 0 10px}
.tbl_head01 caption {padding:0;font-size:0;line-height:0;overflow:hidden}
.tbl_head01 thead th {padding:12px 0;border-top:2px solid var(--gb-text-primary);border-bottom:1px solid var(--gb-border-strong);background:var(--gb-surface-card);color:var(--gb-gray-900);font-size:0.95em;text-align:center;letter-spacing:-0.1em}
.tbl_head01 thead a {color:var(--gb-gray-900)}
.tbl_head01 thead th input {vertical-align:top}
.tbl_head01 tfoot th, .tbl_head01 tfoot td {padding:10px 0;border-top:1px solid var(--gb-gray-300);border-bottom:1px solid var(--gb-gray-300);background:var(--gb-gray-200);text-align:center}
.tbl_head01 tbody th {padding:10px 0;border-top:1px solid var(--gb-gray-200);border-bottom:1px solid var(--gb-gray-200)}
.tbl_head01 td {padding:15px 5px;border-top:1px solid var(--gb-gray-100);border-left:1px solid var(--gb-gray-100);line-height:1.5em;word-break:break-all}
.tbl_head01 td:first-child {border-left:0}

.tbl_head02 {margin:0 0 10px}
.tbl_head02 caption {padding:0;font-size:0;line-height:0;overflow:hidden}
.tbl_head02 thead th {padding:7px;background:var(--gb-gray-50);border-top:1px solid var(--gb-gray-300);border-bottom:1px solid var(--gb-gray-300)}
.tbl_head02 thead a {color:var(--gb-gray-900)}
.tbl_head02 thead th input {vertical-align:top}
.tbl_head02 tfoot th, .tbl_head02 tfoot td {padding:10px 0;border-top:1px solid var(--gb-gray-300);border-bottom:1px solid var(--gb-gray-300);background:var(--gb-gray-200);text-align:center}
.tbl_head02 tbody th {padding:5px 0;border-top:1px solid var(--gb-gray-200);border-bottom:1px solid var(--gb-gray-200)}
.tbl_head02 td {padding:5px 3px;border-bottom:1px solid var(--gb-gray-200);line-height:1.4em;word-break:break-all}

.tbl_head03 {margin:0 0 10px}
.tbl_head03 table {border-bottom:1px solid var(--gb-gray-300)}
.tbl_head03 caption {padding:0;font-size:0;line-height:0;overflow:hidden}
.tbl_head03 thead th {padding:20px 0;border-top:2px solid var(--shop-pg-table-header);border-bottom:1px solid var(--gb-gray-300);color:var(--gb-gray-900);font-size:1.2em;text-align:center;letter-spacing:-0.1em}
.tbl_head03 thead a {color:var(--gb-gray-900)}
.tbl_head03 thead th input {vertical-align:top}
.tbl_head03 tfoot th, .tbl_head03 tfoot td {padding:10px 0;border-top:1px solid var(--gb-gray-300);border-bottom:1px solid var(--gb-gray-300);background:var(--gb-gray-200);text-align:center}
.tbl_head03 tbody th {padding:10px 0;border-top:1px solid var(--gb-gray-200);border-bottom:1px solid var(--gb-gray-200)}
.tbl_head03 td {background:var(--gb-surface-card);background-clip:padding-box;padding:25px 15px;border-top:1px solid var(--gb-gray-300);border-left:1px solid var(--gb-gray-100);line-height:1.5em;word-break:break-all}
.tbl_head03 td:first-child {border-left:0}


/* ========================================
   폼 테이블
   ======================================== */

.tbl_frm01 {margin:0 0 20px}
.tbl_frm01 table {width:100%;border-collapse:collapse;border-spacing:0}
.tbl_frm01 th {width:90px;padding:5px 10px;background:none;text-align:right;font-weight:normal}
.tbl_frm01 td {padding:5px 10px;background:transparent}
.wr_content textarea,
.tbl_frm01 textarea,
.form_01 textarea,
.frm_input {border:1px solid var(--gb-border-strong);background:var(--gb-surface-input);color:var(--gb-text-primary);vertical-align:middle;border-radius:3px;padding:5px;
box-shadow:var(--shop-input-shadow)}
.tbl_frm01 textarea {padding:2px 2px 3px}
.frm_input {height:45px}

.full_input, .frm_address {width:100%}
.half_input {width:49.5%}
.tbl_frm01 textarea {width:100%;height:100px}
.tbl_frm01 a {text-decoration:none}
.tbl_frm01 .frm_address {margin-top:5px}
.tbl_frm01 .frm_file {display:block;margin-bottom:5px}
.tbl_frm01 .frm_info {display:block;padding:0 0 5px;line-height:1.4em}


/* ========================================
   기본 리스트
   ======================================== */

.list_01 li {position:relative;border:1px solid var(--gb-border-default);border-radius:3px;margin:8px 0;padding:10px 15px;list-style:none}
.list_01 li:after {display:block;visibility:hidden;clear:both;content:""}
.list_01 li:hover {background:var(--gb-gray-50)}

.list_02 ul:after {display:block;visibility:hidden;clear:both;content:""}
.list_02 li {float:left;width:225px;margin:10px 0 20px 18px}
.list_02 li:nth-child(5n+1) {clear:both;margin-left:0}

/* 폼 리스트 */
.form_01 h2 {margin:0 0 10px;font-size:1.25em}
.form_01 li {margin:10px 0}
.form_01 li:after {display:block;visibility:hidden;clear:both;content:""}
.form_01 li .right_input {float:right}
.form_01 textarea {height:100px;width:100%}
.form_01 .frm_label {display:inline-block;width:130px}
.form_01 .form_left {float:left;width:49.5%}
.form_01 .form_right {float:right;width:49.5%}


/* ========================================
   유틸리티
   ======================================== */

/* 자료 없는 목록 */
.empty_table {padding:50px 0 !important;text-align:center;color:var(--gb-gray-500) !important}
.empty_list, .empty_li {padding:20px 0 !important;text-align:center !important;color:var(--gb-gray-500) !important}

/* 필수입력 */
.required, textarea.required {background-image:url('../img/require.png') !important;background-repeat:no-repeat !important;background-position:right top !important}

/* 그리드 (레거시 테이블 컬럼 너비) */
.grid_1 {width:40px}
.grid_2 {width:90px}
.grid_3 {width:140px}
.grid_4 {width:190px}

/* 테이블 항목별 (장바구니/주문서에서 사용) */
.td_chk {width:30px;text-align:center}
.td_date {width:60px;text-align:center}
.td_default {width:60px;text-align:center}
.td_dvr {width:100px;text-align:center}
.td_imgsmall {width:60px;text-align:center}
.td_num {width:80px;text-align:center}
.td_numbig {width:100px;text-align:center}
.td_namesmall {width:50px;text-align:left}
.td_mng {width:80px;text-align:center}
.td_statsmall {width:50px;text-align:center}

.text_left {text-align:left !important}
.text_center {text-align:center !important}
.text_right {text-align:right !important}


/* ========================================
   새창 기본 스타일
   ======================================== */

.new_win {position:relative;background:var(--gb-surface-card)}
.new_win .tbl_wrap {margin:0 20px}
.new_win #win_title {font-size:1.3em;height:50px;line-height:30px;padding:10px 20px;background:var(--gb-surface-card);color:var(--gb-text-primary);box-shadow:var(--gb-shadow-sm)}
.new_win #win_title .sv {font-size:0.75em;line-height:1.2em}
.new_win .win_ul {margin-bottom:15px;padding:0 20px}
.new_win .win_ul:after {display:block;visibility:hidden;clear:both;content:""}
.new_win .win_ul li {float:left;background:var(--gb-surface-card);text-align:center;padding:0 10px;border:1px solid var(--shop-pg-tab-border);border-radius:30px;margin-left:5px}
.new_win .win_ul li:first-child {margin-left:0}
.new_win .win_ul li a {display:block;padding:8px 0;color:var(--shop-pg-tab-text)}
.new_win .win_ul .selected {background:var(--gb-primary);border-color:var(--gb-primary);position:relative;z-index:5}
.new_win .win_ul .selected a {color:var(--gb-text-on-primary);font-weight:bold}
.new_win .win_desc {position:relative;margin:10px;border-radius:5px;font-size:1em;background:var(--shop-alert-bg);color:var(--shop-alert-text);line-height:50px;text-align:left;padding:0 20px}
.new_win .win_desc i {font-size:1.2em;vertical-align:baseline}
.new_win .win_desc:after {content:"";position:absolute;left:0;top:0;width:4px;height:50px;background:var(--shop-alert-accent);border-radius:3px 0 0 3px}
.new_win .frm_info {font-size:0.92em;color:var(--gb-gray-400)}
.new_win .win_total {float:right;display:inline-block;line-height:30px;font-weight:normal;font-size:0.75em;color:var(--gb-primary);background:var(--gb-surface-raised);padding:0 10px;border-radius:5px}
.new_win .new_win_con {margin:20px 0;padding:20px}
.new_win .new_win_con:after {display:block;visibility:hidden;clear:both;content:""}
.new_win .new_win_con2 {margin:20px 0 0}
.new_win .btn_confirm:after {display:block;visibility:hidden;clear:both;content:""}
.new_win .win_btn {text-align:center;padding-bottom:30px}
.new_win .btn_close {padding:0 20px;height:45px;overflow:hidden;cursor:pointer}
.new_win .btn_submit {padding:0 20px;height:45px;font-weight:bold;font-size:1.083em}


/* ========================================
   사이드뷰
   ======================================== */

.sv_wrap {display:inline-block;position:relative;font-weight:normal}
.sv_wrap .sv {z-index:1000;display:none;margin:5px 0 0;border:1px solid #283646;background:#111}
.sv_wrap .sv a {display:inline-block !important;margin:0 !important;padding:3px !important;width:94px;border-bottom:1px solid #283646;color:#fff !important}
.sv_wrap a:focus, .sv_wrap a:hover, .sv_wrap a:active {text-decoration:none !important}
.sv_on {display:block !important;position:absolute;top:10px;left:20px;width:auto;height:auto !important}
.sv_nojs .sv {display:block}


/* ========================================
   페이징
   ======================================== */

.pg_wrap {margin:10px 0 30px;text-align:center}
.pg_wrap:after {display:block;visibility:hidden;clear:both;content:""}
.pg {text-align:center}
.pg_page, .pg_current, .qa_page {display:inline-block;vertical-align:middle;background:var(--gb-gray-100);border:1px solid var(--gb-gray-200)}
.pg a:focus, .pg a:hover {text-decoration:none}
.pg_page, .qa_page {color:var(--gb-gray-500);font-size:1.083em;height:30px;line-height:28px;padding:0 5px;min-width:30px;text-decoration:none;border-radius:3px}
.pg_page:hover, .qa_page:hover {background-color:var(--gb-gray-50)}
.pg_start {text-indent:-999px;overflow:hidden;background:url('../img/btn_first.gif') no-repeat 50% 50% var(--gb-gray-100);padding:0;border:1px solid var(--gb-gray-200)}
.pg_prev {text-indent:-999px;overflow:hidden;background:url('../img/btn_prev.gif') no-repeat 50% 50% var(--gb-gray-100);padding:0;border:1px solid var(--gb-gray-200)}
.pg_end {text-indent:-999px;overflow:hidden;background:url('../img/btn_end.gif') no-repeat 50% 50% var(--gb-gray-100);padding:0;border:1px solid var(--gb-gray-200)}
.pg_next {text-indent:-999px;overflow:hidden;background:url('../img/btn_next.gif') no-repeat 50% 50% var(--gb-gray-100);padding:0;border:1px solid var(--gb-gray-200)}
.pg_start:hover, .pg_prev:hover, .pg_end:hover, .pg_next:hover {background-color:var(--gb-gray-50)}
.pg_current {display:inline-block;background:var(--gb-primary);border:1px solid var(--gb-primary);color:var(--gb-text-on-primary);font-weight:bold;height:30px;line-height:30px;padding:0 10px;min-width:30px;border-radius:3px}


/* ========================================
   팁/툴팁 (gnuboard 자체 — Bootstrap tooltip과 별개)
   ======================================== */

.tooltip_icon {display:inline-block;vertical-align:middle;color:var(--gb-gray-400);border:0;font-size:1.4em;background:transparent;cursor:pointer}
.tooltip_icon:hover {color:var(--gb-primary)}
.tooltip_txt {position:relative;text-align:left;color:var(--shop-alert-text);height:50px;line-height:50px;font-size:1.1em;background:var(--shop-alert-bg);margin:0 0 10px;padding:0 20px;border-radius:5px;font-weight:bold}
.tooltip_txt:before {content:"";position:absolute;top:0;left:0;width:5px;height:50px;border-radius:5px 0 0 5px;background:var(--shop-alert-accent)}
.tooltip_txt i {font-size:1.2em;vertical-align:middle}


/* ========================================
   쇼핑몰 컨텐츠
   ======================================== */

/* 인덱스 이미지 */
#sidx_img {margin:0 0 20px}
#sidx_img img {max-width:100%;height:auto}

/* 상품 메일 추천 */
#sit_rec_new th,
#sit_rec_new td {display:block;width:100%}
#sit_rec_new th {text-align:left;margin-top:20px;margin-bottom:5px}
#sit_rec_new textarea {width:100%;min-height:100px}
#sit_rec_new .win_btn {margin:20px 0}


/* ========================================
   장바구니·주문서 공통
   ======================================== */

.od_prd_list .td_prd {border-left:0;position:relative;padding-left:120px;min-height:100px}
.od_prd_list .td_prd .sod_img {position:absolute;top:25px;left:20px}
.od_prd_list .td_prd .sod_name {min-height:80px}
.od_prd_list .td_prd .prd_name {font-size:1.4em}
.od_prd_list .total_prc {color:var(--gb-text-primary);font-weight:bold;font-size:1.4em}

.sod_opt {margin:5px 0}
.sod_opt ul {display:inline-block;margin:0;padding:0;list-style:none}
.sod_opt li {color:var(--gb-text-primary);padding:3px 0;line-height:1.3em}
.sod_opt li:before {content:"옵션";display:inline-block;margin:1px 5px 2px 0;padding:3px;border-radius:3px;background:var(--gb-primary-light);line-height:1em;color:var(--gb-primary)}
.sod_option_btn .mod_options {height:30px;margin:5px 0 0;padding:0 5px;border:1px solid var(--gb-border-default);color:var(--gb-text-secondary);background:var(--gb-surface-card);border-radius:1rem;transition:border-color var(--gb-transition),color var(--gb-transition)}
.sod_option_btn .mod_options:hover {border-color:var(--gb-primary);color:var(--gb-primary)}
.cp_btn {padding:0 10px;border:1px solid var(--gb-border-strong);color:var(--gb-primary);background:var(--gb-surface-card);height:26px;border-radius:3px}
.cp_cancel {padding:0 10px;border:1px solid var(--gb-border-strong);color:var(--gb-text-secondary);background:var(--gb-surface-card);height:26px;border-radius:3px}


/* ========================================
   장바구니 — Refined Commerce
   ======================================== */

/* 장바구니 전용 CSS 변수 — 테이블 헤더 배경만 커스텀, 나머지는 디자인 시스템 토큰 */
#sod_bsk {
    --cart-head-bg: #eef2f7;
}
[data-theme="dark"] #sod_bsk {
    --cart-head-bg: #21262d;
}

#sod_bsk_list {position:relative}

/* 테이블 헤더 — 확실히 구분되는 배경 + 타이포그래피 */
#sod_bsk thead th {
    background:var(--cart-head-bg);
    border-bottom:2px solid var(--gb-primary);
    font-weight:700;
    font-size:0.8125rem;
    letter-spacing:0.02em;
    white-space:nowrap;
    color:var(--gb-text-primary);
    padding:0.75rem 0.5rem;
}

/* 상품 행 */
#sod_bsk tbody td {color:var(--gb-text-primary)}
#sod_bsk tbody tr {transition:background var(--gb-transition),box-shadow var(--gb-transition)}
#sod_bsk tbody tr:hover {background:var(--gb-surface-sunken);box-shadow:var(--gb-shadow-sm)}
#sod_bsk .td_prd {padding-left:0;position:static;min-height:auto}
#sod_bsk .sod_img {position:static}
#sod_bsk .sod_name {min-height:auto}
#sod_bsk .chk_box {width:40px;text-align:center}
#sod_bsk .chk_box .form-check-input {position:static;width:1em;height:1em;opacity:1;z-index:auto;overflow:visible}
#sod_bsk .sod_img img {border-radius:var(--gb-radius);border:1px solid var(--gb-border-subtle);object-fit:cover}

/* 상품명 */
#sod_bsk .prd_name b {font-size:var(--gb-font-sm);font-weight:600;color:var(--gb-text-primary)}
#sod_bsk .prd_name:hover b {text-decoration:underline;text-underline-offset:2px}

/* 옵션 변경 버튼 — warning 톤 (수정 행위) */
#sod_bsk .sod_option_btn {margin-top:0.375rem}
#sod_bsk .mod_options {
    border-radius:1rem;
    font-size:var(--gb-font-xs);
    padding:0.25rem 0.75rem;
    height:auto;
    line-height:1.4;
    border:1px solid var(--gb-warning);
    color:var(--gb-warning);
    background:transparent;
    font-weight:600;
    transition:background var(--gb-transition),color var(--gb-transition),transform var(--gb-transition);
}
#sod_bsk .mod_options:hover {
    background:var(--gb-warning);
    color:var(--gb-text-on-primary);
    border-color:var(--gb-warning);
    transform:translateY(-1px);
}

/* 소계 */
#sod_bsk .total_prc {font-weight:700;font-size:var(--gb-font-base);color:var(--gb-text-primary)}

/* 합계 카드 */
#sod_bsk_tot {
    background:var(--gb-surface-card);
    border:1px solid var(--gb-border-default);
    border-top:3px solid var(--gb-primary);
    border-radius:var(--gb-radius-lg);
}
@media (min-width:768px) {
    #sod_bsk_tot .col-md-4 + .col-md-4 {border-left:1px solid var(--gb-border-subtle)}
}
/* 결제예정금액 강조 */
#sod_bsk_tot [data-total="grand"] {color:var(--gb-danger) !important}

/* 액션 버튼 — 디자인 시스템 primary */
#sod_bsk_act .btn-primary {
    font-weight:700;
    letter-spacing:0.02em;
    transition:background var(--gb-transition),transform var(--gb-transition),box-shadow var(--gb-transition);
}
#sod_bsk_act .btn-primary:hover {
    transform:translateY(-2px);
    box-shadow:var(--gb-shadow);
}
#sod_bsk_act .btn-primary:active {transform:translateY(0);box-shadow:none}

/* 빈 상태 */
#sod_bsk .cart-empty {padding:4rem 1rem !important}
#sod_bsk .cart-empty i {margin-bottom:1rem;opacity:0.4}

/* 수량 스피너 */
.cart-qty-group {max-width:100px;border:1px solid var(--gb-border-default);border-radius:var(--gb-radius);overflow:hidden}
.cart-qty-btn {width:28px;height:28px;padding:0;border:0;background:var(--gb-surface-raised);color:var(--gb-text-secondary);display:inline-flex;align-items:center;justify-content:center;font-size:var(--gb-font-xs);cursor:pointer;transition:background var(--gb-transition),color var(--gb-transition)}
.cart-qty-btn:hover {background:var(--gb-surface-sunken);color:var(--gb-text-primary)}
.cart-qty-btn:disabled {opacity:0.5;cursor:default}
.cart-qty-input {width:2.5rem;height:28px;border:0;border-left:1px solid var(--gb-border-default);border-right:1px solid var(--gb-border-default);text-align:center;font-weight:600;font-size:var(--gb-font-sm);background:var(--gb-surface-card);color:var(--gb-text-primary);-moz-appearance:textfield}
.cart-qty-input::-webkit-outer-spin-button,.cart-qty-input::-webkit-inner-spin-button {-webkit-appearance:none;margin:0}
.cart-qty-input[readonly] {background:var(--gb-surface-raised);cursor:default}
.cart-qty-input:focus {outline:2px solid var(--gb-primary);outline-offset:-2px}

/* ========================================
   장바구니 옵션 변경 모달
   ======================================== */

/* 모달 컨테이너 */
#sod_bsk_list #mod_option_frm {z-index:10000;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:540px;height:auto;max-height:80vh;border:0;border-radius:var(--gb-radius-lg);background:var(--gb-surface-overlay);color:var(--gb-text-primary);overflow-y:auto;overflow-x:inherit;box-shadow:var(--gb-shadow-lg)}
/* 백드롭 */
#sod_bsk_list .mod_option_bg {content:"";position:fixed;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,0.4);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:block;z-index:9999}
/* 모달 헤더 */
#mod_option_frm h2 {border-bottom:1px solid var(--gb-border-subtle);padding:1.25rem 1.5rem;line-height:1.4;font-size:1.125rem;font-weight:700;margin:0}

.option_wr {padding:1.25rem 1.5rem 0}
.option_wr h3 {font-size:1.0625rem;margin-bottom:0.625rem;font-weight:600}
.option_wr .get_item_options,
.option_wr .get_item_supply {margin-bottom:0.625rem}
.option_wr label {display:block;margin:0.625rem 0 0.3125rem}
/* 옵션 드롭다운 */
.option_wr select {width:100%;border:1px solid var(--gb-border-default);height:48px;border-radius:var(--gb-radius);padding:0 1rem;background:var(--gb-surface-card);color:var(--gb-text-primary);transition:border-color var(--gb-transition)}
.option_wr select:focus {border-color:var(--gb-primary);outline:none;box-shadow:var(--gb-focus-ring)}

/* 옵션 항목 카드 */
#sit_opt_added {margin:0;padding:0;border-bottom:0;list-style:none}
#sit_opt_added li {padding:0.875rem 1rem;background:var(--gb-surface-raised);border:1px solid var(--gb-border-subtle);border-radius:var(--gb-radius);margin:0.625rem 0;position:relative;transition:border-color var(--gb-transition)}
#sit_opt_added li:hover {border-color:var(--gb-border-default)}
#sit_opt_added .opt_name {font-weight:600;font-size:var(--gb-font-sm);margin-bottom:0.375rem;padding-right:2rem}
/* 수량 행: flex 한 줄 */
#sit_opt_added .opt_count {display:flex;align-items:center;gap:0.25rem}
#sit_opt_added .sit_qty_minus,
#sit_opt_added .sit_qty_plus {width:28px;height:28px;min-width:28px;padding:0;border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-sm);background:var(--gb-surface-card);color:var(--gb-text-secondary);font-size:var(--gb-font-xs);display:inline-flex;align-items:center;justify-content:center;transition:background var(--gb-transition),color var(--gb-transition);flex-shrink:0}
#sit_opt_added .sit_qty_minus:hover,
#sit_opt_added .sit_qty_plus:hover {background:var(--gb-surface-sunken);color:var(--gb-text-primary)}
/* 수량 input — Bootstrap form-control 리셋 */
#sit_opt_added .ct-qty-input {width:3rem !important;min-width:3rem;max-width:3rem;height:28px;padding:0 0.25rem;border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-sm);text-align:center;font-weight:600;font-size:var(--gb-font-sm);background:var(--gb-surface-card);color:var(--gb-text-primary)}
#sit_opt_added .ct-qty-input:focus {border-color:var(--gb-primary);box-shadow:var(--gb-focus-ring);outline:none}
/* 가격 */
#sit_opt_added .sit_opt_prc {flex:1;text-align:right;line-height:28px;font-size:var(--gb-font-sm);font-weight:700;white-space:nowrap}
/* 삭제 버튼 */
#sit_opt_added .sit_opt_del {position:absolute;right:0.5rem;top:0.5rem;width:24px;height:24px;min-width:24px;padding:0;border:0;border-radius:var(--gb-radius-sm);background:transparent;color:var(--gb-text-tertiary);display:inline-flex;align-items:center;justify-content:center;font-size:0.75rem;transition:color var(--gb-transition),background var(--gb-transition)}
#sit_opt_added .sit_opt_del:hover {color:var(--gb-danger);background:var(--gb-surface-sunken)}

#mod_option_frm #sit_sel_option {margin:1.25rem 1.5rem 0.625rem}
/* 총 금액 */
#mod_option_frm #sit_tot_price {display:block;padding:1rem 1.5rem;font-size:1.125rem;font-weight:700}
/* 닫기 버튼 → 모달 우상단 배치 */
#mod_option_frm #mod_option_close {position:absolute;top:0.75rem;right:0.75rem;width:32px;height:32px;padding:0;border:0;border-radius:var(--gb-radius);background:transparent;color:var(--gb-text-secondary);display:flex;align-items:center;justify-content:center;transition:background var(--gb-transition);z-index:1}
#mod_option_frm #mod_option_close:hover {background:var(--gb-surface-sunken)}
/* 하단 변경 적용 버튼 — 풀 너비, 크게 */
#mod_option_frm > form > .d-flex {padding:0 1.5rem 1.25rem;margin:0}
#mod_option_frm > form > .d-flex > .btn-primary {
    flex:1;
    border-radius:var(--gb-radius);
    font-weight:700;
    font-size:1rem;
    padding:0.75rem 1rem;
    transition:background var(--gb-transition),transform var(--gb-transition),box-shadow var(--gb-transition);
}
#mod_option_frm > form > .d-flex > .btn-primary:hover {
    transform:translateY(-1px);
    box-shadow:var(--gb-shadow-sm);
}


/* ========================================
   주문서 작성
   ======================================== */

#sod_frm:after {display:block;visibility:hidden;clear:both;content:""}
#sod_frm p {margin:0 0 10px}
#sod_frm .od_prd_list {margin-bottom:20px}
#sod_list {position:relative}
#sod_list #cp_frm {z-index:10000;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:540px;height:auto;max-height:80vh;border:1px solid var(--gb-border-default);border-radius:3px;background:var(--gb-surface-overlay);overflow-y:auto;overflow-x:inherit}

.od_coupon h3 {border-bottom:1px solid var(--gb-gray-300);padding:0 20px;line-height:50px;margin:0 0 15px;font-size:1.25em;text-align:left;box-shadow:1px 2px 2px var(--gb-border-subtle)}
.od_coupon .btn_close {position:absolute;top:0;right:0;width:50px;height:50px;border:0;background:none;border-left:1px solid var(--gb-border-default);font-size:1.25em}
.od_coupon .btn_close:hover {background:var(--gb-gray-50)}
.od_coupon .tbl_head02 {margin:20px}
.od_coupon .cp_apply {padding:0 5px;border:1px solid var(--gb-primary);color:var(--gb-primary);background:var(--gb-surface-card);height:23px;line-height:21px}
.od_coupon td, #sod_frm_pay .od_coupon td {text-align:left;border-left:0;padding:7px}
#sod_frm_pay .od_coupon th {width:auto;text-align:center;padding:7px;background:var(--gb-gray-50);border-top:1px solid var(--gb-gray-300);border-bottom:1px solid var(--gb-gray-300)}
.od_coupon .td_numbig, #sod_frm_pay .od_coupon .td_numbig {text-align:center}
.od_coupon .td_mngsmall {width:60px}

/* 주문서 - 왼쪽 */
.sod_left {flex:1;min-width:0}

/* 주문서 - 주문하시는 분 */
#sod_frm .tbl_frm01 {padding:20px 10px}
#sod_frm .tbl_frm01 th, #sod_frm .tbl_frm01 td {text-align:left;padding:10px;vertical-align:top}
#sod_frm .tbl_frm01 th {padding:0px 10px}
#sod_frm .tbl_frm01 td input {width:100%}
#sod_frm .tbl_frm01 td .addr input {width:20%}
#sod_frm .tbl_frm01 td .addr button {background:var(--gb-gray-700);color:var(--gb-text-on-primary);width:128px;height:45px;border:0;border-radius:3px}

/* 주문서 - 받으시는 분 */
#sod_frm_taker .tbl_frm01 {padding:20px 10px}
#sod_frm_taker .tbl_frm01 .choice_place {display:block;background:var(--gb-primary-light);padding:10px 15px;border:1px solid var(--gb-gray-300);margin:0 10px 10px}
#sod_frm_taker .tbl_frm01 .choice_place:after {display:block;visibility:hidden;clear:both;content:""}
#sod_frm_taker .tbl_frm01 .choice_place .chk_box {float:left;display:inline-block;width:85%;line-height:30px}
#sod_frm_taker .tbl_frm01 .choice_tit {float:left;display:inline-block;width:15% !important;line-height:30px}
#sod_frm_taker .tbl_frm01 .choice_place input[type="radio"] + label span {top:7px}
#sod_frm_taker .tbl_frm01 .choice_place input,
#sod_frm_taker .tbl_frm01 .choice_place label {margin-left:10px}
#sod_frm_taker .tbl_frm01 .btn_frmline {padding:0;width:80px;height:30px;line-height:28px;background:var(--gb-surface-card);border:1px solid var(--gb-border-strong);color:var(--gb-gray-500);text-align:center;float:right}
#sod_frm_taker .tbl_frm01 td input {width:100%}
#sod_frm_taker .tbl_frm01 td .addr input {width:20%}
#sod_frm_taker .tbl_frm01 td .addr button {background:var(--gb-gray-700);color:var(--gb-text-on-primary);width:128px;height:45px;border:0;border-radius:3px}
#sod_frm_taker .tbl_frm01 td .ad_choice {padding:5px 0}
#sod_frm_taker .tbl_frm01 td .ad_choice input {width:auto}

/* 주문서 - 공통 */
#sod_frm_orderer, #sod_frm_taker {margin:0 0 30px;border:1px solid var(--gb-border-default);background:var(--gb-surface-card)}
#sod_frm section:not(.of-section) h2 {border-bottom:1px solid var(--gb-gray-200);font-size:1.167em;padding:20px}
#sod_frm_orderer #od_addr_jibeon,
#sod_frm_taker #od_b_addr_jibeon {display:inline-block;margin:5px 0 0}

/* 5.4.1.3 이후 추가 */
#sod_frm div.tbl_frm01, #sod_frm_taker div.tbl_frm01 {padding:0px 10px !important}
#sod_frm .tbl_frm01 th, #sod_frm .tbl_frm01 td {padding:10px;line-height:45px}
#sod_frm .tbl_frm01 th {width:94px}
#sod_frm #od_name, #sod_frm #od_tel, #sod_frm #od_hp, #sod_frm #od_pwd,
#sod_frm #od_b_name, #sod_frm #od_b_tel, #sod_frm #od_b_hp,
#sod_frm #ad_subject, #sod_frm #od_hope_date {width:40%}
#sod_frm #od_zip, #sod_frm #od_b_zip {width:90px}
#sod_frm .tbl_frm01 td .btn_address {background:var(--gb-gray-700);color:var(--gb-text-on-primary);width:128px;height:45px;border:0;border-radius:3px}
#sod_frm #od_memo {min-height:100px}
#sod_frm_taker .order_choice_place {position:relative;background:var(--gb-primary-light);border:1px solid var(--gb-gray-300);padding-left:10px}
#sod_frm_taker .tbl_frm01 .btn_frmline {float:none;position:absolute;top:8px;right:10px}
#sod_frm #sod_bsk_tot:after {display:block;visibility:hidden;clear:both;content:""}
#sod_frm #sod_bsk_tot li {position:relative;float:left;background:var(--gb-surface-card);width:33.333%;height:70px;text-align:center;border-bottom:1px solid var(--gb-gray-200);padding:15px 0}
#sod_frm #sod_bsk_tot li:after {display:block;visibility:hidden;clear:both;content:""}
#sod_frm #sod_bsk_tot li span {display:block;color:var(--gb-gray-500);margin-bottom:5px;font-weight:bold}
#sod_frm #sod_bsk_tot:not(.of-summary) .sod_bsk_sell, #sod_frm #sod_bsk_tot:not(.of-summary) .sod_bsk_coupon {border-right:1px solid var(--gb-gray-200)}
#sod_frm #sod_bsk_tot:not(.of-summary) .sod_bsk_point, #sod_frm #sod_bsk_tot:not(.of-summary) .sod_bsk_cnt {width:100%;clear:both;height:40px;padding:0 15px;line-height:40px;text-align:right}
#sod_frm #sod_bsk_tot li:last-child {border-bottom:0 none}
#sod_frm #sod_bsk_tot:not(.of-summary) .sod_bsk_point span, #sod_frm #sod_bsk_tot:not(.of-summary) .sod_bsk_cnt span {float:left;margin:0}
#sod_frm #sod_bsk_tot:not(.of-summary) .sod_bsk_coupon:before {display:block;content:"-";position:absolute;top:25px;left:-10px;width:20px;height:20px;background:var(--gb-surface-card);color:var(--gb-danger);border-radius:50%;border:1px solid var(--gb-gray-200);font-weight:bold;font-size:16px;line-height:14px}
#sod_frm #sod_bsk_tot:not(.of-summary) .sod_bsk_dvr:before {display:block;content:"+";position:absolute;top:25px;left:-10px;width:20px;height:20px;background:var(--gb-surface-card);color:var(--gb-danger);border-radius:50%;border:1px solid var(--gb-gray-200);font-weight:bold;font-size:16px;line-height:14px}
#sod_frm #sod_bsk_tot .sod_bsk_cnt strong {color:var(--gb-danger);font-size:1.25em}
#sod_frm_pay {position:relative;margin:10px 0}
#sod_frm #sod_frm_pay h2 {position:absolute;border:0;font-size:0;line-height:0;content:""}
#sod_frm_pay .pay_tbl table {width:100%;border-collapse:collapse}
#sod_frm_pay .pay_tbl th {text-align:left;padding:10px;width:80px;border-bottom:1px solid var(--gb-border-default);background:var(--gb-surface-card);font-weight:bold;color:var(--gb-gray-500)}
#sod_frm_pay .pay_tbl td {text-align:right;padding:10px;height:30px;border-bottom:1px solid var(--gb-border-default);background:var(--gb-surface-card)}
#sod_frm_pay .pay_tbl td .cp_cancel {margin:0 0 0 2px}
#sod_frm_pay .pay_tbl td .btn_frmline {padding:0 7px;border:1px solid var(--gb-primary);color:var(--gb-primary);background:var(--gb-surface-card);height:23px;line-height:21px;margin:0}
#od_tot_price {background:var(--gb-primary-light);line-height:20px;text-align:right;padding:15px}
#od_tot_price span {float:left;font-weight:bold}
#od_tot_price strong {font-size:1.5em;color:var(--gb-danger)}
#sod_frm #sod_frm_pt_alert {margin:5px 0;color:var(--gb-primary)}

#od_pay_sl h3 {font-size:1.167em;margin:20px 0 5px}
#od_pay_sl input[type="radio"] {position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left:0;z-index:-1}
#od_pay_sl .lb_icon {display:inline-block;float:left;width:50%;background:var(--gb-surface-card);border:1px solid var(--gb-border-default);margin:-1px 0 0 -1px;cursor:pointer;height:60px;position:relative;padding-left:65px;padding-top:20px;z-index:1}
#od_pay_sl input[type="radio"]:checked+.lb_icon {border:1px solid var(--gb-primary);z-index:3}
#sod_frm_paysel legend {position:absolute;font-size:0;line-height:0;overflow:hidden}
#sod_frm_paysel .KPAY {background:url('../img/kpay.png') no-repeat 50% 50% var(--gb-surface-card);overflow:hidden;text-indent:-999px}
#sod_frm_paysel .PAYNOW {background:url('../img/paynow.png') no-repeat 50% 50% var(--gb-surface-card);overflow:hidden;text-indent:-999px}
#sod_frm_paysel .PAYCO, #sod_frm_paysel .paycopay_icon {background:url('../img/payco.png') no-repeat 50% 50% var(--gb-surface-card);overflow:hidden;text-indent:-999px}
#sod_frm_paysel .inicis_lpay, #sod_frm_paysel .lpay_icon {background:url('../img/lpay_logo.png') no-repeat 50% 50% var(--gb-surface-card);overflow:hidden;text-indent:-999px}
#sod_frm_paysel .inicis_kakaopay {position:relative;overflow:hidden;text-indent:-999px}
#sod_frm_paysel .inicis_kakaopay em {position:absolute;top:15px;left:45px;width:70px;height:30px;background:url('../img/kakao.png') no-repeat 50% 50% var(--brand-kakao);overflow:hidden;text-indent:-999px;border-radius:30px}
#sod_frm_paysel .kakaopay_icon {background:url('../img/kakao.png') no-repeat 50% 50% var(--gb-surface-card);overflow:hidden;text-indent:-999px}
#sod_frm_paysel .naverpay_icon {background:url('../img/ico-default-naverpay.png') no-repeat 50% 50% var(--gb-surface-card);overflow:hidden;text-indent:-999px}
#sod_frm_paysel .naverpay_icon.nhnkcp_icon {text-indent:0;background-position:50% 30%;padding-top:35px;padding-left:0;text-align:center}
#sod_frm_paysel .samsungpay_icon {background:url('../img/samsungpay.png') no-repeat 50% 50% var(--gb-surface-card);display:inline-block;overflow:hidden;text-indent:-999px}
#sod_frm_paysel .ssgpay_icon {background:url('../img/ssgpay_icon.png') no-repeat 50% 50% var(--gb-surface-card);display:inline-block;overflow:hidden;text-indent:-999px}
#sod_frm_paysel .skpay_icon {background:url('../img/skpay11_icon.png') no-repeat 50% 50% var(--gb-surface-card);background-size:70px;display:inline-block;overflow:hidden;text-indent:-999px}
#sod_frm_paysel .bank_icon {background:url('../img/pay_icon1.png') no-repeat 15px 50% var(--gb-surface-card)}
#sod_frm_paysel .vbank_icon {background:url('../img/pay_icon2.png') no-repeat 15px 50% var(--gb-surface-card);padding-top:13px}
#sod_frm_paysel .iche_icon {background:url('../img/pay_icon2.png') no-repeat 15px 50% var(--gb-surface-card);padding-top:13px}
#sod_frm_paysel .hp_icon {background:url('../img/pay_icon3.png') no-repeat 24px 50% var(--gb-surface-card)}
#sod_frm_paysel .card_icon {background:url('../img/pay_icon4.png') no-repeat 17px 50% var(--gb-surface-card)}
#forderform {display:flex;flex-wrap:wrap;gap:20px}
#forderform .sod_right #sod_bsk_tot {border:1px solid var(--gb-gray-200)}
#forderform .od_pay_buttons_el {margin-top:20px;border:1px solid var(--gb-border-default);background:var(--gb-surface-card);padding:10px}
#forderform .od_pay_buttons_el h3 {font-size:1.167em;margin:0px 0 5px}
#forderform #sod_frm_pt {border-top:1px solid var(--gb-gray-200)}

.sod_right .pay_tbl {border:1px solid var(--gb-gray-200);border-bottom:0 none}
.sod_right #od_tot_price {border:1px solid var(--gb-gray-200)}
#sod_frm_pay .od_pay_buttons_el:after {display:block;visibility:hidden;clear:both;content:""}
#sod_frm_pay .sod_frm_point {margin-top:20px;border:1px solid var(--gb-gray-200)}
#sod_frm_pay .sod_frm_point div {background:var(--gb-surface-card);padding:10px;text-align:right}
#sod_frm_pay .sod_frm_point div:after {display:block;visibility:hidden;clear:both;content:''}
#sod_frm_pay .sod_frm_point div label {float:left;line-height:30px;font-weight:bold}
#sod_frm_pay .sod_frm_point div span {display:block}
#sod_frm_pay .sod_frm_point div span:after {display:block;visibility:hidden;clear:both;content:''}
#sod_frm_pay .sod_frm_point div strong {float:left;color:var(--gb-gray-500)}
#sod_frm_pay .sod_frm_point .max_point_box em {font-style:normal}
#sod_frm_pay .sod_frm_point #od_temp_point {height:30px;text-align:right;padding:0 5px;border:1px solid var(--gb-gray-300)}

/* 주문서 - 오른쪽 */
.sod_right {flex:0 0 340px}
.sod_right #sod_bsk_tot {border:1px solid var(--gb-primary)}
.sod_right #sod_bsk_tot:after {display:block;visibility:hidden;clear:both;content:""}
.sod_right .sod_info li {position:relative;float:left;background:var(--gb-surface-card);width:33.333%;height:70px;text-align:center;border-bottom:1px solid var(--gb-gray-200);padding:15px 0}
.sod_right .sod_info li:after {display:block;visibility:hidden;clear:both;content:""}
.sod_right .sod_info li span {display:block;color:var(--gb-text-primary);margin-bottom:5px;font-weight:bold}
.sod_right .sod_info .sod_bsk_sell, .sod_right .sod_info .sod_bsk_coupon {border-right:1px solid var(--gb-gray-200)}
.sod_right .sod_info .sod_bsk_coupon:before {display:block;content:"-";position:absolute;top:25px;left:-10px;width:20px;height:20px;background:var(--gb-surface-card);color:var(--gb-text-tertiary);border-radius:50%;border:1px solid var(--gb-gray-200);font-weight:bold;font-size:16px;line-height:14px}
.sod_right .sod_info .sod_bsk_dvr:before {display:block;content:"+";position:absolute;top:25px;left:-10px;width:20px;height:20px;background:var(--gb-surface-card);color:var(--gb-text-tertiary);border-radius:50%;border:1px solid var(--gb-gray-200);font-weight:bold;font-size:16px;line-height:14px}
.sod_right .sod_info .sod_bsk_cnt strong {font-size:1.25em}
.sod_right .sod_info_bt {clear:both;padding:10px 15px;background:var(--gb-surface-card)}
.sod_right .sod_info_bt:after {display:block;visibility:hidden;clear:both;content:""}
.sod_right .sod_info_bt li:after {display:block;visibility:hidden;clear:both;content:""}
.sod_right .sod_info_bt li span {display:inline-block;float:left;width:50%;line-height:28px;text-align:left;font-weight:bold;color:var(--gb-text-primary)}
.sod_right .sod_info_bt li strong {display:inline-block;float:left;width:50%;line-height:28px;text-align:right}
.sod_right .sod_info_option {clear:both;border-top:1px solid var(--gb-border-default)}
.sod_right .sod_info_option h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
.sod_right .sod_info_option ul {padding:10px 15px;background:var(--gb-surface-card)}
.sod_right .sod_info_option li {margin-bottom:5px}
.sod_right .sod_info_option li:after {display:block;visibility:hidden;clear:both;content:""}
.sod_right .sod_info_option .sod_ifop_tit {display:inline-block;float:left;width:50%;line-height:28px;text-align:left;font-weight:bold}
.sod_right .sod_info_option .sod_ifop_tit .btn_frmline {width:auto;height:30px;color:var(--gb-primary);background:var(--gb-surface-card);border:1px solid var(--gb-border-strong)}
.sod_right .sod_info_option .sod_ifop_tit .cp_cancel {width:auto;height:30px;border:1px solid var(--gb-gray-300);padding:0 5px;margin-left:5px;color:var(--gb-gray-400);vertical-align:baseline}
.sod_right .sod_info_option .sod_ifop_tit .od_coupon {z-index:10000;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:0;width:90%;max-width:400px;height:auto;max-height:80vh;border:1px solid var(--gb-border-default);border-radius:3px;background:var(--gb-surface-overlay);overflow-y:auto;overflow-x:inherit}
.sod_right .sod_info_option .sod_ifop_tit .od_coupon>td {text-align:left}
.sod_right .sod_info_option>td, .sod_right .sod_info_option .sod_ifop_t {display:inline-block;float:left;width:50%;line-height:28px;text-align:right}
.sod_right .sod_info_option>td {text-align:right;padding:10px;height:30px}
.sod_right .sod_info_option>td .cp_cancel {margin:0 0 0 2px}
.sod_right .sod_info_option>td .btn_frmline {padding:0 7px;border:1px solid var(--gb-primary);color:var(--gb-primary);background:var(--gb-surface-card);height:23px;line-height:21px;margin:0}


#sod_frm_pt {padding:20px}
#sod_frm_pt .max_point_box em {font-style:normal}


/* ========================================
   주문서 — 결제수단
   ======================================== */

#sod_frm_pay {position:relative;margin:10px 0 0}
#sod_frm_pay h2 {font-size:1.167em;padding:15px;border-bottom:1px solid var(--gb-gray-200)}
#sod_frm_pay .tooltip_txt {height:auto;line-height:18px;font-weight:normal;font-size:1em;padding:10px 20px;margin:10px}
#sod_frm_pay .tooltip_txt i {float:left;line-height:36px;font-size:2em;margin-right:15px}
#sod_frm_pay .tooltip_txt:before {height:100%}
#sod_frm_pay .lb_icon:not(.of-pay-label) {display:inline-block;position:relative;cursor:pointer;z-index:1}
#sod_frm_pay input[type="radio"]:checked+.lb_icon {color:var(--gb-primary);z-index:3}
#sod_frm_pay input[type="radio"] + label span {top:7px}

#sod_frm_paysel ul.pay_way {margin:0;padding:15px}
#sod_frm_paysel ul.pay_way input[type="radio"] + label span {top:7px}
#sod_frm_paysel ul:after {display:block;visibility:hidden;clear:both;content:""}
#sod_frm_paysel li {position:relative;line-height:28px;text-align:left;list-style:none}

#settle_bank {border:1px solid var(--gb-border-default);border-top:0 none;background:var(--gb-surface-card);padding:10px;clear:both;line-height:32px}
#settle_bank:after {display:block;visibility:hidden;clear:both;content:''}
#settle_bank label {float:left;width:30%;line-height:30px}
#settle_bank select, #settle_bank input {width:70%;height:32px;margin:0 0 5px;border:1px solid var(--gb-gray-200);border-radius:3px;text-align:left}
#settle_bank option {padding:3px 0}
#settle_bank #od_deposit_name {height:32px;padding:0 5px;border:1px solid var(--gb-gray-200)}

#display_pay_button {background:var(--gb-surface-card);padding:20px;border:1px solid var(--gb-border-default);border-top:0}
#display_pay_button .btn_submit {width:100%;height:50px;font-weight:bold;font-size:1.25em;cursor:pointer;border:1px solid var(--gb-primary)}
#display_pay_button .btn01 {width:100%;height:50px;line-height:38px;font-weight:bold;font-size:1.25em;margin:5px 0;border:1px solid var(--gb-border-default)}

.display_setup_message {margin:0 0 10px;padding:15px;border:1px solid var(--shop-notice-border);background:var(--shop-notice-bg)}
.display_setup_message strong {display:block;margin:0 0 10px}

#sod_frm_taker td input[type="radio"], #sod_frm_taker td input[type="checkbox"] {width:auto;-webkit-appearance:radio;-webkit-border-radius:initial}
#sod_frm_taker label {display:inline-block;font-weight:normal;margin-right:1em}
#sod_frm_same {margin:0 0 10px}

#sod_frm #display_pay_process {text-align:center}
#sod_frm #display_pay_process span {display:block;margin:5px 0 0}

#sod_frm_pay_info {margin:0 0 10px}

#sod_frm_pay #sc_coupon_frm, #sod_frm_pay #od_coupon_frm {z-index:10000;position:absolute;top:0;right:0;width:100%;max-width:500px;height:auto;max-height:500px;border:1px solid var(--gb-border-strong);background:var(--gb-surface-overlay);overflow-y:auto}
#sod_frm_deli {position:relative;line-height:2em}

#sod_frm_escrow {margin:30px 0 0}
#sod_frm #sod_frm_escrow h2 {margin:0;border:0}
#sod_frm #sod_frm_escrow p {margin:5px 0}
#display_pay_process {padding:20px;text-align:center}


/* ========================================
   위시리스트
   ======================================== */

/* --- 위시리스트 --- */
#sod_ws { position: relative; }

/* --- 위시리스트 카드 --- */
.ws-card,
.ws-card-deleted,
.ws-card-soldout {background:var(--gb-surface-card);border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg, 0.5rem);overflow:hidden;position:relative;transition:transform 0.2s ease, box-shadow 0.2s ease;display:flex;flex-direction:column}
.ws-card:hover {transform:translateY(-3px);box-shadow:var(--gb-shadow-md)}
.ws-card-soldout {opacity:0.7}
.ws-card-deleted {opacity:0.65}

/* --- 이미지 영역 --- */
.ws-img-wrap {position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--gb-surface-raised)}
.ws-img-wrap img {width:100%;height:100%;object-fit:cover;transition:transform 0.3s ease}
.ws-card:hover .ws-img-wrap img {transform:scale(1.06)}

/* --- 품절 배지 --- */
.ws-badge-soldout {position:absolute;top:0.5rem;left:0.5rem;z-index:1;display:inline-block;background:var(--gb-danger);color:var(--gb-text-on-primary);font-size:0.6875rem;font-weight:600;padding:0.125rem 0.5rem;border-radius:var(--gb-radius-sm, 0.25rem);line-height:1.4}

/* --- 하트 삭제 버튼 --- */
.ws-heart-btn {position:absolute;top:0.5rem;right:0.5rem;z-index:1;width:2rem;height:2rem;border-radius:50%;border:none;background:var(--gb-surface-card);color:var(--gb-danger);display:flex;align-items:center;justify-content:center;box-shadow:var(--gb-shadow-sm);cursor:pointer;transition:transform 0.2s ease;font-size:0.875rem;padding:0}
.ws-heart-btn:hover {transform:scale(1.15)}
.ws-heart-btn:hover .fa-heart::before {content:"\f7a9"}
.ws-heart-btn:focus-visible {outline:2px solid var(--gb-primary);outline-offset:2px}

/* --- 삭제 상품 오버레이 --- */
.ws-deleted-overlay {position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--gb-surface-raised);gap:0.5rem}
.ws-deleted-overlay i {font-size:1.5rem;color:var(--gb-text-tertiary)}
.ws-deleted-text {font-size:0.8125rem;color:var(--gb-text-tertiary)}

/* --- 카드 본문 --- */
.ws-card-body {padding:0.75rem;flex:1}
.ws-item-name {display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;font-size:0.875rem;line-height:1.4;color:var(--gb-text-primary);margin:0}

/* --- 가격 --- */
.ws-price {margin-top:0.5rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:0.25rem 0.5rem}
.ws-price-sale {font-weight:600;color:var(--gb-primary)}
.ws-price-orig {font-size:0.8125rem;color:var(--gb-text-tertiary);text-decoration:line-through}
.ws-price-tel {font-size:0.8125rem;color:var(--gb-text-secondary)}

/* --- 카드 푸터 --- */
.ws-card .ws-card-footer {padding:0.625rem 0.75rem 0.75rem;background:transparent;border-top:0}

/* --- 카드 제거 애니메이션 --- */
.ws-col-removing {opacity:0;transform:scale(0.95);transition:opacity 0.3s ease, transform 0.3s ease}

/* --- 빈 상태 --- */
.ws-empty {display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;text-align:center;color:var(--gb-text-tertiary)}
.ws-empty i {font-size:3rem;margin-bottom:1rem}
.ws-empty-text {font-size:0.9375rem;color:var(--gb-text-secondary)}

/* --- 토스트 --- */
.ws-toast {position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(1rem);background:var(--gb-surface-overlay);color:var(--gb-text-primary);padding:0.75rem 1.5rem;border-radius:var(--gb-radius-lg, 0.5rem);box-shadow:var(--gb-shadow-lg);z-index:var(--gb-z-toast);opacity:0;visibility:hidden;transition:opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;font-size:0.875rem;white-space:nowrap}
.ws-toast-show {opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}

/* --- ws-item-name가 a 태그일 때 --- */
a.ws-item-name {color:var(--gb-text-primary);text-decoration:none}
a.ws-item-name:hover {color:var(--gb-primary)}


/* ========================================
   배송지 목록
   ======================================== */

#sod_addr .tbl_wrap {margin:30px}
#sod_addr .td_mng .sel_address {background:var(--gb-surface-card);border:1px solid var(--shop-addr-select-color);color:var(--shop-addr-select-color);padding:0 5px;height:26px;border-radius:3px}
#sod_addr .td_mng .del_address {display:inline-block;border:1px solid var(--gb-border-strong);color:var(--gb-text-secondary);padding:0 5px;height:26px;line-height:24px;vertical-align:middle;border-radius:3px}
#sod_addr input[type="radio"] {position:absolute;left:0;z-index:-1;visibility:hidden;width:0;height:0;overflow:hidden;text-indent:-999px}
#sod_addr .default_lb {display:inline-block;background:var(--gb-surface-card);border:1px solid var(--gb-primary-hover);color:var(--gb-primary);cursor:pointer;position:relative;padding:0 5px;height:26px;line-height:24px;border-radius:3px}
#sod_addr input[type="radio"]:checked+.default_lb {background:var(--shop-addr-checked-bg);color:var(--gb-text-on-primary)}
#sod_addr td {height:40px;vertical-align:top}
#sod_addr .td_name {width:100px}
#sod_addr .frm_input {height:30px}
#sod_addr .td_sbj {width:155px;text-align:left}
#sod_addr .td_sbj .chk_box {display:inline-block;float:left}
#sod_addr .td_sbj .chk_box input[type="checkbox"]:checked + label span {background:url(../img/chk.png) no-repeat 50% 50% var(--gb-primary);border-color:var(--gb-primary-hover);border-radius:3px}
#sod_addr .ad_tel {display:block;color:var(--gb-gray-500)}
#sod_addr .td_mng {width:100px;padding:10px}
#sod_addr .td_mng .mng_btn {width:100%;margin:2px 0}


/* ========================================
   주문내역조회 (oi-*)
   ======================================== */

/* --- 대시보드 --- */
.oi-dash {background:var(--gb-surface-card);border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg, 0.5rem);padding:1.25rem 1.5rem;margin-bottom:1.5rem}
.oi-dash-stats {display:grid;grid-template-columns:repeat(4, 1fr);gap:1rem;margin-bottom:1.25rem}
.oi-dash-card {display:flex;flex-direction:column;align-items:center;text-align:center;padding:0.75rem 0.5rem}
.oi-dash-icon {width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;margin-bottom:0.5rem}
.oi-dash-icon-total {background:var(--gb-primary-light);color:var(--gb-primary)}
.oi-dash-icon-amount {background:var(--gb-success-light);color:var(--gb-success-dark)}
.oi-dash-icon-progress {background:var(--gb-warning-light);color:var(--gb-warning-dark)}
.oi-dash-icon-done {background:var(--gb-info-light);color:var(--gb-info-dark)}
.oi-dash-value {font-size:1.25rem;font-weight:700;color:var(--gb-text-primary);line-height:1.2}
.oi-dash-value small {font-size:0.75rem;font-weight:500;color:var(--gb-text-secondary);margin-left:0.125rem}
.oi-dash-label {font-size:0.75rem;color:var(--gb-text-tertiary);margin-top:0.125rem}

/* --- 대시보드: 파이프라인 --- */
.oi-pipeline {display:flex;align-items:center;justify-content:center;gap:0.25rem;padding:0.75rem 0.5rem;background:var(--gb-surface-raised);border-radius:var(--gb-radius-sm, 0.25rem)}
.oi-pipeline-step {display:flex;flex-direction:column;align-items:center;min-width:3rem;flex:1}
.oi-pipeline-count {font-size:1.125rem;font-weight:700;line-height:1.2}
.oi-pipeline-count-pending {color:var(--gb-warning-dark)}
.oi-pipeline-count-paid {color:var(--gb-info-dark)}
.oi-pipeline-count-preparing {color:var(--gb-primary)}
.oi-pipeline-count-shipping {color:var(--gb-success-dark)}
.oi-pipeline-count-complete {color:var(--gb-text-secondary)}
.oi-pipeline-label {font-size:0.6875rem;color:var(--gb-text-tertiary);white-space:nowrap;margin-top:0.125rem}
.oi-pipeline-arrow {color:var(--gb-text-tertiary);font-size:0.625rem;flex-shrink:0;padding:0 0.125rem}

@media (max-width: 575.98px) {
    .oi-dash {padding:1rem}
    .oi-dash-stats {grid-template-columns:repeat(2, 1fr);gap:0.75rem}
    .oi-dash-card {padding:0.5rem 0.25rem}
    .oi-dash-value {font-size:1.125rem}
    .oi-pipeline {gap:0.125rem;padding:0.625rem 0.25rem}
    .oi-pipeline-count {font-size:0.9375rem}
    .oi-pipeline-label {font-size:0.625rem}
    .oi-pipeline-arrow {font-size:0.5rem}
}

/* --- 목록 페이지 --- */
.oi-list {border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg, 0.5rem);overflow:hidden;background:var(--gb-surface-card)}
.oi-list .table {margin-bottom:0}
.oi-list .table thead th {background:var(--gb-surface-raised);color:var(--gb-text-secondary);font-weight:600;font-size:0.8125rem;text-transform:uppercase;letter-spacing:0.03em;padding:0.625rem 0.75rem;border-bottom:1px solid var(--gb-border-default);white-space:nowrap}
.oi-list .table tbody td {padding:0.75rem;vertical-align:middle;border-bottom:1px solid var(--gb-border-subtle);color:var(--gb-text-primary)}
.oi-list .table tbody tr:last-child td {border-bottom:0}
.oi-list .table tbody tr:hover {background:var(--gb-surface-raised)}
.oi-list .oi-od-id {font-weight:600;color:var(--gb-text-link);text-decoration:none}
.oi-list .oi-od-id:hover {color:var(--gb-primary-hover);text-decoration:underline}
.oi-list .oi-od-date {color:var(--gb-text-tertiary);font-size:0.8125rem}
.oi-list .oi-od-price {font-weight:600}

/* --- 모바일 카드 --- */
.oi-card {display:block;padding:1rem;border-bottom:1px solid var(--gb-border-subtle);text-decoration:none;color:var(--gb-text-primary);transition:background 0.15s ease}
.oi-card:last-child {border-bottom:0}
.oi-card:hover {background:var(--gb-surface-raised);text-decoration:none;color:var(--gb-text-primary)}
.oi-card-top {display:flex;justify-content:space-between;align-items:center;margin-bottom:0.375rem}
.oi-card-id {font-weight:600;font-size:0.875rem}
.oi-card-bottom {display:flex;justify-content:space-between;align-items:center}
.oi-card-date {font-size:0.75rem;color:var(--gb-text-tertiary)}
.oi-card-price {font-weight:700;font-size:0.9375rem}
.oi-card-meta {font-size:0.75rem;color:var(--gb-text-tertiary);margin-top:0.25rem}

/* --- 상태 배지 6종 --- */
.oi-badge {display:inline-block;font-size:0.6875rem;font-weight:600;padding:0.125rem 0.5rem;border-radius:var(--gb-radius-sm, 0.25rem);line-height:1.4;white-space:nowrap}
.oi-badge-pending {background:var(--gb-warning-light);color:var(--gb-warning-dark)}
.oi-badge-paid {background:var(--gb-info-light);color:var(--gb-info-dark)}
.oi-badge-preparing {background:var(--gb-primary-light);color:var(--gb-primary)}
.oi-badge-shipping {background:var(--gb-success-light);color:var(--gb-success-dark)}
.oi-badge-complete {background:var(--gb-surface-raised);color:var(--gb-text-secondary)}
.oi-badge-cancel {background:var(--gb-danger-light);color:var(--gb-danger)}

/* --- 빈 상태 --- */
.oi-empty {display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;text-align:center;color:var(--gb-text-tertiary)}
.oi-empty i {font-size:3rem;margin-bottom:1rem}
.oi-empty-text {font-size:0.9375rem;color:var(--gb-text-secondary);margin-bottom:1rem}

/* --- 상세 페이지: 헤더 카드 --- */
.oi-header {background:var(--gb-surface-card);border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg, 0.5rem);padding:1.25rem 1.5rem;margin-bottom:1.5rem}
.oi-header-top {display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem}
.oi-header-id {font-size:1.25rem;font-weight:700;color:var(--gb-text-primary)}
.oi-header-date {font-size:0.8125rem;color:var(--gb-text-tertiary)}
.oi-header-actions {margin-left:auto;display:flex;gap:0.5rem}
.oi-header-actions .btn {font-size:0.8125rem}
.oi-status-msg {margin-top:0.75rem;padding:0.625rem 0.875rem;border-radius:var(--gb-radius-sm, 0.25rem);font-size:0.8125rem;font-weight:500;display:flex;align-items:center;gap:0.5rem}
.oi-status-msg i {font-size:0.875rem;flex-shrink:0}
.oi-status-msg-pending {background:var(--gb-warning-light);color:var(--gb-warning-dark)}
.oi-status-msg-paid {background:var(--gb-info-light);color:var(--gb-info-dark)}
.oi-status-msg-preparing {background:var(--gb-primary-light);color:var(--gb-primary)}
.oi-status-msg-shipping {background:var(--gb-success-light);color:var(--gb-success-dark)}
.oi-status-msg-complete {background:var(--gb-surface-raised);color:var(--gb-text-secondary)}
.oi-status-msg-cancel {background:var(--gb-danger-light);color:var(--gb-danger)}

/* --- 타임라인 --- */
.oi-timeline {display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem 0.5rem;margin-bottom:1.5rem;position:relative;background:var(--gb-surface-card);border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg, 0.5rem)}
.oi-timeline::before {content:'';position:absolute;top:calc(0.75rem + 1.5rem);left:calc(10% + 0.75rem);right:calc(10% + 0.75rem);height:3px;background:var(--gb-border-default);border-radius:2px}
.oi-timeline-progress {position:absolute;top:calc(0.75rem + 1.5rem);left:calc(10% + 0.75rem);height:3px;background:var(--gb-primary);border-radius:2px;transition:width 0.8s ease;z-index:0}
.oi-timeline-step {display:flex;flex-direction:column;align-items:center;position:relative;z-index:1;flex:1;text-align:center}
.oi-timeline-dot {width:1.75rem;height:1.75rem;border-radius:50%;border:2px solid var(--gb-border-default);background:var(--gb-surface-card);margin-bottom:0.5rem;transition:all 0.3s ease;display:flex;align-items:center;justify-content:center}
.oi-timeline-dot i {font-size:0.625rem;color:transparent;transition:color 0.3s ease}
.oi-timeline-label {font-size:0.75rem;color:var(--gb-text-tertiary);font-weight:500}
.oi-timeline-step.active .oi-timeline-dot {border-color:var(--gb-primary);background:var(--gb-primary)}
.oi-timeline-step.active .oi-timeline-dot i {color:var(--gb-surface-card)}
.oi-timeline-step.active .oi-timeline-label {color:var(--gb-text-secondary)}
.oi-timeline-step.current .oi-timeline-dot {border-color:var(--gb-primary);background:var(--gb-primary);box-shadow:0 0 0 4px var(--gb-primary-light)}
.oi-timeline-step.current .oi-timeline-dot i {color:var(--gb-surface-card)}
.oi-timeline-step.current .oi-timeline-label {color:var(--gb-primary);font-weight:700}
.oi-timeline-step--init {opacity:0;transform:translateY(8px);transition:opacity 0.4s ease,transform 0.4s ease}
.oi-timeline-step--visible {opacity:1;transform:translateY(0)}

/* --- 상세: 상품 카드 --- */
.oi-product {border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg, 0.5rem);overflow:hidden;margin-bottom:0.75rem;background:var(--gb-surface-card);transition:box-shadow 0.15s ease}
.oi-product:hover {box-shadow:var(--gb-shadow-sm)}
.oi-product-inner {display:flex;gap:1rem;padding:1rem}
.oi-product-img {flex-shrink:0;width:96px;height:96px;border-radius:var(--gb-radius-sm, 0.25rem);overflow:hidden;background:var(--gb-surface-raised)}
.oi-product-img img {width:100%;height:100%;object-fit:cover}
.oi-product-body {flex:1;min-width:0}
.oi-product-name {font-weight:600;font-size:0.9375rem;margin-bottom:0.25rem}
.oi-product-name a {color:var(--gb-text-primary);text-decoration:none}
.oi-product-name a:hover {color:var(--gb-primary)}
.oi-product-delivery {font-size:0.75rem;color:var(--gb-text-tertiary);background:var(--gb-surface-raised);padding:0.0625rem 0.375rem;border-radius:var(--gb-radius-sm, 0.25rem)}
.oi-product-options {padding:0;margin:0.5rem 0 0;list-style:none}
.oi-product-options li {display:flex;align-items:center;gap:0.5rem;padding:0.375rem 0;font-size:0.8125rem;color:var(--gb-text-secondary);flex-wrap:wrap}
.oi-product-options li + li {border-top:1px solid var(--gb-border-subtle)}
.oi-product-opt-name {flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oi-product-opt-qty {white-space:nowrap;color:var(--gb-text-tertiary)}
.oi-product-opt-price {font-weight:600;white-space:nowrap;color:var(--gb-text-primary)}
.oi-product-footer {display:flex;justify-content:space-between;align-items:center;padding:0.625rem 1rem;border-top:1px solid var(--gb-border-subtle);font-size:0.8125rem;background:var(--gb-surface-raised)}
.oi-product-subtotal {font-weight:700;color:var(--gb-text-primary)}
.oi-product-point {color:var(--gb-text-tertiary)}

/* --- 정보 섹션 (dl/dd) --- */
.oi-info-section {border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg, 0.5rem);overflow:hidden;margin-bottom:0.75rem;background:var(--gb-surface-card)}
.oi-info-title {font-size:0.875rem;font-weight:700;padding:0.75rem 1rem;margin:0;border-bottom:1px solid var(--gb-border-default);background:var(--gb-surface-raised);display:flex;align-items:center;gap:0.5rem}
.oi-info-title i {font-size:0.875rem;color:var(--gb-text-tertiary)}
.oi-info-row {margin:0;padding:0}
.oi-info-row dt {padding:0.5rem 1rem 0.25rem;margin:0;font-size:0.75rem;font-weight:600;color:var(--gb-text-tertiary)}
.oi-info-row dd {padding:0 1rem 0.5rem;margin:0;font-size:0.875rem;color:var(--gb-text-primary);border-bottom:1px solid var(--gb-border-subtle)}
.oi-info-row dd:last-child {border-bottom:0}
.oi-info-actions {padding:0.625rem 1rem;border-bottom:1px solid var(--gb-border-subtle)}
.oi-info-actions:last-child {border-bottom:0}

/* --- 정보 섹션: 2열 그리드 (데스크탑) --- */
@media (min-width:576px) {
    .oi-info-grid {display:grid;grid-template-columns:1fr 1fr}
    .oi-info-grid .oi-info-pair {padding:0.5rem 1rem;border-bottom:1px solid var(--gb-border-subtle)}
    .oi-info-grid .oi-info-pair:nth-last-child(-n+2) {border-bottom:0}
    .oi-info-grid .oi-info-pair dt {padding:0;margin:0;font-size:0.75rem;font-weight:600;color:var(--gb-text-tertiary)}
    .oi-info-grid .oi-info-pair dd {padding:0;margin:0.125rem 0 0;font-size:0.875rem;color:var(--gb-text-primary)}
}

/* --- 금액 요약 --- */
.oi-summary {border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg, 0.5rem);overflow:hidden;margin-bottom:0.75rem;background:var(--gb-surface-card)}
.oi-summary-body {padding:0.75rem 1rem}
.oi-summary-row {display:flex;justify-content:space-between;align-items:center;padding:0.375rem 0;font-size:0.875rem}
.oi-summary-row span {color:var(--gb-text-secondary)}
.oi-summary-row strong {color:var(--gb-text-primary)}
.oi-summary-discount strong {color:var(--gb-danger)}
.oi-summary-total {display:flex;justify-content:space-between;align-items:center;padding:0.75rem 1rem;border-top:2px solid var(--gb-border-default);font-size:1rem}
.oi-summary-total span {font-weight:700;color:var(--gb-text-primary)}
.oi-summary-total strong {font-size:1.25rem;font-weight:800;color:var(--gb-primary)}
.oi-summary-sub {font-size:0.75rem;color:var(--gb-text-tertiary);padding:0.25rem 1rem}
.oi-summary-sub + .oi-summary-sub {padding-bottom:0.75rem}

/* --- 결제합계 --- */
.oi-payment-total {border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg, 0.5rem);overflow:hidden;margin-bottom:0.75rem;background:var(--gb-surface-card)}
.oi-payment-total .oi-summary-row {padding:0.5rem 1rem}
.oi-payment-total .oi-summary-total {border-top-color:var(--gb-border-default);padding:0.75rem 1rem}
.oi-payment-total .oi-summary-total strong {font-size:1.375rem;color:var(--gb-primary)}
.oi-payment-total .oi-summary-sub {color:var(--gb-text-secondary)}

/* --- 우측 sticky --- */
@media (min-width:992px) {
    .oi-sidebar-sticky {position:sticky;top:1rem}
}

/* --- 배송조회 버튼 --- */
.oi-delivery-btn {display:inline-flex;align-items:center;gap:0.375rem;padding:0.5rem 1rem;font-size:0.8125rem;font-weight:600;color:var(--gb-primary);background:var(--gb-primary-light);border:1px solid var(--gb-primary);border-radius:var(--gb-radius-sm, 0.25rem);text-decoration:none;transition:all 0.15s ease}
.oi-delivery-btn:hover {background:var(--gb-primary);color:var(--gb-surface-card)}
.oi-delivery-empty {display:flex;align-items:center;gap:0.5rem;padding:1rem;color:var(--gb-text-tertiary);font-size:0.8125rem}
.oi-delivery-empty i {font-size:1.125rem}

/* --- 취소 섹션 --- */
.oi-cancel-section {border:1px solid var(--gb-danger-light);border-radius:var(--gb-radius-lg, 0.5rem);overflow:hidden;margin-bottom:0.75rem;background:var(--gb-surface-card)}
.oi-cancel-section .oi-info-title {color:var(--gb-danger);background:var(--gb-danger-light)}
.oi-cancel-section .oi-info-title i {color:var(--gb-danger)}
.oi-cancel-form {padding:0.75rem 1rem}
.oi-cancel-form .form-control {margin-bottom:0.5rem}

/* --- 반응형 --- */
@media (max-width:767.98px) {
    .oi-header {padding:1rem}
    .oi-header-id {font-size:1.0625rem}
    .oi-header-top {flex-direction:column;align-items:flex-start;gap:0.375rem}
    .oi-header-actions {margin-left:0;width:100%}
    .oi-header-actions .btn {flex:1}
    .oi-timeline {padding:1rem 0.25rem}
    .oi-timeline-dot {width:1.375rem;height:1.375rem}
    .oi-timeline::before {top:calc(0.625rem + 1rem);left:calc(10% + 0.625rem);right:calc(10% + 0.625rem)}
    .oi-timeline-progress {top:calc(0.625rem + 1rem)}
    .oi-timeline-label {font-size:0.625rem}
    .oi-product-inner {gap:0.75rem;padding:0.75rem}
    .oi-product-img {width:72px;height:72px}
    .oi-product-options li {font-size:0.75rem}
    .oi-info-row dt {padding:0.375rem 0.75rem 0.125rem;font-size:0.6875rem}
    .oi-info-row dd {padding:0 0.75rem 0.375rem;font-size:0.8125rem}
    .oi-summary-total strong {font-size:1.125rem}
}



/* ========================================
   현금영수증
   ======================================== */

#scash {max-width:560px;margin:0 auto;padding:1.5rem 1rem;font-size:0.875rem}
#scash #win_title {font-size:1.25rem;font-weight:700;text-align:center;margin-bottom:1.25rem;padding-bottom:0.75rem;border-bottom:2px solid var(--gb-text-primary)}
#scash section {margin-bottom:1.5rem}
#scash h2 {font-size:0.9375rem;font-weight:600;margin:0 0 0.75rem;padding:0.5rem 0.75rem;background:var(--gb-surface-raised);border-left:3px solid var(--gb-primary);border-radius:0 var(--gb-radius-sm) var(--gb-radius-sm) 0}
#scash .tbl_head01 {width:100%}
#scash .tbl_wrap {overflow:visible}
#scash table {width:100%;border-collapse:collapse}
#scash th {width:130px;padding:0.5rem 0.75rem;font-weight:500;font-size:0.8125rem;color:var(--gb-text-secondary);background:var(--gb-surface-raised);border:1px solid var(--gb-border-default);text-align:left;vertical-align:middle}
#scash td {padding:0.5rem 0.75rem;border:1px solid var(--gb-border-default);font-size:0.8125rem}
#scash .frm_input {display:block;width:100%;padding:0.375rem 0.5rem;border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-sm);font-size:0.8125rem;background:var(--gb-surface-card);color:var(--gb-text-primary);transition:border-color 0.15s}
#scash .frm_input:focus {border-color:var(--gb-primary);outline:none;box-shadow:0 0 0 2px rgba(var(--gb-primary-rgb,59,130,246),0.15)}
#scash input[type="radio"] {display:inline;width:auto;margin-right:0.2rem;vertical-align:middle;accent-color:var(--gb-primary)}
#scash td label {display:inline;cursor:pointer;margin-right:1rem;margin-bottom:0;font-size:0.8125rem;vertical-align:middle;white-space:nowrap}
#scash_apply {padding:1rem 0;text-align:center}
#scash_apply button {display:inline-block;padding:0.625rem 2rem;border:none;border-radius:var(--gb-radius-sm);background:var(--gb-primary);color:#fff;font-size:0.875rem;font-weight:600;cursor:pointer;transition:opacity 0.15s}
#scash_apply button:hover {opacity:0.85}
#scash_apply #show_progress b {font-size:0.8125rem;color:var(--gb-text-secondary)}
#scash_copy {text-align:center;font-size:0.75rem;color:var(--gb-text-tertiary);margin-top:1rem}
#scash_empty {text-align:center;padding:2rem 1rem;color:var(--gb-text-secondary)}


/* ========================================
   배너·이벤트
   ======================================== */

.sev_admin {margin:0 0 10px;text-align:right}
.sev_admin a {line-height:35px;padding:0 10px}


/* ========================================
   쿠폰 — cp-* (아래 마이페이지 섹션 후에 정의)
   ======================================== */


/* (모바일 주문서 CSS 삭제됨 — 통합 반응형 전환으로 sod_frm_mobile 미사용) */

#sod_frm_pay_info {margin:0 0 10px}


/* ========================================
   네이버페이
   ======================================== */

.itemform-naverpay {margin:15px 0;clear:both}
.cart-naverpay {margin-top:15px}


/* ========================================
   게시판 CSS (G5_COMMUNITY_USE=false 시)
   ======================================== */

#bo_list table td, #fqalist table td {border-left:0;border-right:0}
#bo_v_top .btn_admin, #bo_list .btn_admin {padding-top:0}


/* ========================================
   개인결제
   ======================================== */

.pesonal {background:var(--gb-surface-card);border:1px solid var(--gb-border-default);margin-bottom:30px}
.pesonal h2 {border-bottom:1px solid var(--gb-gray-200);font-size:1.167em;padding:20px}
.pesonal .tbl_frm01 {padding:20px 10px;margin:0}
.pesonal th {text-align:left}
.pesonal td {text-align:left;font-weight:bold}
.pesonal td input {width:100%}
.pesonal .half_tr {width:50%}

#personal_pay {background:var(--gb-surface-card);border:1px solid var(--gb-border-default)}
#personal_pay h2 {background:var(--gb-surface-card);border-bottom:1px solid var(--gb-border-default);font-size:1.167em;padding:20px}
#personal_pay .lb_icon {position:relative;display:inline-block;cursor:pointer;z-index:1}
#personal_pay input[type="radio"]:checked+.lb_icon {z-index:3}
#personal_pay legend {position:absolute;font-size:0;line-height:0;overflow:hidden}
#personal_pay .KPAY {width:58px;background:url('../img/kpay.png') no-repeat 50% 50% var(--gb-surface-card);overflow:hidden;text-indent:-999px}
#personal_pay .PAYNOW {width:75px;background:url('../img/paynow.png') no-repeat 50% 50% var(--gb-surface-card);overflow:hidden;text-indent:-999px;border-radius:30px}
#personal_pay .PAYCO {width:75px;background:url('../img/payco.png') no-repeat 50% 50% var(--gb-surface-card);overflow:hidden;text-indent:-999px;border-radius:30px}
#personal_pay .kakaopay_icon {width:60px;background:url('../img/kakao.png') no-repeat 50% 50% var(--brand-kakao);overflow:hidden;text-indent:-999px;border-radius:30px}
#personal_pay .pay_way {border-bottom:1px solid var(--gb-gray-200)}
#personal_pay #display_pay_button {border:0}


/* ========================================
   커스텀 체크박스/라디오
   ======================================== */

.selec_chk {position:absolute;top:0;left:0;width:0;height:0;opacity:0;outline:0;z-index:-1;overflow:hidden}
.chk_box {position:relative}
.chk_box input[type="checkbox"] {position:absolute;top:0;left:0;width:0;height:0;opacity:0;outline:0;z-index:-1;overflow:hidden}
.chk_box input[type="checkbox"] + label {position:relative;padding-left:20px;color:var(--gb-gray-500)}
.chk_box input[type="checkbox"] + label:hover {color:var(--gb-primary)}
.chk_box input[type="checkbox"] + label span {position:absolute;top:2px;left:0;width:15px;height:15px;display:block;margin:0;background:var(--gb-surface-card);border:1px solid var(--gb-border-default);border-radius:3px}
.chk_box input[type="checkbox"]:checked + label {color:var(--gb-text-primary)}
.chk_box input[type="checkbox"]:checked + label span {background:url('../img/chk.png') no-repeat 50% 50% var(--gb-primary);border-color:var(--gb-primary-hover);border-radius:3px}

.chk_box input[type="radio"] {position:absolute;top:0;left:0;width:0;height:0;opacity:0;outline:0;z-index:-1;overflow:hidden}
.chk_box input[type="radio"] + label {position:relative;padding-left:23px;display:inline-block;color:var(--gb-gray-500)}
.chk_box input[type="radio"] + label span {position:absolute;top:0;left:0;width:15px;height:15px;display:block;background:var(--gb-surface-card);border:1px solid var(--gb-border-default);border-radius:50%}
.chk_box input[type="radio"]:checked + label {color:var(--gb-primary)}
.chk_box input[type="radio"]:checked + label span:before {width:7px;height:7px;background:var(--gb-primary);content:'';position:absolute;top:3px;left:3px;border-radius:50%}


/* ========================================
   다크모드 오버라이드
   ======================================== */

/* 주문 상태 배지 — 시맨틱 토큰으로 자동 대응 */

/* 알림·경고·설정 안내 — --shop-alert-*/--shop-notice-* 변수로 자동 대응 */

/* 주문서 — 쿠폰 모달·결제수단 다크 대응 */
[data-theme="dark"] .od_coupon h3 {background:var(--gb-surface-raised);border-bottom-color:var(--gb-border-default)}
[data-theme="dark"] #od_pay_sl .lb_icon {border-color:var(--gb-border-default)}
[data-theme="dark"] #sod_frm #sod_bsk_tot .sod_bsk_coupon:before,
[data-theme="dark"] #sod_frm #sod_bsk_tot .sod_bsk_dvr:before {border-color:var(--gb-border-default)}
[data-theme="dark"] .sod_right .sod_info .sod_bsk_coupon:before,
[data-theme="dark"] .sod_right .sod_info .sod_bsk_dvr:before {border-color:var(--gb-border-default)}

/* 팝업 윈도우 태그 리스트 — --shop-pg-tab-*/--gb-text-on-primary 변수로 자동 대응 */

/* 공유 버튼 래퍼 */
[data-theme="dark"] .sv_wrap .sv {background:var(--gb-surface-overlay);border-color:var(--gb-border-default)}
[data-theme="dark"] .sv_wrap .sv a {border-bottom-color:var(--gb-border-default);color:var(--gb-text-primary)}

/* 커스텀 체크박스 — --gb-text-primary 변수로 자동 대응 */

/* 장바구니 옵션 변경 모달 */
[data-theme="dark"] #sod_bsk_list .mod_option_bg {background:rgba(0,0,0,0.6)}
[data-theme="dark"] .option_wr select {background:var(--gb-surface-raised);border-color:var(--gb-border-default);color:var(--gb-text-primary)}
/* 다크모드 호버 — sunken 대신 raised (이미 토큰으로 자동 대응) */

/* 쿠폰 모달 border */
[data-theme="dark"] .od_coupon .btn_close {border-left-color:var(--gb-border-default)}


/* ========================================
   주문서 (of-*) — Clean Portal Design System
   2-column: col-lg-8 main + col-lg-4 sticky sidebar
   시맨틱 토큰 100% → 다크모드 자동 대응
   ======================================== */

/* --- 전체 래퍼 --- */
.of-wrap {max-width:1200px;margin:0 auto;padding:0 1rem}

/* --- 2컬럼 레이아웃 --- */
.of-layout {display:flex;flex-direction:column;gap:1.5rem}
@media (min-width:992px) {
    .of-layout {flex-direction:row;align-items:flex-start}
    .of-main {flex:1;min-width:0}
    .of-sidebar {flex:0 0 380px;position:sticky;top:calc(var(--vue-sticky-h, 80px) + 1rem)}
}

/* --- 섹션 공통 (카드 스타일) --- */
.of-section {background:var(--gb-surface-card);border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg, 0.5rem);overflow:hidden;margin-bottom:1.25rem}
.of-section-header {display:flex;align-items:center;justify-content:space-between;padding:0.875rem 1.25rem;border-bottom:1px solid var(--gb-border-default);background:var(--gb-surface-raised)}
.of-section-header h2 {margin:0;font-size:1rem;font-weight:700;color:var(--gb-text-primary)}
.of-section-badge {font-size:var(--gb-font-xs);font-weight:600;color:var(--gb-primary);background:var(--gb-primary-light);padding:0.125rem 0.5rem;border-radius:var(--gb-radius-full)}
.of-section-body {padding:1.25rem}

/* --- 상품 목록 섹션 --- */
.of-products {margin-bottom:1.5rem}

/* PC 테이블 */
.of-products-table {overflow-x:auto}
.of-products-cards {display:none}

.of-table {width:100%;border-collapse:collapse;border-spacing:0}
.of-table thead th {
    background:var(--gb-surface-raised);
    border-bottom:2px solid var(--gb-primary);
    font-weight:700;
    font-size:var(--gb-font-xs);
    letter-spacing:0.02em;
    white-space:nowrap;
    color:var(--gb-text-primary);
    padding:0.75rem 0.75rem;
    text-transform:uppercase
}
.of-table tbody td {
    padding:0.75rem;
    border-bottom:1px solid var(--gb-border-subtle);
    color:var(--gb-text-primary);
    font-size:var(--gb-font-sm);
    vertical-align:middle
}
.of-product-row {transition:background var(--gb-transition)}
.of-product-row:hover {background:var(--gb-surface-sunken)}
.of-product-row:last-child td {border-bottom:0}

/* 상품 셀 */
.of-product-inner {display:flex;align-items:center;gap:0.75rem}
.of-product-img {flex-shrink:0;width:72px;height:72px;border-radius:var(--gb-radius);overflow:hidden;border:1px solid var(--gb-border-subtle)}
.of-product-img img {width:100%;height:100%;object-fit:cover;display:block}
.of-product-info {min-width:0}
.of-product-info strong {font-weight:600;color:var(--gb-text-primary);font-size:var(--gb-font-sm)}
.of-product-info .sod_opt {margin-top:0.25rem}
.of-product-info .cp_btn {margin-top:0.375rem}

/* 수량·가격·포인트·배송비 열 */
.of-product-qty {font-weight:600}
.of-product-subtotal {font-weight:700;color:var(--gb-text-primary)}
.of-product-point {color:var(--gb-text-secondary);font-size:var(--gb-font-xs)}
.of-product-delivery {font-size:var(--gb-font-xs);color:var(--gb-text-tertiary)}

/* 모바일 상품 카드 */
.of-product-card {border-bottom:1px solid var(--gb-border-subtle);padding:0.75rem 1rem}
.of-product-card:last-child {border-bottom:0}
.of-product-card-inner {display:flex;gap:0.75rem;align-items:flex-start}
.of-product-card-img {flex-shrink:0;width:64px;height:64px;border-radius:var(--gb-radius);overflow:hidden;border:1px solid var(--gb-border-subtle)}
.of-product-card-img img {width:100%;height:100%;object-fit:cover;display:block}
.of-product-card-body {flex:1;min-width:0}
.of-product-card-name {font-size:var(--gb-font-sm);font-weight:600;color:var(--gb-text-primary);margin-bottom:0.25rem}
.of-product-card-name strong {font-weight:600}
.of-product-card-name .sod_opt {margin-top:0.25rem;font-size:var(--gb-font-xs)}
.of-product-card-meta {display:flex;gap:0.5rem;align-items:center;font-size:var(--gb-font-xs);color:var(--gb-text-secondary);margin-top:0.375rem}
.of-product-card-delivery {color:var(--gb-text-tertiary)}
.of-product-card-footer {display:flex;justify-content:space-between;align-items:center;padding-top:0.5rem;margin-top:0.5rem;margin-left:calc(64px + 0.75rem);border-top:1px solid var(--gb-border-subtle)}
.of-product-card-subtotal {font-weight:700;font-size:var(--gb-font-sm);color:var(--gb-text-primary)}
.of-product-card-pt {font-size:var(--gb-font-xs);color:var(--gb-text-tertiary)}

@media (max-width:767.98px) {
    .of-products-table {display:none}
    .of-products-cards {display:block}
}

/* --- 폼 필드 공통 --- */
.of-field {display:flex;flex-direction:column;gap:0.375rem;padding:0.625rem 0}
.of-field + .of-field {border-top:1px solid var(--gb-border-subtle)}
.of-field-label {font-size:var(--gb-font-sm);font-weight:600;color:var(--gb-text-primary);white-space:nowrap;min-width:0}
.of-field-input {flex:1;min-width:0}
.of-field-input .form-control,
.of-field-input .form-select {font-size:var(--gb-font-sm)}
.of-field-hint {display:block;font-size:var(--gb-font-xs);color:var(--gb-text-tertiary);margin-bottom:0.375rem}
.of-field-suffix {font-size:var(--gb-font-sm);color:var(--gb-text-secondary);white-space:nowrap}
.of-field-row {display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}
.of-field-check {white-space:nowrap}

@media (min-width:576px) {
    .of-field {flex-direction:row;align-items:flex-start;gap:0.75rem}
    .of-field-label {padding-top:0.5rem;flex:0 0 110px}
}

/* --- 주소 필드 --- */
.of-addr-group {display:flex;gap:0.5rem;margin-bottom:0.5rem}
.of-addr-zip {flex:0 0 120px}
.of-addr-btn {white-space:nowrap;font-size:var(--gb-font-sm)}
.of-addr-line {margin-bottom:0.5rem}
.of-addr-line:last-of-type {margin-bottom:0}

/* --- 배송지 선택 --- */
.of-addr-choice {display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem 1rem;padding:0.375rem 0}
.of-addr-choice .form-check-inline {margin-right:0}

/* --- 합계 카드 (사이드바) --- */
.of-summary {
    background:var(--gb-surface-card);
    border:1px solid var(--gb-border-default);
    border-top:3px solid var(--gb-primary);
    border-radius:var(--gb-radius-lg, 0.5rem);
    overflow:hidden;
    margin-bottom:1.25rem
}
.of-summary-header {
    padding:0.75rem 1rem;
    font-size:var(--gb-font-sm);
    font-weight:700;
    color:var(--gb-text-primary);
    border-bottom:1px solid var(--gb-border-subtle);
    background:var(--gb-surface-raised)
}
.of-summary-body {padding:0.75rem 1rem}
.of-summary-row {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:0.375rem 0;
    font-size:var(--gb-font-sm)
}
.of-summary-row span {color:var(--gb-text-secondary)}
.of-summary-row strong {color:var(--gb-text-primary);font-weight:600}
.of-summary-total {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:0.875rem 1rem;
    border-top:2px solid var(--gb-border-default);
    background:var(--gb-primary-light)
}
.of-summary-total span {font-weight:700;font-size:var(--gb-font-sm);color:var(--gb-text-primary)}
.of-summary-total strong {font-size:1.375rem;font-weight:800;color:var(--gb-primary)}
.of-summary-total strong small {font-size:0.75em;font-weight:600}

/* --- 결제 섹션 (사이드바) --- */
.of-coupon-area {margin-bottom:0.75rem}
.of-coupon-row {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    padding:0.5rem 0;
    font-size:var(--gb-font-sm)
}
.of-coupon-row + .of-coupon-row {border-top:1px solid var(--gb-border-subtle)}
.of-coupon-label {color:var(--gb-text-secondary);white-space:nowrap}
.of-coupon-value {text-align:right;color:var(--gb-text-primary);font-weight:600}
.of-coupon-value strong {font-weight:700}
.of-coupon-btn {margin-left:0.375rem;font-size:var(--gb-font-xs);padding:0.125rem 0.5rem}
.of-coupon-note {display:block;font-size:var(--gb-font-xs);color:var(--gb-text-tertiary);margin-top:0.25rem;font-weight:400;line-height:1.4}

/* --- 총 주문금액 (결제 섹션 내) --- */
.of-grand-total {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:0.875rem 0;
    border-top:2px solid var(--gb-border-default);
    border-bottom:1px solid var(--gb-border-subtle);
    margin-bottom:1rem
}
.of-grand-total span {font-weight:700;color:var(--gb-text-primary)}
.of-grand-total strong {font-size:1.5rem;font-weight:800;color:var(--gb-danger)}
.of-grand-total strong small {font-size:0.625em;font-weight:600}

/* --- 결제수단 선택 --- */
.of-pay-select {margin-top:0.5rem}
.of-pay-title {font-size:var(--gb-font-sm);font-weight:700;color:var(--gb-text-primary);margin:0 0 0.75rem;padding:0}

.of-pay-alert {
    font-size:var(--gb-font-xs);
    color:var(--gb-warning);
    background:var(--gb-surface-sunken);
    border:1px solid var(--gb-border-subtle);
    border-radius:var(--gb-radius);
    padding:0.5rem 0.75rem;
    margin-bottom:0.75rem;
    line-height:1.5
}
.of-pay-alert i {margin-right:0.25rem}

.of-pay-methods {display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin:0;padding:0;border:0}
.of-pay-method {position:relative}
.of-pay-method .form-check-input {position:absolute;width:0;height:0;overflow:hidden;opacity:0}
.of-pay-label {
    display:flex;
    align-items:center;
    gap:0.5rem;
    padding:0.625rem 0.75rem;
    background:var(--gb-surface-card);
    border:1px solid var(--gb-border-default);
    border-radius:var(--gb-radius);
    cursor:pointer;
    font-size:var(--gb-font-sm);
    font-weight:500;
    color:var(--gb-text-primary);
    transition:border-color var(--gb-transition),background var(--gb-transition),box-shadow var(--gb-transition);
    overflow:hidden
}
/* 간편결제(KPAY/PAYCO) .form-check → grid item 호환 (Bootstrap 기본값 리셋) */
.of-pay-methods > .form-check {position:relative;padding-left:0;margin-bottom:0;min-height:0}
.of-pay-methods > .form-check > .form-check-input {position:absolute;width:0;height:0;overflow:hidden;opacity:0}

/* 결제수단 라벨 — 2-ID 특이성으로 레거시(#od_pay_sl .lb_icon 등) 완전 오버라이드 */
#od_pay_sl #sod_frm_paysel .of-pay-label,
#od_pay_sl #sod_frm_paysel .form-check-label.lb_icon {
    display:flex;align-items:center;justify-content:center;gap:0.5rem;
    float:none;width:auto;height:100%;
    padding:0.625rem 0.75rem;margin:0;
    background-color:var(--gb-surface-card);background-image:none;
    text-indent:0;visibility:visible;overflow:hidden;
    border:1px solid var(--gb-border-default);border-radius:var(--gb-radius);
    cursor:pointer;
    font-size:var(--gb-font-sm);font-weight:500;color:var(--gb-text-primary);
    transition:border-color var(--gb-transition),background var(--gb-transition),box-shadow var(--gb-transition)
}
.of-pay-label i {font-size:1rem;color:var(--gb-text-tertiary);flex-shrink:0}

/* hover */
#od_pay_sl #sod_frm_paysel .of-pay-label:hover,
#od_pay_sl #sod_frm_paysel .form-check-label.lb_icon:hover {
    border-color:var(--gb-primary);background-color:var(--gb-primary-light)
}
/* checked */
#od_pay_sl #sod_frm_paysel .form-check-input:checked + .of-pay-label,
#od_pay_sl #sod_frm_paysel .form-check-input:checked + .form-check-label.lb_icon {
    border-color:var(--gb-primary);
    background-color:var(--gb-primary-light);
    color:var(--gb-primary);
    box-shadow:0 0 0 1px var(--gb-primary);
    font-weight:600
}
#od_pay_sl #sod_frm_paysel .form-check-input:checked + .of-pay-label i {color:var(--gb-primary)}
/* focus-visible */
#od_pay_sl #sod_frm_paysel .form-check-input:focus-visible + .of-pay-label,
#od_pay_sl #sod_frm_paysel .form-check-input:focus-visible + .form-check-label.lb_icon {
    outline:2px solid var(--gb-border-focus);outline-offset:2px
}

/* 결제수단 1열 (모바일) */
@media (max-width:575.98px) {
    .of-pay-methods {grid-template-columns:1fr}
}

/* PG 아이콘 (이미지 기반) — 2-ID: 로고 이미지 + text-indent 복원 */
#od_pay_sl #sod_frm_paysel .kakaopay_icon,
#od_pay_sl #sod_frm_paysel .naverpay_icon,
#od_pay_sl #sod_frm_paysel .PAYCO,
#od_pay_sl #sod_frm_paysel .paycopay_icon,
#od_pay_sl #sod_frm_paysel .KPAY,
#od_pay_sl #sod_frm_paysel .PAYNOW,
#od_pay_sl #sod_frm_paysel .inicis_lpay,
#od_pay_sl #sod_frm_paysel .inicis_kakaopay,
#od_pay_sl #sod_frm_paysel .samsungpay_icon,
#od_pay_sl #sod_frm_paysel .ssgpay_icon,
#od_pay_sl #sod_frm_paysel .skpay_icon {
    background-repeat:no-repeat;background-position:center;background-size:auto 24px;
    text-indent:-9999px;min-height:48px
}
#od_pay_sl #sod_frm_paysel .kakaopay_icon {background-image:url('../img/kakao.png')}
#od_pay_sl #sod_frm_paysel .PAYCO,
#od_pay_sl #sod_frm_paysel .paycopay_icon {background-image:url('../img/payco.png')}
#od_pay_sl #sod_frm_paysel .KPAY {background-image:url('../img/kpay.png')}
#od_pay_sl #sod_frm_paysel .PAYNOW {background-image:url('../img/paynow.png')}
#od_pay_sl #sod_frm_paysel .inicis_lpay {background-image:url('../img/lpay_logo.png')}
#od_pay_sl #sod_frm_paysel .inicis_kakaopay {background-image:url('../img/kakao.png')}
#od_pay_sl #sod_frm_paysel .inicis_kakaopay em {display:none}
#od_pay_sl #sod_frm_paysel .samsungpay_icon {background-image:url('../img/samsungpay.png')}
#od_pay_sl #sod_frm_paysel .ssgpay_icon {background-image:url('../img/ssgpay_icon.png')}
#od_pay_sl #sod_frm_paysel .skpay_icon {background-image:url('../img/skpay11_icon.png');background-size:70px auto}
#od_pay_sl #sod_frm_paysel .naverpay_icon {background-image:url('../img/ico-default-naverpay.png')}
#od_pay_sl #sod_frm_paysel .naverpay_icon.nhnkcp_icon {text-indent:0;background-position:center 30%;padding-top:28px;text-align:center;font-size:var(--gb-font-xs)}

/* --- 포인트 사용 --- */
.of-point {
    margin-top:1rem;
    padding:0.875rem;
    background:var(--gb-surface-sunken);
    border:1px solid var(--gb-border-subtle);
    border-radius:var(--gb-radius)
}
.of-point-input {margin-bottom:0.5rem}
.of-point-label {font-size:var(--gb-font-sm);font-weight:600;color:var(--gb-text-primary);margin-bottom:0.375rem;display:block}
.of-point-info {font-size:var(--gb-font-xs);color:var(--gb-text-secondary);display:flex;flex-wrap:wrap;gap:0.5rem 1rem}
.of-point-info strong {color:var(--gb-text-primary);font-weight:600}
.of-point-info em {font-style:normal;color:var(--gb-primary);font-weight:600}

/* --- 무통장입금 안내 --- */
.of-bank-info {
    display:none;
    margin-top:0.75rem;
    padding:0.875rem;
    background:var(--gb-surface-sunken);
    border:1px solid var(--gb-border-subtle);
    border-radius:var(--gb-radius)
}
.of-bank-info .form-select,
.of-bank-info .form-control {font-size:var(--gb-font-sm)}
.of-bank-depositor {margin-top:0.5rem}
.of-bank-depositor .form-label {font-size:var(--gb-font-sm);font-weight:600;color:var(--gb-text-primary)}

/* --- PG 주문 버튼 영역 (orderform.3 출력) --- */
.of-sidebar .of-section + #display_pay_process,
.of-sidebar input[type="submit"],
.of-sidebar .btn_submit,
.of-sidebar #sod_frm_escrow {margin-top:0.75rem}

/* 다크모드 — PG 로고 배경·결제수단 active (2-ID + attr) */
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .kakaopay_icon,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .naverpay_icon,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .PAYCO,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .paycopay_icon,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .KPAY,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .PAYNOW,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .inicis_lpay,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .inicis_kakaopay,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .samsungpay_icon,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .ssgpay_icon,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .skpay_icon {
    background-color:var(--gb-surface-raised);
    filter:brightness(0.9)
}
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .form-check-input:checked + .kakaopay_icon,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .form-check-input:checked + .naverpay_icon,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .form-check-input:checked + .PAYCO,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .form-check-input:checked + .paycopay_icon,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .form-check-input:checked + .KPAY,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .form-check-input:checked + .PAYNOW,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .form-check-input:checked + .inicis_lpay,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .form-check-input:checked + .inicis_kakaopay,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .form-check-input:checked + .samsungpay_icon,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .form-check-input:checked + .ssgpay_icon,
[data-theme="dark"] #od_pay_sl #sod_frm_paysel .form-check-input:checked + .skpay_icon {
    background-color:var(--gb-primary-light);
    filter:none
}

/* --- PG 결제 레이어 — Bootstrap 5 `.fade` 충돌 해결 ---
   이니시스 SDK가 `.fade.in` (BS3) 패턴 사용 → BS5 `.fade { opacity:0 }` 에 의해 투명 처리됨.
   `.fade.show` (BS5) 대신 `.fade.in` 을 인식하도록 오버라이드 */
.inipay_modal.fade.in {opacity:1}

/* --- 모바일 반응형 --- */
@media (max-width:991.98px) {
    .of-sidebar {margin-top:0.5rem}
    .of-summary-total strong {font-size:1.25rem}
    .of-grand-total strong {font-size:1.25rem}
}

@media (max-width:575.98px) {
    .of-section-body {padding:1rem 0.875rem}
    .of-summary-body {padding:0.625rem 0.75rem}
    .of-summary-total {padding:0.75rem}
    .of-summary-header {padding:0.625rem 0.75rem}
    .of-coupon-row {flex-direction:column;gap:0.25rem}
    .of-coupon-value {text-align:left}
    .of-addr-group {flex-direction:column}
    .of-addr-zip {flex:1}
}

/* --- 배송지 목록 모달 --- */
#ofAddrModal .of-addr-item {display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.25rem}
#ofAddrModal .of-addr-item + .of-addr-item {border-top:1px solid var(--gb-border-default)}
#ofAddrModal .of-addr-info {flex:1;min-width:0}
#ofAddrModal .of-addr-name {font-weight:600;margin-bottom:0.25rem;color:var(--gb-text-primary)}
#ofAddrModal .of-addr-detail {font-size:var(--gb-font-sm);color:var(--gb-text-secondary)}
#ofAddrModal .of-addr-address {font-size:var(--gb-font-sm);color:var(--gb-text-tertiary);margin-top:0.125rem;word-break:keep-all}
#ofAddrModal .of-addr-actions {display:flex;flex-shrink:0;gap:0.375rem;align-items:center}
@media (max-width:575.98px) {
    #ofAddrModal .of-addr-item {flex-direction:column;gap:0.625rem;padding:0.875rem 1rem}
    #ofAddrModal .of-addr-actions {width:100%}
    #ofAddrModal .of-addr-actions .btn {flex:1}
}

/* --- #forderform 레거시 오버라이드 (새 레이아웃에서 flex 충돌 방지) --- */
#forderform {display:block}


/* ========================================
   마이페이지 (mp-*)
   ======================================== */

/* --- 프로필 카드 --- */
.mp-profile {background:var(--gb-surface-card);border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg);padding:var(--gb-space-6);margin-bottom:var(--gb-space-6)}
.mp-profile-top {display:flex;align-items:center;gap:var(--gb-space-4);flex-wrap:wrap}
.mp-avatar {width:56px;height:56px;flex-shrink:0}
.mp-avatar img {width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid var(--gb-border-subtle)}
.mp-info {flex:1;min-width:0}
.mp-name {font-size:var(--gb-font-xl);font-weight:var(--gb-font-semibold);color:var(--gb-text-primary);margin:0 0 var(--gb-space-2);line-height:var(--gb-leading-tight)}
.mp-badges {display:flex;gap:var(--gb-space-2);flex-wrap:wrap}
.mp-badge {display:inline-flex;align-items:center;gap:0.375rem;padding:0.25rem 0.75rem;border-radius:var(--gb-radius-full);font-size:var(--gb-font-sm);font-weight:var(--gb-font-medium);text-decoration:none;transition:all var(--gb-transition)}
.mp-badge-point {background:var(--gb-primary-light);color:var(--gb-primary)}
.mp-badge-point:hover {background:var(--gb-primary-light-hover);color:var(--gb-primary)}
.mp-badge-coupon {background:var(--gb-surface-sunken);color:var(--gb-text-secondary)}
.mp-badge-coupon:hover {background:var(--gb-border-default);color:var(--gb-text-primary)}
.mp-actions {display:flex;gap:var(--gb-space-2);flex-wrap:wrap;margin-top:var(--gb-space-4)}
.mp-detail {margin-top:var(--gb-space-4);padding-top:var(--gb-space-4);border-top:1px solid var(--gb-border-subtle)}
.mp-detail-row {display:flex;padding:var(--gb-space-2) 0;font-size:var(--gb-font-sm)}
.mp-detail-label {width:7rem;flex-shrink:0;color:var(--gb-text-tertiary)}
.mp-detail-value {color:var(--gb-text-primary);word-break:break-all}
.mp-collapse-btn {display:flex;align-items:center;justify-content:center;gap:0.375rem;margin:var(--gb-space-3) auto 0;color:var(--gb-text-tertiary);font-size:var(--gb-font-sm);background:none;border:none;padding:var(--gb-space-1) var(--gb-space-3);border-radius:var(--gb-radius);cursor:pointer;transition:color var(--gb-transition)}
.mp-collapse-btn:hover {color:var(--gb-text-primary)}
.mp-collapse-btn:focus-visible {outline:2px solid var(--gb-primary);outline-offset:2px}
.mp-collapse-btn[aria-expanded="true"] .fa-chevron-down {transform:rotate(180deg)}
.mp-collapse-btn .fa-chevron-down {transition:transform var(--gb-transition-normal)}
.mp-leave-link {font-size:var(--gb-font-xs);color:var(--gb-danger);text-decoration:none}
.mp-leave-link:hover {color:var(--gb-danger-hover);text-decoration:underline}

/* --- 스탯 카드 --- */
.mp-stats {display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gb-space-3);margin-bottom:var(--gb-space-6)}
.mp-stat-card {display:flex;align-items:center;gap:var(--gb-space-3);padding:var(--gb-space-4) var(--gb-space-5);background:var(--gb-surface-card);border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg);text-decoration:none;color:inherit;transition:all var(--gb-transition-normal)}
.mp-stat-card:hover {box-shadow:var(--gb-shadow);transform:translateY(-2px);color:inherit;text-decoration:none}
.mp-stat-card:focus-visible {outline:2px solid var(--gb-primary);outline-offset:2px}
.mp-stat-icon {width:2.5rem;height:2.5rem;border-radius:var(--gb-radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem}
.mp-stat-icon-preparing {background:var(--gb-primary-light);color:var(--gb-primary)}
.mp-stat-icon-shipping {background:var(--gb-success-light);color:var(--gb-success)}
.mp-stat-icon-complete {background:var(--gb-surface-sunken);color:var(--gb-text-secondary)}
.mp-stat-icon-cancel {background:var(--gb-danger-light);color:var(--gb-danger)}
.mp-stat-body {min-width:0}
.mp-stat-count {font-size:var(--gb-font-xl);font-weight:var(--gb-font-bold);line-height:1;color:var(--gb-text-primary)}
.mp-stat-label {font-size:var(--gb-font-xs);color:var(--gb-text-tertiary);margin-top:0.125rem}

/* --- 다크모드 스탯 아이콘 --- */
[data-theme="dark"] .mp-stat-icon-shipping {background:rgba(22,163,74,0.15)}
[data-theme="dark"] .mp-stat-icon-cancel {background:rgba(220,38,38,0.15)}

/* --- 섹션 카드 (주문내역 / 위시리스트) --- */
.mp-section {background:var(--gb-surface-card);border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg);margin-bottom:var(--gb-space-6);overflow:hidden}
.mp-section-header {display:flex;justify-content:space-between;align-items:center;padding:var(--gb-space-4) var(--gb-space-5);border-bottom:1px solid var(--gb-border-subtle)}
.mp-section-title {font-size:var(--gb-font-base);font-weight:var(--gb-font-semibold);color:var(--gb-text-primary);margin:0}
.mp-section-body {padding:var(--gb-space-5)}

/* --- 위시리스트 그리드 --- */
.mp-wish-grid {display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gb-space-3)}
.mp-wish-card {background:var(--gb-surface-raised);border:1px solid var(--gb-border-subtle);border-radius:var(--gb-radius);overflow:hidden;transition:all var(--gb-transition-normal)}
.mp-wish-card:hover {box-shadow:var(--gb-shadow-sm);transform:translateY(-2px)}
.mp-wish-img {aspect-ratio:1/1;overflow:hidden;background:var(--gb-surface-sunken)}
.mp-wish-img img {width:100%;height:100%;object-fit:cover;transition:transform var(--gb-transition-slow)}
.mp-wish-card:hover .mp-wish-img img {transform:scale(1.04)}
.mp-wish-body {padding:var(--gb-space-2) var(--gb-space-3) var(--gb-space-3)}
.mp-wish-name {font-size:var(--gb-font-sm);color:var(--gb-text-primary);text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:var(--gb-leading-tight)}
.mp-wish-name:hover {color:var(--gb-primary)}
.mp-wish-date {font-size:var(--gb-font-xs);color:var(--gb-text-tertiary);margin-top:var(--gb-space-1)}
.mp-empty {text-align:center;color:var(--gb-text-tertiary);padding:var(--gb-space-8) var(--gb-space-4);font-size:var(--gb-font-sm)}

/* --- 반응형 (md 이상 4열) --- */
@media (min-width:768px) {
    .mp-stats {grid-template-columns:repeat(4,1fr)}
    .mp-wish-grid {grid-template-columns:repeat(4,1fr)}
}


/* ========================================
   쿠폰 (cp-*)
   ======================================== */

.cp-summary {display:flex;align-items:center;gap:var(--gb-space-3);padding:var(--gb-space-4) var(--gb-space-5);background:var(--gb-surface-card);border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg);margin-bottom:var(--gb-space-5)}
.cp-summary-icon {width:2.5rem;height:2.5rem;border-radius:var(--gb-radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem;background:var(--gb-primary-light);color:var(--gb-primary)}
.cp-summary-body {min-width:0}
.cp-summary-count {font-size:var(--gb-font-xl);font-weight:var(--gb-font-bold);line-height:1;color:var(--gb-text-primary)}
.cp-summary-label {font-size:var(--gb-font-xs);color:var(--gb-text-tertiary);margin-top:0.125rem}
.cp-list {display:flex;flex-direction:column;gap:var(--gb-space-3)}
.cp-coupon-card {background:var(--gb-surface-card);border:1px solid var(--gb-border-default);border-left:4px solid var(--gb-primary);border-radius:var(--gb-radius-lg);padding:var(--gb-space-4) var(--gb-space-5);transition:all var(--gb-transition-normal)}
.cp-coupon-card:hover {box-shadow:var(--gb-shadow);transform:translateY(-2px)}
.cp-coupon-card.cp-method-0 {border-left-color:var(--gb-primary)}
.cp-coupon-card.cp-method-1 {border-left-color:var(--gb-warning)}
.cp-coupon-card.cp-method-2 {border-left-color:var(--gb-success)}
.cp-coupon-card.cp-method-3 {border-left-color:var(--gb-info)}
.cp-coupon-name {font-weight:var(--gb-font-semibold);color:var(--gb-text-primary);flex:1;min-width:0}
.cp-discount {font-size:var(--gb-font-lg);font-weight:var(--gb-font-bold);color:var(--gb-danger);flex-shrink:0;margin-left:var(--gb-space-3)}
.cp-coupon-meta {display:flex;align-items:center;gap:var(--gb-space-3);margin-top:var(--gb-space-2)}
.cp-target {font-size:var(--gb-font-sm);color:var(--gb-text-secondary)}
.cp-dday {font-size:var(--gb-font-xs);font-weight:var(--gb-font-semibold);padding:0.125rem 0.5rem;border-radius:var(--gb-radius-full);background:var(--gb-surface-sunken);color:var(--gb-text-tertiary)}
.cp-dday-soon {background:var(--gb-warning-light);color:var(--gb-warning-dark)}
.cp-dday-urgent {background:var(--gb-danger-light);color:var(--gb-danger)}
.cp-period {font-size:var(--gb-font-xs);color:var(--gb-text-tertiary);margin-top:var(--gb-space-2)}
.cp-period i {margin-right:0.25rem}
@media (prefers-reduced-motion:reduce) {.cp-coupon-card {transition:none}}


/* ========================================
   포인트 (pt-*)
   ======================================== */

.pt-stats {display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gb-space-3);margin-bottom:var(--gb-space-5)}
.pt-stat-card {display:flex;align-items:center;gap:var(--gb-space-3);padding:var(--gb-space-4) var(--gb-space-5);background:var(--gb-surface-card);border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg);transition:all var(--gb-transition-normal)}
.pt-stat-card:hover {box-shadow:var(--gb-shadow);transform:translateY(-2px)}
.pt-stat-icon {width:2.5rem;height:2.5rem;border-radius:var(--gb-radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem}
.pt-stat-icon-balance {background:var(--gb-primary-light);color:var(--gb-primary)}
.pt-stat-icon-plus {background:var(--gb-success-light);color:var(--gb-success)}
.pt-stat-icon-minus {background:var(--gb-danger-light);color:var(--gb-danger)}
.pt-stat-body {min-width:0}
.pt-stat-count {font-size:var(--gb-font-xl);font-weight:var(--gb-font-bold);line-height:1;color:var(--gb-text-primary)}
.pt-stat-label {font-size:var(--gb-font-xs);color:var(--gb-text-tertiary);margin-top:0.125rem}
[data-theme="dark"] .pt-stat-icon-plus {background:rgba(22,163,74,0.15)}
[data-theme="dark"] .pt-stat-icon-minus {background:rgba(220,38,38,0.15)}
.pt-list-wrap {background:var(--gb-surface-card);border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg);overflow:hidden}
.pt-list-item {padding:var(--gb-space-3) var(--gb-space-4);border-bottom:1px solid var(--gb-border-subtle);border-left:3px solid transparent;transition:all 0.15s ease}
.pt-list-item:last-child {border-bottom:none}
.pt-list-item:hover {background:var(--gb-surface-raised);border-left-color:var(--gb-primary)}
.pt-list-content {font-size:var(--gb-font-sm);font-weight:var(--gb-font-medium);color:var(--gb-text-primary);margin-bottom:0.125rem}
.pt-list-meta {font-size:var(--gb-font-xs);color:var(--gb-text-tertiary)}
.pt-list-expire {color:var(--gb-text-tertiary)}
.pt-list-badge {font-size:var(--gb-font-sm) !important;min-width:5rem;text-align:right;flex-shrink:0}
.pt-list-item .text-decoration-line-through {opacity:0.6}
.pt-list-summary {display:flex;justify-content:space-between;align-items:center;padding:var(--gb-space-3) var(--gb-space-4);background:var(--gb-surface-sunken);border:1px solid var(--gb-border-default);border-radius:var(--gb-radius-lg);font-weight:var(--gb-font-semibold);font-size:var(--gb-font-sm);margin-top:var(--gb-space-3);color:var(--gb-text-primary)}
@media (max-width:575.98px) {
    .pt-stats {grid-template-columns:1fr}
    .pt-stat-card {padding:var(--gb-space-3) var(--gb-space-4)}
}
@media (prefers-reduced-motion:reduce) {.pt-stat-card,.pt-list-item {transition:none}}


/* ========================================
   반응형: 모바일 터치 타겟·테이블 보호
   ======================================== */

@media (max-width:767.98px) {
    /* 페이지네이션 — WCAG 2.5.5 min 44px */
    .pg_page, .pg_current {min-width:40px;min-height:40px;line-height:40px}
    /* 레거시 버튼 */
    .btn_list button, .btn_submit {min-height:44px;padding:10px 20px}
    /* 장바구니 수량 */
    .cart_qty_btn {min-width:36px;min-height:36px}
    /* 옵션 select */
    .sit_opt_added select, .mod_options_tbl select {min-height:44px}
    /* 테이블 수평 스크롤 */
    .tbl_head02, .tbl_head03 {display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
    /* 폼 테이블 블록화 */
    .tbl_frm01 {display:block}
    .tbl_frm01 thead {display:none}
    .tbl_frm01 tbody, .tbl_frm01 tr, .tbl_frm01 td {display:block;width:100%}
    /* 고정 너비 → 유동 */
    .list_02, .form_01 {max-width:100%}
}


/* ========================================
   접근성: 키보드 포커스 표시
   ======================================== */

.btn_01:focus-visible,
.btn_02:focus-visible,
.btn_submit:focus-visible,
.btn_cancel:focus-visible,
.btn_frmline:focus-visible,
.btn_b01:focus-visible,
.btn_b02:focus-visible,
.btn_b03:focus-visible,
.btn_b04:focus-visible,
.btn_admin:focus-visible,
.btn_list button:focus-visible,
.pg_page:focus-visible,
.pg_current:focus-visible,
.win_ul li a:focus-visible,
.sanchor li a:focus-visible {outline:2px solid var(--gb-border-focus);outline-offset:2px}

/* 커스텀 체크박스·라디오 — 키보드 포커스 복원 */
.chk_box input[type="checkbox"]:focus-visible + label,
.chk_box input[type="radio"]:focus-visible + label {outline:2px solid var(--gb-border-focus);outline-offset:2px}


/* ========================================
   접근성: 모션 감소
   ======================================== */

@media (prefers-reduced-motion:reduce) {
    .btn_01, .btn_02, .btn_submit, .btn_cancel,
    .btn_frmline, .btn_b01, .btn_b02, .btn_b03, .btn_b04,
    .btn_admin, .btn_list button,
    .pg_page, .pg_current,
    .win_ul li a, .sanchor li a {transition:none !important}
}


/* ==========================================================================
   15. 이벤트 모음 (ev-*)
   ========================================================================== */

.ev-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.ev-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--gb-text-primary);
    margin: 0;
}

/* 카드 */
.ev-card-link {
    text-decoration: none;
    color: inherit;
    display: block;
}
.ev-card {
    background: var(--gb-surface-card);
    border: 1px solid var(--gb-border-default);
    border-radius: var(--gb-radius-lg, 0.5rem);
    overflow: hidden;
    height: 100%;
    transition: transform 0.2s var(--gb-ease-out, ease-out),
                box-shadow 0.2s var(--gb-ease-out, ease-out);
}
.ev-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--gb-shadow-lg, 0 8px 24px rgba(0,0,0,.12));
}

/* 카드 내 상품 목록 */
.ev-card .list-group-item {
    background: var(--gb-surface-card);
    border-color: var(--gb-border-default);
    color: var(--gb-text-primary);
}
.ev-card .list-group-item a {
    color: var(--gb-text-primary);
}
.ev-card .list-group-item a:hover {
    color: var(--gb-primary);
}

/* 이미지 */
.ev-card-img {
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.ev-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s var(--gb-ease-out, ease-out);
}
.ev-card:hover .ev-card-img img {
    transform: scale(1.03);
}

/* 플레이스홀더 */
.ev-card-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--gb-surface-raised);
    padding: 1.5rem;
}
.ev-card-placeholder-text {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--gb-text-tertiary);
    text-align: center;
    word-break: keep-all;
}

/* 본문 */
.ev-card-body {
    padding: 0.75rem 1rem;
}
.ev-card-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--gb-text-primary);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 빈 상태 */
.ev-empty {
    background: var(--gb-surface-card);
    border: 1px solid var(--gb-border-default);
    border-radius: var(--gb-radius-lg, 0.5rem);
}

/* 페이징 */
.ev-paging {
    display: flex;
    justify-content: center;
}

/* 반응형 */
@media (max-width: 767.98px) {
    .ev-title { font-size: 1.25rem }
    .ev-card-body { padding: 0.625rem 0.75rem }
}

@media (prefers-reduced-motion: reduce) {
    .ev-card { transition: none }
    .ev-card-img img { transition: none }
}

/* ============================================================
   약관 동의 관리 (mp-consent-*)
   ============================================================ */
.mp-consent-manage .mp-section-body {padding:var(--gb-space-4) var(--gb-space-5)}
.mp-consent-group {margin-bottom:var(--gb-space-5)}
.mp-consent-group:last-child {margin-bottom:0}
.mp-consent-group-header {display:flex;align-items:center;margin-bottom:var(--gb-space-3);padding-bottom:var(--gb-space-2);border-bottom:1px solid var(--gb-border-subtle)}
.mp-consent-list {display:flex;flex-direction:column;gap:var(--gb-space-2)}
.mp-consent-row {display:flex;justify-content:space-between;align-items:center;padding:var(--gb-space-3);border-radius:var(--gb-radius-md);background:var(--gb-surface-page);gap:var(--gb-space-3)}
.mp-consent-info {display:flex;align-items:center;flex-wrap:wrap;gap:var(--gb-space-2);min-width:0}
.mp-consent-name {font-size:var(--gb-font-sm);font-weight:var(--gb-font-medium);color:var(--gb-text-primary)}
.mp-consent-status {flex-shrink:0}
.mp-consent-badge {display:inline-flex;align-items:center;gap:var(--gb-space-1);font-size:var(--gb-font-xs);padding:var(--gb-space-1) var(--gb-space-2);border-radius:var(--gb-radius-full)}
.mp-consent-badge-agreed {color:var(--gb-success);background:var(--gb-success-light)}
.mp-consent-badge-pending {color:var(--gb-text-tertiary);background:var(--gb-surface-raised)}
.mp-consent-footer {margin-top:var(--gb-space-3);padding-top:var(--gb-space-3);border-top:1px solid var(--gb-border-subtle)}
.mp-consent-detail-btn {font-size:var(--gb-font-xs);color:var(--gb-text-link);text-decoration:none}
.mp-consent-detail-btn:hover {text-decoration:underline}
.mp-consent-content {max-height:200px;overflow-y:auto;font-size:var(--gb-font-xs);color:var(--gb-text-secondary);background:var(--gb-surface-page);border-color:var(--gb-border-subtle)}

/* 동의 관리 form-switch 레이블 */
.mp-consent-manage .form-check-label {min-width:3em;text-align:center}

/* 동의 관리 반응형 */
@media (max-width: 575.98px) {
    .mp-consent-row {flex-direction:column;align-items:flex-start;gap:var(--gb-space-2)}
    .mp-consent-status {align-self:flex-end}
}
