@charset "utf-8";

/* ============================================================
   스토어 (store_01product_list.html · store_02product_view.html)
   ------------------------------------------------------------
   2.0_prod_detail.css + 2.0_prod_list.css 를 한 벌로 합친 것이다.
   두 화면이 시트·팝업(.buyWrap · .popWrap)과 후기 영역을 그대로 나눠 쓰고 있어
   파일을 둘로 두면 목록 화면이 상세 화면 CSS 를 함께 불러야 했다.
   규칙은 한 줄도 바꾸지 않고 순서만 그대로 이어 붙였다 —
   ① 상품 상세(옛 2.0_prod_detail.css) ② 상품 목록(옛 2.0_prod_list.css).
   합치기 전 두 파일의 선택자를 맞대어 겹치는 것이 없음을 확인했다(569 + 104, 겹침 0).
   ============================================================ */

/* ============================================================
   ① 상품 상세 — 옛 2.0_prod_detail.css
   ============================================================ */
/* 상품 상단 */
.prod_topArea {display:flex; width:100%; box-sizing:border-box; overflow:hidden;}

/* 상품 이미지 영역 */
.prod_topArea .prod_photoBox {display:flex; flex:0 0 calc(50% + 110px); width:calc(50% + 110px); height:min(calc(100vh - 102px), 748px); min-height:max(calc(100vh - 110px), 780px); gap:10px; box-sizing:border-box; overflow:hidden;}

/* 메인 이미지 */
.prod_topArea .prod_photoBox .prod_main_swiper {position:relative; flex:0 0 calc(100% - 110px); width:calc(100% - 110px); height:100%; min-width:0; margin:0; padding:0; box-sizing:border-box; overflow:hidden;}
.prod_topArea .prod_photoBox .prod_main_swiper .swiper-wrapper {display:flex; width:100%; height:100%; margin:0; padding:0; box-sizing:border-box;}
.prod_topArea .prod_photoBox .prod_main_swiper .swiper-slide {display:flex; flex-shrink:0; align-items:center; justify-content:center; width:100%; height:100%; margin:0; padding:0; overflow:hidden; box-sizing:border-box; background:#f3f3f3;}
.prod_topArea .prod_photoBox .prod_main_swiper figure.swiper-slide {margin:0;}
.prod_topArea .prod_photoBox .prod_main_swiper .swiper-slide img {display:block; width:100%; height:100%; margin:0; object-fit:cover; object-position:center;}

/* 썸네일 Swiper */
.prod_topArea .prod_photoBox .prod_thumb_swiper {position:relative; flex:0 0 100px; width:100px; height:100%; min-width:100px; margin:0; padding:10px 0; box-sizing:border-box; overflow:hidden;}
.prod_topArea .prod_photoBox .prod_thumb_swiper .swiper-wrapper {display:flex; width:100%; height:auto; margin:0; padding:0; align-items:center; justify-content:flex-start; box-sizing:border-box;}
.prod_topArea .prod_photoBox .prod_thumb_swiper .swiper-slide {display:flex; flex-shrink:0; align-items:center; justify-content:center; width:100px !important; height:100px !important; margin:0; padding:0; overflow:hidden; border:1px solid transparent; border-radius:4px; box-sizing:border-box; background:#f3f3f3; cursor:pointer; opacity:.4; appearance:none; -webkit-appearance:none; transition:border-color .2s ease, opacity .2s ease;}
.prod_topArea .prod_photoBox .prod_thumb_swiper .swiper-slide img {display:block; width:100%; height:100%; margin:0; object-fit:contain; object-position:center;}
.prod_topArea .prod_photoBox .prod_thumb_swiper .swiper-slide:hover {opacity:.7;}
.prod_topArea .prod_photoBox .prod_thumb_swiper .swiper-slide-thumb-active {border-color:#1b1b1b; opacity:1;}
.prod_topArea .prod_photoBox .prod_swiper_pagination {display:none;}

/* 상품 정보 영역 */
.prod_topArea .prod_infoBox {container-type:inline-size; flex:1 1 auto; width:auto; min-width:0; padding:clamp(28px, 3.2vw, 64px) 5%; box-sizing:border-box; background:#fff;}
.prod_topArea .prod_infoBox .prod_smry {position:relative; width:100%; margin:0 auto; color:#1b1b1b;}

/* 캠페인 배지 */
.prod_topArea .prod_infoBox .prod_badge {margin-bottom:clamp(10px, 1.5vw, 16px);}
.prod_topArea .prod_infoBox .prod_badge .item {display:inline-flex; align-items:center; min-height:clamp(24px, 2.2vw, 30px); padding:0 clamp(7px, .7vw, 10px); border-radius:4px; background:#f7f7f5; color:#666; font-size:clamp(11px, 1.15vw, 14px); font-weight:500; line-height:1;}

/* 상품명 */
.prod_topArea .prod_infoBox .prod_heading {position:relative;}
.prod_topArea .prod_infoBox .prod_heading .prod_name {margin:0; color:#1b1b1b; font-size:clamp(16px, 2.25vw, 26px); font-weight:600; line-height:1.3; letter-spacing:-.5px; word-break:keep-all;}

/* 상품 특징 */
.prod_topArea .prod_infoBox .prod_features {display:flex; flex-wrap:wrap; align-items:center; margin-bottom:clamp(10px, 1.5vw, 16px); color:#666; font-size:clamp(13px, 1.3vw, 14px); font-weight:400; line-height:1.5;}
.prod_topArea .prod_infoBox .prod_features .item {display:inline-flex; align-items:center; min-height:clamp(24px, 2.2vw, 30px); margin:0 5px 0 0; padding:0 clamp(7px, .7vw, 10px); border-radius:4px; background:#f7f7f5; color:#666; font-size:clamp(11px, 1.15vw, 14px); font-weight:500; line-height:1;}

/* 공유 버튼 */
.prod_topArea .prod_infoBox .btn_prod_share {overflow:hidden; position:absolute; top:0; right:0; width:clamp(28px, 3vw, 30px); height:clamp(28px, 3vw, 30px); padding:0; border:0; background:url("https://toun28.s3.ap-northeast-2.amazonaws.com/new/ico_share_gray.svg") no-repeat 50% 50% / 100%; text-indent:-999px; cursor:pointer;}

/* 가격 영역 */
.prod_topArea .prod_infoBox .prod_pricing {margin-top:clamp(20px, 3vw, 30px);}
.prod_topArea .prod_infoBox .prod_price {display:flex; flex-wrap:wrap; align-items:center;}

/* 할인율 */
.prod_topArea .prod_infoBox .discount_rate {color:#666; font-size:clamp(14px, 1.75vw, 20px); font-weight:600; line-height:1.3;}
.prod_topArea .prod_infoBox .discount_rate:after {content:'%'; font-weight:600;}

/* 정가 */
.prod_topArea .prod_infoBox .origin_price {margin-left:clamp(4px, .5vw, 7px); color:#aaa; font-size:clamp(14px, 1.55vw, 20px); font-weight:300; line-height:1.3; text-decoration:line-through;}
.prod_topArea .prod_infoBox .origin_price:after {content:'원';}

/* 판매가 */
.prod_topArea .prod_infoBox .sell_price {display:block; flex-basis:100%; margin-top:clamp(3px, .2vw, 5px); color:#111; font-size:clamp(20px, 3.2vw, 30px); font-weight:700; line-height:1.1;}
.prod_topArea .prod_infoBox .sell_price:after {content:'원';}

/* 상단 가격행 (첫가입혜택가 .newbie_price / 쿠폰적용가 .coupon_price / 최대혜택가 .lowest_price 공통) */
.prod_topArea .prod_infoBox .newbie_price,
.prod_topArea .prod_infoBox .coupon_price,
.prod_topArea .prod_infoBox .lowest_price {display:flex; flex-wrap:wrap; align-items:center; column-gap:clamp(6px, .8vw, 12px); row-gap:6px; margin:6px 0 0 0;}
.prod_topArea .prod_infoBox .price_after_newbie,
.prod_topArea .prod_infoBox .price_after_coupon,
.prod_topArea .prod_infoBox .price_after_lowest {color:#0b41cd; font-size:clamp(20px, 3.2vw, 30px); font-weight:700; line-height:1.1; letter-spacing:-0.5px;}
.prod_topArea .prod_infoBox .price_after_newbie:after,
.prod_topArea .prod_infoBox .price_after_coupon:after,
.prod_topArea .prod_infoBox .price_after_lowest:after {content:'원';}
.prod_topArea .prod_infoBox .btn_newbie_detail,
.prod_topArea .prod_infoBox .btn_coupon_detail,
.prod_topArea .prod_infoBox .btn_lowest_detail {display:inline-flex; align-items:center; margin-right:auto; color:#0b41cd; font-size:clamp(13px, 1.45vw, 16px); font-weight:500; line-height:1.3; letter-spacing:-0.5px; white-space:nowrap;}

/* 상세보기 안내(i) 아이콘 */
.prod_topArea .prod_infoBox .btn_newbie_detail:after,
.prod_topArea .prod_infoBox .btn_coupon_detail:after,
.prod_topArea .prod_infoBox .btn_lowest_detail:after {content:'i'; display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; width:clamp(14px, 1.6vw, 16px); height:clamp(14px, 1.6vw, 16px); margin:0 0 0 5px; font-size:clamp(9px, 1vw, 12px); font-weight:700; font-style:normal; line-height:1; border:1.5px solid currentColor; border-radius:50%; box-sizing:border-box;}

/* 쿠폰 받기 */
.prod_topArea .prod_infoBox .btn_coupon_download {flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; min-width:clamp(80px, 10vw, 100px); height:clamp(32px, 4vw, 38px); padding:0 clamp(11px, 1.3vw, 13px); border:1px solid #0b41cd; border-radius:4px; box-sizing:border-box; color:#0b41cd; font-family:inherit; font-size:clamp(13px, 1.3vw, 14px); font-weight:600; letter-spacing:-1px; white-space:nowrap; background:#edf2fd; cursor:pointer;}
.prod_topArea .prod_infoBox .btn_coupon_download:before {content:''; display:inline-block; width:clamp(14px, 1.8vw, 16px); height:clamp(14px, 1.8vw, 16px); margin:0 4px 0 0; background:url("https://toun28.s3.ap-northeast-2.amazonaws.com/new/ico_coupon_blue.svg") no-repeat center / contain;}

/* 배송비 */
.prod_topArea .prod_infoBox .prod_delivery {margin-top:clamp(20px, 3vw, 30px);}
.prod_topArea .prod_infoBox .delivery_info {margin:0; color:#1b1b1b; font-size:clamp(12px, 1.25vw, 17px); font-weight:400; line-height:1.5;}
.prod_topArea .prod_infoBox .prod_delivery .ship_line {margin-top:clamp(5px,1.8vw,10px); padding-top:clamp(5px,1.8vw,10px); border-top:1px solid #ececec;}
.prod_topArea .prod_infoBox .prod_infosec {margin-top:clamp(20px,3.2vw,25px);}
.prod_topArea .prod_infoBox .prod_infosec_title {margin:0 0 5px 0; color:#1b1b1b; font-size:clamp(13px,1.9vw,16px); font-weight:500; line-height:1.3;}
.prod_topArea .prod_infoBox .prod_smry_list {margin:0; padding:0; list-style:none;}
.prod_topArea .prod_infoBox .prod_smry_list li {position:relative; padding-left:14px; color:#666; font-size:clamp(12px,1.4vw,15px); font-weight:300; line-height:1.7;}
.prod_topArea .prod_infoBox .prod_smry_list li:before {content:'•'; position:absolute; left:0; top:0; color:#999;}
.prod_topArea .prod_infoBox .prod_taglist {display:flex; flex-wrap:wrap; gap:5px; margin:0; padding:0; list-style:none;}
.prod_topArea .prod_infoBox .prod_taglist li {display:inline-flex; align-items:center; height:clamp(26px,3.0vw,30px); padding:0 clamp(10px,1.3vw,15px); border:1px solid #e2e4e8; border-radius:999px; background:#fff; color:#666; font-size:clamp(11px,1.4vw,14px); font-weight:300; line-height:1;}
.prod_topArea .prod_infoBox .related_grid {display:grid; grid-template-columns:repeat(4, 1fr); gap:clamp(8px,1.4vw,14px); margin:0; padding:0; list-style:none;}
.prod_topArea .prod_infoBox .related_card {min-width:0;}
.prod_topArea .prod_infoBox .related_link {display:block; width:100%;}
.prod_topArea .prod_infoBox .related_thumb {position:relative; display:block; width:100%; aspect-ratio:1 / 1; border-radius:10px; overflow:hidden; background:#f2f3f5;}
.prod_topArea .prod_infoBox .related_thumb .img_placeholder {display:block; width:100%; height:100%; background:#eef0f2 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 24 24' fill='none' stroke='%23aab1ba' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><circle cx='9' cy='9' r='1.5'/><path d='M21 15l-4.5-4.5L6 21'/></svg>") no-repeat center / clamp(26px,5vw,36px);}

/* 구매 버튼 영역 */
.prod_topArea .prod_infoBox .prod_cta {display:grid; grid-template-columns:1fr 1fr; gap:clamp(5px, 1vw, 10px); margin-top:clamp(10px, 3.5vw, 15px); padding-top:clamp(10px, 3.2vw, 15px);}
.prod_topArea .prod_infoBox .prod_cta button {display:flex; align-items:center; justify-content:center; width:100%; height:60px; padding:0; font-size:clamp(14px, 1.3vw, 18px); font-weight:600; border-radius:8px; box-sizing:border-box; line-height:1; cursor:pointer;}
.prod_topArea .prod_infoBox .prod_cta button:disabled {color:#aaa; border-color:#e0e0e0; background:#f2f2f2; cursor:not-allowed; pointer-events:none;}
.prod_topArea .prod_infoBox .prod_cta .btn_cart_add {color:#222; border:1px solid #d7d3cf; background:#fff;}
.prod_topArea .prod_infoBox .prod_cta .btn_buy_now {color:#fff; border:1px solid #191817; background:#191817;}
.prod_topArea .prod_infoBox .prod_cta .btn_prod_soldout {grid-column:1 / -1; display:block; width:100%; height:60px; padding:0; border:1px solid #e0e0e0; border-radius:4px; box-sizing:border-box; color:#aaa; font-family:inherit; font-size:20px; font-weight:600; text-align:center; line-height:60px; background:#f2f2f2; cursor:not-allowed; pointer-events:none;}

/* ===== 공통 유틸 ===== */
.is_hidden {display:none !important;}
body.popup_open {overflow:hidden;}

/* ===== 가격 상세 팝업 ===== */
.popWrap {display:none; position:fixed; inset:0; z-index:1000; align-items:center; justify-content:center; padding:20px; box-sizing:border-box; background:rgba(17,17,17,.55);}
.popWrap.is_open {display:flex;}
.popWrap .pop_inner {position:relative; display:flex; flex-direction:column; width:100%; max-width:420px; max-height:90vh; overflow-y:auto; border-radius:16px; box-sizing:border-box; background:#fff;}
.popWrap .pop_inner .topBox {display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:24px 24px 14px;}
.popWrap .pop_inner .topBox h3 {margin:0; color:#1b1b1b; font-size:clamp(16px, 1.2vw, 20px); font-weight:700; line-height:1.35; word-break:keep-all;}
.popWrap .pop_inner .topBox .btn_popWrap_close {position:relative; flex:0 0 auto; width:24px; height:24px; padding:0; border:0; background:transparent; color:transparent; font-size:0; cursor:pointer;}
.popWrap .pop_inner .topBox .btn_popWrap_close:before,
.popWrap .pop_inner .topBox .btn_popWrap_close:after {position:absolute; top:50%; left:50%; width:22px; height:2px; background:#1b1b1b; content:'';}
.popWrap .pop_inner .topBox .btn_popWrap_close:before {transform:translate(-50%, -50%) rotate(45deg);}
.popWrap .pop_inner .topBox .btn_popWrap_close:after {transform:translate(-50%, -50%) rotate(-45deg);}
.popWrap .pop_inner .midBox {padding:25px 20px; background:#fcfaf7;}
.popWrap .pop_inner .midBox > .desc {margin:0 0 10px 0; color:#666; font-size:14px; line-height:1.55; text-align:center;}
.popWrap .pop_inner .midBox > .desc a {color:#0b41cd; font-weight:700; text-decoration:underline;}
.popWrap .pop_inner .midBox .roundBox {border:1px solid #e8e8e8; border-radius:12px; background:#fff;}
.popWrap .pop_inner .midBox .roundBox.pd15 {padding:10px 20px;}	
.popWrap .pop_inner .midBox .roundBox .dl_price_history {display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 0;}
.popWrap .pop_inner .midBox .roundBox .dl_price_history + .dl_price_history {border-top:1px solid #e9e7e3;}
.popWrap .pop_inner .midBox .roundBox .dl_price_history dt {display:flex; align-items:center; flex-wrap:wrap; gap:10px; color:#1b1b1b; font-size:14px; font-weight:400; line-height:1.3;}
.popWrap .pop_inner .midBox .roundBox .dl_price_history dt span {color:#0b41cd; font-size:13px; font-weight:500;}
.popWrap .pop_inner .midBox .roundBox .dl_price_history dd {margin:0; color:#1b1b1b; font-size:16px; font-weight:600; white-space:nowrap;}
.popWrap .pop_inner .midBox .roundBox .dl_price_history dd.origin {font-size:20px;}
.popWrap .pop_inner .midBox .roundBox .dl_price_history dd:after {content:'원';}
.popWrap .pop_inner .midBox .coupon_final_price {display:flex; align-items:center; justify-content:space-between; gap:12px; margin:15px 0 0 0; padding:0 20px;}
.popWrap .pop_inner .midBox .coupon_final_price dt {color:#1b1b1b; font-size:18px; font-weight:700;}
.popWrap .pop_inner .midBox .coupon_final_price dd {margin:0; color:#0b41cd; font-size:22px; font-weight:700; white-space:nowrap;}
.popWrap .pop_inner .midBox .coupon_final_price dd:after {content:'원';}
.popWrap .pop_inner .midBox .descBox {margin:20px 0 0 0; padding:0; list-style:none;}
.popWrap .pop_inner .midBox .descBox li {position:relative; padding:0 0 0 10px; color:#666; font-size:13px; font-weight:300; line-height:1.65;}
.popWrap .pop_inner .midBox .descBox li:before {position:absolute; left:2px; top:0; content:'·';}
.popWrap .pop_inner .btmBox {position:relative; margin-top:auto; padding:20px 15px 25px;}
.popWrap .pop_inner .btmBox .desc {margin:0 0 12px; color:#1b1b1b; font-size:15px; text-align:center;}
.popWrap .pop_inner .btmBox .desc .ft_point_bure {color:#0b41cd; font-weight:700;}
.popWrap .pop_inner .btmBox .btnBox {display:grid; grid-template-columns:1fr 1fr; gap:5px;}
.popWrap .pop_inner .btmBox .btnBox button {height:56px; border-radius:8px; box-sizing:border-box; font-family:inherit; font-size:clamp(14px, 1.3vw, 17px); font-weight:600; cursor:pointer;}
.popWrap .pop_inner .btmBox .btnBox button:only-child {grid-column:1 / -1;}
.popWrap .pop_inner .btmBox .btnBox .btn_popCart_add {border:1px solid #d7d3cf; background:#fff; color:#222;}
.popWrap .pop_inner .btmBox .btnBox .btn_popBuy_now {border:1px solid #191817; background:#191817; color:#fff;}
.popWrap .pop_inner .btmBox .tip_bubble {content:''; position:absolute; top:40px; left:50%; min-width:80px; padding:7px 10px; color:#ffffff; font-size:0.95rem; font-weight:500; line-height:1.0; border-radius:20px; background: #007afb; transform: translateX(-50%); animation: tip_bubble 4.0s infinite;}
.popWrap .pop_inner .btmBox .tip_bubble:after {content:''; position:absolute; left:50%; bottom:-4px; border-top:5px solid #007afb; border-left:5px solid transparent; border-right:5px solid transparent; border-bottom:0px solid transparent;}

@keyframes tip_bubble {
0%   {transform:translateX(-50%) translateY(0);}
25%  {transform:translateX(-50%) translateY(6px);}
50%  {transform:translateX(-50%) translateY(0);}
51%  {transform:translateX(-50%) translateY(0);}
75%  {transform:translateX(-50%) translateY(6px);}
100% {transform:translateX(-50%) translateY(0);}
}

/* ================= 상품 중간영역 (리뷰/상세/후기) ================= */
.prod_midArea {max-width:1080px; margin:0 auto; padding:clamp(28px, 4vw, 56px) 5% clamp(40px, 5vw, 80px);}

/* 리뷰 요약 별점 */
.prod_midArea .review_summary {text-align:center;}
.prod_midArea .review_score {display:inline-flex; align-items:center; justify-content:center; gap:5px;}
.prod_midArea .review_stars {position:relative; display:inline-block; font-size:clamp(20px, 3vw, 26px); line-height:1; letter-spacing:2px; white-space:nowrap;}
.prod_midArea .review_stars::before {content:"\2605\2605\2605\2605\2605"; color:#e2e4e8;}
.prod_midArea .review_stars .review_stars_fill {position:absolute; top:0; left:0; width:var(--rate, 0%); overflow:hidden; white-space:nowrap;}
.prod_midArea .review_stars .review_stars_fill::before {content:"\2605\2605\2605\2605\2605"; color:#1b1b1b;}
.prod_midArea .review_avg {color:#1b1b1b; font-size:clamp(20px, 3vw, 26px); font-weight:700; line-height:1;}
.prod_midArea .review_total {margin:8px 0 0; color:#999; font-size:clamp(13px, 1.4vw, 15px);}

/* 포토 리뷰 */
.prod_midArea .review_photos {display:grid; grid-template-columns:repeat(10, 1fr); gap:clamp(8px, 1vw, 14px); margin:clamp(20px, 3vw, 34px) 0 0; padding:0; list-style:none;}
.prod_midArea .review_photos li {margin:0;}
.prod_midArea .review_photo {display:block; width:100%; aspect-ratio:1 / 1; padding:0; border:0; border-radius:10px; background:#eef0f2 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 24 24' fill='none' stroke='%23aab1ba' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><circle cx='9' cy='9' r='1.5'/><path d='M21 15l-4.5-4.5L6 21'/></svg>") no-repeat center / clamp(26px, 4vw, 34px); cursor:pointer;}
.prod_midArea .review_photo img {display:block; width:100%; height:100%; border-radius:10px; object-fit:cover;}

/* AI 리뷰 요약 */
.prod_midArea .ai_review {margin:clamp(20px, 3vw, 34px) 0 0; padding:clamp(18px, 2.2vw, 26px); border-radius:12px; background:#f4f5f7;}
.prod_midArea .ai_review_title {display:flex; align-items:center; gap:7px; margin:0; color:#1b1b1b; font-size:clamp(15px, 1.7vw, 18px); font-weight:700; line-height:1;}
.prod_midArea .ico_ai {display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; width:22px; height:22px; border:1.5px solid #b9bec6; border-radius:6px; color:#8a9098; font-size:12px; font-weight:700; font-style:normal; line-height:1;}
.prod_midArea .ai_review_lead {margin:clamp(12px, 1.6vw, 18px) 0 0; color:#1b1b1b; font-size:clamp(13px, 1.6vw, 17px); font-weight:500; line-height:1.45;}
.prod_midArea .ai_review_desc {margin:8px 0 0; color:#666; font-size:clamp(12px, 1.45vw, 15px); font-weight:300; line-height:1.6;}
.prod_midArea .ai_review_tags {display:flex; flex-wrap:wrap; gap:5px; margin:clamp(14px, 1.8vw, 18px) 0 0; padding:0; list-style:none;}
.prod_midArea .ai_review_tags li {display:inline-flex; align-items:center; height:clamp(30px, 3.4vw, 36px); padding:0 clamp(11px, 1.2vw, 14px); border:1px solid #e2e4e8; border-radius:999px; background:#fff; color:#666; font-size:clamp(11px, 1.3vw, 14px); line-height:1;}

/* 상세/후기 탭 */
.prod_midArea .prod_tabs {margin:clamp(28px, 4vw, 48px) 0 0;}
.prod_midArea .tab_nav {display:flex; border-bottom:1px solid #e2e4e8;}
.prod_midArea .tab_btn {flex:1 1 0; position:relative; padding:clamp(12px, 1.6vw, 16px) 0; border:0; background:transparent; color:#999; font-family:inherit; font-size:clamp(13px, 1.7vw, 17px); font-weight:500; letter-spacing:-0.5px; line-height:1.2; cursor:pointer;}
.prod_midArea .tab_btn.is_active {color:#1b1b1b; font-weight:600;}
.prod_midArea .tab_btn.is_active::after {content:''; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:#1b1b1b;}
.prod_midArea .tab_panel {padding:clamp(20px, 3vw, 32px) 0 0;}

/* 상세설명 이미지(여러장, lazy) */
.prod_midArea .prod_desc {position:relative;}
.prod_midArea .prod_desc .prod_desc_img {display:block; width:100%; height:auto;}
.prod_midArea .prod_desc video {display:block; width:100%; height:auto; margin:0; background:#eef0f2;}
.prod_midArea .prod_desc figure {margin:0;}
.prod_midArea .prod_desc .prod_desc_cap {position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}
.prod_midArea .prod_desc video:focus {outline:0;}

/* 구매후기(빈 상태) */
.prod_midArea .review_empty {padding:60px 0; color:#999; font-size:15px; text-align:center;}
/* ================= 제품후기 탭 ================= */
.prod_midArea .rv_notice {border-bottom:1px solid #eee;}
.prod_midArea .rv_notice_head {display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; padding:clamp(14px,1.8vw,18px) 0; border:0; background:transparent; font-family:inherit; cursor:pointer;}
.prod_midArea .rv_notice_txt {color:#999; font-size:clamp(11px,1.4vw,15px); font-weight:400; text-align:left; line-height:1.4;}
.prod_midArea .rv_notice_chevron {flex:0 0 auto; width:9px; height:9px; border-right:2px solid #bbb; border-bottom:2px solid #bbb; transform:rotate(45deg) translateY(-2px); transition:transform .2s;}
.prod_midArea .rv_notice_head[aria-expanded="true"] .rv_notice_chevron {transform:rotate(-135deg) translateY(-2px);}
.prod_midArea .rv_notice_body {display:flex; gap:clamp(16px,3vw,40px); padding:clamp(14px,2vw,20px) 0 clamp(20px,2.6vw,28px);}
.prod_midArea .rv_notice_body.is_hidden {display:none;}
.prod_midArea .rv_notice_label {flex:0 0 auto; color:#666; font-size:clamp(13px,1.5vw,15px); font-weight:500;}
.prod_midArea .rv_notice_list {margin:0; padding:0; list-style:none;}
.prod_midArea .rv_notice_list li {position:relative; margin-top:9px; padding-left:12px; color:#666; font-size:clamp(12px,1.4vw,14px); font-weight:400; line-height:1.5;}
.prod_midArea .rv_notice_list li:first-child {margin-top:0;}
.prod_midArea .rv_notice_list li:before {content:'·'; position:absolute; left:2px; top:0; color:#999;}
.prod_midArea .rv_top {display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:clamp(20px,2.6vw,28px);}
.prod_midArea .rv_count {margin:0; display:flex; align-items:center; gap:6px; color:#666; font-size:clamp(14px,1.6vw,16px); font-weight:400;}
.prod_midArea .rv_count strong {color:#1b1b1b; font-size:clamp(18px,2.2vw,22px); font-weight:700;}
.prod_midArea .rv_count_help {width:18px; height:18px; padding:0; border:1px solid #ccc; border-radius:50%; background:transparent; color:#999; font-family:inherit; font-size:11px; line-height:1; cursor:pointer;}
.prod_midArea .btn_rv_write {flex:0 0 auto; height:clamp(40px,5vw,46px); padding:0 clamp(16px,2vw,22px); border:1px solid #1b43c8; border-radius:8px; background:#ffffff; color:#1b43c8; font-family:inherit; font-size:clamp(13px,1.5vw,15px); font-weight:700; cursor:pointer;}
/* 작성 가능한 리뷰 건수 배지 — 없으면 버튼을 잠그고 배지를 감춘다 */
.prod_midArea .btn_rv_write_n {display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; margin-left:6px; padding:0 5px; box-sizing:border-box; border-radius:99px; background:#1b43c8; color:#fff; font-size:11px; font-weight:700; line-height:1; vertical-align:1px;}
.prod_midArea .btn_rv_write_n[hidden] {display:none;}
.prod_midArea .btn_rv_write:hover:not(:disabled) {background:#f2f5ff;}
.prod_midArea .btn_rv_write:disabled {border-color:#e5e5e5; background:#fafafa; color:#c9c9c9; cursor:default;}
.prod_midArea .btn_rv_write:disabled .btn_rv_write_n {background:#d8dbe0;}
.prod_midArea .rv_stats {position:relative; margin-top:clamp(20px,2.6vw,28px); padding:clamp(18px,2.4vw,26px) 0; border-top:1px solid #eee; border-bottom:1px solid #eee;}
.prod_midArea .rv_stats_track {display:grid; grid-template-columns:repeat(3, 1fr); gap:clamp(18px,3vw,40px);}
.prod_midArea .rv_stat_title {display:block; margin:0 0 12px; color:#333; font-size:clamp(13px,1.5vw,16px); font-weight:600;}
.prod_midArea .rv_stat_list {margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:9px;}
.prod_midArea .rv_stat_list li {display:flex; align-items:center; gap:5px;}
.prod_midArea .rv_stat_k {flex:0 0 auto; width:clamp(44px,6vw,54px); color:#999; font-size:clamp(11px,1.3vw,13px); font-weight:400;}
.prod_midArea .rv_stat_list li.is_top .rv_stat_k {color:#1b1b1b; font-weight:700;}
.prod_midArea .rv_bar {flex:1 1 auto; height:6px; border-radius:3px; background:#efefef; overflow:hidden;}
.prod_midArea .rv_bar_fill {display:block; height:100%; border-radius:3px; background:#333;}
.prod_midArea .rv_stat_list li:last-child .rv_bar_fill {background:#dcdcdc;}
.prod_midArea .rv_stat_v {flex:0 0 auto; width:38px; text-align:right; color:#666; font-size:clamp(11px,1.3vw,13px); font-weight:500;}
.prod_midArea .rv_stat_list li.is_top .rv_stat_v {color:#1b1b1b; font-weight:700;}
.prod_midArea .rv_photos_row[hidden] {display:none;}
.prod_midArea .rv_photos_row {display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-top:clamp(18px,2.4vw,24px);}
.prod_midArea .rv_photo_thumbs {display:flex; gap:5px; margin:0; padding:0; list-style:none;}
.prod_midArea .rv_photo_thumb {position:relative; width:clamp(64px,11vw,86px); height:clamp(64px,11vw,86px); border-radius:8px; overflow:hidden;}
.prod_midArea .rv_photo_thumb .img_placeholder {display:block; width:100%; height:100%; background:#eef0f2 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 24 24' fill='none' stroke='%23aab1ba' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><circle cx='9' cy='9' r='1.5'/><path d='M21 15l-4.5-4.5L6 21'/></svg>") no-repeat center / 28px;}
.prod_midArea .rv_photo_thumb_btn {position:relative; display:block; width:100%; height:100%; padding:0; border:0; border-radius:8px; overflow:hidden; background:transparent; cursor:pointer;}
.prod_midArea .rv_photo_more {pointer-events:none; position:absolute; right:6px; bottom:6px; display:inline-flex; align-items:center; height:20px; padding:0 7px; border-radius:10px; background:rgba(0,0,0,.55); color:#fff; font-size:12px; font-weight:600; line-height:1;}
/* 배지 자체가 display 를 들고 있어 [hidden] 만으로는 감춰지지 않는다 */
.prod_midArea .rv_photo_more[hidden] {display:none;}
.prod_midArea .rv_photo_only {display:inline-flex; align-items:center; gap:6px; padding:0; border:0; background:transparent; color:#999; font-family:inherit; font-size:clamp(12px,1.4vw,14px); font-weight:400; cursor:pointer; white-space:nowrap;}
.prod_midArea .rv_check {position:relative; display:inline-flex; flex:0 0 auto; width:18px; height:18px; border:1.5px solid #cdcdcd; border-radius:50%; box-sizing:border-box;}
.prod_midArea .rv_photo_only[aria-pressed="true"] {color:#1b43c8;}
.prod_midArea .rv_photo_only[aria-pressed="true"] .rv_check {border-color:#1b43c8; background:#1b43c8;}
.prod_midArea .rv_photo_only[aria-pressed="true"] .rv_check:after {content:''; position:absolute; left:5px; top:3px; width:4px; height:8px; border-right:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(45deg);}
.prod_midArea .rv_sort_row {display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:clamp(20px,2.6vw,28px); padding-top:clamp(16px,2vw,20px); border-top:1px solid #eee;}
.prod_midArea .rv_sorts {display:flex; align-items:center; gap:clamp(12px,2vw,20px);}
.prod_midArea .rv_sort {padding:0; border:0; background:transparent; color:#aaa; font-family:inherit; font-size:clamp(13px,1.5vw,16px); font-weight:400; cursor:pointer;}
.prod_midArea .rv_sort.is_active {color:#1b1b1b; font-weight:700;}
.prod_midArea .btn_rv_filter {display:inline-flex; align-items:center; gap:6px; padding:0; border:0; background:transparent; color:#666; font-family:inherit; font-size:clamp(13px,1.5vw,15px); font-weight:500; cursor:pointer;}
.prod_midArea .rv_filter_ico {width:17px; height:17px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round'%3E%3Cline x1='4' y1='8' x2='20' y2='8'/%3E%3Cline x1='4' y1='16' x2='20' y2='16'/%3E%3Ccircle cx='9' cy='8' r='2.4' fill='%23fff'/%3E%3Ccircle cx='15' cy='16' r='2.4' fill='%23fff'/%3E%3C/svg%3E") no-repeat center / contain;}
.prod_midArea .rv_list {margin:0; padding:0; list-style:none;}
/* 포토 리뷰만 보기로 걸러낸 리뷰 — 규칙이 display 를 들고 있어 [hidden] 만으로는 감춰지지 않는다 */
.prod_midArea .rv_item[hidden] {display:none;}
.prod_midArea .rv_item {display:flex; align-items:flex-start; gap:clamp(14px,3vw,36px); padding:clamp(20px,2.6vw,28px) 0; border-bottom:1px solid #eee;}
.prod_midArea .rv_item_left {flex:0 0 auto; width:clamp(110px,17vw,168px);}
.prod_midArea .rv_item_score {display:flex; align-items:center; gap:5px;}
.prod_midArea .rv_item_right {flex:1 1 auto; min-width:0;}
.prod_midArea .rv_item_metarow {display:flex; align-items:baseline; justify-content:space-between; gap:12px;}
.prod_midArea .rv_stars {position:relative; display:inline-block; font-size:15px; line-height:0; color:#e0e0e0; letter-spacing:1px; white-space:nowrap;}
.prod_midArea .rv_stars:before {content:'★★★★★';}
.prod_midArea .rv_stars_fill {position:absolute; left:0; top:0; overflow:hidden; white-space:nowrap; color:#1b1b1b; line-height:0;}
.prod_midArea .rv_stars_fill:before {content:'★★★★★';}
.prod_midArea .rv_rate {color:#1b1b1b; font-size:clamp(14px,1.6vw,16px); font-weight:700;}
.prod_midArea .rv_user {display:block; margin-top:8px; color:#999; font-size:clamp(11px,1.5vw,15px); font-weight:400;}
.prod_midArea .rv_date {flex:0 0 auto; color:#aaa; font-size:clamp(11px,1.4vw,14px); font-weight:400;}
.prod_midArea .rv_meta {margin:0; color:#999; font-size:clamp(11px,1.4vw,14px); font-weight:400;}
.prod_midArea .rv_meta em {color:#666; font-style:normal; font-weight:500;}
.prod_midArea .rv_meta_div {margin-left:12px; color:#999; font-weight:300;}
.prod_midArea .rv_text {margin:10px 0 0; color:#444; font-size:clamp(12px,1.5vw,15px); font-weight:300; line-height:1.5;}
.prod_midArea .rv_item_photos {display:flex; flex-wrap:wrap; gap:5px; margin:clamp(12px,1.6vw,16px) 0 0; padding:0; list-style:none;}
.prod_midArea .rv_item_photo {width:clamp(76px,12vw,96px); height:clamp(76px,12vw,96px);}
.prod_midArea .rv_item_photo_btn {display:block; width:100%; height:100%; padding:0; border:0; border-radius:8px; overflow:hidden; background:transparent; cursor:pointer;}
.prod_midArea .rv_item_photo_btn .img_placeholder {display:block; width:100%; height:100%; background:#eef0f2 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 24 24' fill='none' stroke='%23aab1ba' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><circle cx='9' cy='9' r='1.5'/><path d='M21 15l-4.5-4.5L6 21'/></svg>") no-repeat center / 28px;}

/* ===== 리뷰 사진 뷰어 =====
   모아보기 줄의 썸네일과 리뷰 카드 안 사진이 같은 뷰어를 연다.
   사진만 크게 띄우면 누구 리뷰인지 알 수 없어, 아래에 그 사진이 달린 리뷰(별점·작성자·본문)를 함께 붙였다.
   .prod_midArea 밖에 놓이는 요소라 리뷰 목록 스타일을 물려받지 못한다 — 별점 등은 여기서 다시 정의한다. */
.rvpv {display:none; position:fixed; inset:0; z-index:1600; flex-direction:column; background:#101114; opacity:0; transition:opacity .2s ease;}
.rvpv.is_open {display:flex;}
.rvpv.is_shown {opacity:1;}
.rvpv_top {flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; height:56px; padding:0 clamp(10px,3vw,20px); box-sizing:border-box;}
.rvpv_count {color:#cfd2d6; font-size:14px; font-weight:400; letter-spacing:.02em;}
.rvpv_count b {color:#fff; font-weight:700;}
.rvpv_close {position:relative; flex:0 0 auto; width:36px; height:36px; padding:0; border:0; background:transparent; cursor:pointer;}
.rvpv_close:before, .rvpv_close:after {content:''; position:absolute; left:50%; top:50%; width:19px; height:1.5px; margin:-1px 0 0 -9.5px; border-radius:1px; background:#fff;}
.rvpv_close:before {transform:rotate(45deg);}
.rvpv_close:after {transform:rotate(-45deg);}
.rvpv_stage {position:relative; flex:1 1 auto; display:flex; align-items:center; justify-content:center; min-height:0; padding:0 clamp(14px,5vw,72px); box-sizing:border-box;}
.rvpv_shot {width:100%; max-width:600px; max-height:100%; aspect-ratio:1 / 1; border-radius:10px; overflow:hidden;}
.rvpv_shot .img_placeholder {display:block; width:100%; height:100%; background:#2a2c30 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 24 24' fill='none' stroke='%236b7078' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><circle cx='9' cy='9' r='1.5'/><path d='M21 15l-4.5-4.5L6 21'/></svg>") no-repeat center / 64px;}
.rvpv_nav {position:absolute; top:50%; width:40px; height:40px; margin-top:-20px; padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.14); cursor:pointer;}
.rvpv_nav:hover {background:rgba(255,255,255,.24);}
.rvpv_nav:before {content:''; position:absolute; left:50%; top:50%; width:9px; height:9px; margin:-5px 0 0 -6px; border-top:1.5px solid #fff; border-right:1.5px solid #fff;}
.rvpv_prev {left:max(clamp(8px,2vw,22px), calc(50% - 358px));}
.rvpv_prev:before {margin-left:-3px; transform:rotate(-135deg);}
.rvpv_next {right:max(clamp(8px,2vw,22px), calc(50% - 358px));}
.rvpv_next:before {transform:rotate(45deg);}
/* 넘길 사진이 없으면 화살표를 아예 감춘다 — 눌러도 아무 일이 없는 버튼은 두지 않는다 */
.rvpv_nav:disabled {opacity:0; pointer-events:none;}
.rvpv_info {flex:0 0 auto; max-height:40vh; overflow-y:auto; padding:16px clamp(16px,4vw,24px) calc(18px + env(safe-area-inset-bottom, 0px)); border-top:1px solid rgba(255,255,255,.1); box-sizing:border-box;}
.rvpv_info_top {display:flex; align-items:center; gap:8px; max-width:600px; margin:0 auto;}
.rvpv_stars {position:relative; display:inline-block; flex:0 0 auto; font-size:14px; line-height:1; color:rgba(255,255,255,.26); letter-spacing:1px; white-space:nowrap;}
.rvpv_stars:before {content:'★★★★★';}
.rvpv_stars_fill {position:absolute; left:0; top:0; overflow:hidden; white-space:nowrap; color:#fff;}
.rvpv_stars_fill:before {content:'★★★★★';}
.rvpv_rate {flex:0 0 auto; color:#fff; font-size:14px; font-weight:700;}
.rvpv_user {flex:0 0 auto; color:#b9bcc2; font-size:13px; font-weight:400;}
.rvpv_date {margin-left:auto; flex:0 0 auto; color:#7d8189; font-size:12px; font-weight:400;}
.rvpv_text {max-width:600px; margin:10px auto 0; color:#e3e5e8; font-size:14px; font-weight:400; line-height:1.65; word-break:keep-all;}
.rvpv_thumbs {display:flex; gap:6px; max-width:600px; margin:14px auto 0; overflow-x:auto;}
.rvpv_thumbs:empty {display:none;}
.rvpv_thumb {flex:0 0 auto; width:48px; height:48px; padding:0; border:1.5px solid transparent; border-radius:6px; overflow:hidden; background:transparent; cursor:pointer; opacity:.5;}
.rvpv_thumb.is_on {border-color:#fff; opacity:1;}
.rvpv_thumb .img_placeholder {display:block; width:100%; height:100%; background:#2a2c30 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 24 24' fill='none' stroke='%236b7078' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><circle cx='9' cy='9' r='1.5'/><path d='M21 15l-4.5-4.5L6 21'/></svg>") no-repeat center / 22px;}
.prod_midArea .rv_item_foot {display:flex; align-items:center; gap:clamp(8px,1.4vw,12px); margin-top:clamp(14px,1.8vw,18px);}
.prod_midArea .rv_foot_btn {display:inline-flex; align-items:center; gap:5px; height:clamp(30px,3.6vw,36px); padding:0 clamp(10px,1.4vw,14px); border:1px solid #e5e5e5; border-radius:999px; background:#fff; color:#666; font-family:inherit; font-size:clamp(12px,1.3vw,13px); font-weight:400; cursor:pointer; white-space:nowrap;}
.prod_midArea .rv_foot_btn b {font-weight:700; color:#333;}
.prod_midArea .rv_report {margin-left:auto; border:0; padding:0; color:#bbb;}
.prod_midArea .rv_ico_up {width:14px; height:14px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 11v9'/%3E%3Cpath d='M4 11h3v9H4z'/%3E%3Cpath d='M7 11l4-8a2 2 0 0 1 3 2l-1 6h5a2 2 0 0 1 2 2l-2 7a2 2 0 0 1-2 1H7'/%3E%3C/svg%3E") no-repeat center / contain;}
.prod_midArea .rv_ico_cmt {width:14px; height:14px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.5 8.5 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.38 8.38 0 0 1 21 11.5z'/%3E%3C/svg%3E") no-repeat center / contain;}

/* 상품안내 아코디언 */
.prod_midArea .info_acc {border-top:1px solid #e2e4e8;}
.prod_midArea .info_acc:last-child {border-bottom:1px solid #e2e4e8;}
.prod_midArea .info_acc_head {display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; padding:clamp(18px,2.4vw,26px) 0; border:0; background:transparent; font-family:inherit; cursor:pointer;}
.prod_midArea .info_acc_title {color:#1b1b1b; font-size:clamp(15px,1.8vw,18px); font-weight:700;}
.prod_midArea .info_acc_ico {position:relative; flex:0 0 auto; width:16px; height:16px;}
.prod_midArea .info_acc_ico:before, .prod_midArea .info_acc_ico:after {content:''; position:absolute; background:#333;}
.prod_midArea .info_acc_ico:before {left:0; top:50%; width:16px; height:2px; transform:translateY(-50%);}
.prod_midArea .info_acc_ico:after {left:50%; top:0; width:2px; height:16px; transform:translateX(-50%); transition:opacity .15s ease;}
.prod_midArea .info_acc_head[aria-expanded="true"] .info_acc_ico:after {opacity:0;}
.prod_midArea .info_acc_body {padding:clamp(4px,1vw,10px) 0 clamp(26px,3.4vw,38px);}
.prod_midArea .info_acc_body.is_hidden {display:none;}
.prod_midArea .info_txt {margin:0; color:#666; font-size:clamp(13px,1.5vw,15px); font-weight:400; line-height:1.75;}
.prod_midArea .info_txt + .info_txt {margin-top:6px;}
.prod_midArea .info_list {margin:0; padding:0; list-style:none;}
.prod_midArea .info_list li {position:relative; padding-left:13px; color:#666; font-size:clamp(13px,1.5vw,15px); font-weight:400; line-height:1.75;}
.prod_midArea .info_list li:before {content:'-'; position:absolute; left:0; top:0; color:#999;}
.prod_midArea .info_list.info_list_dot li:before {content:'•';}
.prod_midArea .info_list.info_list_mt {margin-top:clamp(18px,2.4vw,24px);}
.prod_midArea .info_sub {margin:clamp(18px,2.2vw,24px) 0 8px; color:#1b1b1b; font-size:clamp(14px,1.6vw,16px); font-weight:700; line-height:1.4;}
.prod_midArea .info_sub:first-child {margin-top:0;}
.prod_midArea .info_note {margin:10px 0 0; color:#999; font-size:clamp(12px,1.4vw,14px); font-weight:400; line-height:1.6;}

/* 리뷰 작성 로그인 알림 */
.pay_confirm_box .rv_alert_title {display:block; margin:0 0 10px; color:#1b1b1b; font-size:clamp(16px,1.9vw,18px); font-weight:700; text-align:center;}

/* 리뷰 필터 시트 */
.rvfilter_wrap .rvfilter_inner {display:flex; flex-direction:column; max-height:88vh; padding:0; background:#fff; overflow:hidden;}
.rvfilter_wrap .rvfilter_head {position:relative; display:flex; align-items:center; height:clamp(54px,8vw,62px); padding:0; border-bottom:1px solid #eee; flex:0 0 auto;}
.rvfilter_wrap .pop_handle {position:absolute; top:8px; left:50%; transform:translateX(-50%);}
.rvfilter_wrap .rvfilter_title {margin:0; color:#1b1b1b; font-size:clamp(17px,2vw,20px); font-weight:700;}
.rvfilter_wrap .rvfilter_close {position:absolute; right:clamp(12px,2vw,18px); top:50%; transform:translateY(-50%); width:32px; height:32px; padding:0; border:0; background:transparent; color:#333; font-family:inherit; font-size:18px; line-height:1; cursor:pointer;}
.rvfilter_wrap .rvfilter_body {flex:1 1 auto; min-height:0; overflow-y:auto; padding:0;}
.rvfilter_wrap .rvfilter_group {display:flex; gap:clamp(12px,2vw,20px); padding:clamp(16px,2vw,20px) 0;}
.rvfilter_wrap .rvfilter_group + .rvfilter_group {border-top:1px solid #f0f0ee;}
.rvfilter_wrap .rvfilter_label {flex:0 0 clamp(58px,10vw,76px); color:#1b1b1b; font-size:clamp(14px,1.6vw,16px); font-weight:700; line-height:1.35;}
.rvfilter_wrap .rvfilter_label em {display:block; margin-top:2px; color:#999; font-size:clamp(11px,1.2vw,12px); font-weight:400; font-style:normal;}
.rvfilter_wrap .rvfilter_chips {display:flex; flex-wrap:wrap; gap:5px;}
.rvfilter_wrap .rvfilter_chip {display:inline-flex; align-items:center; height:clamp(34px,4.2vw,40px); padding:0 clamp(12px,1.6vw,16px); border:1px solid #dcdcd8; border-radius:8px; background:#fff; color:#666; font-family:inherit; font-size:clamp(13px,1.4vw,15px); font-weight:400; cursor:pointer; transition:border-color .15s, background .15s, color .15s;}
.rvfilter_wrap .rvfilter_chip.is_sel {border-color:#1b43c8; background:#f2f5ff; color:#1b43c8; font-weight:600;}
.rvfilter_wrap .rvfilter_btns {flex:0 0 auto; display:grid; grid-template-columns:1fr 1.2fr; gap:5px; padding:clamp(12px,1.6vw,16px) clamp(18px,2.4vw,24px) calc(clamp(14px,2vw,20px) + env(safe-area-inset-bottom)); border-top:1px solid #eee;}
.rvfilter_wrap .rvfilter_btns button {height:clamp(52px,7.5vw,58px); border-radius:8px; box-sizing:border-box; font-family:inherit; font-size:clamp(15px,1.7vw,17px); font-weight:700; cursor:pointer;}
.rvfilter_wrap .btn_rvfilter_apply {border:0; background:#1b43c8; color:#fff;}
.rvfilter_wrap .btn_rvfilter_reset {border:1px solid #d7d3cf; background:#fff; color:#333;}

/* ================= 상품 하단영역 (정보고시/비슷한상품) ================= */
.prod_btmArea {max-width:1080px; margin:0 auto; padding:0 5%;}

.prod_midArea .binfo_list {display:grid; grid-template-columns:clamp(200px, 22vw, 260px) 1fr; column-gap:clamp(16px, 2vw, 28px); row-gap:clamp(18px, 2vw, 24px); margin:clamp(22px, 3vw, 32px) 0 0;}
.prod_midArea .binfo_list dt {margin:0; color:#666; font-size:clamp(13px, 1.45vw, 15px); font-weight:400; line-height:1.6; word-break:keep-all;}
.prod_midArea .binfo_list dd {margin:0; color:#333; font-size:clamp(13px, 1.45vw, 15px); font-weight:400; line-height:1.65; word-break:keep-all;}
.prod_midArea .binfo_list dd.binfo_ingredients {word-break:break-all;}
.prod_midArea .binfo_list dd strong {display:block; margin:0 0 4px; color:#333; font-weight:600;}
.prod_midArea .binfo_list dd strong.mt {margin-top:16px;}

/* 비슷한 상품 둘러보기 */
.prod_btmArea .rel_products {padding:clamp(26px, 3.5vw, 44px) 0 clamp(40px, 5vw, 72px); border-top:1px solid #eee;}
.prod_btmArea .rel_title {margin:0 0 clamp(16px, 2vw, 22px); color:#1b1b1b; font-size:clamp(18px, 2.1vw, 22px); font-weight:700; line-height:1.3;}
.prod_btmArea .rel_swiper {overflow:hidden;}
.prod_btmArea .rel_swiper .swiper-wrapper {margin:0; padding:0; list-style:none; box-sizing:border-box;}
.prod_btmArea .rel_card {width:clamp(150px, 42vw, 200px); box-sizing:border-box;}
.prod_btmArea .rel_card_thumb {position:relative; width:100%; aspect-ratio:1 / 1; border-radius:12px; overflow:hidden; background:#eef0f2;}
.prod_btmArea .rel_thumb_link {display:block; width:100%; height:100%;}
.prod_btmArea .rel_card_thumb .img_placeholder {display:block; width:100%; height:100%; background:#eef0f2 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 24 24' fill='none' stroke='%23aab1ba' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><circle cx='9' cy='9' r='1.5'/><path d='M21 15l-4.5-4.5L6 21'/></svg>") no-repeat center / clamp(30px, 6vw, 40px);}
.prod_btmArea .rel_badge {position:absolute; top:10px; left:10px; z-index:2; display:inline-flex; align-items:center; height:24px; padding:0 9px; border-radius:5px; background:#2f6bff; color:#fff; font-size:12px; font-weight:600; line-height:1;}
.prod_btmArea .btn_rel_add {position:absolute; right:10px; bottom:10px; z-index:2; width:32px; height:32px; padding:0; border:0; border-radius:50%; background:#fff; box-shadow:0 1px 5px rgba(0,0,0,.16); cursor:pointer;}
.prod_btmArea .btn_rel_add::before,
.prod_btmArea .btn_rel_add::after {content:''; position:absolute; top:50%; left:50%; background:#666;}
.prod_btmArea .btn_rel_add::before {width:12px; height:2px; transform:translate(-50%, -50%);}
.prod_btmArea .btn_rel_add::after {width:2px; height:12px; transform:translate(-50%, -50%);}
.prod_btmArea .rel_card_info {display:block; margin-top:10px; color:inherit; text-decoration:none;}
.prod_btmArea .rel_card_name {display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:#1b1b1b; font-size:clamp(14px, 1.5vw, 15px); font-weight:500; line-height:1.4; word-break:keep-all;}
.prod_btmArea .rel_card_price {display:flex; align-items:baseline; flex-wrap:wrap; gap:5px; margin:6px 0 0;}
.prod_btmArea .rel_rate {color:#0b41cd; font-size:clamp(15px, 1.7vw, 18px); font-weight:700; line-height:1.2;}
.prod_btmArea .rel_amount {color:#1b1b1b; font-size:clamp(15px, 1.7vw, 18px); font-weight:700; line-height:1.2;}
.prod_btmArea .rel_coupon {display:block; margin-top:3px; color:#0b41cd; font-size:clamp(12px, 1.3vw, 13px); font-weight:500;}

/* ================= 구매 시트 (구매하기) ================= */
.buyWrap {display:none; position:fixed; inset:0; z-index:1100; align-items:center; justify-content:center; padding:20px; box-sizing:border-box; background:rgba(17,17,17,.5);}
.buyWrap.is_open {display:flex;}
.buyWrap .buy_inner {position:relative; width:100%; max-width:460px; max-height:92vh; overflow-y:auto; padding:20px 25px 25px; border-radius:20px; box-sizing:border-box; background:#f4f4f2; transform:translateY(24px); opacity:0; transition:transform .28s cubic-bezier(.22,.61,.36,1), opacity .24s ease;}
.buyWrap.is_shown .buy_inner {transform:translateY(0); opacity:1;}
.buyWrap .pop_handle {position:relative; display:block; width:100%; height:22px; margin:0 0 6px; padding:0; border:0; background:transparent; cursor:grab; touch-action:none;}
.buyWrap .pop_handle:before {content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:44px; height:4px; border-radius:2px; background:#d2d2cf;}
.buyWrap .pop_handle:active {cursor:grabbing;}

/* 헤더(상품명/가격/수량/배송) */
.buyWrap .buy_pname {margin:0; color:#666; font-size:clamp(13px, 1.6vw, 16px); font-weight:500; line-height:1.4;}
.buyWrap .buy_price_row {display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px;}
.buyWrap .buy_price {color:#0b41cd; font-size:clamp(24px, 4vw, 32px); font-weight:700; line-height:1.1; letter-spacing:-1px;}
.buyWrap.is_guest .buy_price {color:#1b1b1b;}
.buyWrap .buy_qty {display:inline-flex; align-items:center; gap:2px; padding:4px; border-radius:12px; background:#e7e7e4;}
.buyWrap .buy_qty button {width:34px; height:34px; padding:0; border:0; background:transparent; color:#666; font-size:20px; line-height:1; cursor:pointer;}
.buyWrap .buy_qty button:disabled {color:#cdcdcd; cursor:default;}
.buyWrap .buy_qty .qty_input {width:44px; height:34px; padding:0; border:0; border-radius:8px; background:#fff; color:#1b1b1b; font-family:inherit; font-size:16px; font-weight:600; text-align:center;}
.buyWrap .buy_ship {position:relative; margin:7px 0 0 0; padding-left:10px; color:#999; font-size:clamp(13px, 1.4vw, 15px); font-weight:500;}
.buyWrap .buy_ship:before {content:''; position:absolute; left:0; top:2px; bottom:2px; width:2px; background:#c9c9c6;}
.buyWrap .buy_ship .ship_note {color:#999; font-weight:400;}

.buyWrap .buy_body {margin:20px 0 0 0;}
.buyWrap .buy_foot {margin:14px 0 0; color:#666; font-size:clamp(11px, 1.4vw, 14px); font-weight:400; line-height:1.5; text-align:center;}
.buyWrap .buy_foot strong {color:#666; font-weight:700;}
.buyWrap .row_arrow {flex:0 0 auto; width:9px; height:9px; border-top:2px solid #bcbcbc; border-right:2px solid #bcbcbc; transform:rotate(45deg);}

/* 타입1: 비로그인 */
.buyWrap .buy_npay_wrap {position:relative; padding-top:35px;}
.buyWrap .buy_tip {position:absolute; top:4px; left:50%; transform:translateX(-50%); width:fit-content; margin:0; padding:8px 14px; border-radius:18px; background:#3a3f45; color:#fff; font-size:clamp(11px, 1.2vw, 14px); font-weight:400; line-height:1; white-space:nowrap; animation:buyTipBob 1.5s ease-in-out infinite;}
.buyWrap .buy_tip:after {content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:6px solid transparent; border-top-color:#3a3f45;}
@keyframes buyTipBob {
	0%, 100% {transform:translateX(-50%) translateY(0);}
	50% {transform:translateX(-50%) translateY(-5px);}
}
@media (prefers-reduced-motion: reduce) {
	.buyWrap .buy_tip {animation:none;}
}
.buyWrap .btn_npay {display:block; width:100%; height:clamp(54px, 8vw, 62px); padding:0; border:0; border-radius:8px; background:#00de5a url("https://toun28.s3.ap-northeast-2.amazonaws.com/new/btn_npaygr_buy.svg") no-repeat 50% 50% / 60%; cursor:pointer;}
.buyWrap .btn_buy_benefit {display:flex; align-items:center; justify-content:center; width:100%; height:clamp(54px, 8vw, 62px); margin-top:10px; border:0; border-radius:8px; background:#1b43c8; color:#fff; font-family:inherit; font-size:clamp(15px, 2vw, 20px); font-weight:500; cursor:pointer;}

/* 증정 진행바 (타입2·3 공통) */
.buyWrap .buy_gift {margin:20px 0 0 0;}
.buyWrap .buy_gift_txt {margin:0; color:#666; font-size:clamp(13px, 1.5vw, 15px); line-height:1.4;}
.buyWrap .buy_gift_txt strong {color:#1b43c8; font-weight:700;}
.buyWrap .buy_gift_txt .ico_info {display:inline-flex; align-items:center; justify-content:center; width:15px; height:15px; border:1px solid #bcbcbc; border-radius:50%; color:#999; font-size:10px; font-style:normal; font-weight:700; line-height:1; vertical-align:middle;}
.buyWrap .buy_gift_bar {display:flex; gap:6px; margin-top:10px;}
.buyWrap .buy_gift_bar .seg {flex:1 1 0; height:6px; border-radius:3px; background:#e0e0dd; overflow:hidden;}
.buyWrap .buy_gift_bar .seg i {display:block; width:0; height:100%; background:#1b43c8; transition:width .3s ease;}

/* 타입2: 간편결제 미등록 */
.buyWrap .buy_coupon_row {display:flex; align-items:center; justify-content:space-between; width:100%; height:clamp(56px, 8vw, 64px); padding:0 20px; border:0; border-radius:14px; background:#fff; font-family:inherit; cursor:pointer;}
.buyWrap .buy_coupon_label {color:#1b1b1b; font-size:clamp(14px, 1.6vw, 16px); font-weight:700;}
.buyWrap .buy_coupon_label em {margin-left:6px; color:#0b41cd; font-style:normal; font-weight:600;}
.buyWrap .btn_buy_order {display:flex; align-items:center; justify-content:center; width:100%; height:clamp(56px, 8vw, 64px); margin-top:clamp(18px, 2.5vw, 24px); border:0; border-radius:8px; background:#1b43c8; color:#fff; font-family:inherit; font-size:clamp(17px, 2vw, 20px); font-weight:700; cursor:pointer;}

/* 타입3: 간편결제 등록 */
.buyWrap .buy_order_card {overflow:hidden; border-radius:16px; background:#fff;}
.buyWrap .buy_order_line {display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; padding:14px 20px; border:0; background:transparent; font-family:inherit; text-align:left; cursor:pointer;}
.buyWrap .buy_order_line + .buy_order_line {border-top:1px solid #f0f0ee;}
.buyWrap .buy_order_line .line_txt {display:flex; flex-direction:column; gap:3px; min-width:0;}
.buyWrap .buy_order_line .line_main {color:#1b1b1b; font-size:clamp(13px, 1.6vw, 17px); font-weight:700; line-height:1.35;}
.buyWrap .buy_order_line .line_main em {margin-left:6px; color:#0b41cd; font-size:clamp(12px, 2vw, 15px); font-style:normal; font-weight:500;}
.buyWrap .buy_order_line .line_sub {color:#666; font-size:clamp(12px, 2vw, 15px); font-weight:400; line-height:1.4;}
.buyWrap .buy_order_line .line_req {color:#999; font-size:clamp(12px, 2vw, 14px); font-weight:300; line-height:1.4;}
.buyWrap .buy_order_line .line_req:empty {display:none;}
.buyWrap .btn_buy_slide {position:relative; display:flex; align-items:center; justify-content:center; width:100%; height:clamp(50px, 9vw, 60px); margin-top:clamp(18px, 2.5vw, 24px); padding:0; border:0; border-radius:999px; overflow:hidden; background:#1b43c8; color:#fff; font-family:inherit; font-size:clamp(15px, 2vw, 18px); font-weight:600; cursor:pointer;}
.buyWrap .btn_buy_slide .slide_base {position:absolute; inset:0; z-index:1; display:flex; align-items:center; justify-content:center;}
.buyWrap .btn_buy_slide .slide_reveal {position:absolute; inset:0; z-index:2; display:flex; align-items:center; justify-content:center; background:#1b43c8; color:#fff; clip-path:inset(0 100% 0 0); will-change:clip-path;}
.buyWrap .btn_buy_slide .slide_handle {position:absolute; left:6px; top:50%; z-index:3; transform:translateY(-50%); display:flex; align-items:center; justify-content:center; width:clamp(40px, 7vw, 50px); height:clamp(40px, 7vw, 50px); border-radius:50%; background:#fff; cursor:grab; touch-action:none; user-select:none;}
.buyWrap .btn_buy_slide .slide_handle:active {cursor:grabbing;}
.buyWrap .btn_buy_slide .slide_handle:after {content:''; width:11px; height:11px; margin-left:-3px; border-top:2.5px solid #1b43c8; border-right:2.5px solid #1b43c8; transform:rotate(45deg);}

/* ================= 쿠폰 변경 시트 ================= */
#couponSheet {z-index:1200;}
.buyWrap .coupon_inner {max-width:460px;}
.buyWrap .buy_coupon_label em.off, .buyWrap .buy_order_line .line_main em.off {color:#999; font-weight:400;}

.buyWrap .coupon_top {display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:clamp(16px, 2.5vw, 22px);}
.buyWrap .coupon_title {margin:0; color:#1b1b1b; font-size:clamp(18px, 2vw, 21px); font-weight:700; line-height:1.25;}
.buyWrap .coupon_maxtoggle {display:inline-flex; align-items:center; gap:10px; cursor:pointer;}
.buyWrap .coupon_maxtoggle_txt {color:#666; font-size:clamp(13px, 1.4vw, 15px); font-weight:500;}
.buyWrap .switch {position:relative; flex:0 0 auto; display:inline-block; width:48px; height:28px;}
.buyWrap .switch input {position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer;}
.buyWrap .switch .switch_track {position:absolute; inset:0; border-radius:999px; background:#d3d6db; transition:background .2s;}
.buyWrap .switch .switch_track:before {content:''; position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%; background:#fff; transition:transform .2s;}
.buyWrap .switch input:checked + .switch_track {background:#1b43c8;}
.buyWrap .switch input:checked + .switch_track:before {transform:translateX(20px);}

/* 마일리지 시트 */
#mileageSheet .mil_head {display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;}
#mileageSheet .mil_title {display:flex; align-items:baseline; gap:10px; margin:2px 0 0; color:#1b1b1b; font-size:clamp(18px,2.2vw,22px); font-weight:700; line-height:1.3;}
#mileageSheet .mil_have {color:#999; font-size:clamp(13px,1.5vw,15px); font-weight:500;}
#mileageSheet .mil_have em {color:#0b41cd; font-style:normal; font-weight:700;}
#mileageSheet .mil_input_row {display:flex; align-items:stretch; gap:10px; margin-top:clamp(16px,2.2vw,20px);}
#mileageSheet .mil_field {position:relative; flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:5px; height:clamp(56px,9vw,64px); padding:0 clamp(14px,2vw,18px); border:1px solid #d9d9d5; border-radius:14px; background:#fff; box-sizing:border-box;}
#mileageSheet .mil_field.is_disabled {background:#f3f3f1; border-color:#e6e6e2;}
#mileageSheet .mil_input {flex:1 1 auto; min-width:0; border:0; background:transparent; color:#1b1b1b; font-family:inherit; font-size:clamp(18px,2.4vw,24px); font-weight:700;}
#mileageSheet .mil_input:focus {outline:0;}
#mileageSheet .mil_clear {flex:0 0 auto; display:flex; align-items:center; justify-content:center; width:26px; height:26px; padding:0; border:0; border-radius:50%; background:#c9c9c5; color:#fff; font-size:12px; line-height:1; cursor:pointer;}
#mileageSheet .mil_clear:before {content:'✕';}
#mileageSheet .mil_clear.is_hidden {display:none;}
#mileageSheet .mil_max {flex:0 0 auto; width:clamp(96px,22vw,120px); border:1px solid #e2e2de; border-radius:14px; background:#f2f2f0; color:#333; font-family:inherit; font-size:clamp(14px,1.6vw,16px); font-weight:700; cursor:pointer;}
#mileageSheet .mil_max:disabled {color:#bcbcbc; cursor:default;}
#mileageSheet .mil_note {margin:clamp(12px,1.8vw,16px) 2px 0; color:#999; font-size:clamp(13px,1.5vw,15px); font-weight:500; line-height:1.5;}

.buyWrap .coupon_tabs {display:flex; gap:0; margin-bottom:clamp(14px, 2vw, 20px); border-bottom:1px solid #e2e4e8;}
.buyWrap .coupon_tab {position:relative; flex:1 1 0; min-width:0; box-sizing:border-box; padding:0 0 15px 0; border:0; background:transparent; color:#999; font-family:inherit; font-size:clamp(13px, 1.55vw, 15px); font-weight:700; text-align:center; white-space:nowrap; cursor:pointer;}
.buyWrap .coupon_tab .coupon_tab_val {margin-left:4px; font-size:.78em; font-style:normal; color:inherit;}
.buyWrap .coupon_tab.is_active {color:#1b1b1b;}
.buyWrap .coupon_tab.is_active .coupon_tab_val {color:#0b41cd;}
.buyWrap .coupon_tab.is_active:after {content:''; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:#1b1b1b;}

.buyWrap .coupon_panel {max-height:52vh; overflow:hidden auto; -webkit-overflow-scrolling:touch;}
.buyWrap .coupon_list {display:flex; flex-direction:column; gap:10px; margin:0; padding:2px; list-style:none;}
.buyWrap .coupon_opt {position:relative; display:flex; align-items:flex-start; gap:14px; padding:18px 20px; border:1px solid #ececea; border-radius:8px; background:#f7f7f5; box-sizing:border-box; cursor:pointer;}
.buyWrap .coupon_opt.coupon_none {align-items:center; padding:18px 20px;}
.buyWrap .coupon_opt.is_selected {border-color:#0b41cd; background:#fff;}
.buyWrap .coupon_opt input {position:absolute; width:1px; height:1px; opacity:0;}
.buyWrap .coupon_radio {position:relative; flex:0 0 auto; width:20px; height:20px; margin-top:2px; border:2px solid #cfcfcf; border-radius:50%; box-sizing:border-box;}
.buyWrap .coupon_none .coupon_radio {margin-top:0;}
.buyWrap .coupon_opt input:checked + .coupon_radio {border-color:#1b43c8;}
.buyWrap .coupon_opt input:checked + .coupon_radio:after {content:''; display:block; position:absolute; top:50%; left:50%; width:8px; height:8px; margin:0; border-radius:50%; transform:translate(-50%,-50%); background:#1b43c8;}
.buyWrap .coupon_body {display:flex; flex-direction:column; gap:4px; min-width:0;}
.buyWrap .coupon_amt {color:#0b41cd; font-size:clamp(18px, 2.3vw, 24px); font-weight:700; line-height:1.1;}
.buyWrap .coupon_name {color:#1b1b1b; font-size:clamp(15px, 1.6vw, 17px); font-weight:600; line-height:1.35;}
.buyWrap .coupon_cond {margin-top:3px; color:#666; font-size:clamp(12px, 1.4vw, 13px); line-height:1.45;}
.buyWrap .coupon_date {color:#666; font-size:clamp(13px, 1.4vw, 14px); line-height:1.45;}
.buyWrap .coupon_left {position:absolute; right:20px; bottom:18px; color:#e5484d; font-size:clamp(13px, 1.4vw, 14px); font-weight:600;}
.buyWrap .coupon_btns {display:grid; grid-template-columns:1fr 1.7fr; gap:5px; margin-top:clamp(20px, 3vw, 28px);}
.buyWrap .coupon_btns button {height:clamp(54px, 8vw, 60px); border-radius:8px; box-sizing:border-box; font-family:inherit; font-size:clamp(14px, 1.3vw, 17px); font-weight:700; white-space:nowrap; cursor:pointer;}
.buyWrap .coupon_btns button:only-child {grid-column:1 / -1;}
.buyWrap .btn_coupon_cancel {border:1px solid #d7d3cf; background:#fff; color:#222;}
.buyWrap .btn_coupon_apply {border:0; background:#1b43c8; color:#fff;}

/* 태블릿 */
/* ================= 결제수단 선택 시트 ================= */
#paySheet, #cardRegSheet, #addrSheet, #addrFormSheet, #mileageSheet, #rvFilterSheet {z-index:1300;}
.paykind_wrap .pay_inner {padding:20px 22px 24px; overflow-x:hidden;}
.paykind_wrap .pay_title {margin:2px 0 0; color:#1b1b1b; font-size:clamp(18px, 2.2vw, 22px); font-weight:700; line-height:1.3;}

/* 결제수단 라디오 그룹 */
#paySheet .pay_group_list {display:flex; flex-direction:column; gap:12px; margin-top:clamp(16px,2.2vw,20px);}
#paySheet .pay_group {padding:clamp(16px,2.2vw,20px) clamp(14px,2vw,18px); border-radius:16px; background:#fff;}
#paySheet .pay_group_head {display:flex; align-items:center; justify-content:space-between; gap:10px;}
#paySheet .pay_radio {display:inline-flex; align-items:center; gap:10px; padding:0; border:0; background:transparent; font-family:inherit; cursor:pointer;}
#paySheet .pay_radio_dot {position:relative; flex:0 0 auto; width:22px; height:22px; border:2px solid #cdcdcd; border-radius:50%; box-sizing:border-box; transition:border-color .15s ease;}
#paySheet .pay_radio[aria-checked='true'] .pay_radio_dot {border-color:#1b43c8;}
#paySheet .pay_radio[aria-checked='true'] .pay_radio_dot:after {content:''; position:absolute; left:50%; top:50%; width:11px; height:11px; border-radius:50%; background:#1b43c8; transform:translate(-50%,-50%);}
#paySheet .pay_group_title {color:#1b1b1b; font-size:clamp(16px,1.9vw,18px); font-weight:700; line-height:1.3;}
.paykind_wrap .pay_point {display:inline-flex; align-items:center; height:24px; padding:0 9px; border-radius:6px; color:#999; font-size:clamp(11px, 1.2vw, 13px); font-weight:500; line-height:1; white-space:nowrap;}
.paykind_wrap .pay_point_on {color:#1b43c8;}

/* 톤페이 등록카드 리스트 */
#paySheet .pay_card_list {margin:clamp(14px,2vw,18px) 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:10px;}
#paySheet .pay_card2 {display:flex; align-items:center; gap:5px; padding:clamp(12px,1.8vw,15px); border:1px solid #ececec; border-radius:14px; background:#fbfbfb; transition:border-color .15s ease, background .15s ease;}
#paySheet .pay_card2.is_sel {border-color:#1b43c8; background:#f2f5ff;}
#paySheet .pay_card2_sel {flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:12px; padding:0; border:0; background:transparent; font-family:inherit; text-align:left; cursor:pointer;}
#paySheet .pay_card2_thumb {flex:0 0 auto; width:38px; height:38px; border-radius:8px; background:#eaeae7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23b3b3af' stroke-width='1.8'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.6'/%3E%3Cpath d='M21 15l-5-5L5 21'/%3E%3C/svg%3E") no-repeat center / 18px;}
#paySheet .pay_card2_info {display:flex; align-items:baseline; gap:5px; min-width:0;}
#paySheet .pay_card2_name {color:#1b1b1b; font-size:clamp(15px,1.7vw,17px); font-weight:700; white-space:nowrap;}
#paySheet .pay_card2_no {color:#999; font-size:clamp(13px,1.5vw,15px); font-weight:300;}

/* 할부 드롭다운 */
#paySheet .pay_install {position:relative; flex:0 0 auto;}
#paySheet .pay_install_btn {display:inline-flex; align-items:center; gap:5px; padding:6px 4px; border:0; background:transparent; color:#666; font-family:inherit; font-size:clamp(13px,1.5vw,15px); font-weight:500; cursor:pointer; white-space:nowrap;}
#paySheet .pay_install_chevron {width:8px; height:8px; border-right:2px solid #999; border-bottom:2px solid #999; transform:rotate(45deg) translateY(-2px); transition:transform .2s ease;}
#paySheet .pay_install.is_open .pay_install_chevron {transform:rotate(-135deg) translateY(-2px);}
#paySheet .pay_install_menu {display:none; position:absolute; right:0; top:calc(100% + 6px); z-index:5; width:116px; max-height:200px; overflow-y:auto; margin:0; padding:6px; list-style:none; border:1px solid #e4e4e4; border-radius:12px; background:#fff; box-shadow:0 6px 20px rgba(0,0,0,.12);}
#paySheet .pay_install.is_open .pay_install_menu {display:block;}
#paySheet .pay_install_opt {display:flex; align-items:center; justify-content:space-between; gap:6px; width:100%; padding:9px 10px; border:0; border-radius:8px; background:transparent; color:#333; font-family:inherit; font-size:clamp(13px,1.5vw,14px); font-weight:500; text-align:left; cursor:pointer;}
#paySheet .pay_install_opt:hover {background:#f4f4f4;}
#paySheet .pay_install_opt.is_sel {color:#1b43c8; font-weight:700;}
#paySheet .pay_install_opt.is_sel:after {content:''; flex:0 0 auto; width:5px; height:9px; border-right:2px solid #1b43c8; border-bottom:2px solid #1b43c8; transform:rotate(45deg);}

/* 간편결제 등록하기 */
#paySheet .btn_pay_regist {display:flex; align-items:center; justify-content:center; gap:6px; width:100%; height:clamp(46px,7vw,52px); margin-top:clamp(12px,1.8vw,16px); border:1px dashed #cccccc; border-radius:12px; background:transparent; color:#1b1b1b; font-family:inherit; font-size:clamp(14px,1.6vw,15px); font-weight:600; cursor:pointer;}
#paySheet .btn_pay_regist_ico {font-size:18px; font-weight:400; line-height:1;}

/* 일반결제 설명 */
#paySheet .pay_group_desc {margin:10px 0 0; padding-left:32px; color:#999; font-size:clamp(13px,1.5vw,15px); font-weight:300; line-height:1.5;}

/* 카드정보 등록 */
.paykind_wrap .cardreg_head {position:relative; display:flex; align-items:center; justify-content:center; height:28px; margin-top:2px;}
.paykind_wrap .cardreg_back {position:absolute; left:0; top:50%; transform:translateY(-50%); width:24px; height:24px; padding:0; border:0; background:transparent; cursor:pointer;}
.paykind_wrap .cardreg_back:before {content:''; position:absolute; left:5px; top:50%; width:11px; height:11px; border-left:2px solid #333; border-bottom:2px solid #333; transform:translateY(-50%) rotate(45deg);}
.paykind_wrap .cardreg_title {margin:0; color:#1b1b1b; font-size:clamp(16px, 1.9vw, 18px); font-weight:700;}
.paykind_wrap .cardreg_lead {margin:clamp(18px,2.4vw,24px) 0 0; color:#1b1b1b; font-size:clamp(15px,1.8vw,17px); font-weight:700;}
.paykind_wrap .cardreg_lead span {margin-left:6px; color:#999; font-size:clamp(12px,1.3vw,13px); font-weight:500;}
.paykind_wrap .cardreg_form {margin-top:4px;}
.paykind_wrap .cardreg_field {margin-top:6px;}
.paykind_wrap .cardreg_field_row {display:flex; gap:14px;}
.paykind_wrap .cardreg_field_row .cardreg_input {flex:1 1 0;}
.paykind_wrap .cardreg_input {width:100%; height:clamp(46px,7vw,52px); padding:0 4px; border:0; border-bottom:1px solid #d4d4d0; border-radius:0; background:transparent; color:#1b1b1b; font-family:inherit; font-size:clamp(14px,1.5vw,15px); box-sizing:border-box; -webkit-appearance:none; appearance:none;}
.paykind_wrap .cardreg_input::placeholder {color:#aaa; font-weight:400;}
.paykind_wrap .cardreg_input:focus {outline:0; border-bottom-color:#1b43c8;}
.paykind_wrap .cardreg_agree {display:flex; align-items:flex-start; gap:5px; margin-top:clamp(18px,2.4vw,22px); cursor:pointer;}
.paykind_wrap .cardreg_chk {position:absolute; width:1px; height:1px; opacity:0; overflow:hidden; clip:rect(0 0 0 0);}
.paykind_wrap .cardreg_check {position:relative; flex:0 0 auto; width:20px; height:20px; border-radius:50%; background:#cdcdcd;}
.paykind_wrap .cardreg_check:after {content:''; position:absolute; left:7px; top:4px; width:4px; height:8px; border-right:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(45deg);}
.paykind_wrap .cardreg_chk:checked + .cardreg_check {background:#1b43c8;}
.paykind_wrap .cardreg_agree_txt {color:#333; font-size:clamp(13px,1.5vw,15px); font-weight:500; line-height:1.4;}
.paykind_wrap .cardreg_notes {margin:10px 0 0; padding:0 0 0 4px; list-style:none;}
.paykind_wrap .cardreg_notes li {position:relative; margin-top:5px; padding-left:10px; color:#999; font-size:clamp(12px,1.3vw,13px); font-weight:400; line-height:1.5;}
.paykind_wrap .cardreg_notes li:before {content:'-'; position:absolute; left:0; top:0;}
.paykind_wrap .btn_cardreg_submit {display:flex; align-items:center; justify-content:center; width:100%; height:clamp(52px,8vw,58px); margin-top:clamp(20px,3vw,26px); border:0; border-radius:8px; background:#1b43c8; color:#fff; font-family:inherit; font-size:clamp(15px,1.8vw,17px); font-weight:700; cursor:pointer;}
.paykind_wrap .btn_cardreg_submit:disabled {background:#e3e3e0; color:#aaa; cursor:default;}

/* 배송지 정보 폼 */
#addrFormSheet .addrform_type {display:grid; grid-template-columns:repeat(3, 1fr); gap:5px; margin-top:clamp(14px,2vw,18px);}
#addrFormSheet .addrform_type_btn {height:clamp(44px,6.5vw,50px); border:1px solid #dcdcd8; border-radius:8px; background:#fff; color:#666; font-family:inherit; font-size:clamp(14px,1.6vw,15px); font-weight:600; cursor:pointer; transition:border-color .15s ease, background .15s ease, color .15s ease;}
#addrFormSheet .addrform_type_btn.is_sel {border-color:#1b43c8; background:#f2f5ff; color:#1b43c8;}
#addrFormSheet .addrform_custom {margin-top:10px;}
#addrFormSheet .addrform_help {margin:6px 2px 0; color:#999; font-size:clamp(12px,1.3vw,13px); font-weight:500; text-align:right;}
#addrFormSheet .addrform_zip_row {display:flex; align-items:center; gap:10px;}
#addrFormSheet .addrform_zip_row .cardreg_input {flex:1 1 auto;}
#addrFormSheet .btn_addr_search {flex:0 0 auto; height:clamp(44px,6.5vw,48px); padding:0 clamp(14px,2.2vw,18px); border:1px solid #d7d3cf; border-radius:8px; background:#fff; color:#333; font-family:inherit; font-size:clamp(13px,1.5vw,14px); font-weight:600; white-space:nowrap; cursor:pointer;}
#addrFormSheet .cardreg_input[readonly] {cursor:pointer; color:#333;}
#addrFormSheet .cardreg_input[readonly]::placeholder {color:#bbb;}

/* 배송 요청사항 선택 */
#addrFormSheet .af_req_trigger {display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; height:clamp(46px,7vw,52px); padding:0 4px; border:0; border-bottom:1px solid #d4d4d0; background:transparent; font-family:inherit; font-size:clamp(14px,1.5vw,15px); color:#1b1b1b; text-align:left; cursor:pointer;}
#addrFormSheet .af_req_text.is_placeholder {color:#aaa;}
#addrFormSheet .af_req_chevron {flex:0 0 auto; width:9px; height:9px; border-right:2px solid #999; border-bottom:2px solid #999; transform:rotate(45deg) translateY(-2px); transition:transform .2s ease;}
#addrFormSheet .af_req_trigger[aria-expanded="true"] .af_req_chevron {transform:rotate(-135deg) translateY(-2px);}
#addrFormSheet .af_req_menu {margin:6px 0 0; padding:6px; list-style:none; border:1px solid #e4e4e4; border-radius:12px; background:#fff;}
#addrFormSheet .af_req_menu.is_hidden {display:none;}
#addrFormSheet .af_req_opt {display:flex; align-items:center; gap:10px; width:100%; padding:11px 10px; border:0; border-radius:8px; background:transparent; font-family:inherit; font-size:clamp(13px,1.5vw,15px); font-weight:500; color:#333; text-align:left; cursor:pointer;}
#addrFormSheet .af_req_opt:hover {background:#f4f4f4;}
#addrFormSheet .af_req_radio {position:relative; flex:0 0 auto; width:18px; height:18px; border:2px solid #cdcdcd; border-radius:50%; box-sizing:border-box;}
#addrFormSheet .af_req_opt.is_sel .af_req_radio {border-color:#1b43c8;}
#addrFormSheet .af_req_opt.is_sel .af_req_radio:after {content:''; position:absolute; left:50%; top:50%; width:8px; height:8px; border-radius:50%; background:#1b43c8; transform:translate(-50%,-50%);}
#addrFormSheet .af_req_opt.is_sel .af_req_label {color:#1b43c8; font-weight:700;}
.af_postcode {position:fixed; inset:0; z-index:1500; display:flex; flex-direction:column; background:#fff;}
.af_postcode.is_hidden {display:none;}
.af_postcode_head {position:relative; display:flex; align-items:center; justify-content:center; height:clamp(50px,8vw,56px); border-bottom:1px solid #eee; flex:0 0 auto;}
.af_postcode_title {color:#1b1b1b; font-size:clamp(16px,1.9vw,18px); font-weight:700;}
.af_postcode_close {position:absolute; right:10px; top:50%; transform:translateY(-50%); width:38px; height:38px; border:0; background:transparent; color:#333; font-size:20px; line-height:1; cursor:pointer;}
.af_postcode_embed {flex:1 1 auto; min-height:0;}

/* 시트 하단 버튼(결제수단/배송지 공용) */
.paykind_wrap .pay_btns {display:grid; grid-template-columns:1fr 1.7fr; gap:5px; margin-top:clamp(16px,2.2vw,20px);}
.paykind_wrap .pay_btns button {height:clamp(54px, 8vw, 60px); border-radius:8px; box-sizing:border-box; font-family:inherit; font-size:clamp(14px, 1.3vw, 17px); font-weight:700; white-space:nowrap; cursor:pointer;}
.paykind_wrap .btn_pay_cancel {border:1px solid #d7d3cf; background:#fff; color:#222;}
.paykind_wrap .btn_pay_apply {border:0; background:#1b43c8; color:#fff;}

/* 배송지 변경 시트 */
#addrSheet .addr_list {display:flex; flex-direction:column; gap:10px; margin-top:clamp(16px,2.2vw,20px); padding:0; max-height:clamp(280px,48vh,420px); overflow-y:auto; list-style:none;}
#addrSheet .addr_item {display:flex; align-items:flex-start; gap:10px; padding:clamp(15px,2.1vw,18px) clamp(14px,2vw,16px); border:1px solid #ececec; border-radius:14px; background:#fff; cursor:pointer; transition:border-color .15s ease, background .15s ease;}
#addrSheet .addr_item.is_sel {border-color:#1b43c8; background:#f2f5ff;}
#addrSheet .addr_radio_dot {position:relative; flex:0 0 auto; margin-top:2px; width:22px; height:22px; border:2px solid #cdcdcd; border-radius:50%; box-sizing:border-box; transition:border-color .15s ease;}
#addrSheet .addr_item.is_sel .addr_radio_dot {border-color:#1b43c8;}
#addrSheet .addr_item.is_sel .addr_radio_dot:after {content:''; position:absolute; left:50%; top:50%; width:11px; height:11px; border-radius:50%; background:#1b43c8; transform:translate(-50%,-50%);}
#addrSheet .addr_content {flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:5px;}
#addrSheet .addr_top {display:flex; align-items:center; justify-content:space-between; gap:10px;}
#addrSheet .addr_label {color:#1b1b1b; font-size:clamp(14px,1.6vw,16px); font-weight:700;}
#addrSheet .addr_actions {display:flex; align-items:center; gap:5px; flex:0 0 auto;}
#addrSheet .addr_actions button {padding:0; border:0; background:transparent; color:#999; font-family:inherit; font-size:clamp(12px,1.4vw,13px); font-weight:500; cursor:pointer;}
#addrSheet .addr_actions button:hover {color:#666;}
#addrSheet .addr_div {width:1px; height:11px; background:#d5d5d5;}
#addrSheet .addr_person {color:#999; font-size:clamp(12px,1.4vw,14px); font-weight:300;}
#addrSheet .addr_person em {margin-left:6px; font-style:normal; color:#999; font-weight:300;}
#addrSheet .addr_full {color:#333; font-size:clamp(12px,1.6vw,15px); font-weight:500; line-height:1.4; word-break:keep-all;}
#addrSheet .addr_req {color:#999; font-size:clamp(11px,1.4vw,13px); font-weight:300; line-height:1.4;}
#addrSheet .addr_req:empty {display:none;}
#addrSheet .btn_addr_add {display:flex; align-items:center; justify-content:center; gap:6px; width:100%; height:clamp(46px,7vw,52px); margin-top:12px; border:1px dashed #cccccc; border-radius:12px; background:transparent; color:#666; font-family:inherit; font-size:clamp(14px,1.6vw,15px); font-weight:600; cursor:pointer;}
#addrSheet .btn_addr_add_ico {font-size:18px; font-weight:400; line-height:1;}

/* 삭제 확인 모달(배송지) */
.pay_confirm_wrap {display:none; position:fixed; inset:0; z-index:1400; align-items:center; justify-content:center; padding:24px; box-sizing:border-box; background:rgba(17,17,17,.5);}
.pay_confirm_wrap.is_open {display:flex;}
.pay_confirm_box {width:100%; max-width:320px; padding:28px 22px 18px; border-radius:16px; box-sizing:border-box; background:#fff; opacity:0; transform:scale(.96); transition:opacity .2s ease, transform .2s ease;}
.pay_confirm_wrap.is_shown .pay_confirm_box {opacity:1; transform:scale(1);}
.pay_confirm_msg {margin:0; color:#1b1b1b; font-size:clamp(15px, 1.7vw, 16px); font-weight:600; line-height:1.55; text-align:center;}
.pay_confirm_btns {display:grid; grid-template-columns:1fr 1fr; gap:5px; margin-top:22px;}
.pay_confirm_btns button {height:50px; border-radius:8px; box-sizing:border-box; font-family:inherit; font-size:clamp(14px, 1.5vw, 16px); font-weight:700; cursor:pointer;}
.pay_confirm_btns .btn_pay_confirm_cancel {border:1px solid #d2d2cf; background:#fff; color:#666;}
.pay_confirm_btns .btn_pay_confirm_ok {border:0; background:#1b43c8; color:#fff;}

@media (max-width:1024px) {
/* prod_topArea */
.prod_topArea {padding-right:3%;}
.prod_topArea .prod_photoBox {flex-basis:calc(55% + 88px); width:calc(55% + 88px); height:min(calc(100vh - 102px), 600px); min-height:max(calc(100vh - 100px), 624px); gap:5px;}
.prod_topArea .prod_photoBox .prod_main_swiper {flex-basis:calc(100% - 88px); width:calc(100% - 88px);}
.prod_topArea .prod_photoBox .prod_thumb_swiper {flex-basis:80px; width:80px; min-width:80px; padding:8px 0;}
.prod_topArea .prod_photoBox .prod_thumb_swiper .swiper-slide {width:80px !important; height:80px !important;}
.prod_topArea .prod_infoBox {padding:40px 28px;}
}

/* 모바일 */
@media (max-width:767px) {
/* prod_topArea */
.prod_topArea {display:block; width:100%; padding-right:0; overflow:visible;}
.prod_topArea .prod_photoBox {display:flex; flex-direction:column; width:100%; height:auto; min-height:0; gap:5px; overflow:hidden;}
.prod_topArea .prod_photoBox .prod_main_swiper {flex:none; width:100%; height:auto; aspect-ratio:1 / 1;}
.prod_topArea .prod_photoBox .prod_main_swiper .swiper-wrapper {height:100%;}
.prod_topArea .prod_photoBox .prod_main_swiper .swiper-slide {width:100%; height:100%; margin:0;}
.prod_topArea .prod_photoBox .prod_main_swiper .swiper-slide img {width:100%; height:100%; object-fit:cover; object-position:center;}

/* 모바일 썸네일: 좌측 시작, 세로 중앙 */
.prod_topArea .prod_photoBox .prod_thumb_swiper {flex:none; width:100%; height:72px; min-width:0; padding:0 16px; box-sizing:border-box; overflow:hidden;}
.prod_topArea .prod_photoBox .prod_thumb_swiper .swiper-wrapper {width:max-content; height:72px; align-items:center; justify-content:flex-start; box-sizing:border-box;}
.prod_topArea .prod_photoBox .prod_thumb_swiper .swiper-slide {flex-shrink:0; width:72px !important; height:72px !important;}
.prod_topArea .prod_photoBox .prod_thumb_swiper .swiper-slide img {width:100%; height:100%; object-fit:contain; object-position:center;}
.prod_topArea .prod_photoBox .prod_swiper_pagination {display:block; bottom:14px !important;}
.prod_topArea .prod_photoBox .prod_swiper_pagination .swiper-pagination-bullet {width:6px; height:6px; margin:0 3px !important; background:#fff; opacity:.5;}
.prod_topArea .prod_photoBox .prod_swiper_pagination .swiper-pagination-bullet-active {opacity:1;}

.prod_topArea .prod_infoBox {width:100%; padding:25px 15px 35px;}
.prod_topArea .prod_infoBox .prod_smry {max-width:none;}
.prod_topArea .prod_infoBox .prod_badge {margin-bottom:11px;}
.prod_topArea .prod_infoBox .prod_name {font-size:18px;}
.prod_topArea .prod_infoBox .prod_features {font-size:12px;}
.prod_topArea .prod_infoBox .btn_prod_share {width:26px; height:26px;}
.prod_topArea .prod_infoBox .prod_pricing {margin-top:22px;}
.prod_topArea .prod_infoBox .btn_newbie_detail, .prod_topArea .prod_infoBox .btn_coupon_detail, .prod_topArea .prod_infoBox .btn_lowest_detail {font-size:14px;}
.prod_topArea .prod_infoBox .btn_coupon_download {min-width:80px; height:32px; padding:0 8px; border-radius:4px; font-size:11px;}
.prod_topArea .prod_infoBox .prod_delivery {margin:15px 0 25px 0;}
.prod_topArea .prod_infoBox .prod_cta {position:fixed; bottom:0; left:0; width:100%; gap:5px; padding:20px 15px 30px 15px; border:none; background:rgba(255,255,255,0.5); backdrop-filter:blur(10px); z-index:10;}
.prod_topArea .prod_infoBox .prod_cta button {height:54px;}
/* 고정 CTA 가 흐름에서 빠져 있어 본문 끝을 덮는다 — 그만큼 자리를 비워둔다(위 여백 20 + 버튼 54 + 아래 여백 30 = 104) */
.prod_detail {padding-bottom:calc(104px + env(safe-area-inset-bottom, 0px));}

/* prod_midArea */
.prod_midArea {padding:20px 15px 60px;}

/* ===== 제품후기 : 모바일 =====
   PC 의 2단(왼쪽 별점·작성자 / 오른쪽 본문)을 좁은 폭에 그대로 쓰면 본문 칸이 236px 까지 눌리고
   하단 버튼 줄이 잘려 나간다. 첨부 시안대로 한 단으로 펴고, 평가 항목은 카드 가로 스크롤로 바꾼다 */
/* 평가 항목 : 3열 그리드 → 카드 가로 스크롤(화면 끝까지 흘리고 다음 카드가 살짝 보이게) */
.prod_midArea .rv_stats_track {display:flex; gap:10px; margin:0 -15px 0 0; padding:0 15px; overflow-x:auto; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; scrollbar-width:none;}
.prod_midArea .rv_stats_track::-webkit-scrollbar {display:none;}
.prod_midArea .rv_stat {flex:0 0 auto; width:78%; max-width:300px; padding:16px 18px; border:1px solid #ececec; border-radius:12px; box-sizing:border-box; scroll-snap-align:start;}
.prod_midArea .rv_stat_k {width:46px;}

/* 리뷰 한 건 : 한 단으로 펴고 별점·작성자를 한 줄에 마주 놓는다 */
.prod_midArea .rv_item {display:block;}
.prod_midArea .rv_item_left {display:flex; align-items:center; justify-content:space-between; gap:10px; width:auto;}
.prod_midArea .rv_user {margin-top:0;}
.prod_midArea .rv_item_right {margin-top:7px;}
/* 메타 라벨은 짧은 낱말이라 낱말 안에서 끊기면 읽기 나쁘다(피부고민 수분부/족) */
.prod_midArea .rv_meta {word-break:keep-all;}

/* 하단 버튼 : 알약 여백을 줄여 세 개가 한 줄에 들어가게 하고, 그래도 모자라면 흘려보낸다 */
.prod_midArea .rv_item_foot {flex-wrap:wrap; gap:6px; row-gap:8px;}
.prod_midArea .rv_foot_btn {height:30px; padding:0 9px; font-size:10px;}
.prod_midArea .rv_report {margin-left:auto; padding:0;}
.prod_midArea .review_photos {grid-template-columns:repeat(5, 1fr);}

/* prod_btmArea */
.prod_btmArea .rel_card {width:44vw;}
.prod_midArea .binfo_list {display:block; margin-top:18px;}
.prod_midArea .binfo_list dt {margin-top:16px; color:#1b1b1b; font-weight:600;}
.prod_midArea .binfo_list dt:first-of-type {margin-top:0;}
.prod_midArea .binfo_list dd {margin-top:5px; color:#999;}

/* 모바일에서도 PC처럼 화면 정중앙 표시 (바텀시트 아님) */
.popWrap .pop_inner   
.popWrap .coupon_final_price dd {font-size:24px;}

/* 팝업 */
.popWrap .pop_inner {max-height:80vh;}  
.popWrap .pop_inner .topBox {padding:20px;}
.popWrap .pop_inner .topBox h3 {font-size:1.2rem;}
.popWrap .pop_inner .topBox .btn_popWrap_close {width:22px; height:22px;}
.popWrap .pop_inner .midBox {padding:20px 15px;}
.popWrap .pop_inner .midBox > .desc {margin:0 0 10px 0; font-size:0.85rem}	
.popWrap .pop_inner .midBox .roundBox.pd15 {padding:10px 15px;}	
.popWrap .pop_inner .midBox .roundBox .dl_price_history dt {font-size:0.85rem; letter-spacing:-0.5px;}
.popWrap .pop_inner .midBox .roundBox .dl_price_history dt span {font-size:0.85rem; letter-spacing:-0.5px;}
.popWrap .pop_inner .midBox .roundBox .dl_price_history dd {font-size:0.95rem;}
.popWrap .pop_inner .midBox .roundBox .dl_price_history dd.origin {font-size:1.1rem;}
.popWrap .pop_inner .midBox .coupon_final_price {margin:15px 0 0 0; padding:0 15px;}
.popWrap .pop_inner .midBox .coupon_final_price dt {font-size:1.1rem;}
.popWrap .pop_inner .midBox .coupon_final_price dd {font-size:1.2rem;}
.popWrap .pop_inner .midBox .descBox li {font-size:0.85rem; font-weight:300; letter-spacing:-0.5px;}
.popWrap .pop_inner .btnBox {gap:5px;}
.popWrap .pop_inner .btmBox .desc {font-size:1.0rem;}
.popWrap .pop_inner .btnBox button {height:50px;}
/* 구매 시트 - 모바일 하단 바텀시트 */
.buyWrap {align-items:flex-end; padding:0;}
.buyWrap .buy_inner {max-width:none; max-height:88vh; padding:18px 18px calc(20px + env(safe-area-inset-bottom)); border-radius:20px 20px 0 0; transform:translateY(100%); opacity:1;}
.buyWrap.is_shown .buy_inner {transform:translateY(0);}
#addrSheet .addr_content {gap:3px;}
	
}

/* ============================================================
   ② 상품 목록 — 옛 2.0_prod_list.css
   ============================================================ */
/* ============================================================
   상품 리스트 (store_01list.html)
   ------------------------------------------------------------
   시트·팝업은 제품 상세와 같은 것을 쓴다 — 이 화면도 2.0_prod_detail.css 를 불러
   필터 시트는 .buyWrap .rvfilter_wrap, 혜택가 상세는 .popWrap 을 구조째 그대로 쓴다.
   같은 몰에서 같은 자리를 눌렀는데 다르게 열리면 안 되기 때문이다.
   상품 카드만은 그쪽 .rel_card 가 .prod_btmArea 안에서만 받는 스코프라
   리스트 전용 이름(st_)으로 새로 두었다.

   · st_ : 리스트 화면 공용(카드 · 카테고리 · 정렬 · 하단 바)
   값은 상세·마이페이지와 같은 결(파랑 #1b43c8, 글자 #1b1b1b, 선 #eee)로 맞췄고,
   글자·여백은 clamp() 로 폭에 따라 함께 자란다.
   ============================================================ */

/* ===== 틀 ===== */
.st_wrap {padding-bottom:clamp(40px,8vw,64px); background:#ffffff;}
.st_inner {width:100%; max-width:1200px; margin:0 auto; padding:0 clamp(16px,4.4vw,24px); box-sizing:border-box;}

/* ===== 머리 ===== */
.st_head {padding:clamp(14px,3.4vw,20px) 0 clamp(12px,3vw,16px);}
/* 화면에는 두지 않고 읽어 주는 기기에만 남긴다 */
.st_title {position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0; clip-path:inset(50%); overflow:hidden; white-space:nowrap;}

/* ===== 카테고리 =====
   운영 스토어와 같은 짜임 — 동그란 그림 아래 이름.
   좌우로 밀어 보는 줄이라 스크롤바는 감추고 밀리는 것만 남긴다 */
.st_cats {display:flex; gap:clamp(10px,3vw,18px); margin-top:clamp(14px,3.4vw,20px); padding:0 0 4px; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;}
.st_cats::-webkit-scrollbar {display:none;}
.st_cat {flex:0 0 auto; display:flex; flex-direction:column; align-items:center; gap:clamp(6px,1.6vw,9px); width:clamp(60px,17vw,84px); padding:0; border:0; background:transparent; font-family:inherit; cursor:pointer;}
.st_cat_ic {display:flex; align-items:center; justify-content:center; width:clamp(58px,16vw,80px); height:clamp(58px,16vw,80px); border:2px solid transparent; border-radius:50%; background:#f2f3f5 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 24 24' fill='none' stroke='%23b3b8c0' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><circle cx='9' cy='9' r='1.5'/><path d='M21 15l-4.5-4.5L6 21'/></svg>") no-repeat center / clamp(24px,5.4vw,30px); box-sizing:border-box; color:#8a8f98; font-size:clamp(12px,2.6vw,15px); font-weight:800; line-height:1.15; text-align:center; transition:border-color .15s, background .15s, color .15s;}
.st_cat_ic.is_text {background-image:none;}
.st_cat_ic.is_hot {color:#e2402f;}
.st_cat_t {color:#666666; font-size:clamp(12px,2vw,14px); font-weight:500; white-space:nowrap;}
.st_cat:hover .st_cat_ic {border-color:#d6dff8;}
.st_cat.is_on .st_cat_ic {border-color:#1b43c8; background-color:#eef2ff; color:#1b43c8;}
.st_cat.is_on .st_cat_t {color:#1b43c8; font-weight:700;}

/* ===== 기획 배너 =====
   카테고리 바로 아래 한 장. 지금은 그림이 없어 색과 문구로 자리를 잡아 둔다 */
.st_banner {display:flex; align-items:center; gap:clamp(12px,3vw,20px); margin-top:clamp(14px,3.4vw,20px); padding:clamp(14px,3.4vw,22px) clamp(16px,4vw,28px); border-radius:12px; background:linear-gradient(100deg,#f7f3ea 0%,#f3efe6 55%,#efeae0 100%); color:#1b1b1b; text-decoration:none;}
.st_banner_t {flex:1 1 auto; min-width:0; margin:0; font-size:clamp(14px,2.5vw,19px); font-weight:700; letter-spacing:-0.02em; word-break:keep-all;}
.st_banner_t em {display:block; margin-top:4px; color:#8a8474; font-size:clamp(11px,1.9vw,13px); font-weight:400; font-style:normal;}
.st_banner_ph {flex:0 0 auto; width:clamp(64px,18vw,120px); height:clamp(44px,12vw,72px); border-radius:10px; background:rgba(27,27,27,.06) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 24 24' fill='none' stroke='%23b3ada0' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><circle cx='9' cy='9' r='1.5'/><path d='M21 15l-4.5-4.5L6 21'/></svg>") no-repeat center / clamp(22px,5vw,28px);}

/* ===== 정렬 줄 =====
   정렬은 왼쪽에서 밀어 보고, 필터는 오른쪽에 붙여 둔다 */
.st_bar {display:flex; align-items:center; justify-content:space-between; gap:clamp(10px,2.6vw,16px); margin-top:clamp(14px,3.4vw,20px); padding-top:clamp(12px,3vw,16px); border-top:1px solid #eeeeee;}
.st_sorts {flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:clamp(10px,2.4vw,16px); overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;}
.st_sorts::-webkit-scrollbar {display:none;}
.btn_st_filter {flex:0 0 auto;}
.st_sort {padding:0; border:0; background:transparent; color:#aaaaaa; font-family:inherit; font-size:clamp(13px,2vw,15px); font-weight:400; white-space:nowrap; cursor:pointer;}
.st_sort:hover {color:#666666;}
.st_sort.is_on {color:#1b1b1b; font-weight:700;}
.btn_st_filter {position:relative; display:inline-flex; align-items:center; gap:6px; padding:0; border:0; background:transparent; color:#666666; font-family:inherit; font-size:clamp(13px,2vw,15px); font-weight:500; white-space:nowrap; cursor:pointer;}
.btn_st_filter .st_filter_ico {width:17px; height:17px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round'%3E%3Cline x1='4' y1='8' x2='20' y2='8'/%3E%3Cline x1='4' y1='16' x2='20' y2='16'/%3E%3Ccircle cx='9' cy='8' r='2.4' fill='%23fff'/%3E%3Ccircle cx='15' cy='16' r='2.4' fill='%23fff'/%3E%3C/svg%3E") no-repeat center / contain;}
.btn_st_filter.is_on {color:#1b43c8; font-weight:700;}
.btn_st_filter .st_filter_n {display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:#1b43c8; color:#ffffff; font-size:11px; font-weight:700; box-sizing:border-box;}
.btn_st_filter .st_filter_n[hidden] {display:none;}

/* ===== 고른 조건 ===== */
.st_chips {display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:clamp(10px,2.4vw,14px);}
.st_chips[hidden] {display:none;}
.st_chip {display:inline-flex; align-items:center; gap:5px; height:clamp(28px,5.4vw,32px); padding:0 clamp(9px,2.2vw,12px); border:1px solid #d6dff8; border-radius:999px; background:#f2f5ff; color:#1b43c8; font-size:clamp(12px,1.9vw,13px); font-weight:600;}
.btn_st_chip_x {width:14px; height:14px; padding:0; border:0; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231b43c8' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10'/%3E%3Cpath d='M17 7L7 17'/%3E%3C/svg%3E") no-repeat center / contain; cursor:pointer;}

/* ===== 상품 격자 ===== */
.st_grid {display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:clamp(22px,5vw,34px) clamp(10px,2.6vw,18px); margin:clamp(16px,4vw,24px) 0 0; padding:0; list-style:none;}
.st_card {min-width:0;}

/* 담기 버튼은 그림 오른쪽 아래에 얹는다 — 흰 동그라미에 그림자를 입혀
   어떤 사진 위에 놓여도 눈에 보이게 한다(담당자 선택: 처음 안) */
.st_card_top {position:absolute; right:clamp(8px,2.2vw,12px); bottom:clamp(8px,2.2vw,12px); z-index:3;}
.st_card_thumb {position:relative; width:100%; aspect-ratio:1 / 1; border-radius:12px; background:#f4f5f7;}
.st_card_thumb .st_thumb_link {border-radius:12px; overflow:hidden;}
.st_thumb_link {display:block; width:100%; height:100%;}
.st_card_thumb .img_placeholder {display:block; width:100%; height:100%; background:#eef0f2 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 24 24' fill='none' stroke='%23aab1ba' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><circle cx='9' cy='9' r='1.5'/><path d='M21 15l-4.5-4.5L6 21'/></svg>") no-repeat center / clamp(30px,6vw,40px);}
.st_badges {position:absolute; left:8px; top:8px; z-index:2; display:flex; flex-direction:column; align-items:flex-start; gap:4px;}
.st_badge {display:inline-flex; align-items:center; height:clamp(22px,4.4vw,26px); padding:0 clamp(7px,1.8vw,10px); border-radius:6px; background:#1b1b1b; color:#ffffff; font-size:clamp(11px,1.8vw,12px); font-weight:700; white-space:nowrap;}
.st_badge.is_sale {background:#1b43c8;}
.st_badge.is_rank {background:#e2416f;}
.btn_st_add {width:clamp(32px,7vw,38px); height:clamp(32px,7vw,38px); padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.94) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%231b1b1b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2.2l2.3 10.6h9.8l1.9-7.4H6.6'/%3E%3Ccircle cx='9.6' cy='19' r='1.4'/%3E%3Ccircle cx='16.6' cy='19' r='1.4'/%3E%3Cpath d='M17.6 3.4v4.2M15.5 5.5h4.2'/%3E%3C/svg%3E") no-repeat center / clamp(18px,3.8vw,21px); box-shadow:0 2px 8px rgba(20,30,60,.16); cursor:pointer;}
.btn_st_add:active {transform:scale(.93);}

.st_card_info {display:block; margin-top:clamp(9px,2.2vw,12px);}
/* 무엇에 좋은 제품인지 한 줄 — 운영 화면의 '민감두피·두피장벽케어' 자리 */
.st_card_tag {display:block; color:#8a8f98; font-size:clamp(11px,1.8vw,12.5px); font-weight:500; line-height:1.4;}
.st_card_name {display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin-top:clamp(3px,1vw,5px); color:#1b1b1b; font-size:clamp(14px,2.2vw,15.5px); font-weight:600; line-height:1.4; word-break:keep-all;}
/* 가격은 세 단이다(담당자 시안).
   ① 판매할인율 + 정가(취소선) ② 판매가 ③ 쿠폰까지 넣은 값과 [?] */
.st_price_top {display:flex; align-items:baseline; flex-wrap:wrap; gap:6px; margin-top:clamp(6px,1.6vw,9px);}
.st_rate {color:#9aa0aa; font-size:clamp(12px,2vw,13.5px); font-weight:700;}
.st_origin {color:#b6bac2; font-size:clamp(12px,1.9vw,13.5px); font-weight:400; text-decoration:line-through;}
.st_card_price {margin:clamp(2px,0.8vw,4px) 0 0;}
.st_amount {color:#1b1b1b; font-size:clamp(16px,2.8vw,19px); font-weight:800; letter-spacing:-0.02em;}
/* 쿠폰까지 넣은 값 — 왜 이 값이 되는지는 [?] 를 눌러 펼쳐 본다 */
.st_cpn {display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:clamp(5px,1.4vw,7px);}
.st_cpn_badge {display:inline-flex; align-items:center; height:clamp(21px,4.2vw,25px); padding:0 clamp(6px,1.6vw,9px); border-radius:5px; background:#1b43c8; color:#ffffff; font-size:clamp(11px,1.8vw,12.5px); font-weight:700;}
.st_cpn_price {color:#1b43c8; font-size:clamp(15px,2.6vw,18px); font-weight:800; letter-spacing:-0.02em;}
.btn_st_why {width:clamp(18px,3.8vw,21px); height:clamp(18px,3.8vw,21px); padding:0; border:1px solid #c9cdd6; border-radius:50%; background:#ffffff; color:#8a8f98; font-family:inherit; font-size:clamp(10px,2vw,12px); font-weight:700; line-height:1; cursor:pointer;}
.btn_st_why:hover {border-color:#1b43c8; color:#1b43c8;}
.st_card_meta {display:flex; align-items:center; gap:6px; margin-top:clamp(5px,1.4vw,7px);}
.st_coupon {display:inline-flex; align-items:center; height:clamp(20px,4vw,23px); padding:0 7px; border-radius:5px; background:#f2f5ff; color:#1b43c8; font-size:clamp(11px,1.7vw,12px); font-weight:600;}
.st_star {color:#8a8f98; font-size:clamp(11px,1.8vw,12.5px); font-weight:400;}
.st_star b {color:#1b1b1b; font-weight:700;}
/* 품절 — 카드 하나를 통째로 품절로 읽히게 한다.
   그림은 색을 빼고 덮개를 씌우고, 값 자리에는 '품절'만 남는다 */
.st_soldout {position:absolute; inset:0; z-index:2; display:flex; align-items:center; justify-content:center; border-radius:12px; background:rgba(255,255,255,.58); color:#4a4f57; font-size:clamp(15px,3.2vw,19px); font-weight:700; letter-spacing:.08em;}
.st_card.is_soldout .img_placeholder {filter:grayscale(1); opacity:.6;}
.st_card.is_soldout .st_card_tag {color:#c2c6cd;}
.st_card.is_soldout .st_card_name {color:#a9aeb6; font-weight:500;}
.st_soldout_t {color:#8a8f98; font-size:clamp(14px,2.4vw,16px); font-weight:700;}

/* ===== 더 보기 · 끝 ===== */
.st_more {margin-top:clamp(22px,5vw,32px); text-align:center;}
.st_more[hidden] {display:none;}
.btn_st_more {width:100%; max-width:320px; height:clamp(50px,9vw,56px); border:1px solid #d7d3cf; border-radius:10px; background:#ffffff; color:#333333; font-family:inherit; font-size:clamp(14px,2.2vw,16px); font-weight:600; cursor:pointer;}
.btn_st_more:hover {background:#f7f8fc;}
.btn_st_more:disabled {color:#b6bac2; cursor:default;}
.st_end {margin:clamp(20px,4.6vw,28px) 0 0; color:#b6bac2; font-size:clamp(12px,1.9vw,13px); font-weight:300; text-align:center;}
.st_end[hidden] {display:none;}
.st_sentinel {width:100%; height:1px;}

/* ===== 결과 없음 ===== */
.st_empty {padding:clamp(48px,12vw,80px) 0; text-align:center;}
.st_empty[hidden] {display:none;}
.st_empty_t {margin:0; color:#1b1b1b; font-size:clamp(15px,2.4vw,17px); font-weight:700;}
.st_empty_d {margin:clamp(7px,1.8vw,10px) 0 clamp(16px,3.6vw,20px); color:#8a8f98; font-size:clamp(13px,2vw,14px); font-weight:300; line-height:1.6;}

/* ===== 필터 시트 · 혜택가 상세 팝업 =====
   제품 상세(2.0_prod_detail.css)의 리뷰 필터 시트(.buyWrap .rvfilter_wrap)와
   혜택가 상세보기 팝업(.popWrap)을 구조·클래스 그대로 쓴다. 그래서 여기에는
   그 CSS 를 다시 적지 않고, 이 화면에만 필요한 한 줄만 더한다.
   ※ 실제 적용 시 두 시트 CSS 는 공용 파일로 빼는 것이 좋겠다 */
/* 제목 줄 오른쪽 — 마이페이지에 저장해 둔 피부 정보를 필터에 그대로 넣어 주는 자리.
   기능을 알리는 것이 목적이라 눈에 띄는 결(파랑 옅은 칩)로 두되 크기는 작게 잡는다.
   저장된 값이 무엇인지는 title 로만 알려 준다 — 시트 안에서 줄을 차지하지 않게 */
#stFilter .btn_st_mine {flex:0 0 auto; margin-left:auto; display:inline-flex; align-items:center; gap:5px; height:clamp(30px,4.6vw,34px); padding:0 clamp(10px,2.4vw,14px); border:1px solid #d6dff8; border-radius:999px; background:#f2f5ff; color:#1b43c8; font-family:inherit; font-size:clamp(12px,1.9vw,13px); font-weight:600; white-space:nowrap; cursor:pointer;}
#stFilter .btn_st_mine:before {content:''; width:13px; height:13px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%231b43c8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.9 4.6L18.5 9l-4.6 1.9L12 15.5l-1.9-4.6L5.5 9l4.6-1.4L12 3z'/%3E%3Cpath d='M18 16.5l.8 2 2 .8-2 .8-.8 2-.8-2-2-.8 2-.8.8-2z'/%3E%3C/svg%3E") no-repeat center / contain;}
#stFilter .btn_st_mine.is_on {border-color:#1b43c8; background:#1b43c8; color:#ffffff;}
#stFilter .btn_st_mine.is_on:before {background-image:url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'13\' height=\'13\' viewBox=\'0 0 24 24\' fill=\'none\' stroke=\'%23ffffff\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-linejoin=\'round\'%3E%3Cpath d=\'M12 3l1.9 4.6L18.5 9l-4.6 1.9L12 15.5l-1.9-4.6L5.5 9l4.6-1.4L12 3z\'/%3E%3Cpath d=\'M18 16.5l.8 2 2 .8-2 .8-.8 2-.8-2-2-.8 2-.8.8-2z\'/%3E%3C/svg%3E");}

/* 아래 [초기화][상품 보기]는 늘 시트 바닥에 붙어 있고, 필터 항목만 그 위에서 굴러간다.
   .buyWrap .buy_inner 가 통째로 굴러가게 되어 있어(overflow-y:auto) 버튼까지 함께
   밀려 올라가므로, 이 시트에서만 안쪽을 세로 flex 로 두고 항목 영역에 스크롤을 준다.
   ※ 제품 상세의 리뷰 필터 시트도 항목이 늘어나면 같은 일이 생긴다 — 담당자 확인 필요 */
#stFilter .buy_inner {display:flex; flex-direction:column; overflow:hidden;}
#stFilter .rvfilter_head {flex:0 0 auto;}
#stFilter .rvfilter_label {word-break:keep-all;}
#stFilter .rvfilter_body {flex:1 1 auto; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch;}
#stFilter .rvfilter_btns {flex:0 0 auto; padding-left:0; padding-right:0; padding-bottom:0;}

/* ===== 담은 뒤 잠깐 떠오르는 하단 바 ===== */
.st_cartbar {position:fixed; left:50%; bottom:0; z-index:1400; width:100%; max-width:640px; border-radius:20px 20px 0 0; background:#ffffff; box-shadow:0 -6px 24px rgba(0,0,0,.10); overflow:hidden; transform:translate(-50%, 110%); visibility:hidden; pointer-events:none; transition:transform .26s cubic-bezier(.22,.61,.36,1), visibility .26s;}
.st_cartbar.is_show {transform:translate(-50%, 0); visibility:visible; pointer-events:auto;}
.st_cartbar_in {padding:clamp(12px,3vw,16px) clamp(14px,3.6vw,20px) calc(clamp(14px,3.4vw,18px) + env(safe-area-inset-bottom));}
.st_cartbar_ship {display:block; margin:0; padding:clamp(10px,2.4vw,13px) 14px; border-radius:10px; background:#f3f3f1; color:#1b1b1b; font-size:clamp(12px,2vw,14px); font-weight:400; text-align:center; word-break:keep-all;}
.st_cartbar_ship b {font-weight:700;}
.st_cartbar_row {display:flex; align-items:center; justify-content:space-between; gap:clamp(12px,3vw,18px); margin-top:clamp(10px,2.6vw,14px);}
.st_cartbar_l {flex:1 1 auto; min-width:0;}
.st_cartbar_price {display:block; color:#1b1b1b; font-size:clamp(21px,4vw,26px); font-weight:800; letter-spacing:-0.02em; line-height:1.2;}
.st_cartbar_note {display:block; margin-top:4px; color:#1b43c8; font-size:clamp(12px,2vw,14px); font-weight:500;}
.btn_st_cartgo {position:relative; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; height:clamp(48px,8vw,54px); padding:0 clamp(18px,4.4vw,26px); border-radius:10px; background:#1b43c8; color:#ffffff; font-size:clamp(14px,2.3vw,16px); font-weight:700; text-decoration:none;}
.btn_st_cartgo:active {transform:scale(.995);}
.st_cartbar_n {position:absolute; right:-7px; top:-9px; display:inline-flex; align-items:center; justify-content:center; min-width:24px; height:24px; padding:0 6px; border:2px solid #ffffff; border-radius:12px; background:#1b1b1b; color:#ffffff; font-size:12px; font-style:normal; font-weight:700; line-height:1;}
.st_cartbar_gauge {height:4px; background:#e9eaee;}
.st_cartbar_gauge span {display:block; width:0; height:100%; background:#1b43c8; transition:width .3s ease;}
@media (prefers-reduced-motion:reduce) {
  .st_cartbar {transition:none;}
  .st_cartbar_gauge span {transition:none;}
}

/* ===== 토스트 ===== */
.st_toast {position:fixed; left:50%; top:clamp(64px,15vw,76px); z-index:1500; max-width:calc(100% - 40px); padding:13px 18px; border-radius:12px; background:rgba(27,27,27,.92); box-shadow:0 6px 20px rgba(20,30,60,.18); color:#ffffff; font-size:clamp(13px,2vw,15px); font-weight:500; line-height:1.45; text-align:center; word-break:keep-all; transform:translate(-50%,-10px); opacity:0; visibility:hidden; transition:opacity .2s, transform .2s, visibility .2s; pointer-events:none;}
.st_toast.is_show {transform:translate(-50%,0); opacity:1; visibility:visible;}
@media (prefers-reduced-motion:reduce) {
  .st_toast {transition:none;}
}

/* ===== 넓은 화면 ===== */
@media (min-width:768px) {
  .st_grid {grid-template-columns:repeat(3, minmax(0, 1fr));}
}
@media (min-width:1024px) {
  .st_grid {grid-template-columns:repeat(4, minmax(0, 1fr));}
}

@media (max-width:767px) {
  .st_toast {top:60px; padding:12px 16px; max-width:calc(100% - 32px);}
}
