/* [pliki 테마] 주문서 (orderform) — 영카트 표준 마크업(sod_*)을 카드형으로 리스타일
   Shopify 스타일: 좌측 입력 흐름 + 우측 고정 결제 요약 */

#sod_frm { max-width: var(--max); margin: 0 auto; padding: 26px 20px 40px; }

/* 주문상품 목록 */
#sod_list { width: 100%; border-top: 2px solid #111; margin-bottom: 30px; }
#sod_list th {
    padding: 12px 8px; font-size: 12px; color: #666; border-bottom: 1px solid var(--line);
    font-weight: 600; text-align: center;
}
#sod_list td { padding: 14px 8px; border-bottom: 1px solid var(--line); font-size: 13px; text-align: center; vertical-align: middle; }
#sod_list .sod_img img { border-radius: 8px; background: var(--bg-thumb); }
#sod_list .sod_name { text-align: left; }
#sod_list .sod_name a { font-weight: 600; }
#sod_list .sod_opt { color: var(--gray); font-size: 12px; margin-top: 4px; }
#sod_list .td_numbig { font-weight: 700; }

/* 좌/우 2단 (grid) */
#sod_frm { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 0 28px; align-items: start; }
#sod_frm > .od_prd_list { grid-column: 1 / -1; width: 100%; max-width: none; padding: 0 0 26px; }
#sod_frm > .od_prd_list::before { text-align: left; font-size: 20px; margin-bottom: 14px; }
#sod_frm .tbl_wrap > table, #sod_frm_orderer table, #sod_frm_taker table { min-width: 0; width: 100%; }
.sod_left { min-width: 0; }
.sod_right { position: sticky; top: 76px; }
#sod_frm::after { content: none; }

/* 주문상품 표 — 이미지+상품명 좌측 정렬, 나머지 중앙 */
.od_prd_list { overflow: visible; }
#sod_list { min-width: 0 !important; }
#sod_list th:first-child, #sod_list td.td_prd { text-align: left; padding-left: 4px; }
#sod_list td.td_prd { display: flex; align-items: center; gap: 14px; border-bottom: 0; }
#sod_list tbody tr { border-bottom: 1px solid var(--line); }
#sod_list .sod_img img { width: 72px; height: 72px; object-fit: cover; border-radius: 10px; background: var(--bg-thumb); display: block; }
#sod_list .sod_name { text-align: left; min-width: 0; }
#sod_list .sod_name a { font-weight: 600; font-size: 14px; color: #111; }
#sod_list .sod_opt { color: var(--gray); font-size: 12px; margin-top: 4px; }
#sod_list td { vertical-align: middle; }
#sod_list .td_numbig, #sod_list .td_num, #sod_list .td_dvr { text-align: center !important; }

/* 입력 섹션 카드 */
#sod_frm_orderer, #sod_frm_taker, #sod_frm_pay {
    border: 1px solid var(--line); border-radius: 14px; padding: 22px 22px 18px; margin-bottom: 16px; background: #fff;
}
#sod_frm section h2 { font-size: 16px; font-weight: 800; letter-spacing: -0.5px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
#sod_frm section h3 { font-size: 14px; font-weight: 700; margin: 18px 0 10px; }

/* 폼 테이블 → 2열 그리드 (반폭 행 2개씩, 전체폭 행은 span) */
#sod_frm_orderer table, #sod_frm_taker table { width: 100%; }
#sod_frm_orderer colgroup, #sod_frm_taker colgroup, #sod_frm_pay colgroup, #sod_frm_orderer thead, #sod_frm_taker thead { display: none; }
#sod_frm_orderer tbody, #sod_frm_taker tbody { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px; }
#sod_frm_orderer tr, #sod_frm_taker tr { display: block; min-width: 0; }
#sod_frm_orderer tr.row-full, #sod_frm_taker tr.row-full { grid-column: 1 / -1; }
#sod_frm_orderer th, #sod_frm_taker th { display: block; text-align: left; font-size: 12.5px; font-weight: 600; color: #444; padding: 8px 0 5px; width: auto; }
#sod_frm_orderer td, #sod_frm_taker td { display: block; padding: 0; }
#sod_frm_pay tr, #sod_frm_pay tbody { display: block; }
#sod_list th, #sod_list td:not(.td_prd) { display: table-cell; }

.frm_input, #sod_frm select, #sod_frm textarea {
    width: 100%; padding: 11px 13px; border: 1px solid #d9d9d9; border-radius: 10px;
    font-size: 14px; background: #fff; margin-bottom: 4px;
}
.frm_input:focus, #sod_frm textarea:focus { outline: none; border-color: #111; }
#sod_frm textarea { min-height: 72px; resize: vertical; }
/* 주소: 우편번호 + 검색 버튼 한 줄, 아래 주소 3줄 */
#sod_frm td .frm_address { margin-top: 6px; }
#od_zip, #od_b_zip { width: 140px !important; display: inline-block; vertical-align: top; }
.btn_address { padding: 11px 14px; background: #111; color: #fff; border-radius: 10px; font-size: 13px; font-weight: 700; margin-left: 6px; vertical-align: top; height: 44px; }
#sod_frm_taker td br { display: none; }
#sod_frm_orderer td br { display: none; }
.pk-od-help { font-size: 12px; color: var(--gray); margin-top: 4px; }
.pk-od-help a { text-decoration: underline; color: #333; }

/* 배송지 선택 — 칩 라디오 */
#sod_frm_taker .sod_frm_dvr { display: flex; gap: 8px; flex-wrap: wrap; margin: 2px 0 6px; }
#sod_frm_taker .sod_frm_dvr input[type=radio], #sod_frm_taker .sod_frm_dvr input[type=checkbox] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
#sod_frm_taker .sod_frm_dvr label { display: inline-block; padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; font-size: 12.5px; color: #444; cursor: pointer; }
#sod_frm_taker .sod_frm_dvr input:checked + label { background: #111; color: #fff; border-color: #111; }
#sod_frm_taker label[for=ad_default] { font-size: 12.5px; color: #555; display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; }

/* 우측 결제 요약 */
#sod_bsk_tot {
    border: 1px solid var(--line); border-radius: 14px; padding: 22px; background: var(--bg-soft);
    margin-bottom: 14px;
}
/* li 구조: span(라벨) + strong(숫자) + '원'(텍스트노드) — space-between을 쓰면 3등분되므로
   라벨에만 margin-right:auto 를 줘 숫자+단위를 우측에 붙인다 */
#sod_bsk_tot li {
    display: flex; align-items: baseline; gap: 2px; padding: 7px 0; font-size: 13px; color: #444;
}
#sod_bsk_tot li > span:first-child { margin-right: auto; }
#sod_bsk_tot li strong { font-weight: 700; color: #111; }
#sod_bsk_tot .sod_bsk_cnt {
    border-top: 1px solid #ddd; margin-top: 10px; padding-top: 14px; font-size: 15px; font-weight: 800;
}
#sod_bsk_tot .sod_bsk_cnt strong { color: var(--red); font-size: 20px; }

/* 결제정보/수단 */
#sod_frm_pay table { width: 100%; }
#sod_frm_pay th { display: block; text-align: left; font-size: 13px; font-weight: 600; padding: 12px 0 6px; }
#sod_frm_pay td { display: block; padding: 0; }
#sod_frm_paysel { border: 0; }
#sod_frm_paysel legend { font-size: 13px; font-weight: 700; margin-bottom: 8px; }
#sod_frm_paysel .lb_icon, #sod_frm_paysel label {
    display: inline-flex; align-items: center; gap: 6px; margin: 4px 10px 4px 0; font-size: 13px;
}
#sod_frm_pt_alert { font-size: 12px; color: var(--gray); background: var(--bg-soft); border-radius: 8px; padding: 10px 12px; margin-bottom: 10px; }
.sod_frm_point { margin-top: 14px; font-size: 13px; }
#sod_frm_pt input { width: 120px; display: inline-block; }

/* 쿠폰 버튼 → 할인코드 스타일 */
.cp_btn, #od_coupon_btn {
    padding: 10px 14px; border: 1px solid #111; border-radius: 8px; background: #fff;
    font-size: 12px; font-weight: 700;
}
.cp_btn:hover { background: #111; color: #fff; }

/* 최종 주문 버튼 */
#sod_frm_orderbtn, .btn_submit {
    width: 100%; padding: 16px 0; background: #111; color: #fff !important; border-radius: 12px;
    font-size: 16px; font-weight: 800; text-align: center; display: block; border: 0; cursor: pointer;
}
#sod_frm_orderbtn:hover, .btn_submit:hover { opacity: .9; }

/* 약관/유의사항 */
#sod_frm .sod_ta_wr, #sod_frm .idpw_wr { font-size: 12px; color: var(--gray); }

/* 반응형 */
@media (max-width: 1024px) {
    #sod_frm { grid-template-columns: 1fr; gap: 0; }
    .sod_right { position: static; }
}
@media (max-width: 768px) {
    #sod_frm { padding: 12px 14px 90px; }
    /* 주문상품: 카드형 (표 헤더 숨김, 이미지+상품명+금액) */
    #sod_list thead { display: none; }
    #sod_list, #sod_list tbody { display: block; }
    #sod_list tbody tr { display: grid; grid-template-columns: 1fr auto; align-items: center; padding: 12px 0; }
    #sod_list td.td_prd { grid-column: 1; grid-row: 1 / span 2; padding: 0; }
    #sod_list td.td_num { grid-column: 2; grid-row: 1; display: block; font-size: 12px; color: var(--gray); text-align: right !important; padding: 0; }
    #sod_list td.td_num::before { content: '수량 '; }
    #sod_list td.td_numbig:nth-of-type(4) { grid-column: 2; grid-row: 2; display: block; font-weight: 800; font-size: 15px; text-align: right !important; padding: 0; }
    #sod_list td.td_numbig:nth-of-type(4)::after { content: '원'; font-size: 12px; font-weight: 400; }
    #sod_list td.td_numbig:nth-of-type(3), #sod_list td.td_numbig:nth-of-type(5), #sod_list td.td_dvr { display: none; }
    #sod_list .sod_img img { width: 64px; height: 64px; }
    #sod_frm_orderer, #sod_frm_taker, #sod_frm_pay { padding: 16px 14px 12px; border-radius: 12px; margin-bottom: 12px; }
    #sod_frm_orderer tbody, #sod_frm_taker tbody { grid-template-columns: 1fr 1fr; gap: 4px 10px; }
    #sod_frm_orderer tr.row-half:has(#od_email), #sod_frm_taker tr.row-half:has(#ad_subject) { grid-column: 1 / -1; }
    #od_zip, #od_b_zip { width: calc(100% - 96px) !important; }
    .btn_address { padding: 11px 12px; margin-left: 4px; }
    #sod_frm_paysel label.lb_icon { width: calc(50% - 6px); padding: 12px 8px; font-size: 13px; }
    /* 하단 고정 결제바 */
    #display_pay_button { position: fixed; left: 0; right: 0; bottom: 0; z-index: 130; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -6px 20px rgba(0,0,0,.06); }
    #display_pay_button .btn_submit { border-radius: 12px; padding: 15px 0; font-size: 15px; }
    body:has(#display_pay_button) .pk-tabbar { display: none; }
}

/* ── 주문내역 목록 (orderinquiry — .tbl_head03) ────── */
.tbl_head03 { max-width: var(--max); margin: 0 auto; padding: 30px 20px 50px; }
.tbl_head03::before { content: '주문내역'; display: block; font-size: 24px; font-weight: 800; letter-spacing: -0.8px; text-align: center; margin-bottom: 26px; }
.tbl_head03 table { width: 100%; border-top: 2px solid #111; font-size: 13px; }
.tbl_head03 thead th { padding: 13px 8px; font-size: 12px; color: #555; border-bottom: 1px solid var(--line); text-align: center; }
.tbl_head03 tbody td { padding: 14px 8px; border-bottom: 1px solid var(--line); text-align: center; }
.tbl_head03 tbody td a { font-weight: 700; }
.tbl_head03 .td_numbig { font-weight: 700; }
.tbl_head03 .empty_table { padding: 80px 0; color: var(--gray); }
/* 주문상태 뱃지 */
.tbl_head03 [class*="status_"] { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; background: var(--badge-bg); color: #666; }
.tbl_head03 .status_02 { background: #fff3e0; color: #d07f00; }   /* 입금확인중 */
.tbl_head03 .status_03, .tbl_head03 .status_04 { background: #e8f1ff; color: #2f6bff; }
.tbl_head03 .status_05 { background: #e9f9ef; color: #1c9c53; }   /* 완료 */

/* ── 주문상세 (orderinquiryview — #sod_fin) ────────── */
#sod_fin { max-width: 960px; margin: 0 auto; padding: 26px 20px 50px; }
#sod_fin_no { font-size: 14px; margin-bottom: 18px; text-align: center; }
#sod_fin_no strong { font-weight: 800; }
#sod_fin h2 { font-size: 16px; font-weight: 800; letter-spacing: -0.5px; margin: 28px 0 12px; }
#sod_fin_list table { width: 100%; border-top: 2px solid #111; font-size: 13px; }
#sod_fin_list th { padding: 12px 8px; font-size: 12px; color: #555; border-bottom: 1px solid var(--line); text-align: center; }
#sod_fin_list td { padding: 14px 8px; border-bottom: 1px solid var(--line); text-align: center; vertical-align: middle; }
#sod_fin_list .sod_img img { border-radius: 8px; background: var(--bg-thumb); }
/* 상태 설명 토글 리스트 */
#sod_sts_wrap { font-size: 12px; color: var(--gray); margin: 10px 0; }
#sod_sts_explan { background: var(--bg-soft); border-radius: 10px; padding: 14px 16px; margin-top: 8px; }
#sod_sts_explan dt { font-weight: 700; color: #333; margin-top: 8px; }
#sod_sts_explan dd { margin-bottom: 4px; }
#sod_sts_explan_open, #sod_sts_explan_close { font-size: 12px; color: #555; border: 1px solid var(--line); border-radius: 999px; padding: 5px 12px; background: #fff; }
/* 주문자/수령인 정보 테이블 */
#sod_fin_orderer table, #sod_fin_receiver table, #sod_fin_dvr table, #sod_fin_pay table { width: 100%; font-size: 13px; }
#sod_fin_orderer th, #sod_fin_receiver th, #sod_fin_dvr th, #sod_fin_pay th {
    width: 140px; text-align: left; background: var(--bg-soft); padding: 11px 14px;
    border: 1px solid var(--line); font-weight: 600; font-size: 12px;
}
#sod_fin_orderer td, #sod_fin_receiver td, #sod_fin_dvr td, #sod_fin_pay td { padding: 11px 14px; border: 1px solid var(--line); }
/* 금액 요약 */
#sod_bsk_tot2 {
    border: 1px solid var(--line); border-radius: 14px; background: var(--bg-soft);
    padding: 20px 22px; margin: 20px 0; font-size: 13px;
}
#sod_bsk_tot2 li, .sod_fin_tot li { display: flex; justify-content: space-between; padding: 6px 0; }
#sod_bsk_tot2 strong, .sod_fin_tot strong { font-weight: 700; }
.sod_fin_tot { border: 1px solid var(--line); border-radius: 14px; background: var(--bg-soft); padding: 20px 22px; margin: 16px 0; font-size: 13px; }
#sod_fin .sod_bsk_cnt strong { color: var(--red); font-size: 18px; font-weight: 800; }
/* 주문취소 */
#sod_fin_cancel { margin-top: 20px; }
#sod_fin_cancel .sod_fin_c_btn, #sod_fin_cancel > button, a.sod_fin_c_btn {
    padding: 12px 20px; border: 1px solid var(--line); border-radius: 10px; background: #fff;
    font-size: 13px; font-weight: 600; cursor: pointer;
}
#sod_cancel_pop {
    display: none; /* 기본 숨김 — 주문취소 버튼 클릭 시 jQuery show()가 연다 */
    position: fixed; left: 50%; top: 50%; transform: translate(-50%,-50%); z-index: 220;
    background: #fff; border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.22);
    padding: 22px; width: min(400px, calc(100vw - 32px));
}
#sod_cancel_pop h3, #sod_cancel_pop strong { font-size: 15px; font-weight: 800; display: block; margin-bottom: 12px; }
#sod_cancel_pop .frm_input { width: calc(100% - 60px); padding: 12px; border: 1px solid #d9d9d9; border-radius: 10px; }
#sod_cancel_pop .btn_submit { padding: 12px 16px; background: #111; color: #fff; border: 0; border-radius: 10px; font-weight: 700; margin-left: 4px; }
#sod_cancel_pop .sod_cls_btn { position: absolute; top: 12px; right: 12px; border: 0; background: none; color: #999; font-size: 15px; }

/* ── 결제정보 섹션 상세 (#sod_frm_pay) ─────────────── */
#sod_frm_pay .pay_tbl td { font-size: 13px; color: #444; padding: 4px 0 10px; }
#sod_frm_pay .pay_tbl td br + * , #sod_frm_pay .pay_tbl td { line-height: 1.7; }
#sod_frm_pay .pay_tbl strong { font-weight: 700; }
/* 총 주문금액 행 */
#od_tot_price {
    display: flex; align-items: baseline; gap: 2px;
    border-top: 1px solid #111; margin-top: 8px; padding: 16px 2px 14px;
    font-size: 14px; font-weight: 700;
}
#od_tot_price > span { margin-right: auto; }
#od_tot_price strong.print_price { font-size: 24px; font-weight: 900; color: var(--red); letter-spacing: -0.5px; }
/* 결제수단 */
#od_pay_sl h3 { font-size: 14px; font-weight: 700; margin: 16px 0 10px; }
#sod_frm_pt_alert { font-size: 12px; color: var(--gray); background: var(--bg-soft); border-radius: 8px; padding: 10px 12px; margin-bottom: 12px; line-height: 1.6; }
#sod_frm_paysel { border: 0; padding: 0; }
#sod_frm_paysel legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
/* 라디오 → 버튼형 */
#sod_frm_paysel input[type=radio] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
#sod_frm_paysel label.lb_icon {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 13px 20px; margin: 0 6px 8px 0; border: 1.5px solid var(--line); border-radius: 10px;
    font-size: 14px; font-weight: 600; color: #444; cursor: pointer; background: #fff; transition: all .15s;
}
#sod_frm_paysel input[type=radio]:checked + label.lb_icon { border-color: #111; color: #111; font-weight: 800; background: #fff; box-shadow: 0 0 0 1px #111 inset; }
/* 무통장 계좌/입금자명 박스 */
#settle_bank {
    background: var(--bg-soft); border-radius: 10px; padding: 14px 16px; margin-top: 4px;
    font-size: 13px; color: #333; line-height: 2;
}
#settle_bank label[for=od_deposit_name] { font-weight: 600; margin-right: 6px; }
#settle_bank input#od_deposit_name {
    padding: 9px 12px; border: 1px solid #d9d9d9; border-radius: 8px; font-size: 13px; width: 160px; background: #fff;
}

/* 주문하기 아래 취소 링크 → 보조 버튼 */
#sod_frm_cancel, .sod_right > a[href*="cart"], #sod_frm a.btn_cancel {
    display: block; text-align: center; margin-top: 8px; padding: 13px 0;
    border: 1px solid var(--line); border-radius: 12px; font-size: 13px; color: #666; background: #fff;
}

/* ══ 마이페이지 (pk-my-*) ══ */
.pk-my { padding: 30px 20px 60px; }
.pk-my-profile { display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 16px; background: #111; color: #fff; border-radius: 18px; padding: 26px 28px; }
.pk-my-av img, .pk-my-av .no_profile_img, .pk-my-av .mbimg_no { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; background: #333; display: flex; align-items: center; justify-content: center; color: #777; font-size: 24px; }
.pk-my-who b { display: block; font-size: 20px; font-weight: 800; letter-spacing: -0.5px; }
.pk-my-who span { display: block; font-size: 13px; opacity: .65; margin-top: 3px; }
.pk-my-acts { display: flex; gap: 6px; }
.pk-my-acts a { padding: 8px 14px; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; font-size: 12.5px; font-weight: 600; color: #fff; }
.pk-my-acts a:hover { background: #fff; color: #111; }
.pk-my-stats { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 8px; }
.pk-my-stats a { display: block; background: rgba(255,255,255,.08); border-radius: 12px; padding: 14px 16px; }
.pk-my-stats em { display: block; font-style: normal; font-size: 12px; opacity: .65; }
.pk-my-stats b { display: block; font-size: 20px; font-weight: 800; margin-top: 4px; }
.pk-my-stats b small { font-size: 12px; font-weight: 500; margin-left: 2px; opacity: .7; }
.pk-my-menu { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin: 16px 0 26px; }
.pk-my-menu a { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 18px 8px; border: 1px solid var(--line); border-radius: 14px; font-size: 13px; font-weight: 600; color: #333; background: #fff; }
.pk-my-menu a i { font-size: 20px; color: #111; }
.pk-my-menu a:hover { border-color: #111; }
.pk-my-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.pk-my-sec { border: 1px solid var(--line); border-radius: 14px; padding: 22px; background: #fff; }
.pk-my-sec-hd { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.pk-my-sec-hd h2 { font-size: 16px; font-weight: 800; letter-spacing: -0.4px; }
.pk-my-sec-hd h2 small { font-size: 12px; color: var(--gray); font-weight: 600; margin-left: 4px; }
.pk-my-sec-hd a { font-size: 12.5px; color: var(--gray); }
.pk-my-orders li a { display: grid; grid-template-columns: 78px 1fr auto auto; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 13px; }
.pk-my-orders li:first-child a { border-top: 0; }
.pk-my-orders .d { color: var(--gray); font-size: 12.5px; }
.pk-my-orders .n { color: #333; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pk-my-orders .p { font-weight: 800; }
.pk-my-orders .s { font-size: 11.5px; font-weight: 700; padding: 4px 10px; border-radius: 999px; background: var(--badge-bg); color: #666; }
.pk-my-orders .s.wait { background: #fff3e0; color: #d07f00; }
.pk-my-orders .s.paid, .pk-my-orders .s.ship { background: #e8f1ff; color: #2f6bff; }
.pk-my-orders .s.done { background: #e9f9ef; color: #1c9c53; }
.pk-my-orders .s.cancel { background: #fdecec; color: #c0392b; }
.pk-my-wish { grid-template-columns: repeat(4, 1fr); gap: 14px 10px; }
.pk-my-wish .pk-card-badges, .pk-my-wish .pk-card-market, .pk-my-wish .pk-card-buynow { display: none; }
.pk-my-empty { padding: 34px 0; text-align: center; color: var(--gray); font-size: 13.5px; }
.pk-my-empty a { display: block; margin-top: 8px; color: #111; font-weight: 700; }
.pk-my-leave { text-align: right; margin-top: 18px; }
.pk-my-leave a { font-size: 12px; color: var(--gray-l); text-decoration: underline; }
@media (max-width: 1024px) { .pk-my-cols { grid-template-columns: 1fr; } }
@media (max-width: 768px) {
    .pk-my { padding: 16px 14px 50px; }
    .pk-my-profile { grid-template-columns: 52px 1fr; padding: 20px 18px; gap: 12px; }
    .pk-my-av img, .pk-my-av .no_profile_img, .pk-my-av .mbimg_no { width: 52px; height: 52px; }
    .pk-my-who b { font-size: 17px; }
    .pk-my-acts { grid-column: 1 / -1; }
    .pk-my-stats { grid-template-columns: repeat(2, 1fr); }
    .pk-my-menu { grid-template-columns: repeat(3, 1fr); gap: 8px; }
    .pk-my-menu a { padding: 14px 6px; font-size: 12px; }
    .pk-my-sec { padding: 16px; }
    .pk-my-orders li a { grid-template-columns: 1fr auto; gap: 4px 10px; }
    .pk-my-orders .d { grid-column: 1; } .pk-my-orders .s { grid-column: 2; grid-row: 1; justify-self: end; }
    .pk-my-orders .n { grid-column: 1 / -1; } .pk-my-orders .p { grid-column: 1 / -1; }
    .pk-my-wish { grid-template-columns: repeat(2, 1fr); }
}

/* 배송지 선택 라디오 → 칩 (컨테이너 클래스와 무관하게) */
#sod_frm_taker input[name=ad_sel_addr] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
#sod_frm_taker input[name=ad_sel_addr] + label { display: inline-block; padding: 8px 14px; margin: 0 6px 6px 0; border: 1px solid var(--line); border-radius: 999px; font-size: 12.5px; color: #444; cursor: pointer; background: #fff; }
#sod_frm_taker input[name=ad_sel_addr]:checked + label { background: #111; color: #fff; border-color: #111; }
#sod_frm_taker input#ad_default + label, #sod_frm_taker label[for=ad_default] { font-size: 12.5px; color: #555; }
@media (max-width: 768px) {
    /* 고정 결제바 아래 남는 '취소' 링크는 바 안으로 */
    #display_pay_button { display: flex; gap: 8px; align-items: center; }
    #display_pay_button .btn01 { order: -1; flex: 0 0 64px; text-align: center; padding: 14px 0; border: 1px solid var(--line); border-radius: 12px; font-size: 13px; color: #666; background: #fff; margin: 0; }
    #display_pay_button .btn_submit { flex: 1; }
}

/* 주문서 취소 링크(PC) 보조 버튼 / 배송지목록 버튼 칩 */
#display_pay_button .btn01 { display: block; text-align: center; margin-top: 8px; padding: 13px 0; border: 1px solid var(--line); border-radius: 12px; font-size: 13px; color: #666; background: #fff; }
#sod_frm_taker #order_address { display: inline-block; padding: 8px 14px; margin: 0 6px 6px 0; border: 1px solid #111; border-radius: 999px; font-size: 12.5px; color: #111; font-weight: 700; background: #fff; vertical-align: top; }

/* ══ 주문서 세로 압축 ══ */
#sod_frm_orderer, #sod_frm_taker, #sod_frm_pay { padding: 18px 20px 14px; margin-bottom: 12px; }
#sod_frm section h2 { margin-bottom: 10px; padding-bottom: 10px; }
#sod_frm_orderer tbody, #sod_frm_taker tbody { gap: 2px 14px; }
#sod_frm_orderer th, #sod_frm_taker th { padding: 6px 0 4px; }
.frm_input, #sod_frm select { padding: 10px 12px; margin-bottom: 2px; }
/* 행 순서: 이름·전화 / 핸드폰·이메일 / 주소 */
#sod_frm_orderer tr.row-half:has(#od_name) { order: 1; } #sod_frm_orderer tr.row-half:has(#od_tel) { order: 2; }
#sod_frm_orderer tr.row-half:has(#od_hp) { order: 3; } #sod_frm_orderer tr.row-half:has(#od_email) { order: 4; grid-column: auto; }
#sod_frm_orderer tr.row-full { order: 10; }
/* 주소: [우편번호][검색][기본주소] 한 줄 + 상세주소, 참고항목 숨김 */
#sod_frm td:has(> #od_zip), #sod_frm td:has(> #od_b_zip) { display: grid; grid-template-columns: 120px auto 1fr; grid-template-areas: "zip btn addr1" "addr2 addr2 addr2"; gap: 6px; align-items: start; }
#od_zip, #od_b_zip { grid-area: zip; width: 100% !important; }
#sod_frm td .btn_address { grid-area: btn; margin: 0; }
#od_addr1, #od_b_addr1 { grid-area: addr1; margin: 0 !important; }
#od_addr2, #od_b_addr2 { grid-area: addr2; margin: 0 !important; }
#od_addr3, #od_b_addr3, #od_addr_jibeon, #od_b_addr_jibeon, #sod_frm td .frm_address + br { display: none !important; }
/* 수령자: 배송지명 + 기본배송지 한 줄, 주문자와 동일이면 폼 접기 */
#sod_frm_taker tr.row-half:has(#ad_subject) { grid-column: 1 / -1; }
#sod_frm_taker tr.row-half:has(#ad_subject) td { display: flex; align-items: center; gap: 12px; }
#sod_frm_taker tr.row-half:has(#ad_subject) td .frm_input { flex: 1; }
#sod_frm_taker tr.row-half:has(#ad_subject) td label { white-space: nowrap; font-size: 12.5px; color: #555; display: inline-flex; align-items: center; gap: 4px; }
#sod_frm_taker.pk-collapsed tr:not(:has(input[name=ad_sel_addr])):not(:has(#od_memo)):not(.row-pccc):not(.row-pccc-tg) { display: none; }
#od_memo { min-height: 44px; height: 44px; }
/* 통관번호 펼침식 */
tr.row-pccc { display: none !important; }
tr.row-pccc.open { display: block !important; }
.pk-pccc-open { font-size: 12.5px; color: #555; }
.pk-pccc-open i { color: #999; }
/* 우측 결제 카드 압축 */
#sod_bsk_tot { padding: 16px 18px; margin-bottom: 10px; }
#sod_bsk_tot li { padding: 5px 0; }
#sod_frm_pay .pay_tbl td { padding: 2px 0 8px; }
#od_tot_price { padding: 12px 2px 10px; }
#od_pay_sl h3 { margin: 10px 0 8px; }
/* 비회원 구매 방침 박스 */
#sod_frm .sod_ta_wr textarea, textarea[name=guest_privacy], #pk-guest-privacy, .pk-guest textarea { min-height: 150px; white-space: pre-wrap; line-height: 1.7; font-size: 12.5px; }
@media (max-width: 768px) {
    #sod_frm td:has(> #od_zip), #sod_frm td:has(> #od_b_zip) { grid-template-columns: 1fr auto; grid-template-areas: "zip btn" "addr1 addr1" "addr2 addr2"; }
    #od_addr1, #od_b_addr1 { grid-area: addr1; }
}
#pk-point-line strong { color: #2f6bff; }
#pk-final-line { display: flex; align-items: baseline; gap: 2px; padding: 10px 2px 4px; font-size: 14px; font-weight: 800; }
#pk-final-line > span { margin-right: auto; }
#pk-final-line strong { font-size: 22px; font-weight: 900; color: #111; }

/* ══ 마이페이지 v3 (pk-my2-*) ══ */
.pk-my2 { padding: 26px 20px 60px; }
.pk-my2-head { display: grid; grid-template-columns: 72px 1fr auto; align-items: center; gap: 18px; padding: 8px 4px 22px; border-bottom: 1px solid var(--line); }
.pk-my2-av img, .pk-my2-av .no_profile_img, .pk-my2-av .mbimg_no { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; background: var(--bg-soft); display: flex; align-items: center; justify-content: center; color: #bbb; font-size: 26px; }
.pk-my2-who .grade { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 800; letter-spacing: .06em; color: #7a5a2e; background: #f6efe4; padding: 4px 9px; border-radius: 999px; margin-bottom: 7px; }
.pk-my2-who h2 { font-size: 22px; font-weight: 800; letter-spacing: -0.6px; }
.pk-my2-who h2 small { font-size: 14px; font-weight: 500; color: #666; margin-left: 4px; }
.pk-my2-who .mail { font-size: 12.5px; color: var(--gray); margin-top: 3px; }
.pk-my2-acts { display: flex; gap: 6px; }
.pk-my2-acts a { padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; font-size: 12.5px; font-weight: 600; color: #333; background: #fff; }
.pk-my2-acts a:hover { border-color: #111; }
.pk-my2-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 22px 0; }
.pk-my2-tiles a { position: relative; display: grid; grid-template-columns: 44px 1fr; gap: 2px 12px; align-items: center; padding: 18px 18px; border: 1px solid var(--line); border-radius: 16px; background: #fff; transition: transform .2s, box-shadow .2s, border-color .2s; }
.pk-my2-tiles a:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.07); border-color: #ddd; }
.pk-my2-tiles .ic { grid-row: 1 / span 2; width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 17px; }
.pk-my2-tiles .ic-pt { background: #eef4ff; color: #2f6bff; }
.pk-my2-tiles .ic-cp { background: #fff1ef; color: #f04a3e; }
.pk-my2-tiles .ic-od { background: #eefaf2; color: #1c9c53; }
.pk-my2-tiles .ic-me { background: #f4f0ff; color: #7b4dff; }
.pk-my2-tiles .lb { font-size: 12px; color: var(--gray); }
.pk-my2-tiles b { font-size: 22px; font-weight: 800; letter-spacing: -0.5px; line-height: 1.15; }
.pk-my2-tiles b small { font-size: 12px; font-weight: 600; color: #777; margin-left: 2px; }
.pk-my2-tiles .arr { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: #ccc; }
.pk-my2-sec { border: 1px solid var(--line); border-radius: 16px; padding: 22px 24px; background: #fff; margin-bottom: 16px; }
.pk-my2-sec-hd { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.pk-my2-sec-hd h3 { font-size: 16px; font-weight: 800; letter-spacing: -0.4px; }
.pk-my2-sec-hd h3 small { font-size: 12px; color: var(--gray); font-weight: 600; margin-left: 4px; }
.pk-my2-sec-hd a, .pk-my2-sec-hd span { font-size: 12.5px; color: var(--gray); }
.pk-my2-steps { display: grid; grid-template-columns: repeat(6, 1fr); list-style: none; counter-reset: s; position: relative; padding: 8px 0 2px; }
.pk-my2-steps::before { content: ''; position: absolute; left: 8%; right: 8%; top: 32px; height: 1px; background: #e5e5e5; }
.pk-my2-steps li { text-align: center; position: relative; }
.pk-my2-steps li b { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: #fff; border: 1px solid #e5e5e5; font-size: 18px; font-weight: 800; color: #bbb; position: relative; z-index: 1; }
.pk-my2-steps li span { display: block; font-size: 12.5px; color: #555; margin-top: 8px; }
.pk-my2-steps li b:not(:empty) { color: #bbb; }
.pk-my2-steps li:not(.muted) b { transition: all .2s; }
.pk-my2-steps li.muted span { color: #aaa; }
.pk-my2-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pk-my2-orders { list-style: none; }
.pk-my2-orders li a { display: grid; grid-template-columns: 64px 1fr auto; gap: 14px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); }
.pk-my2-orders li:first-child a { border-top: 0; padding-top: 2px; }
.pk-my2-orders .th { width: 64px; height: 64px; border-radius: 10px; background: var(--bg-thumb) center/cover no-repeat; }
.pk-my2-orders .meta { min-width: 0; }
.pk-my2-orders .meta em { display: block; font-style: normal; font-size: 11.5px; color: var(--gray-l); }
.pk-my2-orders .meta b { display: block; font-size: 13.5px; font-weight: 600; color: #222; margin: 3px 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pk-my2-orders .meta strong { font-size: 14px; font-weight: 800; }
.pk-my2-orders .st { font-size: 11.5px; font-weight: 700; padding: 5px 10px; border-radius: 999px; background: var(--badge-bg); color: #666; white-space: nowrap; }
.pk-my2-orders .st.wait { background: #fff3e0; color: #d07f00; } .pk-my2-orders .st.paid, .pk-my2-orders .st.ship { background: #e8f1ff; color: #2f6bff; } .pk-my2-orders .st.done { background: #e9f9ef; color: #1c9c53; } .pk-my2-orders .st.cancel { background: #fdecec; color: #c0392b; }
.pk-my2-wish { grid-template-columns: repeat(4, 1fr); gap: 12px 10px; }
.pk-my2-wish .pk-card-badges, .pk-my2-wish .pk-card-market, .pk-my2-wish .pk-card-buynow { display: none; }
.pk-my2-menu { display: grid; grid-template-columns: repeat(8, 1fr); gap: 8px; list-style: none; }
.pk-my2-menu a { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px 6px; border-radius: 12px; background: var(--bg-soft); font-size: 12.5px; font-weight: 600; color: #333; transition: background .2s, transform .2s; }
.pk-my2-menu a i { font-size: 18px; color: #111; }
.pk-my2-menu a:hover { background: #eee; transform: translateY(-2px); }
.pk-my2-leave { text-align: right; margin-top: 14px; }
.pk-my2-leave a { font-size: 12px; color: var(--gray-l); text-decoration: underline; }
.pk-my2 .pk-empty { padding: 40px 0 !important; }
@media (max-width: 1024px) { .pk-my2-cols { grid-template-columns: 1fr; } .pk-my2-menu { grid-template-columns: repeat(4, 1fr); } .pk-my2-tiles { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) {
    .pk-my2 { padding: 14px 14px 50px; }
    .pk-my2-head { grid-template-columns: 56px 1fr; gap: 12px; padding-bottom: 16px; }
    .pk-my2-av img, .pk-my2-av .no_profile_img, .pk-my2-av .mbimg_no { width: 56px; height: 56px; }
    .pk-my2-who h2 { font-size: 18px; }
    .pk-my2-acts { grid-column: 1 / -1; }
    .pk-my2-tiles { gap: 8px; margin: 14px 0; }
    .pk-my2-tiles a { padding: 14px 12px; grid-template-columns: 36px 1fr; }
    .pk-my2-tiles .ic { width: 36px; height: 36px; font-size: 14px; }
    .pk-my2-tiles b { font-size: 18px; }
    .pk-my2-sec { padding: 16px 14px; border-radius: 12px; }
    .pk-my2-steps { grid-template-columns: repeat(3, 1fr); gap: 14px 0; }
    .pk-my2-steps::before { display: none; }
    .pk-my2-steps li b { width: 40px; height: 40px; font-size: 15px; }
    .pk-my2-wish { grid-template-columns: repeat(2, 1fr); }
    .pk-my2-menu { grid-template-columns: repeat(4, 1fr); gap: 6px; }
    .pk-my2-menu a { padding: 12px 4px; font-size: 11.5px; }
}
.pk-my2-steps li.has b { background: #111; border-color: #111; color: #fff; }
.pk-my2-steps li.has span { color: #111; font-weight: 700; }

/* ── [pliki 테마] 주문서 디테일 4차: 쿠폰 행 / 쿠폰 선택 레이어 / 모바일 상품행 선 ─── */
#sod_list td { border-bottom: 0; }
#sod_frm .btn_frmline {
    display: inline-flex; align-items: center; gap: 5px; padding: 0 14px; height: 40px; border: 1px solid #111; border-radius: 8px;
    background: #fff; color: #111; font-size: 12px; font-weight: 700; cursor: pointer; white-space: nowrap; transition: background .2s, color .2s;
}
#sod_frm .btn_frmline:hover { background: #111; color: #fff; }
.pk-cp-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.pk-cp-val { font-size: 14px; color: #444; }
.pk-cp-val strong { font-size: 18px; font-weight: 800; color: #111; margin-right: 1px; }
.pk-cp-own { display: inline-flex; align-items: center; gap: 6px; }
.pk-cp-none { font-style: normal; font-size: 12px; color: var(--gray-l); }
#sod_frm .cp_cancel, #sod_frm #od_coupon_cancel, #sod_frm #sc_coupon_cancel {
    background: none; border: 0; font-size: 12px; color: var(--gray); text-decoration: underline; cursor: pointer; padding: 0 2px;
}
.pk-cpcode { display: flex; gap: 6px; }
.pk-cpcode .frm_input { flex: 1; min-width: 0; height: 40px; padding: 0 13px; }
.pk-cpcode .btn_frmline { flex: 0 0 auto; }

/* 쿠폰 선택 레이어 → 중앙 모달 (삽입 위치와 무관하게 fixed) */
.od_coupon_wrap { position: fixed; inset: 0; z-index: 1200; background: rgba(0,0,0,.45); display: flex; align-items: center; justify-content: center; padding: 16px; }
#sod_frm_pay .od_coupon, .od_coupon {
    position: relative; width: min(460px, 100%); max-height: min(80vh, 640px); overflow: auto; background: #fff; border-radius: 16px; padding: 22px 22px 18px;
    box-shadow: 0 24px 60px rgba(0,0,0,.25); animation: pk-pop .22s ease;
}
@keyframes pk-pop { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }
#sod_frm_pay .od_coupon h3, .od_coupon h3 { font-size: 17px; font-weight: 800; letter-spacing: -0.5px; margin: 0 0 14px; padding: 0 30px 12px 0; border-bottom: 1px solid #111; box-shadow: none; line-height: 1.4; }
.od_coupon .tbl_head02 { margin: 0; }
#sod_frm_pay .od_coupon table { width: 100%; }
.od_coupon caption, .od_coupon thead { display: none; }
#sod_frm_pay .od_coupon tbody { display: block; }
#sod_frm_pay .od_coupon tr { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
#sod_frm_pay .od_coupon td { display: block; padding: 0; border: 0; text-align: left; font-size: 13px; color: #333; }
#sod_frm_pay .od_coupon td:first-child { flex: 1; min-width: 0; font-weight: 600; color: #111; }
#sod_frm_pay .od_coupon td:first-child::after { content: ''; }
#sod_frm_pay .od_coupon td.td_numbig { flex: 0 0 auto; font-weight: 800; color: var(--red); font-size: 14px; text-align: right; }
#sod_frm_pay .od_coupon td.td_numbig::after { content: '원'; font-size: 11px; font-weight: 500; color: #666; margin-left: 1px; }
#sod_frm_pay .od_coupon td.td_mngsmall { flex: 0 0 auto; width: auto; }
#sod_frm_pay .od_coupon td.td_mngsmall .btn_frmline { height: 32px; padding: 0 12px; font-size: 12px; }
.od_coupon .btn_confirm { margin: 0; }
#sod_frm_pay .od_coupon .btn_close, .od_coupon .btn_close {
    position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: var(--bg-soft); color: #333; font-size: 15px; cursor: pointer;
}
.od_coupon .btn_close:hover { background: #e9e9ea; }
.od_coupon .empty_list, .od_coupon p { text-align: center; color: var(--gray); font-size: 13px; padding: 20px 0; }
@media (max-width: 768px) {
    #sod_list td.td_num { border: 0; }
    .od_coupon_wrap { align-items: flex-end; padding: 0; }
    #sod_frm_pay .od_coupon, .od_coupon { width: 100%; border-radius: 16px 16px 0 0; max-height: 75vh; padding: 20px 16px calc(16px + env(safe-area-inset-bottom)); }
}

/* ── [pliki 테마] 주문상세 — 목록 페이지용 '주문내역' 제목 제거 + 모바일 카드형 상품행 ─── */
#sod_fin .tbl_head03::before { content: none; }
#sod_fin .tbl_head03 { padding: 0; margin: 0; max-width: none; }
#sod_fin .tbl_head03 table { min-width: 0; }
#sod_fin .td_prd { display: flex; align-items: center; gap: 12px; text-align: left; }
#sod_fin .td_prd .sod_img img { width: 56px; height: 56px; object-fit: cover; border-radius: 8px; background: var(--bg-thumb); display: block; }
#sod_fin .td_prd .sod_name a { font-weight: 700; font-size: 13px; }
#sod_fin .td_prd .sod_opt { color: var(--gray); font-size: 12px; margin-top: 3px; }
#sod_fin .tbl_head03 .td_mngsmall { white-space: nowrap; }
#sod_fin_orderer th, #sod_fin_receiver th, #sod_fin_dvr th, #sod_fin_pay th { white-space: nowrap; }
@media (max-width: 768px) {
    #sod_fin { padding: 18px 14px 40px; }
    #sod_fin .tbl_head03 thead { display: none; }
    #sod_fin .tbl_head03 table, #sod_fin .tbl_head03 tbody { display: block; width: 100%; }
    #sod_fin .tbl_head03 tbody tr { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; padding: 12px 0; border-bottom: 1px solid var(--line); }
    #sod_fin .tbl_head03 tbody td { display: block; padding: 0; border: 0; text-align: left; font-size: 12px; color: var(--gray); }
    #sod_fin .tbl_head03 td.td_prd { grid-column: 1 / -1; }
    #sod_fin .tbl_head03 td[headers="th_itqty"]::before { content: '수량 '; }
    #sod_fin .tbl_head03 td[headers="th_itprice"] { display: none; }
    #sod_fin .tbl_head03 td[headers="th_itpt"]::before { content: '적립 '; }
    #sod_fin .tbl_head03 td[headers="th_itpt"]::after, #sod_fin .tbl_head03 td[headers="th_itsum"]::after { content: '원'; }
    #sod_fin .tbl_head03 td[headers="th_itpt"] { grid-column: 1; }
    #sod_fin .tbl_head03 td[headers="th_itsd"]::before { content: '배송비 '; }
    #sod_fin .tbl_head03 td[headers="th_itsum"] { grid-column: 2; grid-row: 2 / span 2; align-self: center; font-size: 15px; font-weight: 800; color: #111; text-align: right; }
    #sod_fin .tbl_head03 td[headers="th_itst"] { grid-column: 1 / -1; }
    #sod_fin .tbl_head03 td[headers="th_itst"]::before { content: '상태 · '; }
    #sod_fin_orderer th, #sod_fin_receiver th, #sod_fin_dvr th, #sod_fin_pay th { width: 96px; padding: 10px 12px; }
    #sod_fin_orderer td, #sod_fin_receiver td, #sod_fin_dvr td, #sod_fin_pay td { padding: 10px 12px; word-break: break-all; }
}

/* ── [pliki 테마] 위시리스트 (theme/pliki/shop/wishlist.php) ─── */
.pk-wish { max-width: var(--max); margin: 0 auto; padding: 30px 20px 60px; }
.pk-wish-hd { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 20px; padding-bottom: 12px; border-bottom: 2px solid #111; }
.pk-wish { padding-top: 6px; }
.pk-wish-hd h2 { font-size: 24px; font-weight: 800; letter-spacing: -0.8px; }
.pk-wish-hd .cnt { font-size: 13px; color: var(--gray); }
.pk-wish-hd .cnt b { color: #111; font-weight: 800; }
.pk-wish-tools { display: flex; align-items: center; gap: 14px; font-size: 13px; color: #444; }
.pk-wish-tools label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.pk-wish-tools input { accent-color: #111; width: 16px; height: 16px; }
.pk-wish-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 30px 16px; }
.pk-wish-item { position: relative; }
.pk-wish-item .pk-card-thumb { display: block; border-radius: var(--radius); overflow: hidden; background: var(--bg-thumb); aspect-ratio: 1; }
.pk-wish-item .pk-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.pk-wish-item:hover .pk-card-thumb img { transform: scale(1.04); }
.pk-wish-chk { position: absolute; top: 10px; left: 10px; z-index: 3; }
.pk-wish-chk input { width: 20px; height: 20px; accent-color: #111; cursor: pointer; display: block; }
.pk-wish-chk .soldout { display: inline-block; background: rgba(0,0,0,.7); color: #fff; font-size: 10px; font-weight: 700; padding: 3px 7px; border-radius: 4px; }
.pk-wish-del { position: absolute; top: 8px; right: 8px; z-index: 3; width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.92); color: #333; display: flex; align-items: center; justify-content: center; font-size: 13px; transition: background .2s, color .2s; }
.pk-wish-del:hover { background: #111; color: #fff; }
.pk-wish-info { padding-top: 12px; }
.pk-wish-info .brand { font-size: 12px; font-weight: 700; color: #111; margin-bottom: 3px; }
.pk-wish-info .name { display: block; font-size: 14px; color: #222; line-height: 1.45; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.pk-wish-info .price { margin-top: 6px; font-size: 15px; font-weight: 800; }
.pk-wish-info .price del { font-size: 12px; color: var(--gray-l); font-weight: 400; margin-right: 6px; }
.pk-wish-info .price .dc { color: var(--red); margin-right: 5px; }
.pk-wish-info .date { font-size: 11px; color: var(--gray-l); margin-top: 5px; }
.pk-wish-acts { display: flex; justify-content: center; gap: 10px; margin-top: 40px; }
.pk-wish-acts button { height: 50px; padding: 0 34px; border-radius: 10px; font-size: 14px; font-weight: 700; cursor: pointer; border: 1px solid #111; background: #fff; color: #111; }
.pk-wish-acts button.pri { background: #111; color: #fff; }
.pk-wish-acts button:hover { opacity: .88; }
.pk-wish-empty { text-align: center; padding: 80px 0 60px; color: var(--gray); font-size: 14px; }
.pk-wish-empty i { display: block; font-size: 40px; color: #ddd; margin-bottom: 14px; }
.pk-wish-empty a { display: inline-block; margin-top: 18px; padding: 12px 24px; border-radius: 10px; background: #111; color: #fff; font-size: 13px; font-weight: 700; }
@media (max-width: 1024px) { .pk-wish-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px) {
    .pk-wish { padding: 18px 14px 40px; }
    .pk-wish-hd h2 { font-size: 20px; }
    .pk-wish-grid { grid-template-columns: repeat(2, 1fr); gap: 22px 12px; }
    .pk-wish-acts { position: sticky; bottom: 0; background: #fff; padding: 12px 0 calc(12px + env(safe-area-inset-bottom)); margin-top: 24px; border-top: 1px solid var(--line); }
    .pk-wish-acts button { flex: 1; padding: 0; }
}
.pk-cp-auto { font-size: 12px; color: #1c9c53; background: #e9f9ef; border-radius: 8px; padding: 8px 10px; margin: 0 0 8px; line-height: 1.5; }
.pk-cp-auto i { margin-right: 2px; }
/* 주문상세 결제정보 블록 */
#sod_fin_pay ul { border: 1px solid var(--line); border-radius: 12px; padding: 6px 18px; margin: 0 0 16px; }
#sod_fin_pay li { display: flex; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
#sod_fin_pay li:last-child { border-bottom: 0; }
#sod_fin_pay li strong { flex: 0 0 96px; color: var(--gray); font-weight: 600; }
#sod_fin_pay li span { color: #222; word-break: break-all; }
/* 주문취소 팝업 폼 */
#sod_cancel_pop form { display: flex; gap: 8px; }
#sod_cancel_pop .frm_input { flex: 1; width: auto !important; height: 44px; }
#sod_cancel_pop .btn_frmline { height: 44px; padding: 0 18px; border: 0; border-radius: 10px; background: #111; color: #fff; font-size: 13px; font-weight: 700; cursor: pointer; }
#sod_cancel_pop .sod_cls_btn { position: absolute; top: 12px; right: 12px; width: 32px; height: 32px; border: 0; border-radius: 50%; background: var(--bg-soft); color: #333; cursor: pointer; }

/* ── [pliki 테마] 주문상세 재설계 (.pk-oiv) ─── */
.pk-oiv { max-width: var(--max); padding: 30px 20px 60px; display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 0 28px; align-items: start; }
.pk-oiv .pk-oiv-hd, .pk-oiv #sod_fin_list, .pk-oiv #sod_fin_cancel { grid-column: 1 / -1; }
.pk-oiv .sod_left { grid-column: 1; min-width: 0; }
.pk-oiv .sod_right { grid-column: 2; position: sticky; top: 76px; }
.pk-oiv-hd { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; background: #111; color: #fff; border-radius: 16px; padding: 22px 26px; margin-bottom: 26px; }
.pk-oiv-no { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.pk-oiv-no span { font-size: 12px; opacity: .6; }
.pk-oiv-no strong { font-size: 20px; font-weight: 800; letter-spacing: -0.3px; font-variant-numeric: tabular-nums; }
.pk-oiv-no em { font-style: normal; font-size: 12px; opacity: .6; }
.pk-oiv-badge { font-size: 12px; font-weight: 700; background: var(--red); color: #fff; border-radius: 999px; padding: 4px 10px; }
.pk-oiv-steps { display: flex; align-items: center; list-style: none; margin: 0; padding: 0; gap: 0; }
.pk-oiv-steps li { display: flex; align-items: center; gap: 8px; font-size: 12px; color: rgba(255,255,255,.45); position: relative; padding-right: 26px; }
.pk-oiv-steps li::after { content: ''; width: 14px; height: 1px; background: rgba(255,255,255,.25); position: absolute; right: 6px; top: 50%; }
.pk-oiv-steps li:last-child { padding-right: 0; }
.pk-oiv-steps li:last-child::after { content: none; }
.pk-oiv-steps li i { font-style: normal; width: 24px; height: 24px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; }
.pk-oiv-steps li.done { color: rgba(255,255,255,.8); }
.pk-oiv-steps li.done i { background: rgba(255,255,255,.2); border-color: transparent; }
.pk-oiv-steps li.now { color: #fff; font-weight: 700; }
.pk-oiv-steps li.now i { background: #fff; color: #111; border-color: #fff; }
.pk-oiv #sod_fin_no, .pk-oiv #sod_sts_wrap { display: none; }
.pk-oiv h2 { font-size: 16px; font-weight: 800; letter-spacing: -0.5px; margin: 0 0 12px; }
.pk-oiv #sod_fin_list { margin-bottom: 30px; }
.pk-oiv #sod_fin_list h2 { display: flex; align-items: center; justify-content: space-between; }
.pk-oiv .tbl_head03 table { border-top: 1px solid #111; }
.pk-oiv .tbl_head03 thead th { background: #fafafa; font-weight: 600; }
.pk-oiv .sod_left h2 { margin-bottom: 4px; }
.pk-oiv .sod_left h3 { font-size: 13px; font-weight: 700; color: #111; margin: 20px 0 8px; }
.pk-oiv .sod_left .tbl_head01 table { width: 100%; border-top: 1px solid #111; border-collapse: collapse; }
.pk-oiv .sod_left th { width: 120px; text-align: left; background: transparent; border: 0; border-bottom: 1px solid var(--line); padding: 11px 4px; font-size: 12.5px; color: var(--gray); font-weight: 500; }
.pk-oiv .sod_left td { border: 0; border-bottom: 1px solid var(--line); padding: 11px 4px; font-size: 13.5px; color: #111; }
.pk-oiv .sod_left td.empty_table { padding: 26px 4px; text-align: center; color: var(--gray); font-size: 13px; }
.pk-oiv .sod_left .dvr_link { display: inline-block; margin-left: 8px; font-size: 11px; padding: 3px 8px; border: 1px solid #111; border-radius: 999px; }
.pk-oiv #sod_bsk_tot2 { margin: 0 0 12px; padding: 18px 20px; }
.pk-oiv #sod_bsk_tot2 li { font-size: 13px; color: #444; }
.pk-oiv #sod_bsk_tot2 li strong { color: #111; }
.pk-oiv #sod_bsk_tot2 li.sod_bsk_cnt { border-top: 1px solid var(--line); margin-top: 6px; padding-top: 12px; font-weight: 700; color: #111; }
.pk-oiv #sod_bsk_tot2 li.sod_fin_tot { border: 0; border-radius: 0; background: transparent; padding: 6px 0; margin: 0; font-size: 12.5px; color: var(--gray); }
.pk-oiv #sod_bsk_tot2 li.sod_fin_tot strong { color: #444; font-weight: 600; }
.pk-oiv #sod_bsk_tot2 li#alrdy { border-top: 1px dashed var(--line); margin-top: 4px; padding-top: 10px; }
.pk-oiv #sod_bsk_tot2 li#alrdy strong { color: var(--red); font-weight: 800; }
.pk-oiv #sod_fin_pay h3 { font-size: 13px; font-weight: 700; margin: 0 0 8px; }
.pk-oiv #sod_fin_pay ul { border-radius: 14px; }
.pk-oiv #sod_fin_cancel { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; }
.pk-oiv #sod_fin_cancel .sod_fin_c_btn, .pk-oiv #sod_fin_cancel > button { border-color: #111; font-weight: 700; }
@media (max-width: 1024px) {
    .pk-oiv { grid-template-columns: 1fr; gap: 0; }
    .pk-oiv .sod_left, .pk-oiv .sod_right { grid-column: 1; }
    .pk-oiv .sod_right { position: static; margin-top: 24px; }
}
@media (max-width: 768px) {
    .pk-oiv { padding: 16px 14px 40px; }
    .pk-oiv-hd { padding: 18px 16px; border-radius: 14px; margin-bottom: 20px; }
    .pk-oiv-no strong { font-size: 16px; }
    .pk-oiv-steps { width: 100%; justify-content: space-between; }
    .pk-oiv-steps li { padding-right: 0; flex-direction: column; gap: 5px; font-size: 11px; }
    .pk-oiv-steps li::after { content: none; }
    .pk-oiv .sod_left th { width: 84px; }
    .pk-oiv #sod_fin_cancel { justify-content: stretch; }
    .pk-oiv #sod_fin_cancel .sod_fin_c_btn, .pk-oiv #sod_fin_cancel > button { width: 100%; }
}
/* 주문상세: ID 선택자 규칙보다 우선하도록 재정의 */
#sod_fin.pk-oiv #sod_fin_orderer th, #sod_fin.pk-oiv #sod_fin_receiver th, #sod_fin.pk-oiv #sod_fin_dvr th { width: 120px; text-align: left; background: transparent; border: 0; border-bottom: 1px solid var(--line); padding: 11px 4px; font-size: 12.5px; color: var(--gray); font-weight: 500; }
#sod_fin.pk-oiv #sod_fin_orderer td, #sod_fin.pk-oiv #sod_fin_receiver td, #sod_fin.pk-oiv #sod_fin_dvr td { border: 0; border-bottom: 1px solid var(--line); padding: 11px 4px; font-size: 13.5px; color: #111; }
#sod_fin.pk-oiv #sod_fin_dvr td.empty_table { padding: 26px 4px; text-align: center; color: var(--gray); font-size: 13px; }
@media (max-width: 768px) { #sod_fin.pk-oiv #sod_fin_orderer th, #sod_fin.pk-oiv #sod_fin_receiver th, #sod_fin.pk-oiv #sod_fin_dvr th { width: 84px; } }


/* ── [pliki 테마] 주문취소 모달 재설계 ── */
#sod_cancel_pop.pk-cancel { display: none; position: fixed; inset: 0; z-index: 1300; transform: none; left: 0; top: 0; width: auto; background: transparent; border-radius: 0; box-shadow: none; padding: 16px; align-items: center; justify-content: center; }
#sod_cancel_pop.pk-cancel.open { display: flex; }
.pk-cancel-bg { position: absolute; inset: 0; background: rgba(0,0,0,.5); }
.pk-cancel-card { position: relative; z-index: 1; width: min(440px, 100%); background: #fff; border-radius: 18px; padding: 34px 30px 26px; text-align: center; box-shadow: 0 24px 60px rgba(0,0,0,.25); animation: pk-pop .22s ease; }
.pk-cancel-x { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: var(--bg-soft); color: #333; cursor: pointer; font-size: 15px; }
.pk-cancel-ico { width: 52px; height: 52px; border-radius: 50%; background: #fff0f0; color: var(--red); font-size: 22px; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 14px; }
#sod_cancel_pop.pk-cancel h2 { font-size: 19px; font-weight: 800; letter-spacing: -0.5px; margin: 0 0 8px; }
.pk-cancel-desc { font-size: 13px; color: var(--gray); line-height: 1.65; margin: 0 0 20px; }
.pk-cancel-desc b { color: #111; font-weight: 700; }
#sod_cancel_pop.pk-cancel form { display: block; text-align: left; }
.pk-cancel-lb { display: block; font-size: 12.5px; font-weight: 700; margin-bottom: 6px; }
#sod_cancel_pop.pk-cancel .frm_input { width: 100% !important; height: 46px; padding: 0 14px; border: 1px solid #d9d9d9; border-radius: 10px; font-size: 14px; }
#sod_cancel_pop.pk-cancel .frm_input:focus { outline: none; border-color: #111; }
.pk-cancel-btns { display: flex; gap: 8px; margin-top: 14px; }
.pk-cancel-btns .pk-btn-line { flex: 0 0 110px; height: 48px; justify-content: center; }
#sod_cancel_pop.pk-cancel .pk-cancel-go { flex: 1; height: 48px; border: 0; border-radius: 10px; background: var(--red); color: #fff; font-size: 14px; font-weight: 800; cursor: pointer; padding: 0; }
.pk-cancel-note { display: flex; align-items: flex-start; gap: 8px; background: var(--bg-soft); border-radius: 10px; padding: 12px 14px; font-size: 12.5px; color: #555; line-height: 1.6; margin: 0; }
.pk-cancel-note i { color: #999; margin-top: 3px; }
#sod_fin_pay .btn_frmline { display: inline-flex; align-items: center; height: 32px; padding: 0 12px; border: 1px solid #111; border-radius: 999px; font-size: 12px; font-weight: 700; color: #111; background: #fff; }
#sod_fin_pay .btn_frmline.is-long-text { white-space: normal; height: auto; padding: 6px 12px; line-height: 1.4; }
#alrdy > div { margin-top: 6px; font-size: 12px; color: var(--gray); }
#alrdy > div p { display: flex; justify-content: space-between; margin: 2px 0; }
@media (max-width: 768px) { .pk-cancel-card { padding: 28px 18px 20px; } .pk-cancel-btns .pk-btn-line { flex-basis: 90px; } }
/* 주소검색(다음 우편번호) 임베드 레이어 — 우편번호 칸 폭(120px)에 갇히지 않게 행 전체로 */
#sod_frm td:has(> #od_zip) > [id^="daum_juso_page"], #sod_frm td:has(> #od_b_zip) > [id^="daum_juso_page"] { grid-column: 1 / -1 !important; grid-row: auto; width: 100% !important; max-width: 640px; border: 1px solid var(--line) !important; border-radius: 10px; overflow: hidden; margin: 6px 0 !important; }
[id^="daum_juso_page"] iframe { width: 100% !important; }
#sod_cancel_pop .pk-cancel-back { position: static; }
/* 주소검색 레이어: 상단 바 + 닫기 버튼 (다음 스크립트의 닫기 이미지는 레이어 밖 -21px 에 있어 보이지 않던 것) */
#sod_frm [id^="daum_juso_page"] { overflow: visible !important; padding-top: 40px; box-sizing: content-box; }
#sod_frm [id^="daum_juso_page"]::before { content: '\f041  주소 검색 — 도로명·지번·건물명으로 찾아보세요'; font-family: FontAwesome, 'Pretendard Variable', sans-serif; position: absolute; left: 0; right: 0; top: 0; height: 40px; line-height: 40px; padding: 0 14px; background: #111; color: #fff; font-size: 13px; font-weight: 700; border-radius: 10px 10px 0 0; }
#sod_frm [id^="daum_juso_page"] .close_daum_juso { top: 8px !important; right: 10px !important; width: 24px; height: 24px; padding: 4px; background: #fff; border-radius: 50%; box-sizing: border-box; z-index: 5 !important; }
#sod_frm [id^="daum_juso_page"] iframe { display: block; }

/* ── [pliki 테마] 결제수단 버튼 아이콘 (CSS 만, 이미지 없음) ── */
#sod_frm_paysel label.lb_icon { display: inline-flex; align-items: center; gap: 9px; padding: 11px 12px; width: calc(50% - 4px); margin: 0 0 6px; box-sizing: border-box; font-size: 13px; text-align: left; }
#sod_frm_paysel label.lb_icon::before { content: '\f19c'; font-family: FontAwesome; font-size: 14px; width: 30px; height: 30px; border-radius: 8px; background: var(--bg-soft); color: #333; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 30px; }
#sod_frm_paysel label.bank_icon::before { content: '\f19c'; }
#sod_frm_paysel label.vbank_icon::before { content: '\f0f7'; }
#sod_frm_paysel label.iche_icon::before { content: '\f0ec'; }
#sod_frm_paysel label.hp_icon::before { content: '\f10b'; font-size: 17px; }
#sod_frm_paysel label.card_icon::before { content: '\f09d'; }
#sod_frm_paysel label.kakaopay_icon::before { content: 'pay'; font-family: 'Pretendard Variable', sans-serif; font-weight: 900; font-size: 11px; letter-spacing: -0.3px; background: #FEE500; color: #191919; }
#sod_frm_paysel label.naverpay_icon::before { content: 'N'; font-family: 'Pretendard Variable', sans-serif; font-weight: 900; font-size: 14px; background: #03C75A; color: #fff; }
#sod_frm_paysel label.PAYCO::before, #sod_frm_paysel label.paycopay_icon::before { content: 'P'; font-family: 'Pretendard Variable', sans-serif; font-weight: 900; font-size: 14px; background: #E4002B; color: #fff; }
#sod_frm_paysel label[class*="applepay"]::before { content: '\f179'; background: #111; color: #fff; font-size: 16px; }
#sod_frm_paysel label.samsungpay_icon::before { content: 'S'; font-family: 'Pretendard Variable', sans-serif; font-weight: 900; font-size: 14px; background: #1428A0; color: #fff; }
#sod_frm_paysel label.inicis_lpay::before, #sod_frm_paysel label.lpay_icon::before { content: 'L'; font-family: 'Pretendard Variable', sans-serif; font-weight: 900; background: #E60012; color: #fff; }
#sod_frm_paysel label.ssgpay_icon::before { content: 'SSG'; font-family: 'Pretendard Variable', sans-serif; font-weight: 900; font-size: 9px; background: #111; color: #fff; }
#sod_frm_paysel label.skpay_icon::before { content: 'SK'; font-family: 'Pretendard Variable', sans-serif; font-weight: 900; font-size: 10px; background: #F47725; color: #fff; }
#sod_frm_paysel input[type=radio]:checked + label.lb_icon::before { background: #111; color: #fff; }
#sod_frm_paysel input[type=radio]:checked + label.kakaopay_icon::before { background: #FEE500; color: #191919; }
#sod_frm_paysel input[type=radio]:checked + label.naverpay_icon::before { background: #03C75A; color: #fff; }
#sod_frm_paysel input[type=radio]:checked + label.PAYCO::before, #sod_frm_paysel input[type=radio]:checked + label.paycopay_icon::before { background: #E4002B; color: #fff; }
@media (max-width: 768px) { #sod_frm_paysel label.lb_icon { width: calc(50% - 4px); padding: 11px 10px; font-size: 12.5px; } }
/* 마이페이지 멤버십 카드 */
.pk-my2-ms-box { background: #111; color: #fff; border-radius: 14px; padding: 18px 20px; }
.pk-my2-ms-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; font-size: 13px; }
.pk-my2-ms-badge { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 800; letter-spacing: .08em; background: #fff; color: #111; border-radius: 999px; padding: 4px 10px; }
.pk-my2-ms-sum { opacity: .75; } .pk-my2-ms-sum b { color: #fff; font-weight: 800; }
.pk-my2-ms-rate { margin-left: auto; font-weight: 700; color: #ffe500; }
.pk-my2-ms-bar { height: 7px; background: rgba(255,255,255,.18); border-radius: 999px; overflow: hidden; }
.pk-my2-ms-bar i { display: block; height: 100%; background: #fff; border-radius: 999px; }
.pk-my2-ms-next { margin: 10px 0 0; font-size: 12.5px; opacity: .85; }
.pk-my2-ms-next b { color: #ffe500; }
