/* ==========================================================================
   BOUTIQUEMIN — 쇼핑 기능 페이지 스타일 (style.css 토큰 재사용)
   장바구니 · 주문/결제 · 회원 · 마이페이지 · 관리자 · 법적페이지
   ========================================================================== */

.page-h1{font-size:clamp(24px,3vw,36px);font-weight:600;letter-spacing:-.01em;margin:4px 0 26px}
.empty{padding:56px 0;text-align:center;color:var(--ash);display:flex;flex-direction:column;align-items:center;gap:18px}
.empty p{font-size:15px;line-height:1.75}

/* ── 공용 폼 ─────────────────────────────────────── */
.form{display:flex;flex-direction:column;gap:16px}
.field{display:flex;flex-direction:column;gap:7px}
.field > label{font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--ink)}
.field .req{color:var(--red)}
.field input,.field select,.field textarea{
  width:100%;font-family:inherit;font-size:14px;color:var(--ink);background:var(--paper);
  border:1px solid var(--line-2);border-radius:10px;padding:13px 14px;transition:border-color .2s,box-shadow .2s;
}
.field textarea{min-height:84px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(194,0,25,.08)}
.field .hint{font-size:12px;color:var(--ash)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-row.zip{grid-template-columns:1fr auto;align-items:end}

/* 카카오 우편번호 레이어 */
.postcode-layer{
  position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;
  padding:16px;background:rgba(19,24,29,.5);box-sizing:border-box;
}
.postcode-layer[hidden]{display:none!important}
.postcode-layer__box{
  width:min(520px,100%);height:min(560px,88vh);background:var(--paper);border-radius:14px;
  overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 64px rgba(0,0,0,.28);
}
.postcode-layer__top{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:14px 16px;border-bottom:1px solid var(--line);font-size:14px;font-weight:700;flex-shrink:0;
}
.postcode-layer__x{
  width:36px;height:36px;border:none;background:var(--cream);border-radius:50%;
  font-size:15px;cursor:pointer;color:var(--ink);line-height:1;flex-shrink:0;
}
.postcode-layer__x:hover{background:var(--line)}
.postcode-layer__body{flex:1;min-height:0;position:relative}
.postcode-layer__body iframe{width:100%!important;height:100%!important;border:0}
.checkline{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--ink);line-height:1.6;cursor:pointer}
.checkline input{width:18px;height:18px;margin-top:1px;accent-color:var(--red);flex:0 0 auto}
.checkline a{text-decoration:underline}
.form-note{font-size:13px;padding:12px 14px;border-radius:10px;line-height:1.6}
.form-note.err{background:#fdecee;color:var(--red-deep)}
.form-note.ok{background:#eef7ee;color:#1c7a34}
.btn--lg{padding:16px 30px;font-size:13px}

/* ── 인증(로그인/회원가입) ───────────────────────── */
.authpg{max-width:440px;margin-inline:auto;padding-block:clamp(30px,6vw,64px)}
.authpg .lead-h{text-align:center;margin-bottom:26px}
.authpg .lead-h h1{font-size:26px;font-weight:600;letter-spacing:-.01em}
.authpg .lead-h p{color:var(--ash);font-size:14px;margin-top:8px}
.auth-alt{text-align:center;font-size:13px;color:var(--ash);margin-top:22px}
.auth-alt a{color:var(--red);font-weight:600;text-decoration:underline}
.agree-box{border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:12px;background:var(--cream)}
/* 소셜 로그인 (S12) */
.social-login{margin-top:22px;display:flex;flex-direction:column;gap:10px}
.social-div{display:flex;align-items:center;gap:12px;color:var(--ash);font-size:12px;margin-bottom:4px}
.social-div::before,.social-div::after{content:"";flex:1;height:1px;background:var(--line)}
.btn-social{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 18px;border-radius:10px;font-size:14px;font-weight:600;text-decoration:none;border:1px solid transparent;transition:filter .15s}
.btn-social:hover{filter:brightness(.96)}
.btn-social svg{flex:none}
.btn-kakao{background:#FEE500;color:#191600}
.btn-naver{background:#03C75A;color:#fff}
.social-agree{font-size:11px;color:var(--ash);text-align:center;line-height:1.6;margin-top:4px}
.social-agree a{color:var(--ash);text-decoration:underline}
/* 프로필 연결계정 (S12) */
.linked-accts{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.linked-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px}
.linked-row .la-name{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600}
.la-dot{width:22px;height:22px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center}
.la-dot.kakao{background:#FEE500}.la-dot.naver{background:#03C75A}
.la-state{font-size:12px;color:var(--ash)}
.btn-mini{font-size:12px;font-weight:600;padding:7px 14px;border-radius:8px;border:1px solid var(--line);background:var(--paper);cursor:pointer;text-decoration:none;color:var(--ink)}
.btn-mini.on{background:var(--red);color:#fff;border-color:var(--red)}
/* 향으로 찾기 (홈 머천다이징) */
.scent-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:12px}
.scent-chip{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:16px 16px 15px;border:1px solid var(--line);border-radius:14px;background:var(--paper);text-decoration:none;transition:border-color .18s,transform .18s,box-shadow .18s}
.scent-chip:hover{border-color:var(--red);transform:translateY(-3px);box-shadow:0 10px 26px rgba(0,0,0,.07)}
.scent-chip .sc-mood{font-size:11px;font-weight:700;color:var(--red);background:rgba(194,0,25,.07);border-radius:999px;padding:3px 10px;letter-spacing:.02em}
.scent-chip .sc-name{font-size:17px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.scent-chip .sc-desc{font-size:12px;color:var(--ash);line-height:1.5}
.scent-chip .sc-go{margin-top:2px;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--ash)}
.scent-chip:hover .sc-go{color:var(--red)}
/* 장바구니 무료배송 크로스셀 (AOV) */
.xsell{margin-top:28px;border-top:1px solid var(--line);padding-top:22px}
.xsell-head{display:flex;align-items:baseline;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.xsell-head b{font-size:15px}
.xsell-head .hl{color:var(--red)}
.xsell-head span{font-size:13px;color:var(--ash)}
.xsell-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px}
.xsell-card{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:7px}
.xc-thumb{display:block;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--cream)}
.xc-thumb img{width:100%;height:100%;object-fit:cover}
.xc-nm{font-size:13px;font-weight:600;color:var(--ink);text-decoration:none;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}
.xc-pr{font-size:13px;font-weight:700}
.xc-add{margin-top:2px;font-size:12px;font-weight:700;padding:8px;border-radius:8px;border:1px solid var(--ink);background:var(--paper);color:var(--ink);cursor:pointer;transition:background .15s,color .15s}
.xc-add:hover{background:var(--ink-solid);color:#fff}
.xc-add:disabled{opacity:.5;cursor:default}
/* 모바일 스티키 구매바 (상품페이지 전환) */
.buybar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;align-items:center;gap:10px;padding:9px 14px calc(9px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -4px 22px rgba(0,0,0,.1);transform:translateY(110%);transition:transform .26s ease}
.buybar.show{transform:translateY(0)}
.buybar__info{display:flex;align-items:center;gap:9px;min-width:0;flex:1}
.buybar__info img{width:40px;height:40px;border-radius:8px;object-fit:cover;flex:none;background:var(--cream)}
.buybar__txt{min-width:0}
.buybar .bb-nm{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.buybar .bb-pr{font-size:13px;color:var(--ash)}
.buybar .bb-pr b{font-weight:800;color:var(--ink)}
.buybar__act{display:flex;gap:7px;flex:none}
.buybar__act .btn{padding:12px 15px;font-size:12px;white-space:nowrap}
@media (max-width:768px){ .buybar{display:flex} .buybar__info img{width:36px;height:36px} .buybar .bb-nm{max-width:32vw} }
/* 검색 결과 없음 리커버리 (전환) */
.noresult{text-align:center;padding:clamp(36px,5vw,56px) 20px 28px;border:1px solid var(--line);border-radius:16px;background:var(--cream)}
.noresult .nr-emoji{font-size:28px;margin-bottom:12px;color:var(--ash-2);font-weight:300;line-height:1}
.noresult .nr-msg{font-size:clamp(16px,1.4vw,19px);font-weight:600;color:var(--ink)}
.noresult .nr-msg b{color:var(--red)}
.noresult .nr-sub{font-size:13.5px;color:var(--ash);margin-top:8px;line-height:1.6}
.noresult .nr-act{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}
.noresult .nr-pop{justify-content:center;margin-top:20px}
.shop-empty-line{text-align:center;padding:48px 16px;color:var(--ash);font-size:15px}
.shop-empty-line a{color:var(--red);font-weight:600;text-decoration:underline;text-underline-offset:3px}
/* 주문완료 적립 리인포스 + 추천 */
.result-reward{max-width:420px;margin:14px auto 0;text-align:center;font-size:14px;color:var(--ink);background:rgba(194,0,25,.06);border:1px solid rgba(194,0,25,.15);border-radius:12px;padding:13px 16px;line-height:1.6}
.result-reward b{color:var(--red);font-weight:800}
.result-reco{text-align:left;margin-top:8px}
.result-reco .sec-head{justify-content:center}
/* 모바일 상품카드: 액션이 썸네일 밖으로 이동됨(겹침 해소) — 상시 노출은 기본 스타일 */
/* 상품 배송 ETA + 안심 배지 (신뢰·전환) */
.trust{margin:16px 0 4px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.trust-eta{display:flex;align-items:center;gap:8px;padding:12px 14px;background:var(--cream);font-size:13.5px;color:var(--ink);line-height:1.5}
.trust-eta b{color:var(--red);font-weight:700}
.trust-eta .te-ico{font-size:16px;flex:none}
.trust-badges{display:none} /* 11번: 안심 배지 제거 */
.pulse-soft{animation:pulsesoft 2.2s ease-in-out infinite}
@keyframes pulsesoft{0%,100%{background:var(--cream)}50%{background:rgba(194,0,25,.07)}}
@media (prefers-reduced-motion:reduce){.pulse-soft{animation:none}}
/* 배송완료 리뷰 유도 (리뷰 자산 확보) */
.review-nudge{border:1px solid rgba(194,0,25,.18);background:rgba(194,0,25,.04)}
.review-nudge .rn-sub{font-size:13px;color:var(--ash);margin:-4px 0 12px}
.rn-items{display:flex;flex-direction:column;gap:8px}
.rn-item{display:flex;align-items:center;gap:11px;padding:9px 11px;background:var(--paper);border:1px solid var(--line);border-radius:10px;text-decoration:none;transition:border-color .15s}
.rn-item:hover{border-color:var(--red)}
.rn-item img{width:40px;height:40px;border-radius:7px;object-fit:cover;flex:none;background:var(--cream)}
.rn-item .rn-nm{font-size:13.5px;font-weight:600;color:var(--ink);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rn-item .rn-go{font-size:12.5px;font-weight:700;color:var(--red);flex:none}
/* 상품페이지 '포함된 세트' 교차판매 (AOV) */
.inset{margin:16px 0;border:1px dashed rgba(194,0,25,.35);border-radius:12px;padding:12px 13px;background:rgba(194,0,25,.03)}
.inset-h{font-size:13px;font-weight:700;color:var(--red);margin-bottom:9px}
.inset-card{display:flex;align-items:center;gap:11px;padding:8px;border-radius:10px;text-decoration:none;transition:background .15s}
.inset-card:hover{background:var(--paper)}
.inset-card+.inset-card{margin-top:2px}
.inset-card img{width:46px;height:46px;border-radius:8px;object-fit:cover;flex:none;background:var(--cream)}
.inset-info{flex:1;min-width:0}
.inset-nm{font-size:13.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inset-pr{font-size:13px;margin-top:2px}
.inset-pr b{font-weight:800}
.inset-save{color:var(--red);font-weight:700;font-size:12px;margin-left:4px}
.inset-go{color:var(--ash);font-weight:700;flex:none}
.inset-card:hover .inset-go{color:var(--red)}
/* 최근 검색어 (localStorage) */
.recent-terms{margin:2px 0 12px}
.recent-terms .rs-clear{background:none;border:none;color:var(--ash);font-size:12px;text-decoration:underline;cursor:pointer;padding:2px 4px}
.recent-terms .rs-clear:hover{color:var(--red)}

/* ══ 배치1 · 홈·랜딩 ══ */
/* #5 시즌 배너 */
.season-banner{display:flex;align-items:center;gap:14px;padding:15px 20px;border-radius:14px;background:var(--cream);border:1px solid var(--line);text-decoration:none;transition:border-color .15s}
.season-banner:hover{border-color:var(--red)}
.sb-tag{flex:none;font-size:12px;font-weight:800;color:#fff;background:var(--red);border-radius:999px;padding:5px 12px;white-space:nowrap}
.sb-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.sb-txt b{font-size:15px;color:var(--ink)}
.sb-txt span{font-size:13px;color:var(--ash)}
.sb-go{flex:none;font-size:13px;font-weight:700;color:var(--red);white-space:nowrap}
/* #7 누적 카운터 */
.counters{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:6px auto 0}
.counters .ct{text-align:center;min-width:118px;padding:16px 22px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.counters .ct b{display:block;font-size:26px;font-weight:800;color:var(--red);font-variant-numeric:tabular-nums;line-height:1.1}
.counters .ct span{font-size:12px;color:var(--ash)}
/* #2 포토리뷰 캐러셀 */
.prev-row{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory}
.prev-card{flex:0 0 210px;scroll-snap-align:start;display:flex;flex-direction:column;gap:8px;text-decoration:none}
.prev-pic{display:block;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--cream)}
.prev-pic img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.prev-card:hover .prev-pic img{transform:scale(1.05)}
.prev-stars{color:#e8a020;font-size:13px;letter-spacing:1px}
.prev-body{font-size:13px;color:var(--ink);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.prev-prod{font-size:12px;color:var(--ash);font-weight:600}
/* #1 구매 알림 토스트 */
.buy-ticker{position:fixed;left:18px;bottom:18px;z-index:55;background:var(--paper);border:1px solid var(--line);box-shadow:0 8px 26px rgba(0,0,0,.12);border-radius:12px;padding:11px 15px;font-size:13px;color:var(--ink);max-width:290px;transform:translateY(150%);opacity:0;transition:transform .35s ease,opacity .35s}
.buy-ticker.show{transform:translateY(0);opacity:1}
.buy-ticker b{font-weight:700;color:var(--red)}
/* #3 웰컴 팝업 */
.welcome-pop{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .25s}
.welcome-pop[hidden]{display:none}
.welcome-pop.show{opacity:1;pointer-events:auto}
.wp-dim{position:absolute;inset:0;background:rgba(20,15,12,.5)}
.wp-card{position:relative;z-index:1;width:min(380px,100%);background:var(--paper);border-radius:18px;padding:30px 26px 22px;text-align:center;transform:translateY(14px);transition:transform .25s}
.welcome-pop.show .wp-card{transform:translateY(0)}
.wp-x{position:absolute;top:12px;right:14px;border:none;background:none;font-size:16px;color:var(--ash);cursor:pointer;line-height:1}
.wp-emoji{font-size:38px}
.wp-card h3{font-size:21px;font-weight:800;margin:8px 0 6px}
.wp-card h3 b{color:var(--red)}
.wp-card p{font-size:13.5px;color:var(--ash);margin:0 0 18px;line-height:1.6}
.wp-later{margin-top:12px;border:none;background:none;color:var(--ash);font-size:12.5px;text-decoration:underline;cursor:pointer}
@media (prefers-reduced-motion:reduce){.buy-ticker,.welcome-pop,.wp-card{transition:none}}

/* ── 장바구니 (고해상도 PC 대응) ─────────────────── */
body[data-page="cart"] .wrap.cartpg,
body[data-page="cart"] .cartpg{
  max-width:min(1400px,96vw);
  width:100%;
  margin-inline:auto;
  padding-inline:var(--pad);
  box-sizing:border-box;
}
body[data-page="cart"] .page-h1{font-size:clamp(28px,3vw,40px);margin-bottom:clamp(18px,2vw,28px)}
.cart-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,min(28vw,400px));
  gap:clamp(28px,4vw,56px);
  align-items:start;
  padding-bottom:clamp(48px,6vw,88px);
}
.cart-lines{display:flex;flex-direction:column;border-top:1px solid var(--ink)}
.cart-line{
  display:grid;
  grid-template-columns:clamp(96px,10vw,128px) 1fr auto auto auto;
  gap:clamp(16px,2vw,28px);
  align-items:center;
  padding:clamp(20px,2.2vw,32px) 0;
  border-bottom:1px solid var(--line);
}
.cl-thumb img{
  width:clamp(96px,10vw,128px);
  height:clamp(120px,12.5vw,160px);
  object-fit:cover;border-radius:12px;background:var(--cream);
}
.cl-info{display:flex;flex-direction:column;gap:6px;min-width:0}
.cl-name{font-weight:600;font-size:clamp(15px,1.2vw,18px)}
.cl-opt{font-size:clamp(12px,1vw,14px);color:var(--ash)}
.cl-unit{font-size:clamp(13px,1.05vw,15px);color:var(--ash)}
.cl-line-total{font-weight:700;white-space:nowrap;min-width:100px;text-align:right;font-size:clamp(15px,1.2vw,18px)}
.cl-remove{width:36px;height:36px;border-radius:50%;color:var(--ash);font-size:15px;transition:.2s}
.cl-remove:hover{background:var(--cream);color:var(--red)}
.cart-summary{
  border:1px solid var(--line);border-radius:18px;
  padding:clamp(22px,2.4vw,32px);
  position:sticky;top:calc(var(--nav-h) + 18px);background:var(--paper);
}
.cart-summary h3{font-size:clamp(15px,1.2vw,17px);font-weight:600;margin-bottom:16px}
.cart-summary .row{display:flex;justify-content:space-between;align-items:center;font-size:clamp(14px,1.1vw,16px);padding:10px 0;color:var(--ash)}
.cart-summary .row b{color:var(--ink);font-weight:600}
.cart-summary .row.total{border-top:1px solid var(--line);margin-top:8px;padding-top:18px;font-size:clamp(16px,1.3vw,18px);color:var(--ink)}
.cart-summary .row.total b{font-size:clamp(20px,1.8vw,26px);color:var(--red)}
.ship-note{font-size:13px;color:var(--ash);text-align:center;margin-top:14px}
.stepper .q-input{width:48px;text-align:center;border:none;background:transparent;font-family:inherit;font-size:15px}
.cart-cta .btn{min-height:52px;font-size:13px}

/* ── 객단가 위젯: 무료배송 진행바 + 사은품 (S4) ───── */
.aov{margin:2px 0 16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--cream)}
.aov-ship__msg{font-size:12.5px;color:var(--ash);margin-bottom:9px;line-height:1.5}
.aov-ship__msg b{color:var(--ink);font-weight:700}
.aov-ship__msg .hl{color:var(--red)}
.aov-ship__msg .ok b{color:var(--red)}
.aov-bar{height:7px;border-radius:99px;background:var(--cream-2);overflow:hidden}
.aov-bar__fill{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--red),var(--red-deep));transition:width .45s var(--ease-out,ease)}
.aov-gifts{margin-top:11px;display:flex;flex-direction:column;gap:6px}
.aov-gifts[hidden]{display:none}
.aov-gift{font-size:12px;color:var(--ash);line-height:1.5}
.aov-gift .ico{margin-right:5px}
.aov-gift b{color:var(--ink);font-weight:600}
.aov-gift .hl{color:var(--red)}
.aov-gift.on{color:#2b7a3e}
.aov-gift.on b{color:#2b7a3e}
.aov-gift.next{opacity:.9}

/* ── 주문/결제 ───────────────────────────────────── */
.checkout-grid{display:grid;grid-template-columns:1fr 380px;gap:clamp(20px,3vw,44px);align-items:start;padding-bottom:64px}
.co-section{border:1px solid var(--line);border-radius:16px;padding:22px 24px;margin-bottom:18px}
.co-section h3{font-size:15px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.co-summary{border:1px solid var(--line);border-radius:16px;padding:24px;position:sticky;top:calc(var(--nav-h) + 18px);background:var(--paper)}
.co-items{display:flex;flex-direction:column;gap:14px;margin-bottom:16px;max-height:320px;overflow:auto}
.co-item{display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:center}
.co-item img{width:56px;height:56px;object-fit:cover;border-radius:8px;background:var(--cream)}
.co-item .nm{font-size:13px;font-weight:600;line-height:1.4}
.co-item .op{font-size:11px;color:var(--ash)}
.co-item .pr{font-size:13px;font-weight:600;white-space:nowrap}
.co-row{display:flex;justify-content:space-between;font-size:14px;padding:8px 0;color:var(--ash)}
.co-row b{color:var(--ink)}
.co-row.total{border-top:1px solid var(--line);margin-top:6px;padding-top:14px;font-size:16px;color:var(--ink)}
.co-row.total b{font-size:20px;color:var(--red)}
.addr-pick{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.addr-chip{border:1px solid var(--line-2);border-radius:10px;padding:8px 12px;font-size:12px;cursor:pointer}
.addr-chip.on{border-color:var(--ink);background:var(--ink-solid);color:#fff}

/* 결제 위젯 페이지 */
.paypg{max-width:640px;margin-inline:auto;padding:clamp(24px,5vw,48px) var(--pad) 80px}
.paypg .pay-h{text-align:center;margin-bottom:8px}
.paypg .pay-h .logo{font-family:var(--sans);font-weight:800;letter-spacing:.14em;font-size:20px}
.paypg .pay-sum{text-align:center;color:var(--ash);font-size:14px;margin-bottom:26px}
.paypg .pay-sum b{color:var(--red);font-size:18px}
#payment-method,#agreement{margin-bottom:16px}
.pay-actions{display:flex;gap:12px;margin-top:8px}

/* 완료/실패 */
.result-pg{max-width:560px;margin-inline:auto;text-align:center;padding-block:clamp(40px,7vw,90px)}
.result-ico{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;margin:0 auto 22px;font-size:34px}
.result-ico.ok{background:#eef7ee;color:#1c7a34}
.result-ico.no{background:#fdecee;color:var(--red)}
.result-pg h1{font-size:28px;font-weight:600;letter-spacing:-.01em;margin-bottom:10px}
.result-pg .sub{color:var(--ash);margin-bottom:26px}
.result-card{border:1px solid var(--line);border-radius:14px;padding:20px 22px;text-align:left;margin:0 auto 26px;max-width:420px}
.result-card .row{display:flex;justify-content:space-between;font-size:14px;padding:7px 0}
.result-card .row span{color:var(--ash)}
.result-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ── 마이페이지 ──────────────────────────────────── */
.acct-grid{display:grid;grid-template-columns:220px 1fr;gap:clamp(20px,3vw,44px);align-items:start;padding-bottom:64px}
.acct-nav{display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);border-radius:16px;padding:14px;position:sticky;top:calc(var(--nav-h) + 18px);background:var(--paper)}
.acct-nav__sec{display:flex;flex-direction:column;gap:2px}
.acct-nav__lb{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ash-2);padding:4px 12px 6px}
.acct-nav a{padding:10px 12px;border-radius:9px;font-size:13.5px;color:var(--ash);transition:.2s}
.acct-nav a:hover{background:var(--cream);color:var(--ink)}
.acct-nav a.on{background:var(--ink-solid);color:#fff;font-weight:600}
.acct-nav__foot{display:flex;flex-direction:column;gap:2px;padding-top:8px;border-top:1px solid var(--line);margin-top:2px}
.acct-nav a.danger{color:var(--red)}
.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:8px 0 28px}
.scent-pref{border-top:1px solid var(--line);padding-top:22px;margin-top:8px}
.scent-pref__head{margin:0 0 14px!important}
.scent-pref__save{margin-top:16px;padding:10px 20px}
.stat-card{border:1px solid var(--line);border-radius:14px;padding:20px}
.stat-card .n{font-size:28px;font-weight:700;letter-spacing:-.02em}
.stat-card .t{font-size:12px;color:var(--ash);margin-top:4px;text-transform:uppercase;letter-spacing:.08em}
.hello{border:1px solid var(--line);border-radius:14px;padding:22px 24px;margin-bottom:22px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.hello b{color:var(--red)}

.order-card{border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:14px}
.order-card .oc-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:12px;flex-wrap:wrap}
.order-card .oc-no{font-weight:600}
.order-card .oc-date{font-size:12px;color:var(--ash)}
.order-card .oc-items{display:flex;flex-direction:column;gap:10px}
.oc-item{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center}
.oc-item img{width:52px;height:52px;object-fit:cover;border-radius:8px;background:var(--cream)}
.oc-item .nm{font-size:14px;font-weight:500}
.oc-item .op{font-size:11px;color:var(--ash)}
.oc-foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.oc-foot .amt b{color:var(--red);font-size:16px}

.badge-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:5px 11px;border-radius:20px;white-space:nowrap}
.badge-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.st-pending{background:#fff4e5;color:#b26a00}
.st-paid{background:#e9f2ff;color:#1257b0}
.st-preparing{background:#eef7ee;color:#1c7a34}
.st-shipped{background:#e6f6f4;color:#0a7d70}
.st-delivered{background:#eef0f2;color:#41474d}
.st-cancelled,.st-refunded{background:#fdecee;color:var(--red)}

/* 표 */
.data-table{width:100%;border-collapse:collapse;font-size:13.5px}
.data-table th,.data-table td{text-align:left;padding:12px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.data-table th{font-size:12px;color:var(--ash);font-weight:600;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.data-table tbody tr:hover{background:var(--cream)}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px}
.table-wrap .data-table th:first-child,.table-wrap .data-table td:first-child{padding-left:18px}

/* ── 관리자 ──────────────────────────────────────── */
.admin-shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.admin-side{background:var(--ink-solid);color:#fff;padding:22px 16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:4px}
.admin-side .brand{font-family:var(--sans);font-weight:800;letter-spacing:.14em;font-size:16px;padding:8px 12px 18px}
.admin-side a{padding:11px 14px;border-radius:9px;font-size:14px;color:rgba(255,255,255,.72);transition:.2s}
.admin-side a:hover{background:rgba(255,255,255,.08);color:#fff}
.admin-side a.on{background:var(--red);color:#fff;font-weight:600}
.admin-nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:9px;background:#ff4d4f;color:#fff;font-size:11px;font-weight:700;vertical-align:middle}
.admin-side .spacer{flex:1}
.admin-side .back{color:rgba(255,255,255,.5);font-size:12px}
.admin-main{padding:clamp(20px,3vw,38px);max-width:1200px}
.admin-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px;flex-wrap:wrap}
.admin-head h1{font-size:24px;font-weight:600}
.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px}
.admin-filter{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.admin-filter a{font-size:13px;padding:8px 14px;border:1px solid var(--line-2);border-radius:20px;color:var(--ash)}
.admin-filter a.on{background:var(--ink-solid);color:#fff;border-color:var(--ink)}
.admin-form{max-width:720px;display:flex;flex-direction:column;gap:16px}
.opt-rows{display:flex;flex-direction:column;gap:8px}
.opt-rows .opt-row{display:grid;grid-template-columns:1fr 140px auto;gap:8px;align-items:center}
.img-thumbs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.img-thumbs .it{position:relative;width:74px;height:74px;border-radius:8px;overflow:hidden;border:1px solid var(--line)}
.img-thumbs .it img{width:100%;height:100%;object-fit:cover}
.mini{font-size:12px;padding:8px 14px;border:1px solid var(--line-2);border-radius:8px;display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.link-danger{color:var(--red);font-size:13px;text-decoration:underline;cursor:pointer;background:none;border:none}

/* ── 법적 페이지 ─────────────────────────────────── */
.legal{max-width:820px;margin-inline:auto;padding-bottom:72px;line-height:1.8;font-size:14.5px;color:#2a2a2a}
.legal h1{font-size:clamp(24px,3vw,34px);font-weight:600;margin:6px 0 8px}
.legal .updated{color:var(--ash);font-size:13px;margin-bottom:30px}
.legal h2{font-size:18px;font-weight:600;margin:34px 0 12px;padding-top:20px;border-top:1px solid var(--line)}
.legal h3{font-size:15px;font-weight:600;margin:18px 0 8px}
.legal p,.legal li{margin-bottom:10px}
.legal ul,.legal ol{padding-left:20px}
.legal ul li{list-style:disc}
.legal ol li{list-style:decimal}
.legal table{width:100%;border-collapse:collapse;margin:14px 0;font-size:13.5px}
.legal th,.legal td{border:1px solid var(--line-2);padding:10px 12px;text-align:left}
.legal th{background:var(--cream)}
.legal .info-box{background:var(--cream);border-radius:12px;padding:18px 20px;margin:14px 0}
.legal .info-box p{margin-bottom:6px}

.stock-note{font-size:12px;color:var(--red);margin-top:10px;font-weight:600}

/* ── SHOP 목록 ───────────────────────────────────── */
.shop-sort{position:relative}
.shop-sort select{border:1px solid var(--line-2);border-radius:22px;padding:9px 30px 9px 14px;font-family:inherit;font-size:13px;color:var(--ink);background:var(--paper);cursor:pointer}
/* JS 커스텀 정렬 활성 시 네이티브 셀렉트 숨김(무JS 폴백은 그대로 노출) */
.shop-sort.csel-on select[data-csel]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;clip:rect(0 0 0 0);overflow:hidden}
/* 정렬 커스텀 드롭다운 — 브랜드 톤 + 애니메이션 */
.csel{position:relative;display:inline-block;font-size:13px;-webkit-user-select:none;user-select:none}
.csel-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--line-2);border-radius:22px;background:var(--paper);color:var(--ink);font-family:inherit;font-size:13px;font-weight:600;line-height:1;cursor:pointer;transition:border-color .18s,box-shadow .18s}
.csel-btn:hover{border-color:var(--ink)}
.csel.open .csel-btn{border-color:var(--red);box-shadow:0 0 0 3px rgba(194,0,25,.08)}
.csel-ico{width:15px;height:15px;flex:none;color:var(--ash);transition:color .18s}
.csel-btn:hover .csel-ico,.csel.open .csel-ico{color:var(--red)}
.csel-cur{white-space:nowrap}
.csel-caret{flex:none;color:var(--ash);transition:transform .28s cubic-bezier(.34,1.56,.64,1),color .18s}
.csel.open .csel-caret{transform:rotate(180deg);color:var(--red)}
.csel-panel{position:absolute;top:calc(100% + 8px);right:0;min-width:174px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:6px;z-index:40;box-shadow:0 16px 38px rgba(20,8,10,.15);transform-origin:top right;opacity:0;transform:translateY(-8px) scale(.96);pointer-events:none;transition:opacity .18s ease,transform .28s cubic-bezier(.33,1.3,.5,1)}
.csel.open .csel-panel{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.csel-opt{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;color:var(--ink);white-space:nowrap;cursor:pointer;opacity:0;transform:translateY(-5px);transition:background .15s,color .15s,opacity .3s ease,transform .3s ease}
.csel.open .csel-opt{opacity:1;transform:translateY(0)}
.csel-opt > span{transition:transform .18s ease}
.csel-opt.active{background:var(--cream)}
.csel-opt.active > span{transform:translateX(2px)}
.csel-opt.sel{color:var(--red);font-weight:700}
.csel-chk{width:15px;height:15px;flex:none;color:var(--red);opacity:0;transform:scale(.3);transition:opacity .2s,transform .32s cubic-bezier(.34,1.56,.64,1)}
.csel-opt.sel .csel-chk{opacity:1;transform:scale(1)}
@media (max-width:640px){.csel-panel{left:0;right:auto;transform-origin:top left}}
@media (prefers-reduced-motion:reduce){.csel-caret,.csel-panel,.csel-opt,.csel-chk,.csel-opt > span{transition-duration:.01ms}}
.shop-search{display:flex;gap:8px;flex:1 1 300px;max-width:none;margin-bottom:0}
.shop-search input{flex:1;border:1px solid var(--line-2);border-radius:24px;padding:12px 18px;font-family:inherit;font-size:14px}
.shop-search input:focus{outline:none;border-color:var(--red)}
.shop-search .btn{padding:10px 22px}
.chips{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:28px}
.chip{font-size:13px;padding:8px 15px;border:1px solid var(--line-2);border-radius:22px;color:var(--ash);transition:.2s}
.chip:hover{border-color:var(--ink);color:var(--ink)}
.chip.on{background:var(--red);border-color:var(--red);color:#fff}
.chip span{opacity:.6;font-size:11px;margin-left:2px}
.pagination{display:flex;gap:6px;justify-content:center;margin-top:40px}
.pagination .pg{min-width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:9px;font-size:14px;color:var(--ash)}
.pagination .pg.on{background:var(--ink-solid);color:#fff;border-color:var(--ink)}

/* ── 반응형 ──────────────────────────────────────── */
@media (max-width:900px){
  .cart-grid,.checkout-grid,.acct-grid{grid-template-columns:1fr}
  .cart-summary,.co-summary,.acct-nav{position:static}
  .admin-shell{grid-template-columns:1fr}
  .admin-side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px}
  .admin-side .brand{padding:8px 12px}
  .admin-side .spacer{display:none}
  .admin-stats{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){
  .form-row{grid-template-columns:1fr}
  .stat-cards{grid-template-columns:1fr 1fr}
  .cart-line{grid-template-columns:64px 1fr auto;grid-template-areas:"t i r" "t q p";row-gap:10px}
  .cl-thumb{grid-area:t}.cl-info{grid-area:i}.cl-qty{grid-area:q}.cl-line-total{grid-area:p}.cl-remove{grid-area:r;justify-self:end}
  .cl-thumb img{width:64px;height:64px}
}

/* ══════════════════════════════════════════════════════
   리뷰 (S1)
   ══════════════════════════════════════════════════════ */
/* 별점 분포 막대 채움 — 기존 .rbar .fl 이 inline <span> 이라 width% 미적용되던 것 보정 */
.rbar .fl{display:block;height:100%}
/* 요약 — 향 속성 바 */
.rattr{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-2);display:flex;flex-direction:column;gap:9px}
.rattr__it{display:flex;align-items:center;gap:12px;font-size:12px}
.rattr__it .k{width:44px;color:var(--ash);flex:0 0 auto}
.rattr__it .tr{flex:1;height:6px;background:var(--paper);border-radius:4px;overflow:hidden}
.rattr__it .fl{display:block;height:100%;background:var(--red)}
.rattr__it .v{width:26px;text-align:right;color:var(--ink);font-weight:600}

/* 작성 폼 */
.rwrite{border:1px solid var(--line);border-radius:14px;margin-bottom:26px;background:var(--paper)}
.rwrite>summary{cursor:pointer;padding:16px 20px;font-weight:700;font-size:14.5px;list-style:none}
.rwrite>summary::-webkit-details-marker{display:none}
.rwrite[open]>summary{border-bottom:1px solid var(--line)}
.rform{padding:20px;display:flex;flex-direction:column;gap:16px}
.rrow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.rrow>label{width:64px;flex:0 0 auto;font-size:13px;font-weight:600;color:var(--ink)}
.rhint{font-size:12px;color:var(--ash)}
.rselect{border:1px solid var(--line-2);border-radius:9px;padding:9px 12px;font-family:inherit;font-size:14px;background:var(--paper)}

/* 별점/세그먼트 선택 위젯 */
.pick{display:inline-flex;gap:4px}
.pick button{border:0;background:none;cursor:pointer;font-family:inherit;padding:0;line-height:1}
.starpick button{font-size:26px;color:var(--line-2);transition:color .12s}
.starpick button.on{color:var(--red)}
.segpick{gap:6px}
.segpick button{width:34px;height:34px;border:1px solid var(--line-2);border-radius:8px;font-size:13px;font-weight:600;color:var(--ash);background:var(--paper);transition:.12s}
.segpick button.on{background:var(--red);border-color:var(--red);color:#fff}

/* 파일 첨부 */
.rfile{display:inline-flex;flex-direction:column;gap:6px;cursor:pointer;font-size:13px;font-weight:600}
.rfile small{color:var(--ash);font-weight:400}
.rfile input[type=file]{font-size:12px;color:var(--ash)}
.rfile__list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.rfile__list span{font-size:11px;color:var(--ash);background:var(--cream);border:1px solid var(--line);border-radius:6px;padding:3px 8px}

/* 정렬 탭 */
.rsort{display:flex;gap:16px;padding:0 2px 16px;flex-wrap:wrap}
.rsort a{font-size:13px;color:var(--ash)}
.rsort a.on{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:4px}

/* 리뷰 항목 확장 */
.ritem .rhead{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rv-badge{font-size:11px;font-weight:700;color:var(--red);background:#fdecee;border-radius:20px;padding:3px 9px}
.rv-best{font-size:11px;font-weight:800;color:#fff;background:var(--ink-solid);border-radius:20px;padding:3px 9px;letter-spacing:.05em}
.ritem .rtitle{font-weight:700;font-size:14.5px;margin-bottom:6px}
.ritem .rbody{font-size:14px;line-height:1.7;white-space:pre-wrap;margin-bottom:10px}
.rmedia{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.rmedia img,.rmedia video{width:96px;height:96px;object-fit:cover;border-radius:10px;background:var(--cream);border:1px solid var(--line)}
.ritem .rmeta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.ritem .rmeta span{font-size:11.5px;color:var(--ash);background:var(--cream);border-radius:6px;padding:4px 9px}
.rfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-top:10px;border-top:1px solid var(--line)}
.rfoot .who{font-size:12px;color:var(--ash)}
.ract{display:flex;gap:8px}
.ract button{border:1px solid var(--line-2);background:var(--paper);border-radius:20px;padding:6px 13px;font-size:12px;color:var(--ash);cursor:pointer;font-family:inherit;transition:.15s}
.ract .rev-helpful:hover,.ract .rev-helpful.voted{border-color:var(--red);color:var(--red)}
.ract .rev-helpful.voted{background:#fdecee}
.ract .rev-report:hover{color:var(--red)}

/* 마이페이지 — 작성 가능한 리뷰 */
.rvable{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:8px}
.rvable__it{border:1px solid var(--line);border-radius:12px;padding:12px;text-align:center;transition:.15s}
.rvable__it:hover{border-color:var(--red);box-shadow:0 6px 18px rgba(0,0,0,.06)}
.rvable__it img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;background:var(--cream);margin-bottom:8px}
.rvable__it .nm{font-size:13px;font-weight:600;line-height:1.4;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rvable__it .go{font-size:12px;color:var(--red);font-weight:600}

@media (max-width:560px){
  .rrow>label{width:100%}
  .rmedia img,.rmedia video{width:80px;height:80px}
}

/* ══════════════════════════════════════════════════════
   쿠폰·적립금 (S2)
   ══════════════════════════════════════════════════════ */
/* 체크아웃 결제요약 내 쿠폰/적립금 */
.co-reward{padding:12px 0;border-top:1px dashed var(--line)}
.co-reward__lb{display:block;font-size:13px;font-weight:600;margin-bottom:8px}
.co-reward__lb small{color:var(--ash);font-weight:400}
.co-reward__lb small b{color:var(--red)}
.co-reward__sel{width:100%;border:1px solid var(--line-2);border-radius:9px;padding:10px 12px;font-family:inherit;font-size:13.5px;background:var(--paper)}
.co-reward__none{font-size:12.5px;color:var(--ash)}
.co-reward__pt{display:flex;gap:8px}
.co-reward__pt input{flex:1;border:1px solid var(--line-2);border-radius:9px;padding:10px 12px;font-family:inherit;font-size:14px}
.co-reward__pt .btn{padding:0 16px;font-size:13px;white-space:nowrap}
.co-reward__note{font-size:11.5px;color:var(--ash);margin-top:6px}
.co-row.co-disc b{color:var(--red)}
.co-earn{text-align:right;font-size:12.5px;color:var(--ash);margin-top:8px}
.co-earn b{color:var(--red)}
/* 사은품 라인(₩0) */
.co-item--gift .nm{color:#2b7a3e}
.co-item--gift .pr{color:#2b7a3e;font-weight:700}

/* ══════════ 선물하기 (S4) ══════════ */
.co-gift{background:var(--cream);border-radius:14px}
.gift-toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:14px}
.gift-toggle input{margin-top:3px;flex:0 0 auto;width:17px;height:17px;accent-color:var(--red)}
.gift-toggle b{font-weight:700}
.gift-toggle small{display:block;color:var(--ash);font-size:12px;font-weight:400;margin-top:2px}
.gift-fields{margin-top:14px;display:flex;flex-direction:column;gap:14px}
.gift-fields[hidden]{display:none}
.gift-fields label small.hint{color:var(--ash);font-weight:400;font-size:11.5px;margin-left:4px}
.gift-fields textarea{width:100%;border:1px solid var(--line-2);border-radius:9px;padding:11px 12px;font-family:inherit;font-size:14px;resize:vertical;background:var(--paper)}
.gift-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.gift-layout{display:grid;grid-template-columns:1fr minmax(200px,240px);gap:18px;align-items:start}
@media (max-width:720px){.gift-layout{grid-template-columns:1fr}}
.gift-card-mock{background:linear-gradient(145deg,#fff 0%,#f7f4ef 100%);border:1px solid var(--line-2);border-radius:14px;padding:18px 16px;min-height:180px;box-shadow:0 8px 24px rgba(20,20,20,.06)}
.gift-card-mock__brand{font-size:11px;letter-spacing:.14em;font-weight:700;color:var(--red);margin-bottom:14px}
.gift-card-mock__to,.gift-card-mock__from{font-size:12.5px;color:var(--ash)}
.gift-card-mock__msg{margin:12px 0;font-size:14px;line-height:1.65;min-height:3.2em;white-space:pre-wrap}
.gift-preset{border:1px solid var(--line-2);background:var(--paper);border-radius:99px;padding:6px 12px;font-family:inherit;font-size:12px;color:var(--ink);cursor:pointer;transition:.15s}
.gift-preset:hover{border-color:var(--red);color:var(--red)}
/* 주문 상세의 선물 패널 */
.gift-panel h3{display:flex;align-items:center;gap:8px}
.gift-flag{font-size:11px;font-weight:700;color:#fff;background:var(--red);border-radius:6px;padding:2px 7px;letter-spacing:.02em}
.gift-msg{white-space:pre-wrap;line-height:1.6;font-size:14px;background:var(--cream);border-radius:10px;padding:12px 14px;border:1px solid var(--line)}

/* 쿠폰함 (마이페이지) */
.coupon-redeem{display:flex;gap:8px;margin-bottom:6px}
.coupon-redeem input{flex:1;border:1px solid var(--line-2);border-radius:10px;padding:12px 14px;font-family:inherit;font-size:14px}
.coupon-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.coupon-card{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--paper)}
.coupon-card__amt{flex:0 0 96px;background:var(--red);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:24px;font-weight:800;line-height:1.1;position:relative}
.coupon-card__amt span{font-size:12px;font-weight:600;margin-top:2px}
.coupon-card__amt::after{content:"";position:absolute;right:-6px;top:0;bottom:0;width:12px;background:radial-gradient(circle at left,transparent 0 6px,#fff 6px) repeat-y;background-size:12px 12px}
.coupon-card__body{padding:14px 16px;min-width:0}
.coupon-card__body .nm{font-weight:700;font-size:14px;margin-bottom:6px}
.coupon-card__body .cond{font-size:12px;color:var(--ash)}
.coupon-card__body .exp{font-size:11.5px;color:var(--ash-2);margin-top:6px}
.coupon-card.is-dim{opacity:.55}
.coupon-card.is-dim .coupon-card__amt{background:var(--ash)}

/* 적립금 (마이페이지) */
.pt-summary{border:1px solid var(--line);border-radius:16px;padding:24px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center;background:var(--cream)}
.pt-summary__bal .l{font-size:13px;color:var(--ash);margin-bottom:6px}
.pt-summary__bal .v{font-size:34px;font-weight:800;color:var(--red);line-height:1}
.pt-summary__bal .v span{font-size:18px;margin-left:2px}
.pt-summary__sub{display:flex;gap:26px}
.pt-summary__sub div{text-align:right}
.pt-summary__sub span{display:block;font-size:12px;color:var(--ash);margin-bottom:4px}
.pt-summary__sub b{font-size:16px}
@media (max-width:560px){ .coupon-list{grid-template-columns:1fr} }

/* ══════════════════════════════════════════════════════
   향 탐색 (S3)
   ══════════════════════════════════════════════════════ */
/* 상품 상세 — 향 프로필 */
.scent-profile{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:18px 0;display:flex;flex-direction:column;gap:10px;background:var(--cream)}
.sp-row{display:flex;align-items:center;gap:12px;font-size:13px}
.sp-row .k{width:60px;flex:0 0 auto;color:var(--ash);font-weight:600}
.sp-chip{display:inline-block;background:var(--red);color:#fff;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600;margin-right:6px}
.sp-chip.alt{background:var(--paper);color:var(--ink);border:1px solid var(--line-2)}
a.sp-chip:hover{opacity:.88}
.sp-dots{display:inline-flex;gap:4px;align-items:center}
.sp-dots i{width:9px;height:9px;border-radius:50%;background:var(--line-2)}
.sp-dots i.on{background:var(--red)}
.sp-v{font-size:12px;color:var(--ash)}

/* ── 세트/번들 구성 (S4) ─────────────────────────── */
.bundle{border:1px solid var(--line);border-radius:12px;padding:15px 16px;margin:18px 0;background:var(--cream)}
.bundle__head{display:flex;align-items:center;gap:9px;font-size:14px;margin-bottom:12px}
.bundle__tag{background:var(--ink-solid);color:#fff;font-size:10px;font-weight:800;letter-spacing:.08em;border-radius:5px;padding:3px 7px}
.bundle__head b{font-weight:700}
.bundle__save{margin-left:auto;background:var(--red);color:#fff;font-size:11.5px;font-weight:700;border-radius:20px;padding:3px 10px}
.bundle__list{list-style:none;display:flex;flex-direction:column;gap:9px;margin:0;padding:0}
.bundle__list li{display:flex;align-items:center;gap:11px}
.bundle__list li a{display:flex;align-items:center;gap:11px;flex:1;min-width:0}
.bundle__list img{width:40px;height:40px;border-radius:8px;object-fit:cover;flex:0 0 auto;background:var(--paper)}
.bundle__list .bn{font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bundle__list li a:hover .bn{color:var(--red)}
.bundle__list .bp{font-size:12.5px;color:var(--ash);flex:0 0 auto}
.bundle__calc{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:13px;padding-top:12px;border-top:1px dashed var(--line-2);font-size:13px;color:var(--ash)}
.bundle__calc del{color:var(--ash)}
.bundle__calc b{color:var(--ink);font-weight:700}
.bundle__savv{margin-left:auto;color:var(--red);font-weight:600}
.bundle__savv b{color:var(--red)}

/* ── 재입고 알림 (S5) ─────────────────────────────── */
.restock{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--cream)}
.restock-h{font-size:14px;font-weight:700;margin-bottom:10px}
.restock-h span{display:block;font-size:12px;font-weight:400;color:var(--ash);margin-top:2px}
.restock-row{display:flex;gap:8px}
.restock-row input{flex:1;border:1px solid var(--line-2);border-radius:9px;padding:10px 12px;font-family:inherit;font-size:14px;background:var(--paper)}
.restock-row .btn{white-space:nowrap}
.restock-done{color:#2b7a3e;font-weight:600;font-size:14px;margin:0}
.detail-video video{width:100%;border-radius:8px;display:block;background:#000}
/* 관리자 상품 일괄수정 툴바 (S5) */
.bulk-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;margin-bottom:12px;background:var(--cream);border:1px solid var(--line);border-radius:10px;font-size:13px}
.bulk-bar .bulk-sep{color:var(--ash);margin-left:6px}
.bulk-bar b{color:var(--red)}

/* ── 클레임(취소·반품·교환) (S7) ─────────────────── */
.claim-row{padding:12px 0;border-bottom:1px solid var(--line)}
.claim-row:last-child{border-bottom:none}
.claim-detail{font-size:13.5px;margin-top:6px;line-height:1.55}
.claim-answer{font-size:13px;margin-top:8px;background:var(--cream);border-radius:9px;padding:9px 12px}
.claim-answer b{color:var(--red);margin-right:4px}
.claim-form-wrap{border:1px solid var(--line);border-radius:12px;padding:12px 15px;margin-top:10px}
.claim-form-wrap summary{cursor:pointer;font-weight:600;font-size:14px}

/* ── FAQ (S7) ─────────────────────────────────────── */
.faq-wrap{max-width:820px}
.faq-group{margin-bottom:30px}
.faq-cat{font-size:16px;font-weight:800;color:var(--red);margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--ink)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{cursor:pointer;padding:15px 4px;font-size:15px;font-weight:500;list-style:none;display:flex;gap:10px;align-items:baseline}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .q{color:var(--red);font-weight:800;flex:0 0 auto}
.faq-item[open] summary{color:var(--red)}
.faq-a{padding:2px 4px 18px 26px;color:var(--ash);line-height:1.7;font-size:14.5px;white-space:pre-wrap}

/* ── 공지·배너 (S9) ───────────────────────────────── */
.notice-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:14px;color:var(--ink)}
.notice-bar .nb-label{flex:0 0 auto;background:var(--red);color:#fff;font-size:11px;font-weight:700;border-radius:6px;padding:3px 9px}
.notice-bar .nb-latest{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.notice-bar:hover .nb-latest{color:var(--red)}
.notice-bar .nb-more{flex:0 0 auto;color:var(--ash);font-size:12.5px}
.promo-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.promo-banner{position:relative;display:block;border-radius:14px;overflow:hidden;aspect-ratio:2.6/1;background:var(--cream)}
.promo-banner img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease-out,ease)}
.promo-banner:hover img{transform:scale(1.04)}
.promo-banner .pb-txt{position:absolute;left:0;bottom:0;right:0;padding:16px 18px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.55))}
.promo-banner .pb-txt b{display:block;font-size:18px;font-weight:800}
.promo-banner .pb-txt span{font-size:13px;opacity:.9}
.notice-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.notice-list li a{display:flex;align-items:center;gap:14px;padding:16px 4px;border-bottom:1px solid var(--line);color:var(--ink)}
.notice-list .nl-type{flex:0 0 auto;font-size:11px;font-weight:700;border-radius:6px;padding:3px 9px;background:var(--cream);color:var(--red)}
.notice-list .nl-type.event{background:var(--red);color:#fff}
.notice-list .nl-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.notice-list li a:hover .nl-title{color:var(--red)}
.notice-list .nl-date{flex:0 0 auto;color:var(--ash);font-size:13px}
.notice-detail .nd-head{border-bottom:2px solid var(--ink);padding-bottom:16px;margin-bottom:20px}
.notice-detail .nd-type{display:inline-block;font-size:12px;font-weight:700;border-radius:6px;padding:3px 10px;background:var(--red);color:#fff;margin-bottom:10px}
.notice-detail h2{font-size:22px;font-weight:800}
.notice-detail .nd-date{color:var(--ash);font-size:13px;margin-top:8px}
.notice-detail .nd-body{line-height:1.8;font-size:15px;white-space:pre-wrap;color:#333}

/* ── 회원 등급 (S10) ──────────────────────────────── */
.tier-card{border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:20px;background:linear-gradient(135deg,var(--cream),#fff)}
.tier-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.tier-name{font-weight:700}
.tier-points{color:var(--ink);font-size:14px}
.tier-points b{color:var(--red);font-size:18px}
.tier-badge{display:inline-block;font-size:12px;font-weight:800;color:#fff;border-radius:20px;padding:3px 12px;letter-spacing:.02em;background:var(--ink-solid)}
.tier-badge.tier-WELCOME{background:#9a8f80}
.tier-badge.tier-SILVER{background:#8a9199}
.tier-badge.tier-GOLD{background:#c79a3a}
.tier-badge.tier-VIP{background:linear-gradient(135deg,#0e9ad9,#0a6fa5)}
.tier-benefits{display:flex;gap:16px;flex-wrap:wrap;margin:14px 0 12px;font-size:13px;color:var(--ash)}
.tier-benefits b{color:var(--ink)}
.tier-bar{height:8px;border-radius:99px;background:var(--cream-2);overflow:hidden;margin-bottom:8px}
.tier-bar__fill{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--red),var(--red-deep))}
.tier-next{font-size:12.5px;color:var(--ash)}
.tier-next b{color:var(--red)}
.guest-join{display:block;background:linear-gradient(120deg,#1a1a1a,#2a1216 45%,var(--red));background-size:200% 200%;color:#fff;border-radius:14px;padding:15px 16px;margin-bottom:14px;text-align:center;animation:guestglow 3.2s ease-in-out infinite;box-shadow:0 8px 22px rgba(194,0,25,.22);transition:transform .2s}
.guest-join b{display:block;font-size:14px;margin-bottom:3px}
.guest-join span{font-size:12px;opacity:.9}
.guest-join:hover{transform:translateY(-2px)}
@keyframes guestglow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@media (prefers-reduced-motion:reduce){.guest-join{animation:none;background:var(--ink-solid)}}

/* ── 쿠키 동의 배너 (S14) ─────────────────────────── */
.cookie-consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:200;background:var(--ink-solid);color:#fff;border-radius:14px;padding:16px 20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;box-shadow:0 8px 30px rgba(0,0,0,.25);max-width:920px;margin:0 auto}
.cookie-consent[hidden]{display:none}
.cookie-consent .cc-text{flex:1;min-width:220px;font-size:13px;line-height:1.6;color:#eee}
.cookie-consent .cc-text a{color:#fff;text-decoration:underline}
.cookie-consent .cc-actions{display:flex;gap:8px;flex-shrink:0}
.cookie-consent .cc-actions .btn{padding:8px 18px;font-size:13px}
.cookie-consent .btn--outline{color:#fff;border-color:#666}
@media (max-width:560px){ .cookie-consent{left:8px;right:8px;bottom:8px;padding:14px} .cookie-consent .cc-actions{width:100%} .cookie-consent .cc-actions .btn{flex:1} }

/* 상점 필터바 */
.filterbar{display:flex;flex-direction:column;gap:15px;margin-bottom:26px}
.filter-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.filter-group>.fl-label{font-size:12px;font-weight:700;color:var(--ash);width:52px;flex:0 0 auto}
.fl-chip{border:1px solid var(--line-2);background:var(--paper);border-radius:20px;padding:7px 14px;font-size:13px;color:var(--ink);cursor:pointer;transition:.15s;white-space:nowrap}
.fl-chip:hover{border-color:var(--ink)}
.fl-chip.on{background:var(--ink-solid);color:#fff;border-color:var(--ink)}
.fl-chip .n{color:var(--ash);font-size:11px;margin-left:3px}
.fl-chip.on .n{color:rgba(255,255,255,.7)}

/* 검색 자동완성 */
.search-ac{position:relative}
.ac-list{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px rgba(0,0,0,.12);z-index:60;overflow:hidden;max-height:360px;overflow-y:auto}
.ac-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;font-size:14px}
.ac-item:hover,.ac-item.active{background:var(--cream)}
.ac-item img{width:36px;height:36px;object-fit:cover;border-radius:7px;background:var(--cream);flex:0 0 auto}
.ac-item .nm{font-weight:500}.ac-item .ct{font-size:11px;color:var(--ash)}
.ac-empty{padding:14px;color:var(--ash);font-size:13px;text-align:center}
.ac-head{padding:9px 14px 5px;font-size:11px;font-weight:700;color:var(--ash);letter-spacing:.04em}
.popular-terms{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.popular-terms .pt-lb{font-size:12px;color:var(--ash);font-weight:600}
.popular-terms a{font-size:13px;color:var(--ink);border:1px solid var(--line-2);border-radius:20px;padding:5px 12px}
.popular-terms a:hover{border-color:var(--red);color:var(--red)}

/* 향 찾기 위저드 */
.wiz{max-width:760px;margin-inline:auto;padding-block:clamp(24px,5vw,56px)}
.wiz__head{text-align:center;margin-bottom:30px}
.wiz__head h1{font-size:clamp(24px,3.4vw,38px);font-weight:600;letter-spacing:-.01em;margin-bottom:10px}
.wiz__head p{color:var(--ash)}
.wiz__prog{display:flex;gap:6px;justify-content:center;margin-bottom:28px}
.wiz__prog i{width:36px;height:4px;border-radius:2px;background:var(--line-2)}
.wiz__prog i.on{background:var(--red)}
.wiz__step{display:none}
.wiz__step.active{display:block;animation:wizfade .35s ease}
@keyframes wizfade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.wiz__q{text-align:center;font-size:19px;font-weight:600;margin-bottom:22px}
.wiz__opts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.wiz__opt{border:1px solid var(--line-2);border-radius:14px;padding:18px 16px;text-align:left;cursor:pointer;transition:.15s;background:var(--paper)}
.wiz__opt:hover{border-color:var(--red);transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.06)}
.wiz__opt b{display:block;font-size:15px;margin-bottom:4px}
.wiz__opt span{font-size:12.5px;color:var(--ash);line-height:1.5}
.wiz__nav{display:flex;justify-content:space-between;margin-top:24px}
.wiz__skip{color:var(--ash);font-size:13px;text-decoration:underline}
@media (max-width:560px){ .wiz__opts{grid-template-columns:1fr} .sp-row .k{width:52px} }

/* ══════════════════════════════════════════════════════
   배치2 · 상품목록 · 검색 (튜닝 #9~18)
   ══════════════════════════════════════════════════════ */
/* #9 가격대 슬라이더 + #17 실시간 개수 + #15 품절 토글 */
.price-group{align-items:center}
.price-slider{position:relative;width:min(220px,52vw);height:30px;flex:0 0 auto}
.ps-rail{position:absolute;top:50%;left:0;right:0;height:5px;transform:translateY(-50%);background:var(--cream-2);border-radius:99px;overflow:hidden}
.ps-fill{position:absolute;top:0;height:100%;background:linear-gradient(90deg,var(--red),var(--red-deep));border-radius:99px}
.price-slider input[type=range]{position:absolute;top:0;left:0;width:100%;height:30px;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}
.price-slider input[type=range]:focus{outline:none}
.price-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:18px;height:18px;border-radius:50%;background:var(--paper);border:2px solid var(--red);box-shadow:0 1px 4px rgba(0,0,0,.25);cursor:pointer}
.price-slider input[type=range]::-moz-range-thumb{pointer-events:auto;width:18px;height:18px;border-radius:50%;background:var(--paper);border:2px solid var(--red);box-shadow:0 1px 4px rgba(0,0,0,.25);cursor:pointer}
.price-read{font-size:12.5px;color:var(--ink);font-weight:600;white-space:nowrap}
.price-read b{font-weight:700}
.price-read .ps-count{color:var(--red);font-weight:700;margin-left:6px}
.fl-chip.ghost{color:var(--ash)}
.fl-chip.ghost:hover{color:var(--red);border-color:var(--red)}
.fl-chip.ps-apply{background:var(--red);color:#fff;border-color:var(--red)}
.fl-chip.ps-apply:hover{background:var(--red-deep)}
.fl-chip.stock-toggle.on{background:var(--ink-solid);color:#fff;border-color:var(--ink)}
/* #10 다중 향계열 표시 */
.fl-multi{font-size:11.5px;color:var(--red);font-weight:700}
/* #18 카테고리 hover 대표향 프리뷰 */
.chip[data-scent]{position:relative}
.chip[data-scent]::after{content:"대표 " attr(data-scent);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%) translateY(4px);background:var(--ink-solid);color:#fff;font-size:11px;font-weight:600;letter-spacing:normal;text-transform:none;padding:4px 9px;border-radius:7px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:5}
.chip[data-scent]:hover::after{opacity:1;transform:translateX(-50%)}
/* #14 검색 오타 교정 제안 */
.noresult .nr-didyou{font-size:14.5px;margin-top:8px;color:var(--ink)}
.noresult .nr-didyou a b{color:var(--red);text-decoration:underline;text-underline-offset:3px}
/* #13 더 보기 / 무한 스크롤 + #38 로딩 닷 */
.loadmore-wrap{text-align:center;margin-top:34px}
.loadmore-btn{position:relative;min-width:180px}
.loadmore-btn.loading{color:transparent;pointer-events:none}
.lm-dots{display:none;position:absolute;inset:0;align-items:center;justify-content:center;gap:5px}
.loadmore-btn.loading .lm-dots{display:flex}
.lm-dots i{width:6px;height:6px;border-radius:50%;background:var(--ink-solid);animation:lmdot .9s ease-in-out infinite}
.lm-dots i:nth-child(2){animation-delay:.15s}
.lm-dots i:nth-child(3){animation-delay:.3s}
@keyframes lmdot{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-5px);opacity:1}}
/* #12 빠른보기 Quick View 모달 */
.qv-modal{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:20px}
.qv-modal[hidden]{display:none}
.qv-dim{position:absolute;inset:0;background:rgba(20,15,12,.5);opacity:0;transition:opacity .25s}
.qv-modal.show .qv-dim{opacity:1}
.qv-card{position:relative;z-index:1;width:min(640px,100%);max-height:88vh;overflow:auto;background:var(--paper);border-radius:18px;padding:24px;transform:translateY(16px) scale(.98);opacity:0;transition:transform .3s var(--ease-out),opacity .3s}
.qv-modal.show .qv-card{transform:none;opacity:1}
.qv-x{position:absolute;top:12px;right:14px;border:none;background:none;font-size:24px;color:var(--ash);cursor:pointer;line-height:1;z-index:2}
.qv-x:hover{color:var(--red)}
.qv-body{display:grid;grid-template-columns:230px 1fr;gap:22px}
.qv-pic{aspect-ratio:3/4;border-radius:12px;overflow:hidden;background:var(--cream);position:relative}
.qv-pic img{width:100%;height:100%;object-fit:cover}
.qv-pic .badge{top:10px;left:10px}
.qv-info{min-width:0;display:flex;flex-direction:column}
.qv-cat{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ash);font-weight:700}
.qv-nm{font-size:21px;font-weight:700;margin:6px 0;line-height:1.25;letter-spacing:-.01em}
.qv-sub{font-size:13px;color:var(--ash);margin-bottom:10px;line-height:1.5}
.qv-rating{font-size:12.5px;color:var(--ash);margin-bottom:10px}
.qv-rating .stars{color:#e8a020;letter-spacing:1px}
.qv-price{display:flex;align-items:baseline;gap:8px;margin-bottom:14px}
.qv-price .now{font-size:21px;font-weight:800}
.qv-price .was{color:var(--ash-2);text-decoration:line-through;font-size:14px}
.qv-price .sale{color:var(--red);font-weight:700;font-size:15px}
.qv-opts{margin-bottom:14px}
.qv-opts .lb{display:block;font-size:11px;font-weight:700;color:var(--ash);letter-spacing:.04em;margin-bottom:6px}
.qv-swatches{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.qv-sw{border:1px solid var(--line-2);background:var(--paper);border-radius:8px;padding:7px 12px;font-size:12.5px;cursor:pointer;font-family:inherit;transition:.12s}
.qv-sw.on{background:var(--ink-solid);color:#fff;border-color:var(--ink)}
.qv-qty{display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:10px;overflow:hidden;margin-bottom:16px;align-self:flex-start}
.qv-qty button{width:38px;height:40px;border:none;background:var(--paper);font-size:18px;cursor:pointer;color:var(--ink)}
.qv-qty input{width:46px;text-align:center;border:none;font-family:inherit;font-size:14px}
.qv-soldout{color:var(--red);font-weight:700;font-size:13.5px;margin-bottom:12px}
.qv-act{display:flex;gap:10px;margin-top:auto}
.qv-act .btn{flex:1}
@media (max-width:560px){ .qv-body{grid-template-columns:1fr} .qv-pic{max-width:190px;margin:0 auto} }

/* ══════════════════════════════════════════════════════
   마이크로 인터랙션 (전역 + 배치2) — prefers-reduced-motion 존중
   ══════════════════════════════════════════════════════ */
/* #1 버튼 리플 */
.btn{position:relative;overflow:hidden}
.ripple{position:absolute;border-radius:50%;transform:scale(0);background:currentColor;opacity:.3;pointer-events:none;animation:ripple .6s ease-out forwards}
@keyframes ripple{to{transform:scale(2.6);opacity:0}}
/* #4/#42 카트 배지 팝 + 액션 마이크로 바운스 */
@keyframes microbounce{0%{transform:scale(1)}30%{transform:scale(.86)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
.mbounce{animation:microbounce .42s var(--ease-out)}
/* #43 스크롤 진행률 상단 바 */
.scroll-prog{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--red),var(--red-deep));z-index:300;pointer-events:none;transition:width .1s linear}
/* #44 맨 위로 버튼 */
.to-top{position:fixed;right:18px;bottom:18px;z-index:56;width:44px;height:44px;border-radius:50%;background:var(--ink-solid);color:#fff;border:none;font-size:19px;cursor:pointer;opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;transition:.3s var(--ease-out);box-shadow:0 6px 20px rgba(0,0,0,.2)}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{background:var(--red)}
/* #14 자동완성 stagger 페이드인 */
.ac-item{animation:acfade .3s var(--ease-out) both;animation-delay:calc(var(--i,0)*45ms)}
@keyframes acfade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* #22 세일% 뱃지 진입 팝 (카드 reveal 시) */
.card .card__pr .sale{display:inline-block;transform-origin:center}
.card.reveal.in .card__pr .sale{animation:salepop .5s var(--ease-out) both;animation-delay:.18s}
@keyframes salepop{0%{transform:scale(0);opacity:0}62%{transform:scale(1.28)}100%{transform:scale(1);opacity:1}}
/* #25 품절 뱃지 은은한 펄스 + 카드 톤다운 */
.badge.soldout{background:var(--ink-solid);animation:soldpulse 2.4s ease-in-out infinite}
@keyframes soldpulse{0%,100%{opacity:1}50%{opacity:.5}}
.card.is-sold .card__media .main{filter:grayscale(.35);opacity:.82}
.card.is-sold .card__acts .card__cart:not(.is-sold-label){display:none}
/* 상품카드 빠른보기 아이콘 (#12 진입점) */
/* qview 기본은 card__acts 안 — 레거시 absolute 규칙 무력화 */
.qview{cursor:pointer;border:none;padding:0;background:transparent}
/* #39 토스트 스프링 진입(기존 토스트 강화) */
.toast.show{animation:toastspring .5s var(--ease-out)}
@keyframes toastspring{0%{transform:translate(-50%,150%)}70%{transform:translate(-50%,-8%)}100%{transform:translate(-50%,0)}}

@media (prefers-reduced-motion:reduce){
  .ripple{display:none}
  .to-top,.qv-card,.qv-dim,.scroll-prog{transition:none}
  .mbounce{animation:none}
}

/* ══════════════════════════════════════════════════════
   배치3 · 상품상세 (튜닝 #21·22·24·25·27) + 마이크로
   ══════════════════════════════════════════════════════ */
/* #22 지금 보는 중 / #24 N명이 찜함 */
.live-stats{display:flex;flex-wrap:wrap;gap:8px;margin:-8px 0 20px}
.ls-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:5px 11px;border-radius:20px;background:var(--cream);color:var(--ink)}
.ls-chip b{color:var(--red);font-weight:800}
.ls-view{background:rgba(194,0,25,.06)}
/* #21 도착 예정일 (안심배지 박스 2번째 줄) */
.trust-eta.arrival{border-top:1px solid var(--line)}
.trust-eta small{color:var(--ash);font-weight:400;font-size:11.5px}
/* #25 상품 공유 */
.share-row{display:flex;align-items:center;gap:8px;margin-top:16px;flex-wrap:wrap}
.share-lb{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--ash);text-transform:uppercase}
.share-btn{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink);background:var(--paper);border:1px solid var(--line-2);border-radius:20px;padding:8px 14px;cursor:pointer;font-family:inherit;transition:.15s}
.share-btn:hover{border-color:var(--red);color:var(--red)}
.share-btn.copied{background:var(--ink-solid);color:#fff;border-color:var(--ink)}
/* #27 레이어링 추천 */
.lay-hint{font-size:12.5px;color:var(--ash)}
/* #23 향 노트 피라미드 — 통일 배경 + 가운데 정렬 */
.note-pyramid{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:420px;margin:12px auto 14px;width:100%}
.np-row{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:14px;width:100%;padding:14px 18px;border-radius:14px;background:var(--cream);border:1px solid var(--line);box-sizing:border-box;text-align:left}
.np-top,.np-heart,.np-base{width:100%;max-width:100%}
.np-k{font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--red);text-align:center}
.np-v{font-size:14px;color:var(--ink);font-weight:500;line-height:1.45;text-align:center}
.np-hint{font-size:12.5px;color:var(--ash);text-align:center;margin-top:2px}
.detail__center.reveal .np-row{opacity:0;transform:translateY(10px) scale(.98)}
.detail__center.reveal.in .np-top{animation:npdraw .5s var(--ease-out) forwards;animation-delay:.05s}
.detail__center.reveal.in .np-heart{animation:npdraw .5s var(--ease-out) forwards;animation-delay:.2s}
.detail__center.reveal.in .np-base{animation:npdraw .5s var(--ease-out) forwards;animation-delay:.35s}
@keyframes npdraw{to{opacity:1;transform:none}}
/* #19 향 세기·지속력 도트 순차 채움 */
.sp-dots i.on{animation:dotpop .38s var(--ease-out) both;animation-delay:calc(var(--d,0)*90ms)}
@keyframes dotpop{from{transform:scale(0)}60%{transform:scale(1.35)}to{transform:scale(1)}}
/* #45 상품 탭 활성 언더라인 슬라이드 + 드래그 방지 */
.ptabs{position:sticky;touch-action:manipulation;-webkit-overflow-scrolling:touch;user-select:none;-webkit-user-select:none}
.ptabs a{touch-action:manipulation;-webkit-user-drag:none}
.ptabs a.active::after{display:none}
.ptabs__ink{position:absolute;bottom:-1px;left:0;width:0;height:2px;background:var(--ink-solid);pointer-events:none;transition:left .3s var(--ease-out),width .3s var(--ease-out)}
/* #17 갤러리 이미지 hover 줌 렌즈 */
.pgal__main{cursor:default}
.pgal__main img{transition:none}
.pgal__main.zoom img{transform:none}

/* #20 별점 hover 채움 (JS .hov) */
.starpick button.hov{color:var(--red)}
/* #24 가격 롤 강조 */
.tot .v b.rolling{color:var(--red)}
/* #21 상품 카드 3D 틸트 (hover 기기만, JS 인라인 transform) */
@media (hover:hover) and (pointer:fine){ .card{transition:transform .3s var(--ease-out),box-shadow .3s} }
@media (prefers-reduced-motion:reduce){
  .np-row{opacity:1!important;transform:none!important}
  .sp-dots i.on{animation:none}
  .ptabs__ink,.pgal__main img{transition:none}
  .pgal__main.zoom img{transform:none}
  .card{transform:none!important}
}

/* ══════════════════════════════════════════════════════
   배치4 · 장바구니 (튜닝 #33~39) + 마이크로
   ══════════════════════════════════════════════════════ */
/* #36 품절임박 배지 + #33 적립 + #34 쿠폰 미리보기 + 경고 */
.cl-lowstock{color:var(--red);font-weight:700;font-size:11.5px;margin-left:4px}
.cl-wish{align-self:flex-start;margin-top:2px;background:none;border:none;color:var(--ash);font-size:12px;cursor:pointer;font-family:inherit;padding:2px 0;text-decoration:underline;text-underline-offset:2px}
.cl-wish:hover{color:var(--red)}
.cart-coupon-hint{font-size:12.5px;color:var(--ink);background:rgba(194,0,25,.05);border:1px solid rgba(194,0,25,.15);border-radius:9px;padding:9px 11px;margin-top:10px;line-height:1.5}
.cart-coupon-hint b{color:var(--red)}.cart-coupon-hint .hl{font-weight:800}
.cart-coupon-hint span{color:var(--ash);font-weight:400}
.cart-lowstock-warn{font-size:12.5px;color:#b26a00;background:#fff4e5;border-radius:9px;padding:9px 11px;margin-top:10px;line-height:1.5}
.cart-lowstock-warn b{color:var(--red)}
/* #26 라인 삭제 slide-out + 위시 이동 */
.cart-line{transition:opacity .28s,transform .28s,max-height .28s,padding .28s,margin .28s}
.cart-line.removing{opacity:0;transform:translateX(40px);max-height:0;padding-top:0;padding-bottom:0;overflow:hidden}
/* #3 fly-to-cart 클론 — transform만 애니(렉 완화) */
.fly-clone{position:fixed;z-index:400;border-radius:10px;object-fit:cover;pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,.18);will-change:transform,opacity;transition:transform .55s cubic-bezier(.22,.8,.28,1),opacity .55s ease;backface-visibility:hidden}
/* #29 컨페티 */
.confetti-p{position:fixed;width:9px;height:9px;border-radius:2px;z-index:400;pointer-events:none;animation:confetti .9s ease-out forwards}
@keyframes confetti{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--dx),var(--dy)) rotate(400deg);opacity:0}}
/* #38 삭제 되돌리기 바 */
.undo-bar{position:fixed;left:50%;bottom:76px;transform:translate(-50%,140%);z-index:200;background:var(--ink-solid);color:#fff;border-radius:12px;padding:11px 14px 11px 18px;font-size:13px;display:flex;align-items:center;gap:14px;box-shadow:0 12px 30px rgba(0,0,0,.28);transition:transform .4s var(--ease-out)}
.undo-bar.show{transform:translate(-50%,0)}
.undo-bar button{background:none;border:none;color:#ffd0d6;font-weight:800;font-size:13px;cursor:pointer;font-family:inherit;text-decoration:underline}
.undo-bar button:hover{color:#fff}
/* #30 사은품 달성 칩 팝인 */
.aov-gift.on{animation:giftpop .42s var(--ease-out)}
@keyframes giftpop{0%{transform:scale(.8);opacity:.4}60%{transform:scale(1.06)}100%{transform:scale(1);opacity:1}}
/* #46 드로어 항목 stagger 슬라이드 (JS가 --di 주입) */
#drawer.open a{animation:drawerin .42s var(--ease-out) both;animation-delay:calc(var(--di,0)*40ms)}
@keyframes drawerin{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .fly-clone,.confetti-p{display:none}
  .cart-line{transition:none}
  .aov-gift.on,#drawer.open a{animation:none}
  .undo-bar{transition:none}
}

/* ══════════════════════════════════════════════════════
   배치5 · 체크아웃 (튜닝 #41~45) + 마이크로
   ══════════════════════════════════════════════════════ */
/* #44/#31 결제 진행 스텝바 */
.csteps{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 26px;flex-wrap:nowrap}
.cstep{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ash);font-weight:600;white-space:nowrap}
.cstep .cs-n{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;background:var(--cream-2);color:var(--ash);transition:.3s}
.cstep.on{color:var(--ink)}
.cstep.on .cs-n{background:var(--red);color:#fff;box-shadow:0 0 0 4px rgba(194,0,25,.12)}
.cstep.done{color:var(--ink)}
.cstep.done .cs-n{background:var(--ink-solid);color:#fff}
.cstep-bar{flex:0 1 60px;height:2px;background:var(--cream-2);border-radius:2px;position:relative;overflow:hidden}
.cstep-bar::after{content:"";position:absolute;inset:0;width:0;background:var(--red);transition:width .5s var(--ease-out)}
.cstep-bar.fill::after{width:100%}
@media (max-width:560px){ .cstep .cs-t{display:none} .cstep-bar{flex-basis:36px} }
/* #43 아낀 금액 요약 */
.co-savings{text-align:center;font-size:13px;font-weight:700;color:#1c7a34;background:#eef7ee;border-radius:10px;padding:10px 12px;margin-top:12px}
.co-savings b{color:#1c7a34;font-weight:800}
/* #34 배송지 선택 카드 하이라이트 */
.addr-chip{transition:background .2s,border-color .2s,box-shadow .2s}
.addr-chip.on{animation:addrpulse .5s var(--ease-out)}
@keyframes addrpulse{0%{box-shadow:0 0 0 0 rgba(194,0,25,.35)}100%{box-shadow:0 0 0 8px rgba(194,0,25,0)}}
/* #32 주문완료 ✓ 드로우 */
.result-check{background:#eef7ee}
.result-check svg{overflow:visible}
.rc-circle{stroke:#1c7a34;stroke-width:2.5;stroke-dasharray:151;stroke-dashoffset:151;animation:rccircle .5s var(--ease-out) forwards}
.rc-check{stroke:#1c7a34;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:rccheck .35s var(--ease-out) .45s forwards}
@keyframes rccircle{to{stroke-dashoffset:0}}
@keyframes rccheck{to{stroke-dashoffset:0}}
/* #10 비밀번호 강도 바 */
.pwd-strength{margin-top:-6px;display:flex;align-items:center;gap:10px}
.pwd-strength[hidden]{display:none}
.pwd-bar{flex:1;height:5px;background:var(--cream-2);border-radius:99px;overflow:hidden}
.pwd-bar i{display:block;height:100%;width:0;border-radius:99px;transition:width .3s,background .3s;background:var(--red)}
.pwd-bar i.lvl-2{background:#e8a020}
.pwd-bar i.lvl-3,.pwd-bar i.lvl-4{background:#2b7a3e}
.pwd-label{font-size:11.5px;color:var(--ash);white-space:nowrap;min-width:52px;text-align:right}
/* #15 제출 스피너 시퀀스 */
.btn.btn-loading{color:transparent!important;pointer-events:none;position:relative}
.btn.btn-loading .arw{opacity:0}
.btn.btn-loading::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:btnspin .6s linear infinite}
@keyframes btnspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .cstep-bar::after{transition:none}
  .rc-circle,.rc-check{animation:none;stroke-dashoffset:0}
  .addr-chip.on{animation:none}
  .btn.btn-loading::after{animation:none}
}

/* ══════════════════════════════════════════════════════
   배치6 · 회원/마이페이지 (튜닝 #46~52) + 마이크로
   ══════════════════════════════════════════════════════ */
/* #49 등급 진행바 채움 애니 */
.tier-bar__fill{transition:width .8s var(--ease-out)}
/* 마이페이지 컴팩트 상품 그리드(재구매·신상) */
.pgrid--acct{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
/* #49/#50 향 취향 */
.scent-pref__chips{display:flex;flex-wrap:wrap;gap:9px}
.scent-pref__chip{position:relative;border:1px solid var(--line-2);border-radius:22px;padding:8px 15px;font-size:13px;color:var(--ink);cursor:pointer;transition:.15s;user-select:none}
.scent-pref__chip:hover{border-color:var(--ink)}
.scent-pref__chip.on{background:var(--red);border-color:var(--red);color:#fff}
.scent-pref__chip input{position:absolute;opacity:0;pointer-events:none}
/* #52 등급 혜택 페이지 */
.tier-table{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.tier-row{display:grid;grid-template-columns:150px 1fr auto;gap:14px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}
.tier-row:last-child{border-bottom:none}
.tier-row.is-now{background:linear-gradient(135deg,rgba(194,0,25,.05),transparent)}
.tr-badge{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tr-now{font-size:11px;font-weight:700;color:var(--red)}
.tr-cond{font-size:13px;color:var(--ash)}
.tr-benefits{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--ash);justify-self:end}
.tr-benefits b{color:var(--ink)}
.tr-benefits .muted{opacity:.6}
.tier-note{margin-top:18px;font-size:13px;color:var(--ash);line-height:1.9}
.tier-note b{color:var(--ink)}
@media (max-width:560px){ .tier-row{grid-template-columns:1fr;gap:8px} .tr-benefits{justify-self:start} }

/* ══════════════════════════════════════════════════════
   배치7 · 리뷰/UGC (튜닝 #53~58) + 마이크로
   ══════════════════════════════════════════════════════ */
/* #58 리뷰 한 줄 요약 */
.review-summary{background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:12px 15px;font-size:13.5px;color:var(--ink);margin-bottom:18px;line-height:1.6}
.review-summary b{color:var(--red);font-weight:700}
/* #56 리뷰 적립 강조 */
.review-reward-note{background:rgba(194,0,25,.05);border:1px solid rgba(194,0,25,.15);border-radius:9px;padding:9px 12px;font-size:12.5px;color:var(--ink);line-height:1.5}
.review-reward-note b{color:var(--red);font-weight:800}
.review-remind-note{font-size:13px;color:var(--ink);background:#eef7ee;border-radius:9px;padding:9px 12px;margin-bottom:12px;line-height:1.5}
.review-remind-note b{color:#1c7a34;font-weight:800}
/* #55 향 속성별 리뷰 필터 */
.rfilter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 2px 16px}
.rfilter .rf-lb{font-size:11px;font-weight:700;color:var(--ash);letter-spacing:.06em;text-transform:uppercase}
.rf-chip{border:1px solid var(--line-2);background:var(--paper);border-radius:20px;padding:6px 13px;font-size:12.5px;color:var(--ink);cursor:pointer;font-family:inherit;transition:.15s}
.rf-chip:hover{border-color:var(--ink)}
.rf-chip.on{background:var(--ink-solid);color:#fff;border-color:var(--ink)}
.rfilter-empty{color:var(--ash);font-size:14px;padding:30px 0;text-align:center}
/* #57 베스트 리뷰어 뱃지 */
.best-reviewer{font-size:11px;font-weight:700;color:#c79a3a;background:rgba(199,154,58,.12);border-radius:20px;padding:2px 8px;margin-left:4px}
/* #53 포토리뷰 갤러리 */
.pr-gallery{columns:4 200px;column-gap:14px}
.pr-tile{position:relative;display:block;margin:0 0 14px;break-inside:avoid;border-radius:12px;overflow:hidden;background:var(--cream)}
.pr-tile img{width:100%;display:block;transition:transform .5s var(--ease)}
.pr-tile:hover img{transform:scale(1.05)}
.pr-tile__ov{position:absolute;left:0;right:0;bottom:0;padding:20px 12px 10px;background:linear-gradient(transparent,rgba(0,0,0,.6));color:#fff;opacity:0;transition:opacity .25s}
.pr-tile:hover .pr-tile__ov{opacity:1}
.pr-tile__stars{display:block;color:#ffd05b;font-size:12px;letter-spacing:1px}
.pr-tile__prod{display:block;font-size:12px;font-weight:600;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (hover:none){ .pr-tile__ov{opacity:1;background:linear-gradient(transparent,rgba(0,0,0,.5))} }

/* ══════════════════════════════════════════════════════
   배치8 · 프로모션 (튜닝 #59·60·62·64) + 마이크로
   ══════════════════════════════════════════════════════ */
/* #62 첫 구매 혜택 스트립 */
.firstbuy-strip{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:999px;background:var(--ink-solid);color:#fff;font-size:13.5px;margin:14px 0 4px;text-decoration:none;overflow:hidden;position:relative;white-space:nowrap}
.firstbuy-strip::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.18) 50%,transparent 70%);transform:translateX(-120%);animation:fbshine 2.8s ease-in-out infinite}
.firstbuy-strip .fb-tag{flex:none;font-size:10px;font-weight:800;letter-spacing:.08em;background:var(--red);color:#fff;border-radius:999px;padding:4px 9px}
.firstbuy-strip b{flex:1;min-width:0;font-size:13.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis}
.firstbuy-strip .fb-go{flex:none;font-weight:800;color:#fff;background:var(--red);border-radius:999px;padding:7px 14px;font-size:12px;animation:fbpulse 1.8s ease-in-out infinite}
.firstbuy-strip:hover{opacity:.95}
@keyframes fbshine{0%,60%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
@keyframes fbpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@media (prefers-reduced-motion:reduce){.firstbuy-strip::after,.firstbuy-strip .fb-go{animation:none}}
.shop-head{margin:18px 0 16px}
.chips--filtered{margin-top:4px}
.cat-more{position:relative}
.cat-more > summary{list-style:none;cursor:pointer}
.cat-more > summary::-webkit-details-marker{display:none}
.chip--ghost{background:transparent;border-style:dashed}
.chip--back{background:var(--cream)}
.cat-more__list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;width:100%;flex-basis:100%}
details.cat-more[open]{display:contents}
details.cat-more[open] .cat-more__list{display:flex;width:100%;margin-top:8px}
/* #60 다음 쿠폰 힌트 */
.cart-coupon-hint.next{background:#fff4e5;border-color:rgba(178,106,0,.2);color:#7a5200}
.cart-coupon-hint.next b{color:#b26a00}
/* #64 친구초대 */
.referral-hero{text-align:center;background:linear-gradient(135deg,var(--cream),#fff);border:1px solid var(--line);border-radius:16px;padding:28px 22px;margin-bottom:18px}
.referral-hero .ref-emoji{font-size:38px}
.referral-hero h2{font-size:20px;font-weight:800;margin:8px 0 6px}
.referral-hero p{font-size:13.5px;color:var(--ash);line-height:1.6}
.ref-link-box{border:1px solid var(--line);border-radius:14px;padding:18px 20px}
.ref-link-box>label{display:block;font-size:12px;font-weight:700;color:var(--ash);margin-bottom:8px}
.ref-link-row{display:flex;gap:8px}
.ref-link-row input{flex:1;border:1px solid var(--line-2);border-radius:10px;padding:11px 13px;font-size:13px;font-family:inherit;background:var(--cream);color:var(--ink);min-width:0}
.ref-link-row .btn{padding:0 20px;white-space:nowrap}
.ref-share{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}
.ref-share .btn{padding:9px 18px}
.ref-code{font-size:13px;color:var(--ash)}.ref-code b{color:var(--ink);letter-spacing:.05em}
.ref-stat{text-align:center;font-size:14px;color:var(--ink);margin:18px 0;padding:14px;background:var(--cream);border-radius:12px}
.ref-stat b{color:var(--red);font-size:18px;font-weight:800}
.ref-steps{counter-reset:s;list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:12px}
.ref-steps li{position:relative;padding-left:40px;font-size:13.5px;color:var(--ash);line-height:1.6}
.ref-steps li b{color:var(--ink)}
.ref-steps li::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--red);color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}

/* ══════════════════════════════════════════════════════
   배치9·10 · 신뢰·긴박 (튜닝 #65~71)
   ══════════════════════════════════════════════════════ */
/* #65 주간 판매 · #66 재구매율 칩(라이브 통계 확장) */
.ls-chip.ls-sold{background:rgba(194,0,25,.08)}
.ls-chip.ls-sold b,.ls-chip.ls-repeat b{color:var(--red)}
.ls-chip.ls-repeat{background:#eef7ee}
.ls-chip.ls-repeat b{color:#1c7a34}
/* #69 당일출고 마감 카운트다운 */
.cutoff-timer{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#fff4e5;color:#7a5200;font-size:13px;border-top:1px solid var(--line)}
.cutoff-timer b{color:#b26a00;font-weight:800}
.cutoff-timer .cutoff-clock{font-variant-numeric:tabular-nums;background:#b26a00;color:#fff;border-radius:6px;padding:2px 7px;letter-spacing:.02em}
/* #70 한정수량 뱃지 */
.badge.badge--limited{background:#b26a00}
/* #71 쿠폰 만료 D-day */
.coupon-card{position:relative}
.coupon-dday{position:absolute;top:8px;right:8px;z-index:2;font-size:10.5px;font-weight:800;color:#fff;background:var(--ash);border-radius:20px;padding:3px 8px;letter-spacing:.02em}
.coupon-card.urgent .coupon-dday{background:var(--red);animation:ddaypulse 1.6s ease-in-out infinite}
@keyframes ddaypulse{0%,100%{opacity:1}50%{opacity:.6}}
@media (prefers-reduced-motion:reduce){ .coupon-card.urgent .coupon-dday{animation:none} }

/* ══════════════════════════════════════════════════════
   배치11 · 성능 (튜닝 #77·#37 이미지 블러업)
   ══════════════════════════════════════════════════════ */
/* #77 lazy-load + blur placeholder / #37 blur→sharp — 콘텐츠 이미지에만(카드 hover 스왑과 분리) */
.detail figure img,.pr-tile img,.rmedia img,.detail-video video{opacity:0;filter:blur(12px);transition:opacity .6s var(--ease-out),filter .6s var(--ease-out)}
.detail figure img.img-in,.pr-tile img.img-in,.rmedia img.img-in,.detail-video video.img-in{opacity:1;filter:none}
@media (prefers-reduced-motion:reduce){
  .detail figure img,.pr-tile img,.rmedia img,.detail-video video{opacity:1;filter:none;transition:none}
}

/* ══════════════════════════════════════════════════════
   배치12 · SEO 큐레이션 (#90·91) + 배치13 보너스 (#101·103)
   ══════════════════════════════════════════════════════ */
/* #90/#91 컬렉션 랜딩 히어로 */
.collection-hero{text-align:center;padding:clamp(26px,5vw,52px) 0 26px;border-bottom:1px solid var(--line);margin-bottom:28px}
.col-mood{display:inline-block;font-size:12px;font-weight:700;color:var(--red);background:rgba(194,0,25,.07);border-radius:999px;padding:5px 14px;margin-bottom:12px}
.collection-hero h1{font-size:clamp(26px,4vw,40px);font-weight:600;letter-spacing:-.01em}
.collection-hero p{color:var(--ash);font-size:14.5px;margin-top:10px;max-width:52ch;margin-inline:auto;line-height:1.6}
/* #101 주문완료 공유 */
.result-share{display:flex;align-items:center;justify-content:center;gap:10px;margin:20px 0 4px;flex-wrap:wrap}
.result-share .rs-lb{font-size:12.5px;color:var(--ash)}
.result-share .btn{padding:9px 18px;font-size:13px}
/* #103 스켈레톤 로딩 UI */
.skeleton{position:relative;overflow:hidden;background:var(--cream-2);border-radius:8px}
.skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:shimmer 1.3s infinite}
@keyframes shimmer{100%{transform:translateX(100%)}}
.qv-skel{display:grid;grid-template-columns:230px 1fr;gap:22px}
.qv-skel .sk-pic{aspect-ratio:3/4}
.qv-skel .sk-lines{display:flex;flex-direction:column;gap:12px;padding-top:10px}
.qv-skel .sk-line{height:16px}
.qv-skel .sk-line.w40{width:40%}.qv-skel .sk-line.w70{width:70%}.qv-skel .sk-line.w90{width:90%}
.qv-skel .sk-btn{height:46px;margin-top:auto;border-radius:12px}
@media (max-width:560px){ .qv-skel{grid-template-columns:1fr} }
@media (prefers-reduced-motion:reduce){ .skeleton::after{animation:none} }

/* ══════════════════════════════════════════════════════
   관리자 공용 컴포넌트 + 반응형 (REPORTS/SECURITY/GLOBAL-ADMIN-CSS)
   siblings 공용: .admin-pager · .admin-search · .admin-detail-grid · .admin-form-grid
   ══════════════════════════════════════════════════════ */
/* 페이지네이션 (로그/알림/목록 등에서 사용) */
.admin-pager{display:inline-flex;align-items:center;gap:10px;margin-top:22px;font-size:13.5px}
.admin-pager a{display:inline-flex;align-items:center;padding:8px 16px;border:1px solid var(--line-2);border-radius:9px;color:var(--ash);transition:.2s}
.admin-pager a:hover{border-color:var(--ink);color:var(--ink)}
.admin-pager span{color:var(--ink);font-weight:600;min-width:64px;text-align:center}

/* 검색 폼 (목록 상단 검색) */
.admin-search{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}
.admin-search input{border:1px solid var(--line-2);border-radius:9px;padding:10px 14px;font-family:inherit;font-size:14px;min-width:220px}
.admin-search input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(194,0,25,.08)}
.admin-search .btn{padding:10px 20px}

/* 주문 상세 2단 그리드 (본문 + 사이드) */
.admin-detail-grid{display:grid;grid-template-columns:1fr 340px;gap:20px}

/* 상품 폼 멀티컬럼 그리드 */
.admin-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px 20px;align-items:start}

/* 반응형: ~768px 이하에서 2단 그리드 → 1단, 사이드바 스택, 본문 풀폭 */
@media (max-width:768px){
  .admin-shell{grid-template-columns:1fr}
  .admin-side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px;overflow-x:auto}
  .admin-side .spacer{display:none}
  .admin-main{max-width:none;padding:20px 16px}
  .admin-detail-grid{grid-template-columns:1fr}
  .admin-form-grid{grid-template-columns:1fr}
  /* 넓은 표는 .table-wrap 가로 스크롤 유지(위 .table-wrap{overflow-x:auto}) */
  .table-wrap{-webkit-overflow-scrolling:touch}
  .admin-search input{min-width:0;flex:1}
}

/* ══ 2026-07 UI 튜닝: 검색 오버레이 · 샵 검색바 · 페이지 여백 · FAQ 중앙 ══ */
/* 헤더 SEARCH 오버레이(검색 집중) */
.search-overlay{position:fixed;inset:0;z-index:150;display:flex;align-items:flex-start;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}
.search-overlay[hidden]{display:none}
.search-overlay.show{opacity:1;pointer-events:auto}
.so-dim{position:absolute;inset:0;background:rgba(20,15,12,.5)}
.so-panel{position:relative;z-index:1;width:min(680px,92%);margin-top:clamp(64px,13vh,130px);background:var(--paper);border-radius:16px;padding:30px 26px 26px;box-shadow:0 20px 60px rgba(0,0,0,.25);transform:translateY(-14px);transition:transform .25s}
.search-overlay.show .so-panel{transform:none}
.so-x{position:absolute;top:12px;right:14px;border:none;background:none;font-size:16px;color:var(--ash);cursor:pointer;line-height:1}
.so-form{display:flex;gap:10px;position:relative}
.so-form input{flex:1;min-width:0;border:1.5px solid var(--ink);border-radius:26px;padding:14px 20px;font-family:inherit;font-size:16px}
.so-form input:focus{outline:none;border-color:var(--red)}
.so-hint{margin-top:14px;font-size:13px;color:var(--ash);text-align:center}
.so-hint a{color:var(--red);text-decoration:underline}
/* 샵 검색바: 검색 + 향찾기 한 그룹으로 */
.shop-toolbar{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;max-width:760px;margin-bottom:22px}
.shop-find{white-space:nowrap;align-self:center;padding:10px 16px;font-size:13px}
.shop-popular{margin:0 0 22px}
.shop-search .search-ac{display:flex}
/* 샵 본문 하단 여백(푸터와 안 붙게) */
.shoppg{padding-bottom:clamp(48px,6vw,84px)}
/* 샵 툴바도 본문 폭에 맞춤 */
body[data-page="shop"] .shop-toolbar{max-width:none}

/* ── 의류 카테고리 내비 (대분류 + 소분류) ─────────── */
.catnav{margin:0 0 28px}
.catnav__parents{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  padding-bottom:14px;border-bottom:1px solid var(--line);
}
.catnav__p{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 16px;border-radius:999px;
  font-size:13.5px;font-weight:600;color:var(--ash);
  border:1px solid var(--line-2);background:var(--paper);transition:.2s;
}
.catnav__p:hover{border-color:var(--ink);color:var(--ink)}
.catnav__p.on{background:var(--ink-solid);border-color:var(--ink);color:#fff}
.catnav__n{font-size:11px;font-weight:500;opacity:.65}
.catnav__p.on .catnav__n{opacity:.8}
.catnav__subs{
  display:flex;flex-wrap:wrap;gap:8px;
  margin-top:14px;padding:14px 16px;
  background:var(--cream);border-radius:14px;
}
.catnav__s{
  display:inline-flex;align-items:center;gap:5px;
  padding:7px 13px;border-radius:999px;
  font-size:12.5px;font-weight:500;color:var(--ash);
  background:var(--paper);border:1px solid transparent;transition:.2s;
}
.catnav__s:hover{border-color:var(--line-2);color:var(--ink)}
.catnav__s.on{background:var(--red);border-color:var(--red);color:#fff}
.catnav__s span{font-size:11px;opacity:.7}
.catnav__more{position:relative;margin-left:auto}
.catnav__more summary{
  list-style:none;cursor:pointer;
  padding:10px 14px;border-radius:999px;
  font-size:13px;font-weight:600;color:var(--ash);
  border:1px dashed var(--line-2);background:var(--paper);
}
.catnav__more summary::-webkit-details-marker{display:none}
.catnav__more[open] summary{border-color:var(--ink);color:var(--ink)}
.catnav__more-list{
  position:absolute;right:0;top:calc(100% + 8px);z-index:20;
  width:min(360px,92vw);max-height:min(50vh,420px);overflow:auto;
  background:var(--paper);border:1px solid var(--line);border-radius:14px;
  box-shadow:0 16px 40px rgba(0,0,0,.12);padding:10px;
  display:grid;grid-template-columns:1fr 1fr;gap:4px;
}
.catnav__more-list a{
  display:flex;justify-content:space-between;gap:8px;
  padding:8px 10px;border-radius:8px;font-size:12.5px;color:var(--ink);
}
.catnav__more-list a:hover,.catnav__more-list a.on{background:var(--cream)}
.catnav__more-list a span{color:var(--ash);font-size:11px}
@media (max-width:760px){
  .catnav__parents{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:12px;gap:6px}
  .catnav__p{flex:0 0 auto;padding:9px 14px;font-size:13px}
  .catnav__more{margin-left:0}
  .catnav__more-list{grid-template-columns:1fr;left:0;right:auto;width:min(280px,88vw)}
  .catnav__subs{padding:12px;gap:6px}
}
/* FAQ 중앙 정렬(개인정보 페이지와 동일 폭) */
.faqpg{max-width:820px}
@media (max-width:600px){
  .shop-toolbar{max-width:none}
  .shop-find{width:100%;text-align:center}
}

/* ══════════════════════════════════════════════════════
   모바일 튜닝 배치 (2026-07-11 · 내일튜닝목록)
   ══════════════════════════════════════════════════════ */
/* 토스트 리디자인 */
.toast-ico{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none;font-size:15px;background:rgba(255,255,255,.14)}
.toast--cart .toast-ico{background:var(--red)}
.toast--wish .toast-ico{background:#e11d48;animation:heartpop .45s var(--ease-out)}
.toast--ok .toast-ico{background:#2b7a3e}
.toast-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.toast-msg{font-weight:600;line-height:1.35}
.toast.pop{animation:toastpop .5s var(--ease-out)}
@keyframes toastpop{0%{transform:translate(-50%,18px) scale(.9);opacity:0}60%{transform:translate(-50%,-4px) scale(1.03)}100%{transform:translate(-50%,0) scale(1);opacity:1}}
@keyframes heartpop{0%{transform:scale(.6)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.toast.pop,.toast--wish .toast-ico{animation:none}}

/* 카트 배지: 담긴 상품 있을 때 은은한 펄스 */
.cart-c.has-items{animation:cartpulse 1.6s ease-in-out infinite;box-shadow:0 0 0 0 rgba(194,0,25,.45)}
@keyframes cartpulse{0%{box-shadow:0 0 0 0 rgba(194,0,25,.4)}70%{box-shadow:0 0 0 8px rgba(194,0,25,0)}100%{box-shadow:0 0 0 0 rgba(194,0,25,0)}}
@media (prefers-reduced-motion:reduce){.cart-c.has-items{animation:none}}

/* 위시 버스트 */
.wish-burst{animation:wishburst .5s var(--ease-out)}
@keyframes wishburst{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}

/* 장바구니 CTA 통일 */
.cart-cta{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.cart-cta .btn{width:100%;min-height:48px;justify-content:center;font-size:12px;letter-spacing:.12em;box-sizing:border-box}
.freeship-live{margin:8px 0 4px;text-align:center;font-size:13px;font-weight:700;color:var(--red);background:rgba(194,0,25,.06);border:1px solid rgba(194,0,25,.15);border-radius:10px;padding:10px 12px;animation:fspulse 2s ease-in-out infinite}
@keyframes fspulse{0%,100%{transform:scale(1)}50%{transform:scale(1.02)}}
@media (prefers-reduced-motion:reduce){.freeship-live{animation:none}}

/* 공유 버튼 터치 영역 */
.share-btn{min-height:40px;touch-action:manipulation}

/* 카드 sold 시 acts 정리 */
.card.is-sold .card__acts .card__cart.is-sold-label{opacity:.7}

/* 모바일 마이페이지 네비 정리 */
@media (max-width:900px){
  .acct-nav{flex-direction:column;position:static;padding:12px}
  .acct-nav__sec{flex-direction:row;flex-wrap:wrap;gap:6px;align-items:center}
  .acct-nav__lb{width:100%;padding:8px 4px 2px}
  .acct-nav a{padding:8px 12px;font-size:13px;background:var(--cream);border-radius:999px}
  .acct-nav a.on{background:var(--ink-solid)}
  .acct-nav__foot{flex-direction:row;flex-wrap:wrap;gap:6px}
}

/* ===== BOUTIQUEMIN clothing + bank transfer + mobile UX (2026-07-15) ===== */
.bank-pay{max-width:560px;margin:0 auto 60px}
.bank-card{background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin:18px 0}
.bank-card__row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.bank-card__row:last-child{border-bottom:0}
.bank-card__row span{color:var(--ash);min-width:72px;flex:0 0 auto}
.bank-card__row b{flex:1;text-align:right;word-break:break-all}
.bank-amt{color:var(--red)!important;font-size:1.15em}
.bank-notice{font-size:13px;color:var(--ash);line-height:1.55;margin:8px 0 0}
.bank-actions{margin-top:22px}
.bank-copy{margin-left:6px;flex:0 0 auto}

/* mobile bottom tabbar — 제거됨 (헤더 SEARCH / MY·LOGIN / CART 로 통일) */
.to-top{bottom:calc(24px + env(safe-area-inset-bottom))}

/* xsell modal after add-to-cart */
.xsell-modal{position:fixed;inset:0;z-index:120;display:flex;align-items:flex-end;justify-content:center}
.xsell-modal[hidden]{display:none}
.xsell-dim{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.xsell-card{
  position:relative;z-index:1;width:min(480px,100%);
  background:var(--paper);border-radius:18px 18px 0 0;padding:22px 18px 20px;
  transform:translateY(24px);opacity:0;transition:.25s ease;
}
.xsell-modal.show .xsell-card{transform:none;opacity:1}
.xsell-x{position:absolute;right:12px;top:12px;border:0;background:transparent;font-size:22px;cursor:pointer;color:var(--ash)}
.xsell-card h3{margin:0 0 4px;font-size:17px}
.xsell-sub{margin:0 0 14px;font-size:13px;color:var(--ash)}
.xsell-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.xsell-item{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit;font-size:12px}
.xsell-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:var(--cream)}
.xsell-item .nm{font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.xsell-item .pr{color:var(--red);font-weight:700}
.xsell-actions{display:flex;flex-direction:column;gap:8px}
@media (min-width:640px){
  .xsell-modal{align-items:center}
  .xsell-card{border-radius:18px;padding:24px}
}

/* style quiz */
.find-moods{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.find-mood{cursor:pointer}
.find-mood input{position:absolute;opacity:0;pointer-events:none}
.fm-card{
  display:block;padding:18px 16px;border-radius:14px;border:1.5px solid var(--line);
  background:var(--paper);transition:.2s;min-height:96px;
}
.fm-card b{display:block;font-size:15px;margin-bottom:6px}
.fm-card small{color:var(--ash);font-size:12.5px;line-height:1.4}
.find-mood input:checked + .fm-card{border-color:var(--red);box-shadow:0 0 0 3px rgba(14,154,217,.15)}
.find-mood input:focus-visible + .fm-card{outline:2px solid var(--red);outline-offset:2px}
.find-result__lead{margin-bottom:20px;font-size:15px}

/* size guide */
.size-guide-btn{
  margin-left:10px;border:0;background:transparent;color:var(--ash);
  font-size:12px;text-decoration:underline;cursor:pointer;font-weight:500;
}
.size-guide-btn.on{color:var(--red)}
.size-guide{margin-top:12px;padding:14px;background:var(--cream);border-radius:12px;font-size:13px}
.size-table{width:100%;border-collapse:collapse;margin:10px 0;font-size:12.5px}
.size-table th,.size-table td{border:1px solid var(--line);padding:8px;text-align:center}
.size-table th{background:var(--paper);font-weight:600}

/* open checklist */
.open-check{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:22px}
.open-check h2{margin:0 0 12px;font-size:16px}
.open-check ul{margin:0;padding:0;list-style:none}
.open-check li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.open-check li:last-child{border-bottom:0}
.open-check .oc-ok{color:#2b7a3e;font-weight:700}
.open-check .oc-bad{color:var(--red);font-weight:700}
.open-check .oc-wait{color:#b8860b;font-weight:700}

/* empty state polish */
.empty{text-align:center;color:var(--ash)}
.empty p{margin-bottom:16px;font-size:15px}
.empty .empty-ico{font-size:40px;margin-bottom:10px;opacity:.7}

/* coll hero */
.coll-hero{margin:10px 0 28px;padding:28px 24px;border-radius:18px;background:linear-gradient(135deg,#e8f6fc,#fff);border:1px solid var(--line)}
.coll-hero h1{margin:0 0 8px;font-size:clamp(24px,3vw,32px)}
.coll-hero p{margin:0 0 16px;color:var(--ash)}

/* a11y focus */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--red);outline-offset:2px;
}

.shop-filter-bar{display:none;gap:8px;margin:0 0 14px;flex-wrap:wrap}
@media (max-width:720px){
  .shop-filter-bar{display:flex}
  .catnav{display:none}
  .catnav.sheet-open{
    display:block;position:fixed;left:0;right:0;bottom:0;z-index:100;
    max-height:78vh;overflow:auto;background:var(--paper);border-radius:18px 18px 0 0;
    padding:18px 16px 80px;box-shadow:0 -8px 40px rgba(0,0,0,.18);
  }
  .catnav.sheet-open::before{
    content:'����';display:block;font-weight:700;font-size:15px;margin-bottom:12px;
  }
}

/* ===== Upgrade pack 2026-07-16 ===== */
.promo-banner--row{position:relative;display:block}
.promo-banner__link{display:block;position:relative}
.promo-copy{cursor:pointer}
.coupon-dl-row{display:flex;flex-direction:column;gap:10px}
.coupon-dl{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.coupon-dl > div{flex:1;min-width:160px;display:flex;flex-direction:column;gap:4px;font-size:13px}
.coupon-dl code{font-weight:700;color:var(--red)}
.shop-chips{margin:10px 0 22px;display:flex;flex-direction:column;gap:10px}
.shop-chips__row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.shop-chips__lb{font-size:12px;font-weight:700;color:var(--ash);min-width:48px}
.shop-chips .chip{display:inline-flex;padding:7px 12px;border-radius:999px;border:1px solid var(--line-2);font-size:12.5px;color:var(--ash);background:var(--paper)}
.shop-chips .chip.on{background:var(--ink-solid);color:#fff;border-color:var(--ink)}
.shop-chips__price{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px}
.shop-chips__price input[type=number]{width:100px;padding:8px 10px;border:1px solid var(--line-2);border-radius:8px}
.img-blur{filter:blur(8px);transform:scale(1.03);transition:filter .45s ease,transform .45s ease}
.img-blur.is-in{filter:none;transform:none}
.pgrid--skel .card{animation:skelIn .45s ease both}
@keyframes skelIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.badge--hot{background:#ff4d4f;color:#fff}
.badge--limited{background:#111;color:#fff}
.size-tip{margin-top:10px;font-size:12.5px;color:var(--ash);line-height:1.55}
.tier-gauge{margin:0 0 22px;padding:16px;background:var(--cream);border-radius:14px}
.tg-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13.5px;margin-bottom:10px}
.tg-top .hl{color:var(--red)}
.tg-bar{height:10px;background:rgba(0,0,0,.08);border-radius:999px;overflow:hidden}
.tg-bar span{display:block;height:100%;background:var(--red);border-radius:999px;transition:width .5s ease}
.lookbook-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:28px}
.lb-item{position:relative;aspect-ratio:3/4;border-radius:12px;overflow:hidden;background:var(--cream)}
.lb-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.lb-item:hover img{transform:scale(1.04)}
.lb-cap{position:absolute;left:0;right:0;bottom:0;padding:12px;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff}
.lb-cap .tag{font-size:10px;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.lb-cap b{display:block;font-size:14px;margin-top:4px}
.ig-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.ig-cell{aspect-ratio:1;overflow:hidden;border-radius:8px;background:var(--cream)}
.ig-cell img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.ig-cell:hover img{transform:scale(1.05)}
.rev-sum-inline{font-size:13px;color:var(--ash);margin-right:auto;margin-left:12px}
.admin-nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:9px;background:#ff4d4f;color:#fff;font-size:11px;font-weight:700}
.ac-ico{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;background:var(--cream);border-radius:8px}
@media (max-width:900px){
  .lookbook-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ig-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-side{padding:12px 10px}
  .admin-side a{padding:9px 10px;font-size:13px}
  .admin-main{padding:16px 12px}
  .data-table{font-size:12.5px}
  .admin-form{max-width:none}
  .form-row{grid-template-columns:1fr!important}
}
@media (max-width:640px){
  .shop-chips__price input[type=number]{width:88px}
  .coupon-dl{flex-direction:column;align-items:stretch}
}

/* ===== Order timeline + sales chart ===== */
.order-tl{margin:4px 0 8px}
.order-tl__track{display:flex;list-style:none;margin:0;padding:0;gap:0;position:relative}
.order-tl__track::before{content:"";position:absolute;left:6%;right:6%;top:18px;height:2px;background:var(--line-2);z-index:0}
.order-tl__step{flex:1;min-width:0;text-align:center;position:relative;z-index:1;padding:0 2px}
.order-tl__dot{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--paper);border:2px solid var(--line-2);font-size:12px;font-weight:700;color:var(--ash);margin-bottom:8px}
.order-tl__label{display:block;font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.3}
.order-tl__sub{display:block;font-size:11px;color:var(--ash);margin-top:2px;line-height:1.3}
.order-tl__time{display:block;font-size:10.5px;color:#999;margin-top:4px;word-break:break-all}
.order-tl__step.is-done .order-tl__dot{background:var(--ink-solid);border-color:var(--ink);color:#fff}
.order-tl__step.is-active .order-tl__dot{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 0 0 4px rgba(193,0,25,.12)}
.order-tl__step.is-active .order-tl__label{color:var(--red)}
.order-tl__step.is-muted .order-tl__dot,.order-tl__step.is-muted .order-tl__label{opacity:.45}
.order-tl.is-cancel .order-tl__track::before{background:#f0c0c0}
.order-tl__cancel{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.order-tl__reason{font-size:13px;color:var(--ash)}
@media (max-width:640px){
  .order-tl__track{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch}
  .order-tl__step{flex:0 0 72px}
  .order-tl__sub{display:none}
  .order-tl__dot{width:30px;height:30px;font-size:11px}
  .order-tl__label{font-size:11px}
  .order-tl__track::before{top:15px}
}
.sales-chart__sum{display:flex;flex-wrap:wrap;gap:14px 20px;font-size:13.5px;color:var(--ash);margin-bottom:16px}
.sales-chart__sum b{color:var(--ink)}
.sales-chart__bars{display:flex;align-items:flex-end;gap:6px;min-height:160px;padding:8px 4px 0;border-top:1px solid var(--line);overflow-x:auto}
.sc-col{flex:1;min-width:36px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px}
.sc-bar{width:100%;max-width:28px;background:linear-gradient(180deg,var(--red),#8b0010);border-radius:6px 6px 2px 2px;min-height:2px}
.sc-val{font-size:10px;color:var(--ash);line-height:1;min-height:12px}
.sc-day{font-size:10px;color:var(--ash)}
/* ===== Secret mode · 가격문의 · 1:1 채팅 (2026-07 · 심플 리뉴얼) ===== */
/* 텍스트 링크형 "가격문의" — 밑줄 + 화살표만으로 클릭을 유도한다 */
.price-ask-label{
  position:relative;display:inline-flex;align-items:center;gap:5px;
  margin:0;padding:2px 0;border:0;background:none;cursor:pointer;
  font:inherit;font-weight:800;letter-spacing:.01em;line-height:1.2;
  color:var(--ink)!important;vertical-align:baseline;
  -webkit-tap-highlight-color:transparent;
  transition:color .22s ease;
}
/* 글자 자체가 브랜드 블루로 반짝인다 — 시선을 먼저 끄는 역할 */
.price-ask-label .pal-txt{
  position:relative;display:inline-block;
  background-image:linear-gradient(100deg,
    var(--red-deep) 0%, var(--red-deep) 28%,
    var(--red) 42%, #7fe4ff 50%, var(--red) 58%,
    var(--red-deep) 72%, var(--red-deep) 100%);
  background-size:250% 100%;background-position:120% 0;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:palShine 2.6s ease-in-out infinite;
}
/* 작은 반짝임 — 밑줄이 다 그어지는 타이밍에 톡 */
.price-ask-label::before{
  content:"✦";position:absolute;top:-.15em;left:-.42em;z-index:2;
  font-size:.5em;line-height:1;color:#7fe4ff;pointer-events:none;opacity:0;
  text-shadow:0 0 6px rgba(14,154,217,.85);
  animation:palSpark 2.6s ease-in-out infinite;
}
/* 바탕 밑줄: 항상 옅게 깔려 링크임을 알린다 */
.price-ask-label .pal-txt::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;
  background:var(--red-deep);border-radius:2px;opacity:.25;
  transition:opacity .24s ease;
}
/* 포인트 밑줄: 좌→우로 그어졌다가 우→좌로 걷힌다 (idle 모션의 주인공)
   JS 클래스에 기대지 않고 기본 상태에서 바로 재생한다 */
.price-ask-label .pal-txt::before{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;z-index:1;
  background:var(--red);border-radius:2px;
  transform:scaleX(0);transform-origin:left center;
  animation:palDraw 2.6s ease-in-out infinite;
}
/* 화살표: 밑줄이 다 그어진 뒤 오른쪽으로 밀려나며 진해진다 */
.price-ask-label::after{
  content:"→";font-size:.78em;font-weight:700;line-height:1;opacity:.42;
  color:var(--red);
  animation:palGo 2.6s ease-in-out infinite;
  transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .24s ease;
}
.price-ask-label:hover,
.price-ask-label:focus-visible{color:var(--red)!important;outline:none}
/* 호버하면 반짝임을 멈추고 단색으로 또렷하게 */
.price-ask-label:hover .pal-txt,
.price-ask-label:focus-visible .pal-txt{
  animation:none;background-image:none;
  -webkit-text-fill-color:var(--red);color:var(--red);
}
.price-ask-label:hover::before,
.price-ask-label:focus-visible::before{animation:none;opacity:0}
.price-ask-label:hover .pal-txt::after,
.price-ask-label:focus-visible .pal-txt::after{opacity:1;background:var(--red)}
/* 호버하면 idle 재생을 멈추고 밑줄을 꽉 채운 상태로 고정 */
.price-ask-label:hover .pal-txt::before,
.price-ask-label:focus-visible .pal-txt::before{
  animation:none;transform:scaleX(1);transform-origin:left center;
}
.price-ask-label:hover::after,
.price-ask-label:focus-visible::after{opacity:1;transform:translateX(3px);animation:none}
.price-ask-label.is-tap{animation:palTap .28s cubic-bezier(.22,1,.36,1) both}
/* 크기: 카드 / 퀵뷰 / 스티키바 */
.card__pr .price-ask-label{font-size:clamp(15px,1.25vw,17px)}
.qv-price .price-ask-label{font-size:clamp(19px,1.8vw,23px)}
.buybar .price-ask-label{font-size:15px}
@keyframes palDraw{
  0%,8%{transform:scaleX(0);transform-origin:left center}
  38%,58%{transform:scaleX(1);transform-origin:left center}
  58.01%{transform:scaleX(1);transform-origin:right center}
  88%,100%{transform:scaleX(0);transform-origin:right center}
}
@keyframes palGo{
  0%,30%{transform:translateX(0);opacity:.42}
  48%,60%{transform:translateX(4px);opacity:1}
  82%,100%{transform:translateX(0);opacity:.42}
}
@keyframes palShine{
  0%,10%{background-position:120% 0}
  55%,100%{background-position:-30% 0}
}
@keyframes palSpark{
  0%,30%{opacity:0;transform:scale(.4) rotate(-12deg)}
  42%{opacity:1;transform:scale(1.15) rotate(10deg)}
  56%{opacity:.75;transform:scale(.9) rotate(0deg)}
  70%,100%{opacity:0;transform:scale(.45) rotate(-8deg)}
}
@keyframes palTap{
  0%{transform:scale(1)}
  45%{transform:scale(.93)}
  100%{transform:scale(1)}
}
.secret-note{margin-top:10px;color:var(--ash)}
.secret-note b{color:var(--ink)}
/* 카드 가격줄 — 라벨 하나만 */
.card__pr--ask{
  flex-direction:row!important;flex-wrap:nowrap!important;
  align-items:baseline!important;gap:6px!important;margin-top:2px;
}
.qv-price--ask{display:flex;align-items:baseline;gap:6px}
/* 뷰포트 밖이면 무한 애니메이션을 멈춘다 (JS 가 .anim-off 를 토글) */
.price-ask-label.anim-off,
.price-ask-label.anim-off::before,
.price-ask-label.anim-off::after,
.price-ask-label.anim-off .pal-txt,
.price-ask-label.anim-off .pal-txt::before{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){
  .price-ask-label,.price-ask-label::after,.price-ask-label::before,.price-ask-label.is-tap,
  .price-ask-label .pal-txt,
  .price-ask-label .pal-txt::before{animation:none!important;transition:none}
  /* 모션을 끄면 색은 유지하되 움직임만 없앤다 */
  .price-ask-label .pal-txt{
    background-image:none;-webkit-text-fill-color:var(--red);color:var(--red);
  }
  .price-ask-label .pal-txt::before{transform:scaleX(1);transform-origin:left center}
  .price-ask-label::after{opacity:1;transform:none}
  .price-ask-label::before{opacity:0}
}

/* ===== 가격문의 CTA — 심플 아웃라인 + 흐르는 광택 ===== */
.buyrow--secret{display:flex;flex-direction:column;gap:12px;margin-top:10px}
.btn-price-ask{
  position:relative;display:flex;align-items:center;justify-content:center;gap:10px;
  width:100%;padding:17px 20px;
  border:1.5px solid transparent;border-radius:14px;
  /* 안쪽은 옅은 하늘빛, 테두리는 흐르는 그라디언트 */
  background:
    linear-gradient(180deg,#fff 0%,var(--cream) 100%) padding-box,
    linear-gradient(100deg,
      var(--red-deep) 0%, var(--red) 30%, #7fe4ff 50%,
      var(--red) 70%, var(--red-deep) 100%) border-box;
  background-size:auto, 260% 100%;
  background-position:0 0, 0 0;
  color:var(--red-deep);cursor:pointer;overflow:hidden;
  opacity:0;transform:translateY(6px);
  transition:transform .42s cubic-bezier(.22,1,.36,1),opacity .38s ease,
             box-shadow .3s ease,filter .28s ease;
  -webkit-tap-highlight-color:transparent;
}
.btn-price-ask.is-ready{
  opacity:1;transform:translateY(0);
  box-shadow:0 6px 20px rgba(14,154,217,.16);
  animation:bpaBorder 3.2s linear infinite, bpaGlow 3.2s ease-in-out infinite;
}
/* 버튼을 훑고 지나가는 빛 — "움직이는" 신호 */
.btn-price-ask .bpa-shine{
  position:absolute;top:0;bottom:0;left:0;width:45%;pointer-events:none;
  background:linear-gradient(100deg,transparent 0%,rgba(127,228,255,.55) 50%,transparent 100%);
  transform:translateX(-160%);opacity:0;
}
.btn-price-ask.is-ready .bpa-shine{animation:bpaSweep 3.2s ease-in-out infinite}
/* 말풍선 아이콘 */
.btn-price-ask .bpa-ico{
  display:flex;flex-shrink:0;color:var(--red);
  transition:transform .35s cubic-bezier(.22,1,.36,1),color .25s ease;
}
/* 라벨 — 글자 위로 하이라이트가 지나간다 */
.btn-price-ask .bpa-label{
  position:relative;z-index:1;
  font-size:15.5px;font-weight:800;letter-spacing:.02em;white-space:nowrap;
  background-image:linear-gradient(100deg,
    var(--red-deep) 0%, var(--red-deep) 38%,
    var(--red) 46%, #7fe4ff 50%, var(--red) 54%,
    var(--red-deep) 62%, var(--red-deep) 100%);
  background-size:260% 100%;background-position:120% 0;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.btn-price-ask.is-ready .bpa-label{animation:bpaText 3.2s ease-in-out infinite}
/* 화살표 — 광택이 지나간 뒤 한 박자 늦게 툭 */
.btn-price-ask .bpa-arrow{
  display:flex;flex-shrink:0;
  transition:transform .3s cubic-bezier(.22,1,.36,1);
}
.btn-price-ask.is-ready .bpa-arrow{animation:bpaArrow 3.2s ease-in-out infinite}
/* 호버 — 브랜드 블루로 꽉 채우고 모든 idle 모션을 끈다 */
.btn-price-ask.is-ready:hover,
.btn-price-ask.is-ready:focus-visible{
  background:
    linear-gradient(135deg,var(--red) 0%,var(--red-deep) 100%) padding-box,
    linear-gradient(135deg,var(--red) 0%,var(--red-deep) 100%) border-box;
  color:#fff;outline:none;animation:none;
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(14,154,217,.34);
}
.btn-price-ask.is-ready:hover .bpa-label,
.btn-price-ask.is-ready:focus-visible .bpa-label{
  background-image:none;-webkit-text-fill-color:#fff;color:#fff;animation:none;
}
.btn-price-ask.is-ready:hover .bpa-ico,
.btn-price-ask.is-ready:focus-visible .bpa-ico{color:#fff}
.btn-price-ask.is-ready:hover .bpa-shine,
.btn-price-ask.is-ready:focus-visible .bpa-shine{animation:none;opacity:0}
.btn-price-ask.is-ready:hover .bpa-ico,
.btn-price-ask.is-ready:focus-visible .bpa-ico{transform:scale(1.08)}
.btn-price-ask.is-ready:hover .bpa-arrow,
.btn-price-ask.is-ready:focus-visible .bpa-arrow{transform:translateX(4px);animation:none}
.btn-price-ask:active{transform:translateY(0) scale(.99)}
.btn-price-ask.is-go{transform:translateY(0) scale(.98)}
.btn-price-ask.anim-off,
.btn-price-ask.anim-off .bpa-shine,
.btn-price-ask.anim-off .bpa-label,
.btn-price-ask.anim-off .bpa-arrow{animation-play-state:paused}
@keyframes bpaSweep{
  0%,58%{transform:translateX(-160%);opacity:0}
  62%{opacity:1}
  92%{transform:translateX(340%);opacity:1}
  100%{transform:translateX(340%);opacity:0}
}
/* 테두리 그라디언트가 계속 흐른다 (안쪽 면 레이어는 고정) */
@keyframes bpaBorder{
  0%{background-position:0 0, 0% 0}
  100%{background-position:0 0, 100% 0}
}
@keyframes bpaGlow{
  0%,100%{box-shadow:0 6px 20px rgba(14,154,217,.16)}
  50%{box-shadow:0 9px 28px rgba(14,154,217,.34)}
}
@keyframes bpaText{
  0%,58%{background-position:120% 0}
  92%,100%{background-position:-30% 0}
}
@keyframes bpaArrow{
  0%,88%,100%{transform:translateX(0)}
  94%{transform:translateX(4px)}
}
@media (prefers-reduced-motion:reduce){
  .btn-price-ask,.btn-price-ask.is-ready{transition:none;animation:none!important;opacity:1;transform:none}
  .btn-price-ask .bpa-shine{display:none}
  /* 모션은 끄되 색은 유지 — 눈에 띄어야 하는 CTA라 단색 블루로 고정 */
  .btn-price-ask,.btn-price-ask.is-ready{
    border-color:var(--red);
    box-shadow:0 6px 20px rgba(14,154,217,.16);
  }
  .btn-price-ask .bpa-label,.btn-price-ask.is-ready .bpa-label{
    background-image:none;-webkit-text-fill-color:var(--red-deep);color:var(--red-deep);animation:none!important;
  }
  .btn-price-ask .bpa-arrow,.btn-price-ask.is-ready .bpa-arrow{animation:none!important}
}

/* 고객 채팅 페이지 */
.chat-page{max-width:720px;padding-bottom:0!important}
.chat-shell{
  display:flex;flex-direction:column;
  height:calc(100vh - 120px);min-height:480px;max-height:860px;
  margin:8px 0 24px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--cream);
}
.chat-top{
  display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--paper);
  border-bottom:1px solid var(--line);flex-shrink:0;
}
.chat-back{
  width:36px;height:36px;border-radius:50%;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--ink);text-decoration:none;font-size:16px;flex-shrink:0;
}
.chat-top-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.chat-ava{
  width:40px;height:40px;border-radius:50%;background:var(--ink-solid);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;flex-shrink:0;
}
.chat-title{font-size:15px;font-weight:800;margin:0;letter-spacing:-.01em}
.chat-sub{margin:2px 0 0;font-size:11.5px;color:var(--ash);display:flex;align-items:center;gap:5px}
.chat-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.18)}
.chat-menu{
  width:36px;height:36px;border:none;background:transparent;font-size:20px;cursor:pointer;color:var(--ash);border-radius:50%;
}
.chat-menu:hover{background:var(--cream)}
.chat-product-bar{
  display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--paper);border-bottom:1px solid var(--line);
  text-decoration:none;color:inherit;flex-shrink:0;
}
.chat-product-bar img{width:44px;height:54px;object-fit:cover;border-radius:8px;background:var(--cream)}
.cpb-info{flex:1;min-width:0}
.cpb-cat{font-size:11px;color:var(--ash)}
.cpb-nm{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cpb-ask{font-size:11.5px;color:var(--red);font-weight:700}
.cpb-go{font-size:12px;color:var(--ash);flex-shrink:0}
.chat-msgs{flex:1;overflow:auto;padding:14px 12px;min-height:0}
.chat-msgs-inner{display:flex;flex-direction:column;gap:10px}
.chat-welcome{text-align:center;padding:36px 16px 20px}
.cw-logo{
  width:56px;height:56px;border-radius:50%;background:var(--ink-solid);color:#fff;margin:0 auto 12px;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;
}
.cw-t{font-size:16px;font-weight:800;margin:0 0 6px}
.cw-s{font-size:13px;color:var(--ash);margin:0 0 16px;line-height:1.55}
.cw-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.cw-chip{
  border:1px solid var(--line-2);background:var(--paper);border-radius:999px;padding:9px 14px;
  font-size:12.5px;font-weight:600;cursor:pointer;color:var(--ink);
}
.cw-chip:hover{border-color:var(--red);color:var(--red)}
.chat-input{
  display:flex;align-items:flex-end;gap:8px;padding:10px 12px 12px;background:var(--paper);
  border-top:1px solid var(--line);flex-shrink:0;
}
.chat-input textarea{
  flex:1;resize:none;min-height:42px;max-height:120px;border:1px solid var(--line-2);
  border-radius:12px;padding:11px 12px;font:inherit;font-size:14px;line-height:1.45;
}
.chat-input textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(194,0,25,.08)}
.chat-send{
  width:44px;height:44px;border:none;border-radius:12px;background:var(--red);color:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;
}
.chat-send:hover{filter:brightness(1.05)}

/* 메시지 버블 공통 (고객·관리자) */
.cmsg{display:flex;gap:8px;align-items:flex-end;max-width:92%}
.cmsg.is-user{align-self:flex-end;flex-direction:row-reverse}
.cmsg.is-admin{align-self:flex-start}
.cmsg-ava{
  width:28px;height:28px;border-radius:50%;background:var(--ink-solid);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0;
}
.cmsg-col{display:flex;flex-direction:column;gap:3px;min-width:0}
.cmsg.is-user .cmsg-col{align-items:flex-end}
.cmsg-text{
  background:var(--paper);border:1px solid var(--line);border-radius:14px 14px 14px 4px;
  padding:10px 12px;font-size:14px;line-height:1.55;white-space:pre-wrap;word-break:break-word;
  box-shadow:0 1px 2px rgba(0,0,0,.03);
}
.cmsg.is-user .cmsg-text{
  background:var(--red);color:#fff;border-color:transparent;border-radius:14px 14px 4px 14px;
}
.cmsg-text.is-sys{background:#eef2f7;border-color:transparent;color:#334155;font-size:13px}
.cmsg-meta{font-size:10.5px;color:var(--ash);padding:0 2px}
.cmsg-prod{
  display:flex;gap:10px;align-items:center;background:var(--paper);border:1px solid var(--line);
  border-radius:14px;padding:10px;text-decoration:none;color:inherit;min-width:220px;max-width:280px;
  box-shadow:0 4px 14px rgba(0,0,0,.05);
}
.cmsg-prod img{width:52px;height:64px;object-fit:cover;border-radius:8px;background:var(--cream)}
.cmsg-prod-n{font-size:13px;font-weight:700;line-height:1.35}
.cmsg-prod-c{font-size:11px;color:var(--ash);margin-top:2px}
.cmsg-prod-g{display:inline-block;margin-top:6px;font-size:11.5px;font-weight:700;color:var(--red)}
.cmsg-img{max-width:220px;border-radius:12px;display:block}

/* 관리자 채팅 콘솔 */
.adm-chat{display:grid;grid-template-columns:280px 1fr 240px;gap:14px;min-height:620px;align-items:stretch}
.adm-chat-rooms,.adm-chat-main,.adm-chat-profile{
  background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;
}
.acr-tabs{display:flex;border-bottom:1px solid var(--line)}
.acr-tabs a{
  flex:1;text-align:center;padding:12px;font-size:13px;font-weight:700;color:var(--ash);text-decoration:none;
}
.acr-tabs a.on{color:var(--ink);box-shadow:inset 0 -2px 0 var(--red)}
.acr-list{overflow:auto;flex:1}
.acr-empty{padding:40px 16px;text-align:center;color:var(--ash);font-size:13px}
.acr-item{
  display:block;padding:12px 14px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;
}
.acr-item:hover{background:var(--cream)}
.acr-item.on{background:#fdecee}
.acr-row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.acr-badge{
  min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;
  font-size:10px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;
}
.acr-last{font-size:12.5px;color:var(--ash);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acr-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px;font-size:11px;color:var(--ash)}
.acr-prod{color:var(--ink);font-weight:600}
.acm-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--ash);font-size:14px}
.acm-head{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:12px 14px;border-bottom:1px solid var(--line);flex-shrink:0;
}
.acm-name{font-weight:800;font-size:15px}
.acm-email{font-size:12px;color:var(--ash);margin-top:2px}
.acm-msgs{flex:1;overflow:auto;padding:14px;background:var(--cream);min-height:320px}
.acm-msgs #acmInner{display:flex;flex-direction:column;gap:10px}
.acm-quick{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-top:1px solid var(--line);background:var(--paper)}
.acm-quick .qr{
  border:1px solid var(--line-2);background:var(--paper);border-radius:999px;padding:6px 10px;
  font-size:11.5px;font-weight:600;cursor:pointer;color:var(--ink);
}
.acm-quick .qr:hover{border-color:var(--red);color:var(--red)}
.acm-input{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:var(--paper)}
.acm-input textarea{
  flex:1;border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;font:inherit;font-size:13.5px;resize:vertical;min-height:44px;
}
.adm-chat-profile{padding:18px 16px}
.acp-ava{
  width:56px;height:56px;border-radius:50%;background:var(--cream);display:flex;align-items:center;justify-content:center;
  font-size:24px;margin:0 auto 10px;
}
.acp-name{text-align:center;font-weight:800;font-size:14px}
.acp-email{text-align:center;font-size:12px;color:var(--ash);margin-bottom:14px}
.acp-row{display:flex;justify-content:space-between;font-size:12.5px;padding:6px 0;border-bottom:1px solid var(--line)}
.acp-sec{margin-top:16px;font-size:12px;font-weight:800;color:var(--ash);letter-spacing:.04em}
.acp-order{
  display:flex;justify-content:space-between;font-size:12px;padding:7px 0;border-bottom:1px solid var(--line);
  text-decoration:none;color:inherit;
}
.acp-prod{
  display:flex;align-items:center;gap:8px;margin-top:8px;text-decoration:none;color:inherit;font-size:12.5px;font-weight:600;
}
.acp-prod img{width:40px;height:48px;object-fit:cover;border-radius:6px}
@media (max-width:1100px){
  .adm-chat{grid-template-columns:240px 1fr}
  .adm-chat-profile{display:none}
}
@media (max-width:760px){
  .adm-chat{grid-template-columns:1fr;min-height:auto}
  .adm-chat-rooms{max-height:280px}
  .chat-shell{height:calc(100vh - 100px);border-radius:12px}
}

/* ===== 마이페이지 · 가격문의 내역 ===== */
.chat-log{
  border:1px solid var(--line);border-radius:14px;overflow:hidden;
  background:var(--paper);margin-bottom:18px;
}
.chat-log__head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 16px;background:var(--cream);border-bottom:1px solid var(--line);
  font-size:14px;
}
.chat-log__date{margin-left:8px;font-size:12px;color:var(--ash);font-weight:500}
.chat-log__tags{display:flex;align-items:center;gap:6px;flex-shrink:0}
.chat-log__new{
  min-width:20px;height:20px;padding:0 6px;border-radius:999px;
  background:var(--red);color:#fff;font-size:11px;font-weight:800;
  display:inline-grid;place-items:center;
}
.chat-log__st{font-size:11px;color:var(--ash);border:1px solid var(--line);border-radius:999px;padding:2px 8px}
.chat-log__body{
  display:flex;flex-direction:column;gap:10px;
  padding:16px;background:var(--cream);max-height:520px;overflow-y:auto;
}
.chat-log__empty{font-size:13px;color:var(--ash);text-align:center;padding:20px 0}
/* 말풍선이 아래에서 순서대로 떠오른다 (최대 20번째까지만 지연 — 그 뒤는 즉시) */
.chat-log__row{
  display:flex;flex-direction:column;
  animation:chatLogIn .42s cubic-bezier(.22,1,.36,1) both;
  animation-delay:calc(min(var(--i), 20) * 45ms);
}
.chat-log__row .cmsg{max-width:88%}
@keyframes chatLogIn{
  from{opacity:0;transform:translateY(10px) scale(.985)}
  to{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  .chat-log__row{animation:none}
}

/* ===== 카카오톡 채널 플로팅 버튼 ===== */
.kko-fab{
  position:fixed;right:18px;bottom:84px;z-index:60;
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 16px 11px 13px;border-radius:999px;
  background:#FEE500;color:#191600;
  font-size:13.5px;font-weight:800;letter-spacing:-.01em;
  box-shadow:0 8px 22px rgba(0,0,0,.18);
  text-decoration:none;
  transition:transform .26s cubic-bezier(.22,1,.36,1),box-shadow .26s ease;
}
.kko-fab:hover,.kko-fab:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(0,0,0,.24);
  outline:none;
}
.kko-fab:active{transform:translateY(0) scale(.98)}
.kko-fab__ico{display:flex;flex-shrink:0}
@media (max-width:640px){
  .kko-fab{right:14px;bottom:76px;padding:10px 14px 10px 12px;font-size:12.5px}
  .kko-fab__txt{display:none}
  .kko-fab{padding:12px;border-radius:50%}
}

/* ==========================================================================
   2026-07 업그레이드 팩 — 선물하기 UI
   ========================================================================== */
.gift-fields{border-top:1px dashed var(--line);margin-top:12px;padding-top:4px}
.gift-presets{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 8px}
.gift-preset{border:1px solid var(--line);background:var(--paper);border-radius:20px;padding:6px 12px;font-size:12px;color:var(--ink);cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s}
.gift-preset:hover{border-color:var(--ink)}
.gift-preset:active{transform:scale(.96)}
#gift_message{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:14px;resize:vertical}
#gift_message:focus{outline:none;border-color:var(--ink)}
.gift-count{text-align:right;font-size:11px;color:var(--ash);margin-top:4px}

/* ---------- 갤러리 크로스페이드 + 라이트박스 ---------- */
.pgal__main{position:relative}
.pgal__fade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .28s ease}
.pgal__fade.in{opacity:1}
.lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .22s ease}
.lightbox.show{opacity:1}
.lightbox[hidden]{display:none}
.lb-dim{position:absolute;inset:0;background:rgba(10,10,12,.92)}
.lb-stage{position:relative;z-index:1;margin:0;max-width:min(92vw,880px);max-height:88vh;display:flex;align-items:center;justify-content:center}
.lb-img{max-width:100%;max-height:88vh;object-fit:contain;display:block;border-radius:4px}
.lb-swap{animation:lbswap .28s ease}
@keyframes lbswap{from{opacity:.2;transform:scale(.985)}to{opacity:1;transform:none}}
.lb-x{position:absolute;top:16px;right:18px;z-index:2;background:none;border:none;color:#fff;font-size:26px;cursor:pointer;padding:8px;line-height:1;opacity:.85}
.lb-x:hover{opacity:1}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);color:#fff;width:44px;height:44px;border-radius:50%;font-size:26px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}
.lb-nav:hover{background:rgba(255,255,255,.2)}
.lb-prev{left:16px}
.lb-next{right:16px}
.lb-cnt{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);z-index:2;color:#fff;font-size:13px;letter-spacing:.06em;opacity:.85}
@media (max-width:640px){.lb-nav{width:38px;height:38px;font-size:22px}.lb-prev{left:8px}.lb-next{right:8px}}
@media (prefers-reduced-motion:reduce){.pgal__fade{transition:none}.lb-swap{animation:none}.lightbox{transition:none}}

/* ---------- 폼 피드백 패키지 (#8 #11 #12 #40 #41 #47) ---------- */
.field{position:relative}
.f-ok{position:absolute;right:12px;bottom:11px;color:#2b7a3e;font-weight:700;font-size:14px;animation:fokin .25s ease both;pointer-events:none}
@keyframes fokin{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
.f-err{animation:fieldshake .4s ease;border-color:#c0392b!important}
@keyframes fieldshake{0%,100%{transform:none}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
.form-note.err.shake-in{animation:fieldshake .45s ease}
.opt-shake{animation:fieldshake .4s ease}
.roll-up{animation:qroll-up .22s ease}
.roll-down{animation:qroll-down .22s ease}
@keyframes qroll-up{from{transform:translateY(5px);opacity:.35}to{transform:none;opacity:1}}
@keyframes qroll-down{from{transform:translateY(-5px);opacity:.35}to{transform:none;opacity:1}}
.anchor-flash{animation:anchflash 1s ease}
@keyframes anchflash{0%{background-color:rgba(232,160,32,.16)}100%{background-color:transparent}}
.toast-ico svg.tok{display:block}
.toast-ico .tok polyline{stroke-dasharray:24;stroke-dashoffset:24;animation:tokdraw .5s .08s ease forwards}
@keyframes tokdraw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){
  .f-ok,.f-err,.opt-shake,.roll-up,.roll-down,.anchor-flash,.form-note.err.shake-in{animation:none}
  .toast-ico .tok polyline{animation:none;stroke-dashoffset:0}
}

/* ---------- 채팅 인터랙션: 스프링 팝·입력중·전송 실패·상품 첨부 ---------- */
.cmsg-new{animation:cmsgspring .32s cubic-bezier(.34,1.56,.64,1) both}
@keyframes cmsgspring{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
.ctyping{display:inline-flex;gap:4px;align-items:center;padding:12px 14px!important}
.ctyping i{width:6px;height:6px;border-radius:50%;background:var(--ash);display:inline-block;animation:ctypdot 1.1s ease-in-out infinite}
.ctyping i:nth-child(2){animation-delay:.15s}
.ctyping i:nth-child(3){animation-delay:.3s}
@keyframes ctypdot{0%,60%,100%{transform:none;opacity:.45}30%{transform:translateY(-4px);opacity:1}}
.cmsg.is-failed .cmsg-text{opacity:.55;animation:fieldshake .4s ease}
.cmsg-fail{color:#c0392b;font-size:11px;font-weight:700}
.cmsg-retry{border:1px solid #c0392b;color:#c0392b;background:var(--paper);border-radius:12px;font-size:11px;padding:2px 10px;cursor:pointer;margin-left:4px;font-family:inherit}
.cmsg-retry:hover{background:#c0392b;color:#fff}
.acm-input{position:relative}
.acm-prodbtn{flex:0 0 auto;padding:8px 12px;font-size:16px;line-height:1}
.acm-prodpop{position:relative;margin-top:6px;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:0 14px 34px rgba(0,0,0,.14);padding:10px;z-index:40}
.acm-prodpop input{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:13px;margin-bottom:8px}
.acm-prodpop input:focus{outline:none;border-color:var(--ink)}
.acm-prodlist{max-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.acm-proditem{display:flex;align-items:center;gap:10px;border:none;background:transparent;padding:7px 8px;border-radius:8px;cursor:pointer;text-align:left;font-family:inherit;font-size:13px;width:100%}
.acm-proditem:hover{background:var(--cream)}
.acm-proditem img{width:34px;height:34px;object-fit:cover;border-radius:6px;background:var(--cream);flex:0 0 auto}
.acm-proditem .nm{font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acm-proditem .ct{font-size:11px;color:var(--ash);flex:0 0 auto}
.acm-prodempty{padding:12px;text-align:center;color:var(--ash);font-size:12.5px}
@media (prefers-reduced-motion:reduce){.cmsg-new,.ctyping i,.cmsg.is-failed .cmsg-text{animation:none}}

/* ---------- 적용 필터 요약 칩 ---------- */
.filter-active{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:2px 0 18px;animation:fadein .3s ease}
.fa-lb{font-size:11.5px;font-weight:700;color:var(--ash);letter-spacing:.04em}
.fa-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--ink);background:var(--ink-solid);color:#fff;border-radius:20px;padding:5px 11px;font-size:12px;text-decoration:none;transition:opacity .15s}
.fa-chip:hover{opacity:.82}
.fa-chip .fa-x{font-size:10px;opacity:.75}
.fa-clear{font-size:12px;color:var(--ash);text-decoration:underline;margin-left:2px}
.fa-clear:hover{color:var(--ink)}
@keyframes fadein{from{opacity:0}to{opacity:1}}

/* ---------- 다크모드 토글 버튼 + 미세 보정 ---------- */
.theme-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:transparent;color:inherit;border-radius:20px;padding:4px 12px;font-size:12px;cursor:pointer;font-family:inherit;transition:border-color .15s}
.theme-toggle:hover{border-color:var(--ink)}
:root[data-theme="dark"] img{opacity:.94}
:root[data-theme="dark"] .lb-dim{background:rgba(0,0,0,.94)}
:root[data-theme="dark"] .toast{box-shadow:0 12px 34px rgba(0,0,0,.5)}
:root[data-theme="dark"] .cmsg-retry{background:transparent}
:root[data-theme="dark"] .st-pending{background:#3a2c10;color:#e8b968}
:root[data-theme="dark"] .cart-lowstock-warn,:root[data-theme="dark"] .cutoff-timer,:root[data-theme="dark"] .cart-coupon-hint.next{background:#33270e;color:#e2b672}
:root[data-theme="dark"] .form-note.err,:root[data-theme="dark"] .result-ico.no,:root[data-theme="dark"] .st-cancelled,:root[data-theme="dark"] .st-refunded,:root[data-theme="dark"] .rv-badge,:root[data-theme="dark"] .ract .rev-helpful.voted,:root[data-theme="dark"] .acr-item.on{background:#33161c}
:root[data-theme="dark"] .acm-msgs{background:#12181f}

/* ---------- 핏 분포 바 + 사이즈 추천기 ---------- */
.fitbar{margin-top:12px}
.fitbar__lb{font-size:11.5px;font-weight:700;color:var(--ash);margin-bottom:5px;letter-spacing:.03em}
.fitbar__tr{display:flex;height:10px;border-radius:6px;overflow:hidden;background:var(--cream)}
.fitbar__seg{display:block;height:100%}
.fitbar__seg--s{background:var(--ash-2)}
.fitbar__seg--r{background:var(--red)}
.fitbar__seg--b{background:var(--ink-solid)}
.fitbar__keys{display:flex;gap:12px;margin-top:6px;font-size:11.5px;color:var(--ash)}
.fitbar__keys .on{color:var(--ink);font-weight:700}
.size-reco{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;padding:12px;border:1px dashed var(--line-2);border-radius:12px}
.size-reco .sr-lb{font-size:12.5px;font-weight:700}
.size-reco input{width:92px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13px;background:var(--paper);color:inherit}
.size-reco input:focus{outline:none;border-color:var(--ink)}
.size-reco .btn{padding:8px 14px;font-size:12.5px}
.sr-out{flex-basis:100%;font-size:13.5px;animation:fadein .3s ease}
.sr-out .sr-size{color:var(--red);font-size:16px}
.sr-out .sr-note{font-size:11.5px;color:var(--ash)}
.size-guide tr.sr-hit td{background:rgba(14,154,217,.12);font-weight:700}
#sizes .swatch.sr-reco{box-shadow:0 0 0 2px var(--red);position:relative}
#sizes .swatch.sr-reco::after{content:'추천';position:absolute;top:-8px;right:-6px;background:var(--red);color:#fff;font-size:9px;font-weight:800;border-radius:8px;padding:1px 5px;line-height:1.4}

/* ---------- CHAT 안읽음 배지 ---------- */
#chatLink{position:relative}
.chat-c{background:var(--red);color:#fff;font-size:10.5px;font-weight:800;border-radius:10px;margin-left:4px}
.chat-c[hidden]{display:none}

/* ---------- 채팅 사진 첨부 ---------- */
.cmsg-img{cursor:zoom-in}
.chat-attach{flex:0 0 auto;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ash);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color .15s,border-color .15s;align-self:flex-end}
.chat-attach:hover{color:var(--ink);border-color:var(--ink)}
.chat-attach:disabled{opacity:.5;cursor:default}
.chat-attach.is-uploading svg{animation:btnspin 1s linear infinite}

/* ---------- 최근 본 상품 플로팅 미니바 ---------- */
.recentbar{position:fixed;left:16px;bottom:18px;z-index:55;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.rb-pill{display:inline-flex;align-items:center;gap:5px;background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:9px 14px;font-size:13px;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.12);font-family:inherit;color:inherit;transition:transform .15s,border-color .15s}
.rb-pill:hover{border-color:var(--ink);transform:translateY(-1px)}
.rb-n{background:var(--ink-solid);color:#fff;font-size:10.5px;font-weight:800;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}
.rb-panel{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:0 14px 40px rgba(0,0,0,.16);animation:rbslide .25s ease;order:-1;max-width:min(320px,calc(100vw - 32px))}
@keyframes rbslide{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.rb-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;margin-bottom:8px;gap:16px}
.rb-head a{color:var(--ash);font-weight:500}
.rb-head a:hover{color:var(--ink)}
.rb-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}
.rb-strip a{flex:0 0 auto}
.rb-strip img{width:56px;height:70px;object-fit:cover;border-radius:8px;background:var(--cream);transition:transform .15s}
.rb-strip a:hover img{transform:scale(1.05)}
@media (max-width:760px){.recentbar{left:10px;bottom:12px}.rb-pill{padding:8px 12px;font-size:12px}}
@media (prefers-reduced-motion:reduce){.rb-panel{animation:none}.rb-strip img{transition:none}}

/* ---------- 카드 컬러 스와치 점 ---------- */
.card__colors{display:flex;align-items:center;gap:4px;margin-top:5px}
.cdot{width:11px;height:11px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.12)}
.cdot--light{border-color:var(--line-2)}
:root[data-theme="dark"] .cdot{border-color:rgba(255,255,255,.22)}
.cdot-more{font-size:10px;color:var(--ash);font-weight:700;margin-left:1px}

/* ---------- 위시리스트 일괄 문의 선택 ---------- */
.wish-bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--cream)}
.wish-bulk-bar .btn{padding:9px 16px;font-size:13px}
.wish-sel{position:relative;border-radius:12px;transition:box-shadow .15s}
.wish-sel.on{box-shadow:0 0 0 2px var(--red)}
.wb-check{position:absolute;top:10px;left:10px;z-index:3;background:var(--paper);border-radius:6px;padding:4px;line-height:0;box-shadow:0 2px 8px rgba(0,0,0,.14);cursor:pointer}
.wb-check input{width:16px;height:16px;cursor:pointer;accent-color:var(--red)}

/* ---------- 404 · 오류 페이지 ---------- */
.errpg{padding-block:clamp(48px,8vh,90px) 60px}
.errpg__hero{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;margin-bottom:48px}
.errpg__code{font-size:clamp(64px,14vw,140px);font-weight:800;line-height:1;letter-spacing:-.03em;color:var(--cream-2);user-select:none}
:root[data-theme="dark"] .errpg__code{color:var(--cream-2)}
.errpg__t{font-size:clamp(22px,3.4vw,36px);font-weight:600;letter-spacing:-.01em;margin-top:-8px}
.errpg__m{color:var(--ash);max-width:440px;font-size:14.5px}
.errpg__acts{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:6px}

/* ---------- Q&A 빠른 질문 칩 ---------- */
.qa-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.qa-chip{border:1px solid var(--line);background:var(--paper);color:inherit;border-radius:20px;padding:6px 13px;font-size:12.5px;cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s}
.qa-chip:hover{border-color:var(--ink);background:var(--cream)}
.qa-chip:active{transform:scale(.97)}

/* ---------- 채팅 빠른답변: 템플릿 관리 링크 ---------- */
.qr--manage{color:var(--ash);border-style:dashed}
.qr--manage:hover{color:var(--ink)}

/* ---------- 관리자 채팅 모바일 탭 (≤760px) ---------- */
.acm-mtabs{display:none}
@media (max-width:760px){
  .acm-mtabs{display:flex;gap:6px;margin-bottom:10px;position:sticky;top:0;z-index:20;background:var(--paper);padding:6px 0}
  .acm-mtab{flex:1;border:1px solid var(--line);background:var(--paper);color:var(--ash);border-radius:10px;padding:9px 6px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:4px}
  .acm-mtab.on{background:var(--ink-solid);color:#fff;border-color:var(--ink-solid)}
  .acm-mtab-b{background:var(--red);color:#fff;font-size:10px;font-weight:800;min-width:16px;height:16px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px}
  /* 한 번에 한 패널만 — 세로로 쌓여 스크롤이 길어지는 문제 해결 */
  .adm-chat{grid-template-columns:1fr;min-height:auto}
  .adm-chat-rooms,.adm-chat-main,.adm-chat-profile{display:none}
  .adm-chat[data-mtab="rooms"] .adm-chat-rooms{display:block;max-height:none}
  .adm-chat[data-mtab="chat"] .adm-chat-main{display:flex;flex-direction:column}
  .adm-chat[data-mtab="profile"] .adm-chat-profile{display:block}
  .acm-msgs{min-height:52vh}
}

/* ---------- 고객 알림함 ---------- */
#myLink{position:relative}
.acct-nav__b{background:var(--red);color:#fff;font-size:10px;font-weight:800;min-width:16px;height:16px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;margin-left:4px;vertical-align:middle}
.notif-list{display:flex;flex-direction:column;gap:8px;list-style:none;padding:0;margin:0}
.notif a{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--paper);transition:border-color .15s,transform .15s}
.notif a:hover{border-color:var(--ink);transform:translateY(-1px)}
.notif.is-unread a{border-color:var(--red);background:color-mix(in srgb, var(--red) 5%, var(--paper))}
.notif__ico{font-size:20px;line-height:1.2;flex:0 0 auto}
.notif__b{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.notif__top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.notif__sub{font-size:14px;font-weight:600;line-height:1.4}
.notif__new{background:var(--red);color:#fff;font-size:9.5px;font-weight:800;border-radius:8px;padding:2px 6px;letter-spacing:.04em}
.notif__meta{font-size:11.5px;color:var(--ash)}
.notif-note{margin-top:14px;font-size:12px;color:var(--ash);text-align:center}

/* ---------- 검색어 하이라이트 ---------- */
mark{background:rgba(232,197,74,.42);color:inherit;border-radius:3px;padding:0 1px}
:root[data-theme="dark"] mark{background:rgba(232,197,74,.3);color:#f5e9c4}

/* 관리자 채팅 — 답변 대기 표시 (목록만 열어도 안읽음이 0이 되므로 배지만으론 구분 불가) */
.acr-wait{background:var(--red);color:#fff;font-size:9.5px;font-weight:800;border-radius:8px;padding:2px 6px;letter-spacing:.03em;margin-left:4px}
