@charset "utf-8";

/* ── Pretendard self-hosted ─────────────────────────────────────────────── */
@font-face { font-family:"Pretendard"; font-weight:100; font-style:normal; font-display:swap; src:url("fonts/Pretendard-Thin.woff") format("woff"); }
@font-face { font-family:"Pretendard"; font-weight:200; font-style:normal; font-display:swap; src:url("fonts/Pretendard-ExtraLight.woff") format("woff"); }
@font-face { font-family:"Pretendard"; font-weight:300; font-style:normal; font-display:swap; src:url("fonts/Pretendard-Light.woff") format("woff"); }
@font-face { font-family:"Pretendard"; font-weight:400; font-style:normal; font-display:swap; src:url("fonts/Pretendard-Regular.woff") format("woff"); }
@font-face { font-family:"Pretendard"; font-weight:500; font-style:normal; font-display:swap; src:url("fonts/Pretendard-Medium.woff") format("woff"); }
@font-face { font-family:"Pretendard"; font-weight:600; font-style:normal; font-display:swap; src:url("fonts/Pretendard-SemiBold.woff") format("woff"); }
@font-face { font-family:"Pretendard"; font-weight:700; font-style:normal; font-display:swap; src:url("fonts/Pretendard-Bold.woff") format("woff"); }
@font-face { font-family:"Pretendard"; font-weight:800; font-style:normal; font-display:swap; src:url("fonts/Pretendard-ExtraBold.woff") format("woff"); }
@font-face { font-family:"Pretendard"; font-weight:900; font-style:normal; font-display:swap; src:url("fonts/Pretendard-Black.woff") format("woff"); }

/* ── Fraunces (campaign / editorial — 차분한 헤드라인) ─────────────────── */
@import url("https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;1,9..144,400&display=swap");

/* ── Design tokens — 꼬륵(coreuk) 밀키트·수제도시락 (옐로우 메인 · 그린 보조) ── */
:root {
  /* primary scale — coreuk(꼬륵) green. 텍스트·링크·보더에 쓰이므로 밝은 배경에서 읽히는 딥그린 계열 */
  --couponcms-green-900: #0f3d22;
  --couponcms-green-800: #14532d;
  --couponcms-green-700: #1b5e3a;
  --couponcms-green-600: #1f7a3d;
  --couponcms-green-500: #2e8b4f;
  --couponcms-green-400: #5aa06e;
  --couponcms-green-300: #9ac4a8;
  --couponcms-green-200: #cfe3d6;
  --couponcms-green-100: #e7f1ea;
  --couponcms-green-50:  #f4f9f5;

  --ivory:        #fbf8f5;
  --cream:        #f3ede6;
  --sand:         #ebe3d8;
  --stone-100:    #e8e2d9;
  --stone-200:    #d9d2c6;
  --stone-300:    #b8b0a2;
  --stone-400:    #8e8778;
  --stone-500:    #6b6558;
  --charcoal-700: #3a3530;
  --charcoal-800: #2c2620;
  --charcoal-900: #1a1612;

  /* accent — 꼬륵 로고 3색: 마젠타(세일·찜) / 옐로우(브랜드 시그니처 채움) / 스카이블루(보조) */
  --rose-500: #e84c97;
  --rose-400: #f06ba8;
  --rose-100: #fce4f0;
  --accent-gold: #f5c518;

  --brand-yellow:     #f5c518;
  --brand-yellow-600: #e0a800;
  --brand-green:      #1f7a3d;
  --brand-blue:       #4fc3f0;
  --brand-magenta:    #e84c97;

  --bg:            var(--ivory);
  --bg-subtle:     var(--cream);
  --bg-elevated:   #ffffff;
  --fg:            var(--charcoal-800);
  --fg-muted:      var(--stone-500);
  --fg-subtle:     var(--stone-400);
  --border:        var(--stone-100);
  --border-strong: var(--stone-200);
  --primary:       var(--couponcms-green-700);
  --primary-hover: var(--couponcms-green-800);
  --on-primary:    var(--ivory);

  --font-sans:    "Pretendard","Noto Sans KR",system-ui,-apple-system,Helvetica,Arial,sans-serif;
  --font-display: "Fraunces","Noto Serif KR",Georgia,serif;

  --shadow-xs: 0 1px 2px rgba(38,35,30,.04);
  --shadow-sm: 0 2px 6px rgba(38,35,30,.06);
  --shadow-md: 0 8px 20px rgba(38,35,30,.08);
  --shadow-lg: 0 18px 40px rgba(38,35,30,.12);

  /* 콘텐츠 폭·좌우 여백: 헤더 / Trust / 푸터 동일 */
  --ccms-container-max: 1280px;
  --ccms-gutter: 40px;

  --ease-standard:   cubic-bezier(.4,0,.2,1);
  --ease-emphasized: cubic-bezier(.2,.7,.1,1);
  --dur-fast: 120ms;
  --dur-base: 220ms;
  --dur-slow: 420ms;
}

/* ── Reset ──────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { overflow-y: scroll; }
body {
  margin: 0; padding: 0;
  font-family: var(--font-sans);
  font-size: 15px; line-height: 1.6;
  color: var(--fg); background: var(--ivory);
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4,h5,h6 { margin: 0; padding: 0; font-family: var(--font-sans); }
ul, dl, dt, dd { margin: 0; padding: 0; list-style: none; }
p { margin: 0; padding: 0; }
a { color: inherit; text-decoration: none; cursor: pointer; }
button { font-family: var(--font-sans); cursor: pointer; }
img { display: block; max-width: 100%; }
input, select, textarea { font-family: var(--font-sans); font-size: inherit; color: inherit; }
hr { display: none; }
legend {
  position: absolute; margin: 0; padding: 0;
  font-size: 0; line-height: 0;
  text-indent: -9999em; overflow: hidden;
}
.sound_only {
  position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0,0,0,0);
}

/* ── Layout shell ───────────────────────────────────────────────────────── */
/* 유틸바는 #hd 밖이라 함께 지정하지 않으면 좁은 창에서 상단만 짧아짐 */
.ccms-utility, #hd, #wrapper, #ft { min-width: 1200px; width: 100%; box-sizing: border-box; }

/* 팝업레이어 (bbs/newwin.inc.php) — coreuk UI
   #hd_pop 을 body 에 flex 오버레이로 두고 .hd_pops 를 정중앙 배치
   (헤더 sticky/backdrop-filter 안에서는 fixed 가 깨짐) */
#hd_pop {
  display: none; /* JS: 팝업 있을 때 display:flex */
  position: fixed;
  inset: 0;
  z-index: 1200;
  margin: 0;
  max-width: none;
  height: auto;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
  background: rgba(26, 22, 18, 0.28);
}
#hd_pop h2 {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden; clip: rect(0,0,0,0);
}
.hd_pops {
  /* 관리자 nw_top/nw_left 인라인 좌표 무시 */
  position: relative !important;
  top: auto !important;
  left: auto !important;
  z-index: 1;
  max-width: min(480px, 100%);
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  animation: ccms-hd-pop-in var(--dur-base) var(--ease-emphasized);
}
@keyframes ccms-hd-pop-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.hd_pops_con {
  overflow: auto;
  width: 100% !important;
  max-width: 100%;
  height: auto !important;
  min-height: 80px;
  max-height: min(60vh, 420px);
  padding: 22px 24px;
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.7;
  color: var(--charcoal-800);
  background: #fff;
  box-sizing: border-box;
}
.hd_pops_con img { max-width: 100%; height: auto; }
.hd_pops_footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 14px 10px 16px;
  background: var(--cream);
  border-top: 1px solid var(--border);
  position: relative;
}
.hd_pops_footer:after { display: none; }
.hd_pops_footer button {
  border: 0;
  font-family: var(--font-sans);
  cursor: pointer;
  transition: color var(--dur-fast) var(--ease-standard),
              background var(--dur-fast) var(--ease-standard);
}
.hd_pops_footer .hd_pops_reject {
  flex: 1;
  min-width: 0;
  padding: 8px 4px;
  background: transparent;
  color: var(--stone-500);
  font-size: 12px;
  line-height: 1.4;
  text-align: left;
}
.hd_pops_footer .hd_pops_reject:hover { color: var(--charcoal-800); }
.hd_pops_footer .hd_pops_reject strong {
  color: var(--primary);
  font-weight: 700;
  margin-right: 2px;
}
.hd_pops_footer .hd_pops_close {
  position: static;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 34px;
  padding: 0 14px;
  border-radius: 4px;
  background: var(--charcoal-800);
  color: var(--ivory);
  font-size: 12px;
  font-weight: 600;
}
.hd_pops_footer .hd_pops_close:hover { background: var(--charcoal-900); }
.hd_pops_footer .hd_pops_close i { font-size: 12px; line-height: 1; }

.ccms-container {
  max-width: var(--ccms-container-max);
  margin: 0 auto;
  padding: 0 var(--ccms-gutter);
}
#wrapper { background: var(--ivory); }
#container { padding: 0; }
.shop-content { padding: 0; }
#hd_login_msg, #wrapper_title, #text_size, #aside { display: none; }

/* ── Typography ─────────────────────────────────────────────────────────── */
.ccms-eyebrow {
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--primary);
}
.ccms-display {
  font-family: var(--font-sans); font-weight: 800;
  font-size: 60px; line-height: 1.05;
  letter-spacing: -0.02em; color: var(--charcoal-800); margin: 0;
}
.ccms-display-sm {
  font-family: var(--font-sans); font-weight: 700;
  font-size: 36px; line-height: 1.15;
  letter-spacing: -0.02em; color: var(--charcoal-800); margin: 0;
}
.ccms-h2 {
  font-family: var(--font-sans); font-weight: 700;
  font-size: 32px; letter-spacing: -0.02em;
  color: var(--charcoal-800); margin: 8px 0 0; line-height: 1.2;
}
.couponcms-campaign .ccms-display    { font-family: var(--font-display); font-weight: 500; }
.couponcms-campaign .ccms-display-sm { font-family: var(--font-display); font-weight: 500; }
.couponcms-campaign .ccms-h2         { font-family: var(--font-display); font-weight: 500; }
.ccms-link {
  font-size: 13px; color: var(--charcoal-800);
  border-bottom: 1px solid transparent;
  transition: border-color var(--dur-base);
}
.ccms-link:hover { border-color: var(--charcoal-800); }

/* ── Sections ───────────────────────────────────────────────────────────── */
.ccms-section        { padding: 88px 0; }
.ccms-section--band  { background: var(--cream); }
.ccms-section--tight { padding: 56px 0; }
.ccms-section-head   { margin-bottom: 36px; }
.ccms-section-head-row {
  display: flex; justify-content: space-between;
  align-items: flex-end; margin-top: 8px;
}

/* ── Utility bar ────────────────────────────────────────────────────────── */
.ccms-utility {
  background: var(--charcoal-900);
  color: var(--stone-300);
  font-size: 11px; letter-spacing: 0.04em;
  /* Layout shell 의 min-width 와 동일 유지 */
}
.ccms-utility-inner {
  display: flex; justify-content: space-between;
  height: 36px; align-items: center;
}
.ccms-utility-left  { display: flex; gap: 12px; align-items: center; }
.ccms-utility-right { display: flex; gap: 18px; }
.ccms-utility-right a { color: var(--stone-300); }
.ccms-utility-right a:hover { color: #fbf9f4; }
.ccms-utility .sep  { opacity: 0.4; }

/* ── Header ─────────────────────────────────────────────────────────────── */
.ccms-header,
#hd.ccms-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(251,249,244,.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}
.ccms-header-main {
  display: flex; align-items: center;
  gap: 32px; height: 78px;
}
.ccms-logo { display: flex; align-items: center; height: 100%; }
/* 로고 높이 = 헤더 높이의 90% */
.ccms-logo img { height: 90%; width: auto; max-width: 240px; object-fit: contain; }
.ccms-nav { display: flex; gap: 28px; margin-left: 20px; }
.ccms-nav-item {
  font-size: 14px; font-weight: 500;
  color: var(--charcoal-800); padding: 6px 0;
  position: relative;
}
.ccms-nav-item.on { color: var(--primary); }
.ccms-nav-item.on::after {
  content: ''; position: absolute;
  bottom: -2px; left: 0; right: 0;
  height: 2px; background: var(--primary);
}
.ccms-nav-item.muted { color: var(--stone-500); }
.ccms-nav-item:hover { color: var(--primary); }
/* 상단 브랜드 메뉴 드롭다운 */
/* 메인 재구성 — 이미지/문구 섹션 */
.ccms-mainimg { position: relative; }
.ccms-mainimg-img { display: block; width: 100%; height: auto; }
.ccms-mainimg-cta { text-align: center; margin-top: 20px; }

/* 기본 가로형 히어로 슬라이더 (배너 미등록 시) — 이미지 비율(8:3)에 맞춰 크롭 없이 전체 표시 */
.ccms-defhero { position: relative; width: 100%; aspect-ratio: 8 / 3; max-height: 620px; overflow: hidden; background: var(--cream); }
.ccms-defhero-slide { position: absolute; inset: 0; display: flex; align-items: center; background-size: cover; background-position: center; opacity: 0; transition: opacity .8s var(--ease-standard); }
.ccms-defhero-slide::before {
  content: ''; position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(90deg, rgba(251,249,244,.92) 0%, rgba(251,249,244,.72) 42%, rgba(251,249,244,.18) 70%, rgba(251,249,244,.05) 100%);
}
.ccms-defhero-slide.is-active { opacity: 1; }
.ccms-defhero-slide .ccms-container { position: relative; z-index: 1; width: 100%; }
.ccms-defhero-copy { max-width: 480px; }
.ccms-defhero-ey { display: block; font-size: 14px; font-weight: 800; letter-spacing: 3px; }
.ccms-defhero-title { font-weight: 800; font-size: 44px; line-height: 1.2; letter-spacing: -.5px; margin: 14px 0 12px; color: var(--charcoal-800); }
.ccms-defhero-sub { font-size: 17px; line-height: 1.6; color: var(--stone-500); margin-bottom: 24px; }
.ccms-defhero-dots { position: absolute; left: 0; right: 0; bottom: 20px; display: flex; justify-content: center; gap: 8px; z-index: 2; }
.ccms-defhero-dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: rgba(38,35,30,.28); cursor: pointer; transition: all var(--dur-base) var(--ease-standard); }
.ccms-defhero-dot.on { width: 22px; border-radius: 5px; background: var(--charcoal-800); }
.ccms-fullimg { display: block; width: 100%; height: 460px; object-fit: cover; object-position: center; border-radius: 10px; }
.ccms-headline { padding-top: 44px; padding-bottom: 8px; }

/* 인트로 좌우 2단 에디토리얼 (PC) */
.ccms-editorial { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.ccms-editorial-text { max-width: 520px; }
.ccms-editorial-action { margin-top: 24px; }
.ccms-editorial-media { align-self: stretch; }
.ccms-editorial-img { display: block; width: 100%; height: 100%; min-height: 400px; max-height: 560px; object-fit: cover; border-radius: 12px; }
@media (max-width: 980px) {
  .ccms-editorial { grid-template-columns: 1fr; gap: 28px; }
  .ccms-editorial-text { max-width: none; }
  .ccms-editorial-img { min-height: 0; max-height: 440px; }
  .ccms-fullimg { height: 340px; }
}

/* 미디어 슬라이더 (영상+이미지) — 인트로 이미지와 동일 크기 */
.ccms-media-slider { position: relative; width: 100%; height: 100%; min-height: 400px; max-height: 560px; border-radius: 12px; overflow: hidden; background: var(--charcoal-900); }
.ccms-media-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .6s var(--ease-standard); }
.ccms-media-slide.is-active { opacity: 1; z-index: 1; }
.ccms-media-el { width: 100%; height: 100%; object-fit: cover; display: block; background: var(--charcoal-900); }
.ccms-media-dots { position: absolute; left: 0; right: 0; bottom: 14px; display: flex; justify-content: center; gap: 7px; z-index: 3; }
.ccms-media-dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.55); cursor: pointer; transition: all var(--dur-base) var(--ease-standard); }
.ccms-media-dot.on { width: 20px; border-radius: 4px; background: #fff; }
@media (max-width: 980px) { .ccms-media-slider { min-height: 0; height: 300px; } }
.ccms-nav-has-sub { position: relative; }
.ccms-nav-has-sub > a { cursor: pointer; }
.ccms-nav-sub {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 6px;
  min-width: 150px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 8px 0;
  box-shadow: 0 10px 28px rgba(30, 24, 16, 0.10);
  z-index: 200;
}
.ccms-nav-has-sub:hover .ccms-nav-sub { display: block; }
.ccms-nav-sub a {
  display: block;
  padding: 8px 18px;
  font-size: 13px;
  color: var(--stone-600, #5c5348);
  white-space: nowrap;
}
.ccms-nav-sub a:hover { background: var(--sand); color: var(--primary); }
.ccms-header-tools {
  margin-left: auto; display: flex;
  align-items: center; gap: 14px;
}
.ccms-search {
  display: flex; align-items: center; gap: 8px;
  background: #fff; border: 1px solid var(--border);
  border-radius: 999px; padding: 0 16px;
  height: 40px; width: 240px; color: var(--stone-500);
}
.ccms-search input {
  border: 0 !important; outline: 0;
  background: transparent; width: 100%;
  font-size: 13px; color: var(--charcoal-800);
  box-shadow: none !important;
}
.ccms-icon-btn {
  position: relative; width: 40px; height: 40px;
  border: 0; background: transparent; border-radius: 999px;
  color: var(--charcoal-800); font-size: 18px;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background var(--dur-base);
}
.ccms-icon-btn:hover { background: var(--stone-100); }
.ccms-count {
  position: absolute; top: 4px; right: 4px;
  background: var(--primary); color: #fbf9f4;
  font-size: 10px; font-weight: 700;
  border-radius: 999px; min-width: 16px; height: 16px;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0 5px;
}

/* ── Side quick panel ───────────────────────────────────────────────────── */
#side_menu {
  position: fixed; right: 0; top: 50%;
  transform: translateY(-50%);
  z-index: 100;
}
#quick { display: flex; flex-direction: column; gap: 0; list-style: none; margin: 0; padding: 0; }
#quick li { display: block; }
.btn_sm {
  width: 48px; height: 48px;
  background: var(--charcoal-900); border: 0;
  color: #fbf9f4; font-size: 15px;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 2px;
  transition: background var(--dur-base);
}
.btn_sm:hover, .btn_sm_on { background: var(--primary) !important; }
.btn_sm .qk_tit { font-size: 8px; font-family: var(--font-sans); }
#top_btn {
  width: 48px; height: 48px; background: var(--stone-300);
  border: 0; color: var(--charcoal-800); font-size: 16px;
  display: flex; align-items: center; justify-content: center;
  transition: background var(--dur-base);
}
#top_btn:hover { background: var(--stone-400); }
#tabs_con {
  display: none;
  position: absolute; right: 56px; top: 0;
  background: #fff; border: 1px solid var(--border);
  border-radius: 8px; box-shadow: var(--shadow-lg);
  width: 360px; /* 최근본/장바구니 텍스트·가격이 잘리지 않도록 */
  overflow: hidden;
  box-sizing: border-box;
}
.qk_con { display: none; }
.qk_con_wr { padding: 16px; box-sizing: border-box; }
.con_close {
  display: block; width: 100%;
  background: transparent; border: 0;
  border-top: 1px solid var(--border);
  padding: 10px; font-size: 12px;
  color: var(--stone-500); text-align: center;
}
.side_tnb { margin-top: 8px; }
.side_tnb li { padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.side_tnb li:last-child { border-bottom: 0; }
.side_tnb a:hover { color: var(--primary); }

/* ── Buttons ────────────────────────────────────────────────────────────── */
.ccms-btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px; height: 48px; padding: 0 26px; border-radius: 4px;
  font-family: var(--font-sans); font-weight: 600; font-size: 14px;
  border: 0; cursor: pointer;
  box-sizing: border-box; appearance: none; text-decoration: none;
  transition: all var(--dur-base) var(--ease-standard);
}
.ccms-btn-primary              { background: var(--brand-yellow); color: var(--charcoal-900); font-weight: 700; }
.ccms-btn-primary:hover        { background: var(--brand-yellow-600); color: var(--charcoal-900); }
.ccms-btn-secondary            { background: #fff; color: var(--charcoal-800); border: 1px solid var(--charcoal-800); }
.ccms-btn-secondary:hover      { background: var(--charcoal-800); color: #fbf9f4; }
.ccms-btn-ghost                { background: transparent; color: var(--charcoal-800); border: 1px solid var(--border-strong); }
.ccms-btn-ghost:hover          { background: var(--stone-100); }
.ccms-btn-ghost-light          { background: transparent; color: #fbf9f4; border: 1px solid rgba(251,249,244,.5); }
.ccms-btn-ghost-light:hover    { background: rgba(251,249,244,.12); }
.ccms-btn-danger               { background: var(--rose-500, #c0392b); color: #fff; font-weight: 700; }
.ccms-btn-danger:hover         { background: #9f2f24; color: #fff; }
.ccms-btn-sm                   { height: 34px; padding: 0 14px; font-size: 12px; }
.ccms-btn-block                { width: 100%; justify-content: center; }
.ccms-btn:disabled,
.ccms-btn.is-disabled          { opacity: .5; cursor: not-allowed; pointer-events: none; }
.ccms-u-hidden                 { display: none; }

/* ── Hero ───────────────────────────────────────────────────────────────── */
/* defhero와 동일 비율(8:3). 고정 640px은 가로형 일러스트보다 세로로 길어짐 */
.ccms-hero {
  position: relative;
  width: 100%;
  aspect-ratio: 8 / 3;
  max-height: 620px;
  overflow: hidden;
  background: var(--cream);
}
/* 배너 슬라이더가 hero 높이를 꽉 채우도록 */
.ccms-hero .ccms-banner,
.ccms-hero .ccms-banner-stage,
.ccms-hero .ccms-banner-track,
.ccms-hero .ccms-banner-slide { height: 100%; }
.ccms-hero .ccms-banner-slide img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.ccms-hero-img {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
}
.ccms-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg,rgba(38,35,30,.32) 0%,rgba(38,35,30,.1) 45%,rgba(38,35,30,.62) 100%);
}
.ccms-hero-copy {
  position: relative; height: 100%;
  display: flex; flex-direction: column;
  justify-content: flex-end; padding-bottom: 88px;
}
.ccms-hero-copy .ccms-display { font-size: 72px; line-height: 1; }
.ccms-hero-actions { margin-top: 32px; display: flex; gap: 12px; }
.ccms-hero-dots {
  position: absolute; bottom: 40px; right: 40px;
  display: flex; gap: 8px;
}
.ccms-hero-dots span {
  width: 8px; height: 8px;
  background: rgba(251,249,244,.4);
  border-radius: 50%;
  transition: background var(--dur-base), width var(--dur-base), border-radius var(--dur-base);
}
.ccms-hero-dots span.on { background: #fbf9f4; width: 20px; border-radius: 4px; }

/* ── Category tiles (레거시 .ccms-cat-tile용 — 메인 균일 그리드는 하단 .ccms-cat-grid 재정의) ── */
.ccms-cat-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  gap: 16px;
  /* height:420px 제거 — 4분류 2행일 때 베스트 섹션으로 오버플로되던 원인 */
}
.ccms-cat-tile {
  position: relative; overflow: hidden;
  border-radius: 8px; cursor: pointer; display: block;
}
.ccms-cat-tile:first-child { grid-row: 1 / span 2; }
.ccms-cat-img {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  transition: transform 600ms ease;
}
.ccms-cat-tile:hover .ccms-cat-img { transform: scale(1.04); }
.ccms-cat-tile::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg,transparent 50%,rgba(38,35,30,.6));
}
.ccms-cat-label {
  position: absolute; left: 20px; bottom: 18px;
  color: #fbf9f4; z-index: 2;
}
.ccms-cat-label .ccms-cat-ko {
  display: block; font-size: 20px;
  font-weight: 700; letter-spacing: -0.01em;
}
.couponcms-campaign .ccms-cat-label .ccms-cat-ko {
  font-family: var(--font-display); font-weight: 500;
  font-size: 22px; letter-spacing: 0;
}
.ccms-cat-label .ccms-cat-en {
  font-size: 10px; letter-spacing: 0.2em;
  text-transform: uppercase; opacity: 0.8;
}

/* ── Product grid + card ────────────────────────────────────────────────── */
.ccms-grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }
.ccms-grid-5 { display: grid; grid-template-columns: repeat(5,1fr); gap: 20px; }

.ccms-pcard {
  background: #fff; border: 1px solid var(--border);
  border-radius: 8px; overflow: hidden; cursor: pointer;
  transition: box-shadow var(--dur-base), transform var(--dur-base);
  display: block;
}
.ccms-pcard:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }

/* 1:1 박스 — 썸네일에 HTML width/height(원본 비율)가 있어도 꽉 채움 */
.ccms-pcard-img {
  position: relative;
  width: 100%;
  aspect-ratio: 1/1;
  background-color: var(--sand);
  overflow: hidden;
}
.ccms-pcard-img > a:not(.ccms-wish) {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 1;
}
/* list.20: a>img / relation.10: img 직접(링크는 부모) 모두 1:1 꽉 채움 */
.ccms-pcard-img > a:not(.ccms-wish) > img,
.ccms-pcard-img > img {
  position: absolute;
  top: 0; left: 0;
  width: 100% !important;
  height: 100% !important;
  min-width: 100%;
  min-height: 100%;
  max-width: none;
  object-fit: cover !important;
  object-position: center;
  display: block;
  transition: transform 400ms ease;
  z-index: 0;
}
.ccms-pcard:hover .ccms-pcard-img > a:not(.ccms-wish) > img,
.ccms-pcard:hover .ccms-pcard-img > img { transform: scale(1.03); }

.ccms-tags {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  pointer-events: none;
}
.ccms-tags .ccms-tag {
  position: static;
  top: auto;
  left: auto;
}
.ccms-tag {
  position: absolute; top: 12px; left: 12px;
  padding: 4px 8px; font-size: 10px;
  letter-spacing: 0.1em; font-weight: 700;
  border-radius: 2px; color: #fbf9f4;
  z-index: 2;
}
.ccms-tag-dark    { background: var(--charcoal-800); }
.ccms-tag-new     { background: var(--primary); }
.ccms-tag-best    { background: var(--brand-yellow, #f5c518); color: var(--charcoal-800, #2c2620); }
.ccms-tag-sale    { background: var(--rose-500); }
.ccms-tag-soft    { background: var(--couponcms-green-100); color: var(--primary); }
.ccms-tag-soldout { background: var(--stone-200); color: var(--stone-500); }

.ccms-wish {
  position: absolute; top: 10px; right: 10px; left: auto;
  width: 32px; height: 32px;
  margin: 0; padding: 0;
  background: #fff; border: 0;
  box-shadow: 0 1px 4px rgba(0,0,0,.18);
  border-radius: 999px; color: var(--charcoal-800);
  cursor: pointer; z-index: 3;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; line-height: 1;
  text-decoration: none;
  transition: color var(--dur-fast), box-shadow var(--dur-fast);
  box-sizing: border-box;
}
.ccms-wish i {
  display: block;
  margin: 0;
  padding: 0;
  font-size: 14px;
  line-height: 1;
  width: 1em;
  height: 1em;
  text-align: center;
}
.ccms-wish:hover, .ccms-wish.on { color: var(--rose-500); box-shadow: 0 2px 8px rgba(0,0,0,.22); }
.ccms-wish .bi-heart-fill { color: var(--rose-500); }

.ccms-pcard-body { padding: 16px 18px 20px; }
.ccms-pcard-ey {
  font-size: 10px;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--stone-400);
  margin: 0 0 6px;
  line-height: 1.2;
  min-height: 14px;
  font-weight: 600;
}
.ccms-pcard-ey--img { text-transform: none; letter-spacing: 0; }
.ccms-pcard-ey--img img {
  max-height: 15px; max-width: 160px; width: auto;
  object-fit: contain; object-position: 0 50%;
  display: block;
}
.ccms-pcard-name {
  font-size: 14px; color: var(--charcoal-800);
  margin-top: 0; line-height: 1.45; min-height: 40px;
}
.ccms-pcard-prow {
  display: flex; align-items: baseline;
  gap: 8px; margin-top: 10px;
}
.ccms-pcard-was  { font-size: 12px; color: var(--stone-300); text-decoration: line-through; }
.ccms-pcard-now  { font-size: 17px; font-weight: 700; color: var(--charcoal-800); letter-spacing: -0.01em; }
.ccms-pcard-off  { font-size: 13px; font-weight: 700; color: var(--rose-500); }
.ccms-pcard-meta {
  display: flex; justify-content: space-between; align-items: center;
  gap: 8px;
  font-size: 11px; color: var(--stone-500); margin-top: 8px;
}
.ccms-pcard-meta--ship-only { justify-content: flex-end; }
.ccms-pcard-rating { display: inline-flex; align-items: center; gap: 4px; }
.ccms-pcard-rating .bi-star-fill { color: var(--stone-300); font-size: 10px; }
.ccms-pcard-rating--empty { min-width: 0; }
.ccms-pcard-free {
  background: var(--couponcms-green-100); color: var(--primary);
  font-weight: 600; padding: 2px 6px; border-radius: 2px;
  font-size: 10px; letter-spacing: 0.04em;
  flex-shrink: 0; white-space: nowrap;
}
.sct_noitem { text-align: center; padding: 60px 0; color: var(--stone-500); font-size: 14px; }

/* ── Editorial split ────────────────────────────────────────────────────── */
.ccms-split {
  display: grid; grid-template-columns: 1.1fr 1fr;
  gap: 72px; align-items: center;
}
.ccms-split-img {
  aspect-ratio: 4/5; background-size: cover;
  background-position: center; border-radius: 8px;
}
.ccms-split-actions { margin-top: 28px; }

/* ── Promo band ──────────────────────────────────────────────────────────── */
.ccms-promo-band {
  background: var(--couponcms-green-900, #2c2620);
}
.ccms-promo-inner {
  display: flex; align-items: center; justify-content: space-between;
  /* 좌우 여백은 .ccms-container(--ccms-gutter)와 동일하게 유지 → 헤더/푸터와 정렬 통일 */
  gap: 24px; padding: 32px var(--ccms-gutter, 40px);
}
.ccms-promo-title {
  /* 다크그린 밴드 위 제목: 아이보리 (디자인 시스템) */
  font-size: 24px; font-weight: 700; color: var(--ivory);
  margin: 6px 0 4px; line-height: 1.2;
}
.ccms-promo-sub { font-size: 13px; color: rgba(251,249,244,.7); }

/* ── Trust strip ────────────────────────────────────────────────────────── */
/* 푸터(ccms-container > ccms-footer-top)와 동일: .ccms-trust는 안쪽에만, 가로 40px은 바깥 .ccms-container */
.ccms-trust {
  display: grid; grid-template-columns: repeat(4,1fr); gap: 24px;
  border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
  padding-top: 32px; padding-bottom: 32px;
  width: 100%;
  box-sizing: border-box;
}
.ccms-trust-item { display: flex; align-items: center; gap: 14px; }
.ccms-trust-ic {
  width: 44px; height: 44px; border-radius: 999px;
  background: var(--cream);
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--primary); font-size: 18px; flex-shrink: 0;
}
.ccms-trust-t { font-size: 13px; font-weight: 600; color: var(--charcoal-800); }
.ccms-trust-d { font-size: 12px; color: var(--stone-500); margin-top: 2px; }

/* ── Main banner (hero area) ────────────────────────────────────────────── */
#idx_banner { margin: 0; }
.mainbanner { margin: 0; }

/* ── Input focus override ───────────────────────────────────────────────── */
input[type=text]:focus,
input[type=password]:focus,
textarea:focus,
select:focus {
  box-shadow: 0 0 0 3px rgba(51,104,63,.14);
  border: 1px solid var(--primary) !important;
  outline: none;
}

/* ── Footer ─────────────────────────────────────────────────────────────── */
#ft {
  background: var(--charcoal-900);
  color: var(--stone-300);
  margin-top: 0;
  /* #hd/#wrapper 와 동일 — PC 스킨을 좁은 뷰포트에서 볼 때 푸터만 짧아지는 현상 방지 */
  min-width: 1200px;
  width: 100%;
  box-sizing: border-box;
}
#ft > .ccms-container { padding-top: 0; padding-bottom: 0; }
.ccms-footer-top {
  display: grid; grid-template-columns: 1.3fr 2fr;
  gap: 64px;
  padding: 72px 0 56px;
  box-sizing: border-box;
}
.ccms-news-form { margin-top: 18px; display: flex; gap: 8px; max-width: 380px; }
.ccms-news-form input {
  flex: 1; height: 44px; padding: 0 14px;
  background: rgba(251,249,244,.08);
  border: 1px solid rgba(251,249,244,.12) !important;
  border-radius: 2px; color: #fbf9f4; outline: 0; font-size: 13px;
}
.ccms-news-form input:focus {
  border-color: rgba(170,196,176,.6) !important;
  box-shadow: none !important;
}
.ccms-news-form .ccms-btn {
  flex-shrink: 0;
  height: 44px;
  padding: 0 20px;
  border-radius: 2px;
  white-space: nowrap;
}
.ccms-footer-links { display: grid; grid-template-columns: repeat(3,1fr); gap: 40px; }
.ccms-footer-links h5 { font-size: 13px; color: #fbf9f4; margin: 0 0 16px; }
.ccms-footer-links a { display: block; font-size: 13px; color: var(--stone-400); padding: 4px 0; }
.ccms-footer-links a:hover { color: #fbf9f4; }
.ccms-footer-bottom {
  border-top: 1px solid rgba(251,249,244,.08);
  padding: 24px 0 36px;
  font-size: 11px; color: var(--stone-500); line-height: 1.8;
}

/* ── Font Awesome 4 compat ───────────────────────────────────────────────── */
.fa { font-size: inherit; }

/* ══════════════════════════════════════════════════════════════════════════
   PLP — 상품 목록 페이지
   ══════════════════════════════════════════════════════════════════════════ */

/* 카테고리 헤더 배너 */
.ccms-cat-header {
  position: relative; height: 280px;
  background-size: cover; background-position: center;
  background-color: var(--sand);
}
.ccms-cat-header-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(38,35,30,.35), rgba(38,35,30,.55));
}
.ccms-cat-header-copy {
  position: relative; height: 100%;
  display: flex; flex-direction: column; justify-content: center;
}
.ccms-breadcrumb { font-size: 12px; color: rgba(255,255,255,0.75); margin-top: 12px; }
.ccms-breadcrumb a { color: rgba(255,255,255,0.75); }
.ccms-breadcrumb a:hover { color: #fff; }
.ccms-breadcrumb strong { color: #fff; font-weight: 500; }

/* PLP 레이아웃 — 사이드바 + 메인 그리드 */
.ccms-plp-wrap {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 40px;
  padding: 48px 40px 80px;
  max-width: 1280px;
  margin: 0 auto;
}
.ccms-plp-side { min-width: 0; }
.ccms-plp-main { min-width: 0; }

/* 사이드바 섹션 */
.ccms-side-group { border-bottom: 1px solid var(--border); padding: 20px 0; }
.ccms-side-group:first-child { padding-top: 0; }
.ccms-side-group h4 {
  font-size: 13px; font-weight: 600;
  margin: 0 0 14px; color: var(--charcoal-800);
}
.ccms-side-group ul { list-style: none; margin: 0; padding: 0; }
.ccms-side-group li {
  display: flex; justify-content: space-between;
  padding: 7px 0; font-size: 13px; color: var(--stone-500);
  cursor: pointer; border-radius: 4px;
  transition: color var(--dur-fast);
}
.ccms-side-group li:hover { color: var(--charcoal-800); }
.ccms-side-group li.on { color: var(--primary); font-weight: 600; }
.ccms-side-group li .num { color: var(--stone-300); font-size: 11px; }
.ccms-side-group label {
  display: flex; gap: 8px; align-items: center;
  cursor: pointer; font-size: 13px; color: var(--stone-500);
  padding: 6px 0; transition: color var(--dur-fast);
}
.ccms-side-group label:hover { color: var(--charcoal-800); }
.ccms-side-group input[type=checkbox],
.ccms-side-group input[type=radio] { accent-color: var(--primary); }

/* 색상 스와치 */
.ccms-colors { display: flex; gap: 8px; flex-wrap: wrap; }
.ccms-color-dot {
  width: 22px; height: 22px; border-radius: 999px;
  border: 1px solid var(--border); cursor: pointer;
  transition: transform var(--dur-fast), box-shadow var(--dur-fast);
}
.ccms-color-dot:hover { transform: scale(1.15); box-shadow: 0 0 0 2px var(--primary); }

/* 툴바 */
.ccms-plp-toolbar {
  display: flex; justify-content: space-between; align-items: center;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 24px;
}
.ccms-plp-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.ccms-chip {
  background: #fff; border: 1px solid var(--border);
  padding: 7px 16px; border-radius: 999px;
  font-size: 13px; color: var(--stone-500); cursor: pointer;
  transition: all var(--dur-base);
}
.ccms-chip:hover { border-color: var(--primary); color: var(--primary); }
.ccms-chip.on { background: var(--primary); color: #fbf9f4; border-color: var(--primary); }
.ccms-plp-right { display: flex; align-items: center; gap: 14px; }
.ccms-plp-count { font-size: 13px; color: var(--stone-500); }
.ccms-select {
  height: 36px; padding: 0 12px;
  border: 1px solid var(--border); background: #fff;
  border-radius: 2px; font-size: 13px;
  color: var(--charcoal-800); outline: 0; cursor: pointer;
}

/* 페이지네이션 */
.ccms-pagination {
  display: flex; justify-content: center;
  gap: 6px; margin-top: 56px;
}
.ccms-pagination a, .ccms-pagination strong, .ccms-pagination span {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  border: 1px solid var(--border); background: #fff;
  border-radius: 2px; font-size: 13px; color: var(--stone-500);
  text-decoration: none; transition: all var(--dur-base);
}
.ccms-pagination a:hover { border-color: var(--primary); color: var(--primary); }
.ccms-pagination strong, .ccms-pagination .on {
  background: var(--charcoal-800); color: #fbf9f4;
  border-color: var(--charcoal-800); font-weight: 700;
}

/* 그누보드 get_paging() — #pg_wrap / .pg_wrap / .ccms-paging 공통
   상품 그리드 ↔ 푸터 사이 상·하 동일 여백 */
#pg_wrap,
.pg_wrap,
.ccms-paging {
  clear: both;
  float: none;
  display: block;
  width: 100%;
  max-width: 1280px;
  margin: 48px auto;
  padding: 0;
  text-align: center;
  box-sizing: border-box;
}
.ccms-paging .pg_wrap,
.ccms-paging #pg_wrap {
  margin: 0;
  max-width: none;
  width: auto;
  display: inline-block;
}
#pg_wrap .pg,
.pg_wrap .pg,
.ccms-paging .pg {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 6px;
  text-align: center;
}
#pg_wrap .pg_page,
#pg_wrap .pg_current,
.pg_wrap .pg_page,
.pg_wrap .pg_current,
.ccms-paging .pg_page,
.ccms-paging .pg_current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  margin: 0;
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 2px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  color: var(--stone-500);
  text-decoration: none;
  text-indent: 0;
  overflow: visible;
  vertical-align: middle;
  transition: border-color var(--dur-base), color var(--dur-base), background var(--dur-base);
}
#pg_wrap .pg_page:hover,
.pg_wrap .pg_page:hover,
.ccms-paging .pg_page:hover {
  border-color: var(--primary);
  color: var(--primary);
  background: #fff;
}
#pg_wrap .pg_current,
.pg_wrap .pg_current,
.ccms-paging .pg_current {
  background: var(--charcoal-800);
  color: #fbf9f4;
  border-color: var(--charcoal-800);
  font-weight: 700;
}
/* 처음/이전/다음/맨끝 — 기본 gif+text-indent 제거, 텍스트 버튼으로 */
#pg_wrap .pg_start,
#pg_wrap .pg_prev,
#pg_wrap .pg_next,
#pg_wrap .pg_end,
.pg_wrap .pg_start,
.pg_wrap .pg_prev,
.pg_wrap .pg_next,
.pg_wrap .pg_end,
.ccms-paging .pg_start,
.ccms-paging .pg_prev,
.ccms-paging .pg_next,
.ccms-paging .pg_end {
  width: auto;
  min-width: 36px;
  padding: 0 12px;
  text-indent: 0;
  overflow: visible;
  background-image: none;
  background-color: #fff;
}

/* ══════════════════════════════════════════════════════════════════════════
   PDP — 상품 상세 페이지
   ══════════════════════════════════════════════════════════════════════════ */

.ccms-pdp { padding: 32px 0 80px; }
.ccms-pdp-breadcrumb { font-size: 12px; color: var(--stone-500); margin-bottom: 24px; }
.ccms-pdp-breadcrumb a { color: var(--stone-500); }
.ccms-pdp-breadcrumb a:hover { color: var(--primary); }

/* 이미지 갤러리 */
.ccms-pdp-top {
  display: grid; grid-template-columns: 1.05fr 1fr;
  gap: 56px; align-items: start;
}
.ccms-pdp-gallery {}
.ccms-pdp-main-img {
  position: relative; aspect-ratio: 1/1;
  border-radius: 8px; overflow: hidden;
  background-color: var(--sand);
}
.ccms-pdp-main-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* 숨김 대상: 다중 이미지용 숨은 링크만 — 줌 버튼(.ccms-pdp-zoom)은 유지 */
.ccms-pdp-main-img > a.popup_item_image:not(.ccms-pdp-zoom) { display: none; }
.ccms-pdp-main-img > a.popup_item_image.visible { display: block !important; width: 100%; height: 100%; }
.ccms-pdp-thumbs {
  display: grid; grid-template-columns: repeat(5,1fr);
  gap: 8px; margin-top: 10px;
}
.ccms-pdp-thumb {
  aspect-ratio: 1/1; overflow: hidden;
  border-radius: 4px; border: 1px solid var(--border);
  cursor: pointer; transition: border-color var(--dur-base);
}
.ccms-pdp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ccms-pdp-thumb:hover { border-color: var(--stone-400); }
.ccms-pdp-thumb.on { border: 2px solid var(--charcoal-800); }

/* 상품 정보 영역 */
.ccms-pdp-info { padding-top: 4px; }
.ccms-pdp-brand {
  font-size: 11px; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--stone-400);
}
.ccms-pdp-name {
  font-family: var(--font-sans); font-size: 30px;
  font-weight: 700; margin: 10px 0 4px;
  line-height: 1.2; color: var(--charcoal-800);
  letter-spacing: -0.02em;
}
.ccms-pdp-desc { font-size: 13px; color: var(--stone-500); line-height: 1.6; margin-top: 2px; }
.ccms-pdp-rating {
  display: flex; gap: 10px; font-size: 13px;
  color: var(--stone-500); margin-top: 14px;
  align-items: center; flex-wrap: wrap;
}
.ccms-pdp-rating .sep { opacity: 0.4; }
.ccms-pdp-rating a {
  border-bottom: 1px solid var(--stone-300);
  padding-bottom: 1px; color: var(--stone-500);
}
.ccms-pdp-rating a:hover { color: var(--primary); border-color: var(--primary); }

/* 가격 블록 */
.ccms-pdp-price {
  margin: 24px 0;
  padding: 20px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.ccms-pdp-was { font-size: 13px; color: var(--stone-300); text-decoration: line-through; }
.ccms-pdp-now-row {
  display: flex; align-items: baseline;
  gap: 10px; margin-top: 4px;
}
.ccms-pdp-off { font-size: 22px; font-weight: 700; color: var(--rose-500); }
.ccms-pdp-now {
  font-size: 30px; font-weight: 700;
  color: var(--charcoal-800); letter-spacing: -0.02em;
}
.ccms-pdp-save { font-size: 12px; color: var(--stone-500); margin-top: 4px; }

/* 메타 정보 테이블 */
.ccms-pdp-meta-list { list-style: none; margin: 0 0 16px; padding: 0; }
.ccms-pdp-meta-list li {
  display: grid; grid-template-columns: 70px 1fr;
  gap: 12px; padding: 10px 0;
  font-size: 13px; color: var(--charcoal-800);
  align-items: start;
  border-bottom: 1px solid var(--border);
}
.ccms-pdp-meta-list li > span:first-child { color: var(--stone-500); padding-top: 1px; }

/* 수량 선택기 */
.ccms-pdp-qty-row {
  display: flex; justify-content: space-between;
  align-items: center; padding: 16px 0;
}
.ccms-qty {
  display: inline-flex;
  border: 1px solid var(--border-strong); border-radius: 2px;
}
.ccms-qty button {
  width: 36px; height: 36px; background: transparent;
  border: 0; font-size: 16px; cursor: pointer;
  color: var(--charcoal-800);
  transition: background var(--dur-fast);
}
.ccms-qty button:hover { background: var(--stone-100); }
/* 수량 숫자칸용 — 버튼 안 .sound_only 에는 적용하지 않음 */
.ccms-qty > span:not(.sound_only) {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 48px; height: 36px;
  font-size: 14px; font-weight: 600; color: var(--charcoal-800);
  border-left: 1px solid var(--border-strong);
  border-right: 1px solid var(--border-strong);
}
.ccms-qty input.num_input {
  width: 48px; height: 36px; text-align: center;
  border: 0 !important; border-left: 1px solid var(--border-strong) !important;
  border-right: 1px solid var(--border-strong) !important;
  font-size: 14px; font-weight: 600;
  outline: none; box-shadow: none !important;
  background: transparent;
}
.ccms-pdp-total { font-size: 14px; }
.ccms-pdp-total span { font-size: 12px; color: var(--stone-500); margin-right: 10px; }
.ccms-pdp-total strong {
  font-family: var(--font-sans); font-size: 24px;
  font-weight: 700; color: var(--charcoal-800);
  letter-spacing: -0.01em;
}

/* 구매 버튼 영역 */
.ccms-pdp-actions {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 8px; margin-top: 16px;
}
.ccms-pdp-actions-wish {
  grid-column: 1 / -1;
}
/* 상세 찜 — 문구는 '찜하기' 유지, 아이콘은 리스트(.ccms-wish)와 동일 흰원+핑크 하트 */
.ccms-pdp-actions .ccms-pdp-wish-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: var(--charcoal-800);
}
.ccms-pdp-actions .ccms-pdp-wish-btn i {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  color: var(--charcoal-800);
  transition: color var(--dur-fast), box-shadow var(--dur-fast);
}
.ccms-pdp-actions .ccms-pdp-wish-btn:hover i,
.ccms-pdp-actions .ccms-pdp-wish-btn.on i {
  color: var(--rose-500);
  box-shadow: 0 2px 8px rgba(0,0,0,.22);
}
.ccms-pdp-actions .ccms-pdp-wish-btn.on {
  color: var(--charcoal-800);
  border-color: var(--border-strong);
  background: #fff;
}
.ccms-pdp-trust {
  display: flex; gap: 18px; flex-wrap: wrap;
  margin-top: 18px; padding-top: 18px;
  border-top: 1px solid var(--border);
  font-size: 12px; color: var(--stone-500);
}
.ccms-pdp-trust i { color: var(--primary); margin-right: 4px; }

/* 탭 영역 */
.ccms-pdp-tabs {
  display: flex; margin-top: 80px;
  border-bottom: 2px solid var(--border);
}
.ccms-pdp-tabs button {
  flex: 1; background: transparent; border: 0;
  padding: 18px 8px; font-size: 14px; font-weight: 500;
  color: var(--stone-400); cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color var(--dur-base), border-color var(--dur-base);
}
.ccms-pdp-tabs button:hover { color: var(--charcoal-800); }
.ccms-pdp-tabs button.on {
  color: var(--charcoal-800);
  border-bottom-color: var(--charcoal-800);
  font-weight: 600;
}
/* 기존 sit_tab 탭 오버라이드 */
#sit_tab .tab_tit { display: flex; border-bottom: 2px solid var(--border); margin: 80px 0 0; padding: 0; list-style: none; }
#sit_tab .tab_tit li { flex: 1; }
#sit_tab .tab_tit button {
  width: 100%; background: transparent; border: 0;
  padding: 18px 8px; font-size: 14px; font-weight: 500;
  color: var(--stone-400); cursor: pointer;
  border-bottom: 2px solid transparent; margin-bottom: -2px;
  transition: color var(--dur-base);
  font-family: var(--font-sans);
}
#sit_tab .tab_tit button:hover { color: var(--charcoal-800); }
#sit_tab .tab_tit button.selected {
  color: var(--charcoal-800); border-bottom-color: var(--charcoal-800); font-weight: 600;
}
#sit_tab .tab_con { list-style: none; padding: 0; margin: 0; }
#sit_tab .tab_con > li { padding: 40px 0; display: none; }
#sit_tab .tab_con > li.selected { display: block; }
.ccms-pdp-tab-body { padding: 40px 0; }

/* 리뷰 요약 */
.ccms-review-summary {
  display: grid; grid-template-columns: 200px 1fr;
  gap: 48px; background: var(--cream); border-radius: 8px;
  padding: 32px; margin-bottom: 28px; align-items: center;
}
.ccms-review-score { text-align: center; }
.ccms-review-score-num {
  font-family: var(--font-sans); font-size: 48px;
  font-weight: 700; letter-spacing: -0.02em; color: var(--charcoal-800);
}
.ccms-review-score-stars { color: #b8862a; font-size: 16px; letter-spacing: 2px; }
.ccms-review-score-cnt { font-size: 12px; color: var(--stone-500); margin-top: 6px; }
.ccms-review-bars { display: flex; flex-direction: column; gap: 8px; }
.ccms-review-bar {
  display: grid; grid-template-columns: 16px 1fr 44px;
  gap: 12px; align-items: center;
  font-size: 12px; color: var(--stone-500);
}
.ccms-bar { height: 6px; background: var(--stone-100); border-radius: 999px; overflow: hidden; }
.ccms-bar-fill { display: block; height: 100%; background: var(--primary); }
.ccms-review-item { padding: 20px 0; border-bottom: 1px solid var(--border); }
.ccms-review-item:last-child { border-bottom: 0; }
.ccms-review-head {
  display: flex; gap: 12px; align-items: center;
  font-size: 13px; color: var(--charcoal-800);
}
.ccms-review-head .date { margin-left: auto; color: var(--stone-400); font-size: 12px; }
.ccms-review-text { margin-top: 10px; font-size: 13px; color: var(--charcoal-700); line-height: 1.6; }

/* 배송/교환 탭 */
.ccms-pdp-ship h4 { font-size: 14px; margin: 0 0 6px; color: var(--charcoal-800); }
.ccms-pdp-ship h4 + h4 { margin-top: 20px; }
.ccms-pdp-ship p { color: var(--stone-500); line-height: 1.7; margin: 0; font-size: 13px; }

/* 관련상품 */
.ccms-pdp-related {
  margin-top: 0;
  padding: 64px 0;
  background: var(--cream);
  border-top: 1px solid var(--stone-100);
}
#sit_rel h2 { font-size: 11px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--primary); margin-bottom: 8px; }

/* 옵션 선택 */
.sit_option { margin-bottom: 16px; }
.sit_option h3 { font-size: 13px; font-weight: 600; color: var(--stone-500); margin: 0 0 8px; }
.sit_option select { width: 100%; }
.sit_opt_list {
  background: var(--cream); border-radius: 4px;
  padding: 12px 14px; margin-bottom: 8px;
  font-size: 13px; color: var(--charcoal-800);
}
.sit_qty_minus, .sit_qty_plus {
  width: 28px; height: 28px; background: #fff;
  border: 1px solid var(--border); border-radius: 2px;
  font-size: 14px; cursor: pointer;
  position: relative;
}
/* 아이콘 없는 테마 수량버튼만 — 옵션 추가(fa 아이콘)와 이중 표시 방지 */
.ccms-qty .sit_qty_minus::before,
.m-qty .sit_qty_minus::before { content: '−'; }
.ccms-qty .sit_qty_plus::before,
.m-qty .sit_qty_plus::before { content: '+'; }
.sit_opt_prc { font-size: 13px; color: var(--primary); margin-left: 8px; }
#sit_tot_price {
  text-align: right; padding: 16px 0;
  font-size: 14px; color: var(--charcoal-800);
  border-top: 1px solid var(--border);
}
#sit_ov_soldout {
  background: var(--rose-100); color: var(--rose-500);
  padding: 12px 16px; border-radius: 4px;
  font-size: 13px; margin-bottom: 16px;
}

/* ══════════════════════════════════════════════════════════════════════════
   장바구니 — 간략 박스 & 전체 Cart 페이지
   ══════════════════════════════════════════════════════════════════════════ */

/* 사이드 장바구니 박스 */
.ccms-cart-box {}
.ccms-cart-box h3 {
  font-size: 14px; font-weight: 600; color: var(--charcoal-800);
  padding-bottom: 12px; border-bottom: 1px solid var(--border); margin: 0 0 12px;
}
.ccms-cart-box .ccms-cart-count {
  font-size: 13px; color: var(--primary); font-weight: 700;
  background: var(--couponcms-green-100); padding: 2px 8px; border-radius: 999px;
  margin-left: 4px;
}
.ccms-cart-box ul { list-style: none; padding: 0; margin: 0; max-height: 320px; overflow-y: auto; overflow-x: hidden; }
/* 레거시 3열 grid — 최근본/장바구니 flex 행(.ccms-cart-box-row)과 충돌하므로 제외 */
.ccms-cart-box li:not(.ccms-cart-box-row):not(.ccms-cart-box-empty) {
  display: grid; grid-template-columns: 56px 1fr 28px;
  gap: 10px; align-items: center;
  padding: 10px 0; border-bottom: 1px solid var(--border);
  font-size: 13px;
}
.ccms-cart-box li:last-child { border-bottom: 0; }
.ccms-cart-box .prd_img img { width: 56px; height: 56px; object-fit: cover; border-radius: 4px; display: block; }
.ccms-cart-box .prd_name { display: block; color: var(--charcoal-800); font-size: 12px; line-height: 1.4; margin-bottom: 4px; }
.ccms-cart-box .prd_cost { font-size: 13px; font-weight: 600; color: var(--charcoal-800); display: block; }
.ccms-cart-box .cart_del {
  background: transparent; border: 0; color: var(--stone-400);
  font-size: 14px; cursor: pointer; padding: 0;
  transition: color var(--dur-fast);
}
.ccms-cart-box .cart_del:hover { color: var(--rose-500); }
.ccms-cart-box .li_empty { font-size: 13px; color: var(--stone-400); padding: 20px 0; text-align: center; grid-column: 1/-1; }
.ccms-cart-box-footer { padding-top: 12px; border-top: 1px solid var(--border); margin-top: 4px; }
.ccms-cart-box-footer .ccms-btn + .ccms-btn { margin-top: 8px; }
.ccms-cart-box-footer .btn_submit {
  display: block; width: 100%; background: var(--brand-yellow);
  color: var(--charcoal-900); border: 0; padding: 11px; border-radius: 4px;
  font-size: 13px; font-weight: 600; cursor: pointer;
  transition: background var(--dur-base);
}
.ccms-cart-box-footer .btn_submit:hover { background: var(--brand-yellow-600); }
.ccms-cart-box-footer .go_cart {
  display: block; text-align: center;
  margin-top: 8px; font-size: 12px; color: var(--stone-500);
  border-bottom: 1px solid transparent; transition: border-color var(--dur-base);
}
.ccms-cart-box-footer .go_cart:hover { border-color: var(--stone-500); }

/* ══════════════════════════════════════════════════════════════════════════
   마이페이지
   ══════════════════════════════════════════════════════════════════════════ */

#smb_my, .ccms-mypage { padding: 56px 0 100px; }
.ccms-mypage-layout {
  display: grid; grid-template-columns: 260px 1fr;
  gap: 40px; align-items: start;
}
.ccms-mypage-side {
  background: #fff; border: 1px solid var(--border);
  border-radius: 8px; padding: 28px 24px;
  position: sticky; top: 130px;
}
.ccms-profile {
  display: flex; gap: 12px; align-items: center;
  padding-bottom: 24px; border-bottom: 1px solid var(--border);
}
.ccms-profile-avatar {
  width: 52px; height: 52px; border-radius: 999px;
  background: var(--primary); color: #fbf9f4;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 20px; font-weight: 700; flex-shrink: 0;
  overflow: hidden;
}
.ccms-profile-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 999px; }
.ccms-profile-name { font-size: 15px; font-weight: 600; color: var(--charcoal-800); }
.ccms-profile-grade { font-size: 11px; color: var(--primary); letter-spacing: 0.08em; text-transform: uppercase; margin-top: 2px; }
.ccms-profile-stats {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 4px;
  text-align: center; padding: 24px 0;
  border-bottom: 1px solid var(--border);
}
.ccms-profile-stats .v {
  font-family: var(--font-sans); font-size: 18px;
  font-weight: 700; color: var(--charcoal-800); letter-spacing: -0.01em;
}
.ccms-profile-stats .l { font-size: 11px; color: var(--stone-500); margin-top: 2px; }
.ccms-side-menu { list-style: none; margin: 8px 0 0; padding: 0; }
.ccms-side-menu li {
  display: flex; gap: 10px; align-items: center;
  padding: 10px 12px; font-size: 13px; color: var(--stone-500);
  cursor: pointer; border-radius: 4px;
  transition: all var(--dur-base);
}
.ccms-side-menu li:hover { background: var(--cream); color: var(--charcoal-800); }
.ccms-side-menu li.on { background: var(--couponcms-green-100); color: var(--primary); font-weight: 600; }
.ccms-side-menu li i { font-size: 16px; color: var(--stone-400); width: 18px; }
.ccms-side-menu li.on i { color: var(--primary); }
.ccms-side-group-label {
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--stone-400); padding: 14px 12px 4px;
  font-weight: 600; display: block;
}
/* 마이페이지 사이드: 그룹 구분선은 위선(+ border-top) 하나만 — 아래선 제거로 2줄 겹침 방지 */
.ccms-mypage-side .ccms-side-group { border-bottom: 0; padding: 0; }
.ccms-mypage-side .ccms-side-group + .ccms-side-group {
  margin-top: 12px; padding-top: 16px;
  border-top: 1px solid var(--border);
}
.ccms-mypage-main {}
.ccms-mypage-main .ccms-review-item:last-child { border-bottom: 0; }

/* 주문 배송 현황 흐름 */
.ccms-ship-flow {
  display: grid; grid-template-columns: repeat(5,1fr);
  gap: 8px; margin-top: 20px;
  background: var(--cream); border-radius: 8px; padding: 20px;
}
.ccms-ship-step { text-align: center; position: relative; }
.ccms-ship-step:not(:last-child)::after {
  content: ''; position: absolute; top: 18px; right: -50%;
  width: 100%; height: 1px; background: var(--border);
}
.ccms-ship-step .num {
  width: 36px; height: 36px; margin: 0 auto; border-radius: 999px;
  background: #fff; border: 1px solid var(--border);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 600; color: var(--stone-400);
  position: relative; z-index: 1;
}
.ccms-ship-step.on .num { background: var(--primary); color: #fbf9f4; border-color: var(--primary); }
.ccms-ship-step .s { font-size: 12px; color: var(--stone-500); margin-top: 10px; }
.ccms-ship-step .v { font-size: 22px; font-weight: 700; color: var(--charcoal-800); margin-top: 4px; letter-spacing: -0.01em; }

/* 주문 목록 */
.ccms-order-list { margin-top: 14px; }
.ccms-order-list .tbl_head03 { width: 100%; font-size: 13px; }
.ccms-order-list .tbl_head03 table { width: 100%; border-collapse: collapse; }
.ccms-order-list .tbl_head03 caption { font-size: 0; }
.ccms-order-list .tbl_head03 th { background: var(--sand); color: var(--stone-500); font-weight: 600; font-size: 12px; padding: 10px 12px; border-bottom: 1px solid var(--border); text-align: center; }
.ccms-order-list .tbl_head03 td { padding: 12px; border-bottom: 1px solid var(--border); font-size: 13px; color: var(--charcoal-800); text-align: center; }
.ccms-order-list .tbl_head03 tr:last-child td { border-bottom: none; }
.ccms-order-list .tbl_head03 a { color: var(--primary); text-decoration: none; }
.ccms-order-list .tbl_head03 a:hover { text-decoration: underline; }
.ccms-order-row {
  background: #fff; border: 1px solid var(--border);
  border-radius: 8px; padding: 20px 24px; margin-bottom: 12px;
}
.ccms-order-head {
  display: flex; justify-content: space-between;
  font-size: 13px; color: var(--stone-500); margin-bottom: 14px;
}
.ccms-order-head strong { color: var(--charcoal-800); }
.ccms-order-status {
  padding: 4px 10px; background: var(--stone-100);
  border-radius: 999px; font-size: 11px; font-weight: 600; color: var(--stone-500);
}
.ccms-order-status.active, .ccms-order-status.done   { background: var(--couponcms-green-100); color: var(--primary); }
.ccms-order-status.shipping  { background: #e7eff7; color: #4a6b7a; }
.ccms-order-status.pending   { background: #fbf3e4; color: var(--warning, #b8862a); }
.ccms-order-status i { margin-right: 4px; }
.ccms-order-items { display: flex; flex-direction: column; gap: 10px; margin: 10px 0; }
.ccms-order-item { display: flex; gap: 12px; align-items: center; }
.ccms-ck-img {
  width: 56px; height: 56px;
  background-size: cover; background-position: center;
  border-radius: 4px; flex-shrink: 0;
  overflow: hidden;
}
.ccms-ck-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ccms-ck-name { font-size: 13px; color: var(--charcoal-800); line-height: 1.4; }
.ccms-ck-qty  { font-size: 11px; color: var(--stone-500); margin-top: 2px; }
.ccms-order-foot {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 14px; border-top: 1px solid var(--border);
  margin-top: 10px; font-size: 14px; color: var(--charcoal-800); font-weight: 600;
}
.ccms-order-actions { display: flex; gap: 8px; }
.ccms-chips { display: flex; gap: 8px; flex-wrap: wrap; }

/* 테이블 */
.ccms-tbl { width: 100%; border-collapse: collapse; font-size: 13px; border: 1px solid var(--border); }
.ccms-tbl th, .ccms-tbl td { padding: 14px 16px; border-bottom: 1px solid var(--border); text-align: left; }
.ccms-tbl tr:last-child th, .ccms-tbl tr:last-child td { border-bottom: none; }
.ccms-tbl th { background: var(--cream); font-size: 12px; color: var(--stone-500); font-weight: 600; border-right: 1px solid var(--border); }

/* 반품 도움말 배너 */
.ccms-returns-help {
  display: flex; gap: 12px; align-items: flex-start;
  background: var(--cream); border: 1px solid var(--border);
  border-radius: 6px; padding: 16px 20px;
  color: var(--charcoal-700); font-size: 13px; line-height: 1.6; margin-bottom: 16px;
}
.ccms-returns-help i { font-size: 18px; color: var(--primary); margin-top: 2px; flex-shrink: 0; }
.ccms-returns-help strong { color: var(--charcoal-800); display: block; margin-bottom: 2px; font-weight: 600; }

/* 배송지 목록 */
.ccms-address-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ccms-address-card {
  background: #fff; border: 1px solid var(--border);
  border-radius: 8px; padding: 22px 24px;
}
.ccms-address-card.def { border-color: var(--primary); box-shadow: 0 0 0 1px var(--primary) inset; }
.ccms-address-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.ccms-address-body { font-size: 13px; color: var(--charcoal-800); line-height: 1.6; }
.ccms-address-name { font-weight: 600; margin-bottom: 6px; }
.ccms-address-addr { color: var(--charcoal-700); }
.ccms-address-detail { color: var(--stone-500); }

/* 적립금 히어로 */
.ccms-point-hero {
  display: flex; align-items: center; gap: 48px;
  background: var(--cream); border-radius: 8px; padding: 32px 40px; flex-wrap: wrap;
}
.ccms-point-value {
  font-family: var(--font-sans); font-size: 36px;
  font-weight: 700; color: var(--charcoal-800);
  letter-spacing: -0.02em; margin-top: 6px;
}
.ccms-point-meta { font-size: 12px; color: var(--stone-500); margin-top: 6px; }
.ccms-point-sep { width: 1px; height: 64px; background: var(--border); flex-shrink: 0; }

/* ═══════════════════════════════════════════════════════════════════
   포인트 내역 팝업 (bbs/point.php)
   ═══════════════════════════════════════════════════════════════════ */
.ccms-point-win {
  max-width: 520px;
  margin: 0 auto;
  min-height: 100vh;
  background: #fff;
  box-sizing: border-box;
  text-align: left;
}
.ccms-point-win-head {
  display: flex;
  align-items: center;
  padding: 20px 24px;
  border-bottom: 1px solid var(--border);
}
.ccms-point-win-title,
#point.ccms-point-win #win_title {
  margin: 0;
  padding: 0;
  height: auto;
  line-height: 1.3;
  background: transparent;
  box-shadow: none;
  font-size: 18px;
  font-weight: 700;
  color: var(--charcoal-800);
}
.ccms-point-win-body {
  padding: 20px 24px 8px;
}
.ccms-point-balance {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  padding: 18px 20px;
  border: 1px solid var(--couponcms-green-200, #cfe3d6);
  border-radius: 12px;
  background: var(--couponcms-green-50, #f4f9f5);
}
.ccms-point-balance-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--primary);
}
.ccms-point-balance-value {
  font-size: 28px;
  font-weight: 700;
  color: var(--charcoal-800);
  letter-spacing: -0.02em;
  line-height: 1;
}
.ccms-point-balance-value span {
  margin-left: 4px;
  font-size: 14px;
  font-weight: 700;
  color: var(--primary);
}
.ccms-point-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border);
}
.ccms-point-item {
  padding: 16px 0;
  border-bottom: 1px solid var(--border);
}
.ccms-point-item.is-use {
  background: transparent;
}
.ccms-point-item-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}
.ccms-point-item-tit {
  flex: 1;
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--charcoal-800);
  line-height: 1.4;
  word-break: keep-all;
}
.ccms-point-item-num {
  flex-shrink: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--primary);
  line-height: 1.3;
}
.ccms-point-item.is-use .ccms-point-item-num {
  color: #c2410c;
}
.ccms-point-item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  font-size: 12px;
  color: var(--stone-500);
}
.ccms-point-item-date {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.ccms-point-item-expire.is-expired {
  color: #c2410c;
  font-weight: 600;
}
.ccms-point-empty {
  padding: 48px 16px;
  text-align: center;
  color: var(--stone-400);
  border-bottom: 1px solid var(--border);
}
.ccms-point-empty i {
  display: block;
  margin-bottom: 10px;
  font-size: 28px;
}
.ccms-point-empty p {
  margin: 0;
  font-size: 14px;
}
.ccms-point-sum {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 12px;
  padding: 14px 16px;
  border-radius: 8px;
  background: var(--cream, #f3ede6);
  font-size: 13px;
  font-weight: 700;
  color: var(--charcoal-800);
}
.ccms-point-sum-vals {
  display: flex;
  gap: 12px;
}
.ccms-point-sum-vals .is-plus { color: var(--primary); }
.ccms-point-sum-vals .is-minus { color: #c2410c; }
.ccms-point-win .pg_wrap {
  margin: 20px 0 8px;
  text-align: center;
}
.ccms-point-win-foot {
  display: flex;
  justify-content: center;
  padding: 16px 24px 28px;
  border-top: 1px solid var(--border);
}
.ccms-point-win-foot .ccms-btn {
  min-width: 120px;
  height: 44px;
  justify-content: center;
}
/* 쇼핑몰 레이아웃에 임베드 (PC·모바일 공통) */
.ccms-point-win.is-embed {
  max-width: 720px;
  margin: 0 auto 40px;
  min-height: auto;
  background: transparent;
}
.ccms-point-win.is-embed .ccms-point-win-body {
  padding: 8px 0 0;
}
.ccms-point-win.is-embed .ccms-point-win-foot {
  padding: 16px 0 0;
  border-top: 0;
  justify-content: flex-start;
}

/* 블록 컨테이너 */
.ccms-block {
  background: #fff; border: 1px solid var(--border);
  border-radius: 8px; padding: 28px; margin-bottom: 16px;
}
.ccms-block h3 { font-size: 16px; margin: 0 0 20px; color: var(--charcoal-800); }
.ccms-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; }
.ccms-fld.ccms-col-2 { grid-column: 1 / -1; }
.ccms-fld label { display: block; font-size: 12px; color: var(--stone-500); margin-bottom: 6px; }

/* ═══════════════════════════════════════════════════════════════════
   PLP 레이아웃 alias + 추가 스타일
   ═══════════════════════════════════════════════════════════════════ */
.ccms-plp-layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 40px;
  padding-top: 48px;
  padding-bottom: 80px;
}
.ccms-side-group li a {
  display: flex;
  justify-content: space-between;
  color: inherit;
  text-decoration: none;
  width: 100%;
}
.ccms-side-group li a:hover { color: var(--charcoal-800); }
.ccms-side-group li.on a { color: var(--primary); font-weight: 600; }

/* PLP 카테고리 헤더 */
.ccms-cat-header {
  position: relative;
  height: 220px;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
}
.ccms-cat-header-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(38,35,30,.5) 0%, rgba(38,35,30,.3) 100%);
}
.ccms-cat-header-copy {
  position: relative;
  z-index: 1;
}
.ccms-breadcrumb {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: var(--stone-400, #a8a099);
  margin-top: 6px;
  flex-wrap: wrap;
}
.ccms-breadcrumb a { color: inherit; text-decoration: none; }
.ccms-breadcrumb a:hover { color: var(--primary, #3a5c44); }
.ccms-breadcrumb strong { color: #fbf9f4; }
.ccms-breadcrumb-home { display: flex; align-items: center; }
.ccms-breadcrumb-sep { font-size: 10px; color: var(--stone-300, #c8c2b8); }
.ccms-breadcrumb-cur { color: var(--charcoal-800, #26231e); font-weight: 500; }
.ccms-breadcrumb-sel {
  appearance: none;
  -webkit-appearance: none;
  background: none;
  border: none;
  font-size: 12px;
  color: var(--stone-500, #8c8175);
  cursor: pointer;
  padding: 0;
  font-family: inherit;
}
.ccms-breadcrumb-sel:focus { outline: none; }
/* navigation 스킨 — 기본 shop style.css 로딩 억제용 */
#sct_location { all: unset; box-sizing: border-box; display: flex; align-items: center; gap: 4px; font-size: 12px; color: var(--stone-400); flex-wrap: wrap; max-width: 1280px; margin: 8px auto; padding: 0 40px; }
/* 상품 상세 페이지: #sit_ov_from(제품 폼)이 있으면 #sct_location 중복이므로 숨김 */
.shop-content:has(#sit_ov_from) > #sct_location { display: none; }

/* ═══════════════════════════════════════════════════════════════════
   PDP 추가 스타일
   ═══════════════════════════════════════════════════════════════════ */
.ccms-pdp { padding: 0; }
.ccms-pdp-breadcrumb { padding: 20px 0 0; font-size: 12px; color: var(--stone-400); }
.ccms-pdp-breadcrumb a { color: inherit; text-decoration: none; }
.ccms-pdp-breadcrumb a:hover { color: var(--primary); }
.ccms-pdp-breadcrumb strong { color: var(--charcoal-800); }

/* 관리자 입력 HTML — 상·하단(it_head/tail) 및 탭 본문 공통 래퍼 */
.ccms-pdp-html-slot {
  clear: both;
}
.ccms-pdp-html-slot:not(.ccms-pdp-html-slot--tail) {
  margin-top: 20px;
  margin-bottom: 16px;
}
/* 상단 HTML 없이 본문만 있을 때도 헤더와 간격 (#sit 은 상품 상세만 사용) */
.shop-content > #sit:first-child {
  padding-top: 20px;
}
.ccms-pdp-html-slot--tail {
  margin-top: 48px;
  padding-bottom: 24px;
}
.ccms-pdp-user-html {
  font-size: 14px;
  line-height: 1.7;
  color: var(--stone-500);
}
.ccms-pdp-user-html > *:first-child { margin-top: 0 !important; }
.ccms-pdp-user-html > *:last-child { margin-bottom: 0 !important; }
.ccms-pdp-user-html p { margin: 0 0 0.75em; }
.ccms-pdp-user-html p:last-child { margin-bottom: 0; }
.ccms-pdp-user-html img,
.ccms-pdp-user-html video { max-width: 100%; height: auto; }
.ccms-pdp-user-html iframe { max-width: 100%; }
.ccms-pdp-user-html table { width: 100%; border-collapse: collapse; }

/* 갤러리 */
.ccms-pdp-gallery { display: flex; flex-direction: column; gap: 10px; }
.ccms-pdp-main-img {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 8px;
  overflow: hidden;
  background-color: var(--sand);
  background-size: cover;
  background-position: center;
  position: relative;
}
.ccms-pdp-main-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ccms-pdp-zoom {
  position: absolute;
  bottom: 12px;
  right: 12px;
  width: 36px;
  height: 36px;
  background: rgba(255,255,255,.85);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--charcoal-800);
  font-size: 16px;
  text-decoration: none;
  transition: background .2s;
}
.ccms-pdp-zoom:hover { background: #fff; }
.ccms-pdp-thumbs { display: flex; gap: 8px; flex-wrap: wrap; }
.ccms-pdp-thumb {
  width: 72px;
  height: 72px;
  border-radius: 4px;
  overflow: hidden;
  border: 2px solid transparent;
  cursor: pointer;
  background-size: cover;
  background-position: center;
}
.ccms-pdp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ccms-pdp-thumb:hover { border-color: var(--stone-300); }
.ccms-pdp-thumb.on { border-color: var(--charcoal-800); }

/* 상품명 */
.ccms-pdp-name { font-size: 26px; font-weight: 700; color: var(--charcoal-800); margin: 8px 0 4px; line-height: 1.3; }
.ccms-pdp-name-en { font-size: 13px; color: var(--stone-400); margin-bottom: 10px; }

/* 평점 */
.ccms-pdp-rating { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--stone-500); margin-bottom: 16px; }
.ccms-pdp-rating a { color: inherit; text-decoration: underline; }
.ccms-pdp-rating .sep { color: var(--stone-300); }

/* 가격 */
.ccms-pdp-price { margin-bottom: 20px; }
.ccms-pdp-was { font-size: 13px; color: var(--stone-400); text-decoration: line-through; }
.ccms-pdp-now-row { display: flex; align-items: baseline; gap: 8px; margin: 4px 0 2px; }
.ccms-pdp-off { font-size: 20px; font-weight: 700; color: var(--rose-500, #c0392b); }
.ccms-pdp-now { font-size: 28px; font-weight: 700; color: var(--charcoal-800); }
.ccms-pdp-save { font-size: 12px; color: var(--stone-400); }

/* 메타 */
.ccms-pdp-meta { list-style: none; padding: 0; margin: 0 0 20px; border-top: 1px solid var(--border); }
.ccms-pdp-meta li {
  display: flex;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
  font-size: 13px;
}
.ccms-pdp-meta li > span:first-child { color: var(--stone-500); min-width: 40px; }
.ccms-pdp-meta li > span:last-child { color: var(--charcoal-800); }

/* 옵션 */
.ccms-pdp-option { margin-bottom: 12px; }
.ccms-pdp-meta-label { font-size: 12px; color: var(--stone-500); margin-bottom: 6px; }
.ccms-pdp-option .ccms-select,
.ccms-pdp-option select { width: 100%; }

/* 수량 + 총금액 행 — 부모 .sit_opt_list(크림 박스) 안이므로 자체 박스 제거(이중 중첩 방지) */
.ccms-pdp-qty-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
  padding: 0;
  background: transparent;
  border-radius: 0;
}
.ccms-qty { display: inline-flex; align-items: center; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; }
.ccms-qty button {
  width: 36px;
  height: 36px;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 18px;
  color: var(--charcoal-800);
  display: flex;
  align-items: center;
  justify-content: center;
}
.ccms-qty button:hover { background: var(--stone-100); }
.ccms-qty-input,
.ccms-qty input[type=text] {
  width: 44px;
  text-align: center;
  border: none;
  border-left: 1px solid var(--border);
  border-right: 1px solid var(--border);
  font-size: 14px;
  height: 36px;
  background: #fff;
  -moz-appearance: textfield;
}
.ccms-pdp-total { text-align: right; }
.ccms-pdp-total span { display: block; font-size: 11px; color: var(--stone-500); margin-bottom: 4px; }
.ccms-pdp-total strong { font-size: 20px; font-weight: 700; color: var(--charcoal-800); }
.ccms-pdp-total-row {
  margin: 12px 0;
  padding: 12px 16px;
  background: var(--sand);
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  text-align: right;
  color: var(--charcoal-800);
}

/* 액션 버튼 */
.ccms-pdp-actions { display: flex; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.ccms-pdp-actions .ccms-btn { flex: 1; min-width: 0; }
.ccms-pdp-soldout { padding: 14px 0; color: var(--stone-500); font-size: 14px; }

/* 신뢰 뱃지 */
.ccms-pdp-trust {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  padding: 14px 0;
  border-top: 1px solid var(--border);
  font-size: 12px;
  color: var(--stone-500);
}
.ccms-pdp-trust i { margin-right: 4px; }

/* 탭 */
.ccms-pdp-tabs {
  display: flex;
  border-bottom: 2px solid var(--border);
  margin: 48px 0 0;
  gap: 0;
}
.ccms-pdp-tabs button {
  padding: 14px 24px;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  color: var(--stone-500);
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color .2s, border-color .2s;
}
.ccms-pdp-tabs button:hover { color: var(--charcoal-800); }
.ccms-pdp-tabs button.on { color: var(--charcoal-800); border-bottom-color: var(--charcoal-800); font-weight: 700; }

.ccms-pdp-tab-body { padding: 32px 0 48px; }
.ccms-pdp-detail img { max-width: 100%; border-radius: 4px; }
.ccms-pdp-ship h4 { font-size: 15px; margin: 0 0 8px; }
.ccms-pdp-ship p { font-size: 14px; color: var(--stone-500); line-height: 1.7; }

/* 리뷰 */
.ccms-review-summary {
  display: flex;
  align-items: flex-start;
  gap: 32px;
  margin-bottom: 32px;
  padding: 24px;
  background: var(--sand);
  border-radius: 12px;
}
.ccms-review-score { text-align: center; min-width: 80px; }

/* 관련상품 */
.ccms-pdp-related { padding: 48px 0; }

/* 하단 고정 구매 바 */
.ccms-pdp-fixed-bar {
  position: fixed;
  bottom: -100px;
  left: 0;
  right: 0;
  background: #fff;
  border-top: 1px solid var(--border);
  box-shadow: 0 -4px 20px rgba(0,0,0,.08);
  z-index: 200;
  transition: bottom .3s ease;
}
.ccms-pdp-fixed-bar.visible { bottom: 0; }
.ccms-pdp-fixed-inner {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-top: 12px;
  padding-bottom: 12px;
}
.ccms-pdp-fixed-name { font-size: 14px; font-weight: 600; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ccms-pdp-fixed-opts { flex-shrink: 0; }
.ccms-pdp-fixed-btns { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.ccms-pdp-naverpay { margin-top: 12px; }

/* ═══════════════════════════════════════════════════════════════════
   장바구니 빠른보기 박스 (boxcart)
   ═══════════════════════════════════════════════════════════════════ */
.ccms-cart-box { font-size: 13px; }
.ccms-cart-box-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--border);
  font-weight: 600;
  margin-bottom: 8px;
}
.ccms-cart-box-cnt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  background: var(--primary);
  color: #fff;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 700;
}
.ccms-cart-box-list {
  list-style: none; margin: 0; padding: 0;
  max-height: 300px;
  overflow-x: hidden;
  overflow-y: auto;
}
/* grid 레거시 규칙보다 우선 — 썸네일 + 텍스트(+삭제) flex 행 */
.ccms-cart-box li.ccms-cart-box-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
  min-width: 0;
  grid-template-columns: none;
}
.ccms-cart-box li.ccms-cart-box-empty {
  display: flex;
  grid-template-columns: none;
}
.ccms-cart-box-img {
  flex: 0 0 64px;
  width: 64px;
  max-width: 64px;
}
.ccms-cart-box-img a { display: block; line-height: 0; }
.ccms-cart-box-img img {
  width: 64px !important;
  height: 64px !important;
  max-width: 64px !important;
  object-fit: cover;
  border-radius: 4px;
  display: block;
}
.ccms-cart-box-body { flex: 1 1 auto; min-width: 0; overflow: hidden; }
.ccms-cart-box-name {
  display: block;
  color: var(--charcoal-800);
  font-size: 13px;
  line-height: 1.4;
  margin-bottom: 4px;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ccms-cart-box-price {
  font-size: 13px; font-weight: 600; color: var(--charcoal-800);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ccms-cart-box-qty { font-size: 11px; color: var(--stone-400); margin-top: 2px; }
.ccms-cart-box-del {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--stone-400);
  font-size: 14px;
  padding: 4px;
  line-height: 1;
  flex: 0 0 auto;
  text-decoration: none;
}
a.ccms-cart-box-del { color: var(--stone-400); }
.ccms-cart-box-del:hover { color: var(--rose-500, #c0392b); }
.ccms-cart-box-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 24px 0;
  color: var(--stone-400);
  font-size: 12px;
  text-align: center;
}
.ccms-cart-box-footer { padding-top: 12px; margin-top: 4px; }

/* ═══════════════════════════════════════════════════════════════════
   장바구니 페이지 — 주문 단계 표시
   ═══════════════════════════════════════════════════════════════════ */
.ccms-steps {
  display: flex;
  gap: 16px;
  font-size: 12px;
  color: var(--stone-400);
  margin-top: 14px;
  align-items: center;
}
.ccms-steps span.on { color: var(--charcoal-800); font-weight: 700; }
.ccms-steps span + span::before { content: '→'; margin-right: 16px; }

/* ═══════════════════════════════════════════════════════════════════
   공통 — 빈 상태
   ═══════════════════════════════════════════════════════════════════ */
.ccms-empty {
  text-align: center;
  padding: 40px 0;
  color: var(--stone-400);
  font-size: 14px;
}
.ccms-empty-lg { padding: 80px 0; }
.ccms-empty i { display: block; font-size: 40px; margin-bottom: 16px; }
.ccms-empty .ccms-btn { margin-top: 16px; }

/* ═══════════════════════════════════════════════════════════════════
   반응형 — PLP / PDP
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .ccms-plp-layout { grid-template-columns: 200px 1fr; gap: 24px; }
}
@media (max-width: 768px) {
  .ccms-plp-layout { grid-template-columns: 1fr; }
  .ccms-plp-side { display: none; }
  .ccms-pdp-top { grid-template-columns: 1fr !important; }
  .ccms-pdp-actions .ccms-btn { flex: none; width: 100%; }
  .ccms-pdp-fixed-bar .ccms-pdp-fixed-name { display: none; }
  .ccms-pdp-fixed-opts { display: none; }
}

/* 사이드메뉴 — 링크 지원 */
.ccms-side-menu li a {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  color: inherit;
  text-decoration: none;
}
.ccms-side-menu li a i { font-size: 16px; color: var(--stone-400); width: 18px; }
.ccms-side-menu li.on a { color: var(--primary); }
.ccms-side-menu li.on a i { color: var(--primary); }

/* 칩 — a 태그 지원 */
a.ccms-chip {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
}

/* 위시 체크 영역 (마이페이지) */
.ccms-wish-check { margin-top: 8px; }
.ccms-wish-check .selec_chk { accent-color: var(--primary); }

/* ═══════════════════════════════════════════════════════════════════
   장바구니 페이지
   ═══════════════════════════════════════════════════════════════════ */
.ccms-cart {
  padding: 24px 0 88px;
  box-sizing: border-box;
}
.ccms-page-head { padding: 40px 0 28px; border-bottom: 2px solid var(--border); margin-bottom: 32px; }
.ccms-page-head--compact { padding: 32px 0 20px; margin-bottom: 24px; }
.ccms-page-head .ccms-display-sm { margin-top: 6px; }
.ccms-page-head .ccms-steps a { color: inherit; text-decoration: none; }
.ccms-order-inquiry-wrap { padding-bottom: 80px; }
.ccms-order-list { display: flex; flex-direction: column; gap: 16px; }
.ccms-order-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: border-color .2s, box-shadow .2s;
}
.ccms-order-card:hover {
  border-color: var(--stone-300);
  box-shadow: 0 8px 24px rgba(44, 38, 32, .07);
}
.ccms-order-card.is-cancel { background: #fcf9f8; }
.ccms-order-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
}
.ccms-order-card__date {
  margin-right: 12px;
  font-size: 13px;
  color: var(--stone-400);
}
.ccms-order-card__number {
  font-size: 13px;
  font-weight: 600;
  color: var(--primary);
  text-decoration: none;
}
.ccms-order-card__number:hover { text-decoration: underline; }
.ccms-order-status {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 10px;
  border-radius: 4px;
  background: var(--sand);
  color: var(--stone-500);
  font-size: 11px;
  font-weight: 700;
}
.ccms-order-status--wait { background: #f3eee6; color: #8a7355; }
.ccms-order-status--pay,
.ccms-order-status--ready { background: #e8f0ea; color: var(--primary); }
.ccms-order-status--ship { background: #e7eef8; color: #3b5f8a; }
.ccms-order-status--done { background: #eceae6; color: var(--charcoal-800); }
.ccms-order-status--cancel { background: #f8e8e6; color: #b0392b; }
.ccms-order-card__body {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto auto;
  align-items: center;
  gap: 36px;
  padding: 22px 20px;
  color: inherit;
  text-decoration: none;
}
.ccms-order-card__product { min-width: 0; }
.ccms-order-card__label {
  display: block;
  margin-bottom: 7px;
  font-size: 11px;
  font-weight: 600;
  color: var(--stone-400);
  letter-spacing: .06em;
}
.ccms-order-card__product strong {
  display: block;
  overflow: hidden;
  color: var(--charcoal-800);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ccms-order-card__amounts {
  display: flex;
  gap: 28px;
  margin: 0;
}
.ccms-order-card__amounts div { min-width: 86px; }
.ccms-order-card__amounts dt {
  margin-bottom: 5px;
  color: var(--stone-400);
  font-size: 11px;
}
.ccms-order-card__amounts dd {
  margin: 0;
  color: var(--charcoal-800);
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}
.ccms-order-card__amounts .is-misu dd { color: #b0392b; }
.ccms-order-card__more {
  color: var(--stone-400);
  font-size: 12px;
  white-space: nowrap;
}
.ccms-order-card__more i { margin-left: 4px; }
.ccms-order-card__invoice {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 20px;
  background: var(--sand);
  color: var(--stone-500);
  font-size: 12px;
}
.ccms-order-card__invoice i { color: var(--primary); }
.ccms-order-card__invoice strong { color: var(--charcoal-800); }
.ccms-order-list__empty {
  padding: 64px 20px;
  text-align: center;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.ccms-order-list__empty > i { font-size: 32px; color: var(--stone-400); }
.ccms-order-list__empty p { margin: 12px 0 20px; color: var(--stone-500); font-size: 15px; }
.ccms-order-list__empty-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}
@media (max-width: 900px) {
  .ccms-order-card__body {
    grid-template-columns: minmax(220px, 1fr) auto;
    gap: 24px;
  }
  .ccms-order-card__more { display: none; }
  .ccms-order-card__amounts { gap: 18px; }
}

/* 쿠폰 (풀페이지) */
.ccms-coupon-page { padding-bottom: 80px; }
.ccms-coupon-desc { margin-top: 10px; font-size: 14px; color: var(--stone-500); }
.ccms-coupon-empty {
  padding: 64px 20px; text-align: center;
  background: var(--cream, #f3ede6); border: 1px solid var(--border); border-radius: 12px;
}
.ccms-coupon-empty i { font-size: 32px; color: var(--stone-400); }
.ccms-coupon-empty p { margin: 12px 0 20px; color: var(--stone-500); font-size: 15px; }
.ccms-coupon-list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px;
}
@media (max-width: 720px) {
  .ccms-coupon-list { grid-template-columns: 1fr; }
}
.ccms-coupon-card {
  background: #fff; border: 1px solid var(--border); border-radius: 12px;
  padding: 22px 24px; position: relative; overflow: hidden;
}
.ccms-coupon-card::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 5px;
  background: var(--primary);
}
.ccms-coupon-top {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
  margin-bottom: 14px;
}
.ccms-coupon-title { font-size: 16px; font-weight: 700; color: var(--charcoal-800); line-height: 1.35; }
.ccms-coupon-price { flex-shrink: 0; font-size: 22px; font-weight: 700; color: var(--primary); }
.ccms-coupon-meta { display: flex; flex-direction: column; gap: 6px; }
.ccms-coupon-target { font-size: 13px; color: var(--stone-500); }
.ccms-coupon-date { font-size: 12px; color: var(--stone-400); }
.ccms-coupon-date i { margin-right: 4px; }

.ccms-404-wrap { padding: 60px 20px 100px; }
.ccms-404 { text-align: center; max-width: 480px; margin: 0 auto; }
.ccms-404-code { font-size: 72px; font-weight: 700; color: var(--couponcms-green-300); line-height: 1; letter-spacing: -.04em; }
.ccms-404-desc { margin-top: 16px; font-size: 14px; line-height: 1.7; color: var(--stone-500); }
.ccms-404-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 28px; }

.ccms-cart-layout {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 40px;
  align-items: start;
}
.ccms-cart-items { min-width: 0; }
.ccms-cart-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 0 14px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 4px;
  font-size: 13px;
}
.ccms-cart-head label { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.ccms-cart-head label input { accent-color: var(--primary); }
.ccms-cart-head-btns { display: flex; gap: 8px; align-items: center; }
.ccms-linkb {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 12px;
  color: var(--stone-400);
  text-decoration: underline;
  padding: 0;
}
.ccms-linkb:hover { color: var(--charcoal-800); }

/* 장바구니 헤더: 선택삭제·전체비우기 — 아웃라인 버튼 스타일 */
.ccms-cart-head-btns > span { display: none; }
.ccms-cart-head-btns .ccms-linkb {
  border: 1px solid var(--border-strong, #d9d2c6);
  border-radius: 4px;
  padding: 5px 12px;
  background: #fff;
  color: var(--stone-500, #6b6558);
  text-decoration: none;
  transition: background .15s, color .15s, border-color .15s;
}
.ccms-cart-head-btns .ccms-linkb:hover {
  background: var(--charcoal-800, #2c2620);
  color: #fbf9f4;
  border-color: var(--charcoal-800, #2c2620);
}

.ccms-cart-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px 0;
  border-bottom: 1px solid var(--border);
}
.ccms-cart-chk { accent-color: var(--primary); flex-shrink: 0; margin-top: 0; }
.ccms-cart-img {
  flex-shrink: 0;
  width: 88px;
  height: 88px;
  border-radius: 6px;
  overflow: hidden;
  background: var(--sand);
  display: block;
}
.ccms-cart-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ccms-cart-body { flex: 1; min-width: 0; }
.ccms-cart-brand { font-size: 11px; color: var(--stone-400); letter-spacing: .06em; text-transform: uppercase; margin-bottom: 4px; }
.ccms-cart-name { display: block; font-size: 14px; color: var(--charcoal-800); text-decoration: none; line-height: 1.4; font-weight: 500; }
.ccms-cart-name:hover { text-decoration: underline; }
.ccms-cart-opt { font-size: 12px; color: var(--stone-500); margin-top: 4px; }

.ccms-cart-qty {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  padding-top: 0;
}
.ccms-cart-price {
  text-align: right;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: 0;
  min-width: 96px;
}
.ccms-cart-price strong { display: block; font-size: 16px; font-weight: 700; color: var(--charcoal-800); }
.ccms-cart-point { display: block; font-size: 11px; color: var(--primary); margin-top: 3px; }
.ccms-cart-x {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--stone-300);
  font-size: 14px;
  padding: 4px;
  flex-shrink: 0;
  margin-top: 0;
  line-height: 1;
  align-self: center;
}
.ccms-cart-x:hover { color: var(--rose-500, #c0392b); }

/* 결제 사이드바 */
.ccms-cart-summary {
  position: sticky;
  top: 80px;
  background: var(--sand);
  border-radius: 12px;
  padding: 24px;
}
.ccms-cart-summary h3 { font-size: 15px; font-weight: 700; margin: 0 0 18px; color: var(--charcoal-800); }
.ccms-sum-row {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: var(--stone-500);
  padding: 6px 0;
}
.ccms-sum-row.total {
  font-size: 16px;
  font-weight: 700;
  color: var(--charcoal-800);
  padding: 10px 0 4px;
}
.ccms-sum-divider { border-top: 1px solid var(--border); margin: 10px 0; }
.ccms-cart-summary > .ccms-btn-primary {
  margin-top: 24px;
}
.ccms-cart-summary > .ccms-btn-secondary.ccms-btn-block {
  margin-top: 12px;
}
.ccms-sum-notes {
  margin-top: 28px;
  padding-top: 4px;
  border-top: 1px solid var(--border);
  font-size: 11px;
  color: var(--stone-400);
  line-height: 1.85;
}
.ccms-sum-notes > div { padding: 3px 0; }
.ccms-btn-block { width: 100%; justify-content: center; }


/* ═══════════════════════════════════════════════════════════════════
   주문서 (orderform) — 무신사형 2컬럼 (좌: 배송·상품 / 우: 결제 sticky)
   ═══════════════════════════════════════════════════════════════════ */
#sod_frm {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 380px !important;
  gap: 28px 40px !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 24px 20px 100px !important;
  align-items: start !important;
}
#sod_frm::before {
  display: none !important;
  content: none !important;
}

/* 왼쪽/오른쪽 컬럼 — 상품은 sod_left 안 */
#sod_frm > .sod_left {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
#sod_frm > .sod_right {
  position: sticky;
  top: 88px;
  align-self: start;
}

/* 무신사 순서: 배송지 → 주문상품 → 주문자 */
#sod_frm.ccms-checkout-layout #sod_frm_taker { order: 1; }
#sod_frm.ccms-checkout-layout .od_prd_list { order: 2; }
#sod_frm.ccms-checkout-layout #sod_frm_orderer { order: 3; }

/* 섹션 블록 */
#sod_frm_orderer,
#sod_frm_taker,
#sod_frm_pay,
#sod_frm .sod_left > .od_prd_list {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px 28px;
  margin-bottom: 16px;
}
#sod_frm .sod_left > .tbl_head03.od_prd_list {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px 28px;
  margin-bottom: 16px;
}
#sod_frm_orderer h2,
#sod_frm_taker h2,
#sod_frm_pay h2,
#sod_frm .ccms-od-prd-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--charcoal-800);
  margin: 0 0 18px;
  padding: 0;
  border: none;
  background: none;
  letter-spacing: -.02em;
}
#sod_frm .ccms-od-prd-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}
#sod_frm .ccms-od-prd-title { margin-bottom: 16px; }

@media (max-width: 960px) {
  #sod_frm {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  #sod_frm > .sod_right {
    position: static;
    order: 99;
  }
}

/* 주문자·배송지 요약 카드 (무신사형 — 접힌 상태가 기본 화면) */
#sod_frm .ccms-of-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 0;
}
#sod_frm .ccms-of-head h2 {
  margin: 0 !important;
  flex: 1;
  min-width: 0;
}
#sod_frm .ccms-of-edit-btn {
  flex-shrink: 0;
  height: 36px;
  padding: 0 14px;
  border: 1px solid var(--charcoal-800, #2c2620);
  border-radius: 4px;
  background: #fff;
  color: var(--charcoal-800, #2c2620);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s ease, color .15s ease;
}
#sod_frm .ccms-of-edit-btn:hover {
  background: var(--charcoal-800, #2c2620);
  color: #fff;
}
#sod_frm .ccms-of-summary {
  display: none;
  margin-top: 18px;
  padding: 20px 20px;
  background: var(--cream-50, #faf6ee);
  border: 1px solid var(--border, #e8e2d9);
  border-radius: 10px;
  line-height: 1.55;
  color: var(--charcoal-800);
}
#sod_frm .ccms-of-section.is-collapsed > .ccms-of-summary {
  display: block !important;
}
#sod_frm .ccms-of-section.is-collapsed .ccms-of-edit,
#sod_frm .ccms-of-section.is-collapsed tr.ccms-of-row-edit,
#sod_frm .ccms-of-section.is-collapsed .ccms-of-row-edit {
  display: none !important;
}
#sod_frm .ccms-of-section:not(.is-collapsed) .ccms-of-edit {
  margin-top: 16px;
}
#sod_frm .ccms-of-section:not(.is-collapsed) > .ccms-of-summary {
  display: none !important;
}
#sod_frm .ccms-of-summary-top {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
#sod_frm .ccms-of-name {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -.02em;
}
#sod_frm .ccms-of-badge {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 4px;
  background: #fff;
  border: 1px solid var(--border-strong, #d9d2c6);
  color: var(--stone-600, #56503f);
  font-size: 12px;
  font-weight: 600;
}
#sod_frm .ccms-of-addr {
  font-size: 14px;
  color: var(--charcoal-800);
  margin-top: 4px;
}
#sod_frm .ccms-of-phone,
#sod_frm .ccms-of-email {
  font-size: 13px;
  color: var(--stone-500, #6b6558);
  margin-top: 4px;
}
#sod_frm #sod_frm_taker.is-collapsed .tbl_frm01 {
  margin-top: 16px;
  padding-top: 4px;
  border-top: 1px dashed var(--border, #e8e2d9);
}

/* 배송지 없음 — 입력 유도 */
#sod_frm .ccms-of-empty {
  text-align: center;
  padding: 8px 4px 4px;
}
#sod_frm .ccms-of-empty-msg {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--stone-500, #6b6558);
}
#sod_frm .ccms-of-empty-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 18px;
  border: 0;
  border-radius: 6px;
  background: var(--brand-yellow, #f5c518);
  color: var(--charcoal-900, #1a1612);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
}
#sod_frm .ccms-of-section.is-need-addr {
  border-color: var(--brand-yellow, #f5c518);
  box-shadow: 0 0 0 1px rgba(245, 197, 24, .35);
}
#sod_frm .ccms-of-section.is-need-addr .ccms-of-summary.is-incomplete {
  display: block !important;
  background: #fffdf5;
}
#sod_frm .ccms-of-section.is-need-addr:not(.is-collapsed) .ccms-of-summary.is-incomplete {
  display: none !important;
}

/* 기존 테이블 → 플렉스 형태로 재스타일 */
#sod_frm .tbl_head01,
#sod_frm .tbl_head03 {
  border: none;
  background: none;
}
#sod_frm .tbl_head01 td,
#sod_frm .tbl_head01 th,
#sod_frm .tbl_head03 td,
#sod_frm .tbl_head03 th {
  border-color: var(--border);
  font-size: 13px;
  padding: 10px 12px;
}
#sod_frm .tbl_head01 th,
#sod_frm .tbl_head03 th {
  background: var(--sand);
  color: var(--stone-500);
  font-weight: 500;
}

/* 제작정보 입력칸: PC 전체폭(긴 안내문 잘림 방지) */
#sod_frm input.ccms-stamp-input { width: 100%; box-sizing: border-box; }
/* 입력 필드 */
#sod_frm input[type=text],
#sod_frm input[type=email],
#sod_frm input[type=tel],
#sod_frm input[type=password],
#sod_frm select:not(.ccms-select) {
  height: 42px;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 0 12px;
  font-size: 13px;
  font-family: var(--font-sans);
  color: var(--charcoal-800);
  background: #fff;
  width: 100%;
  box-sizing: border-box;
  transition: border-color var(--dur-base);
}
#sod_frm input[type=text]:focus,
#sod_frm input[type=email]:focus,
#sod_frm input[type=tel]:focus,
#sod_frm select:not(.ccms-select):focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--couponcms-green-100);
}

/* 주문자/수령인/결제 폼 테이블 — th 폭 고정 (input 100% 때문에 라벨이 한 글자씩 줄바꿈되던 문제) */
#sod_frm .tbl_frm01 {
  padding: 0 !important;
  margin: 0;
  background: transparent;
}
#sod_frm .tbl_frm01 table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
#sod_frm .tbl_frm01 th {
  width: 110px;
  min-width: 110px;
  max-width: 110px;
  padding: 14px 12px 14px 0;
  border: 0;
  background: transparent;
  text-align: left;
  vertical-align: top;
  font-size: 13px;
  font-weight: 600;
  color: var(--charcoal-800);
  line-height: 1.45;
  word-break: keep-all;
  overflow-wrap: break-word;
  white-space: normal;
}
#sod_frm .tbl_frm01 td {
  padding: 10px 0;
  border: 0;
  background: transparent;
  vertical-align: middle;
  line-height: 1.45;
  word-break: keep-all;
}
#sod_frm .tbl_frm01 td label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 12px 8px 0;
  font-weight: 400;
  white-space: nowrap;
  vertical-align: middle;
}
#sod_frm .tbl_frm01 td .frm_input,
#sod_frm .tbl_frm01 td input[type=text],
#sod_frm .tbl_frm01 td input[type=password],
#sod_frm .tbl_frm01 td input[type=email],
#sod_frm .tbl_frm01 td input[type=tel] {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0 0 8px;
}
#sod_frm .tbl_frm01 td input[type=radio],
#sod_frm .tbl_frm01 td input[type=checkbox] {
  width: auto !important;
  height: auto !important;
  margin: 0;
  flex-shrink: 0;
}
#sod_frm .tbl_frm01 td .btn_address,
#sod_frm .tbl_frm01 td .btn_frmline.btn_addsch,
#sod_frm .tbl_frm01 td button.btn_frmline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  padding: 0 14px;
  margin: 0 0 8px;
  border: 0;
  border-radius: 6px;
  background: var(--charcoal-800);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  vertical-align: top;
  white-space: nowrap;
}
#sod_frm #od_zip,
#sod_frm #od_b_zip {
  width: 120px !important;
  max-width: 40%;
  display: inline-block;
  margin-right: 8px;
  vertical-align: top;
}
#sod_frm .tbl_frm01 textarea,
#sod_frm #od_memo {
  width: 100%;
  min-height: 88px;
  box-sizing: border-box;
  line-height: 1.5;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
}

/* 배송 요청사항 프리셋 */
#sod_frm .ccms-od-memo {
  width: 100%;
  max-width: 520px;
}
#sod_frm .ccms-od-memo-select {
  width: 100%;
  height: 44px;
  padding: 0 36px 0 12px;
  border: 1px solid var(--border, #e2ddd5);
  border-radius: 6px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235c5348' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 14px center;
  background-size: 12px 8px;
  font-size: 14px;
  color: var(--charcoal-800, #26231e);
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  box-sizing: border-box;
}
#sod_frm .ccms-od-memo-select:focus {
  border-color: var(--primary, #3f7a4a);
  outline: none;
  box-shadow: 0 0 0 3px rgba(63, 122, 74, 0.12);
}
#sod_frm .ccms-od-memo #od_memo {
  display: none !important;
  margin-top: 8px;
}
#sod_frm .ccms-od-memo.is-custom #od_memo {
  display: block !important;
}

/* 결제정보 요약 테이블 (추가배송비 등 겹침 방지) */
#sod_frm .pay_tbl {
  margin: 0 0 12px;
}
#sod_frm .pay_tbl table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
#sod_frm .pay_tbl th {
  width: 120px;
  min-width: 120px;
  padding: 12px 12px 12px 0;
  border-bottom: 1px solid var(--border);
  background: transparent;
  text-align: left;
  vertical-align: top;
  font-size: 13px;
  font-weight: 600;
  color: var(--stone-500);
  line-height: 1.45;
  white-space: nowrap;
}
#sod_frm .pay_tbl td {
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
  background: transparent;
  text-align: right;
  vertical-align: top;
  height: auto;
  font-size: 13px;
  line-height: 1.5;
  color: var(--charcoal-800);
  word-break: keep-all;
}
#sod_frm #od_tot_price {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 16px;
  padding: 14px 16px;
  background: var(--sand);
  border-radius: 8px;
  line-height: 1.4;
  text-align: left;
}
#sod_frm #od_tot_price span {
  float: none;
  flex: 0 0 auto;
  font-weight: 600;
  color: var(--charcoal-800);
}
#sod_frm #od_tot_price strong {
  flex: 1 1 auto;
  text-align: right;
  font-size: 18px;
  color: var(--charcoal-800);
  font-variant-numeric: tabular-nums;
}
#sod_frm #od_pay_sl h3 {
  font-size: 14px;
  font-weight: 700;
  margin: 0 0 10px;
}
#sod_frm #sod_frm_pt_alert {
  margin: 0 0 12px;
}

/* 개인결제 폼 (동일 tbl_frm01 패턴) */
.pesonal .tbl_frm01 table,
#personal_pay + .tbl_frm01 table {
  width: 100%;
  border-collapse: collapse;
}
.pesonal .tbl_frm01 th {
  padding: 10px 0;
  text-align: left;
  font-size: 13px;
  font-weight: 600;
  color: var(--charcoal-800);
  word-break: keep-all;
  line-height: 1.4;
}
.pesonal .tbl_frm01 td {
  padding: 8px 0 12px;
  vertical-align: middle;
}
.pesonal .tbl_frm01 .frm_input {
  width: 100%;
  box-sizing: border-box;
}

/* 주문상세 등 쇼핑몰 tbl_frm01 */
#sod_fin .tbl_frm01 table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
#sod_fin .tbl_frm01 th {
  width: 140px;
  min-width: 120px;
  padding: 10px 12px 10px 0;
  text-align: left;
  vertical-align: top;
  font-size: 13px;
  font-weight: 600;
  word-break: keep-all;
  line-height: 1.4;
}
#sod_fin .tbl_frm01 td {
  padding: 10px 0;
  vertical-align: middle;
  line-height: 1.45;
}

/* 결제수단 탭 — 마크업은 input + label 형제(영카트 기본), :has() 아님 */
#sod_frm_paysel {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 0 16px !important;
}
#sod_frm_paysel legend { display: none !important; }
#sod_frm_paysel label.lb_icon,
#sod_frm_paysel label {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  min-height: 40px !important;
  padding: 8px 18px !important;
  margin: 0 !important;
  border: 1px solid var(--border) !important;
  border-radius: 20px !important;
  cursor: pointer !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
  color: var(--stone-500) !important;
  transition: border-color var(--dur-base), color var(--dur-base), background var(--dur-base), box-shadow var(--dur-base) !important;
  background: #fff !important;
  background-image: none !important;
  text-indent: 0 !important;
  width: auto !important;
  height: auto !important;
  position: static !important;
  float: none !important;
  box-sizing: border-box !important;
}
#sod_frm_paysel input[type=radio]:checked + label.lb_icon,
#sod_frm_paysel input[type=radio]:checked + label,
#sod_frm_paysel label.selected {
  border-color: var(--primary, #1f7a3d) !important;
  color: var(--charcoal-800, #2c2620) !important;
  background: var(--couponcms-green-100, #e7f1ea) !important;
  font-weight: 700 !important;
  box-shadow: inset 0 0 0 1px var(--primary, #1f7a3d) !important;
}
#sod_frm_paysel input[type=radio] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* 주문 합계 사이드바 — 무신사형 결제 금액 카드 */
#sod_frm #sod_bsk_tot {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 22px 22px 18px;
  margin-bottom: 16px;
  box-shadow: 0 2px 12px rgba(38, 35, 30, .04);
}
#sod_frm #sod_bsk_tot h2 {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 16px;
  letter-spacing: -.02em;
  color: var(--charcoal-800);
}
#sod_frm #sod_bsk_tot ul { list-style: none; padding: 0; margin: 0; }
#sod_frm #sod_bsk_tot li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  font-size: 14px;
  color: var(--stone-500);
  padding: 8px 0;
  border-bottom: none;
}
#sod_frm #sod_bsk_tot li:last-child { border-bottom: none; }
#sod_frm #sod_bsk_tot li span {
  flex: 0 0 auto;
  text-align: left;
}
#sod_frm #sod_bsk_tot li strong {
  flex: 1 1 auto;
  text-align: right;
  color: var(--charcoal-800);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
#sod_frm #sod_bsk_tot .sod_bsk_coupon strong {
  color: #2f6fed;
}
#sod_frm #sod_bsk_tot .sod_bsk_dvr strong {
  color: #2f6fed;
}
#sod_frm #sod_bsk_tot .sod_bsk_cnt {
  font-size: 16px;
  font-weight: 700;
  color: var(--charcoal-800);
  padding-top: 14px;
  margin-top: 8px;
  border-top: 1px solid var(--border);
}
#sod_frm #sod_bsk_tot .sod_bsk_cnt span {
  font-size: 15px;
  font-weight: 700;
  color: var(--charcoal-800);
}
#sod_frm #sod_bsk_tot .sod_bsk_cnt strong {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -.02em;
}

#sod_frm > .sod_right #sod_frm_pay {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 22px;
  margin-bottom: 0;
}

/* 주문서 제출 버튼 */
#sod_frm_submit,
#sod_frm button[type=submit],
#sod_frm .btn_submit,
#sod_frm .sod_right button[type=submit] {
  width: 100%;
  height: 52px;
  background: var(--brand-yellow);
  color: var(--charcoal-900);
  border: none;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  margin-top: 8px;
  transition: background var(--dur-base);
  font-family: var(--font-sans);
}
#sod_frm_submit:hover,
#sod_frm .btn_submit:hover { background: var(--brand-yellow-600); }

/* 주문하기 / 취소 — 결제 버튼 영역·주문서 내부만 */
#sod_frm #display_pay_button.btn_confirm,
#display_pay_button.btn_confirm,
#sod_frm > .sod_right .btn_confirm,
#sod_frm .btn_confirm {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 12px;
}
#sod_frm #display_pay_button .btn_submit,
#display_pay_button .btn_submit,
#sod_frm .btn_confirm .btn_submit {
  width: 100%;
  margin: 0;
}
#sod_frm #display_pay_button a.btn01,
#sod_frm #display_pay_button a.btn_cancel,
#display_pay_button a.btn01,
#display_pay_button a.btn_cancel {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 48px;
  box-sizing: border-box;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: var(--charcoal-800);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  font-family: var(--font-sans);
  transition: background var(--dur-fast), border-color var(--dur-fast);
}
#display_pay_button a.btn01:hover,
#display_pay_button a.btn_cancel:hover {
  background: var(--sand);
  border-color: var(--border-strong, var(--border));
}

/* 배송지선택: 라디오+라벨 한 묶음으로 줄바꿈 */
#sod_frm .order_choice_place {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
}
#sod_frm .order_choice_place .ad_sel_item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  white-space: nowrap;
}
#sod_frm .order_choice_place .ad_sel_item input {
  width: auto !important;
  height: auto !important;
  margin: 0;
  flex-shrink: 0;
}
#sod_frm .order_choice_place .ad_sel_item label {
  margin: 0 !important;
  white-space: nowrap;
  font-weight: 400;
}
#sod_frm .order_choice_place #order_address,
#sod_frm .order_choice_place a.btn_frmline {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 12px;
  margin: 0;
  border: 1px solid var(--primary);
  border-radius: 6px;
  color: var(--primary);
  background: #fff;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

/* 주문상품 테이블 */
#sod_list { border-collapse: collapse; width: 100%; }
#sod_list th { background: var(--sand); border-color: var(--border); font-size: 12px; color: var(--stone-500); }
#sod_list td { border-color: var(--border); font-size: 13px; }

/* 포인트 사용 영역 */
.sod_frm_point {
  background: var(--sand);
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 12px;
  font-size: 13px;
}

/* 약관 동의 */
#sod_agree_wrap,
.sod_agree {
  font-size: 13px;
  color: var(--charcoal-800);
  margin: 16px 0;
}
#sod_agree_wrap input,
.sod_agree input { accent-color: var(--primary); }

/* ═══════════════════════════════════════════════════════════════════
   주문 완료 페이지 스타일
   ═══════════════════════════════════════════════════════════════════ */
.ccms-checkout { padding-bottom: 80px; }
.ccms-checkout-notice {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  flex-wrap: wrap;
  padding: 16px 20px;
  margin-bottom: 20px;
  background: var(--couponcms-green-100);
  border: 1px solid var(--border);
  border-radius: 10px;
  font-size: 13px;
  color: var(--charcoal-800);
}
.ccms-checkout-notice--info { background: var(--sand); }
.ccms-checkout-notice i { font-size: 22px; color: var(--primary); flex-shrink: 0; margin-top: 2px; }
.ccms-checkout-notice strong { display: block; margin-bottom: 4px; font-size: 14px; }
.ccms-checkout-notice p { margin: 0; line-height: 1.5; color: var(--stone-500); flex: 1; min-width: 200px; }
.ccms-order-done {
  text-align: center;
  padding: 80px 0;
}
.ccms-order-done--inline {
  padding: 48px 24px 40px;
  margin-bottom: 28px;
  background: var(--sand);
  border-radius: 12px;
  border: 1px solid var(--border);
}
.ccms-done-ic {
  width: 80px;
  height: 80px;
  background: var(--couponcms-green-100);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 36px;
  color: var(--primary);
}
.ccms-done-actions {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 28px;
}

@media (max-width: 768px) {
  .ccms-cart-layout { grid-template-columns: 1fr; }
  .ccms-cart-summary { position: static; }
  #sod_frm { grid-template-columns: 1fr !important; }
  .sod_right { position: static; }
}

/* ═══════════════════════════════════════════════════════════════════
   검색 페이지 (#ssch)
   ═══════════════════════════════════════════════════════════════════ */
#ssch { max-width: 1280px; margin: 0 auto; padding: 40px 20px 80px; }
/* shop/search + item_list(list.10) — 검색 결과 카드 .ccms-pcard-img(특이도 상승) */
#ssch_result .ccms-pcard-img { position: relative; width: 100%; aspect-ratio: 1/1; background-color: var(--sand); overflow: hidden; }
#ssch_result .ccms-pcard-img > a:not(.ccms-wish) { position: absolute; inset: 0; display: block; z-index: 1; }
#ssch_result .ccms-pcard-img > a:not(.ccms-wish) > img,
#ssch_result .ccms-pcard-img > img {
  position: absolute; top: 0; left: 0; width: 100% !important; height: 100% !important;
  min-width: 100%; min-height: 100%; max-width: none; object-fit: cover !important; object-position: center; display: block; z-index: 0;
}
#ssch h2 { font-size: 22px; font-weight: 700; color: var(--charcoal-800); margin-bottom: 24px; }
#ssch h2 strong { color: var(--primary); }
.ssch_result_total { font-size: 14px; font-weight: 400; color: var(--stone-500); margin-left: 10px; }
#ssch_frm {
  background: var(--sand);
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 32px;
}
.ssch_frm_inner form { display: flex; flex-direction: column; gap: 12px; }
.ssch_scharea {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.ssch_input {
  height: 42px;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 0 12px;
  font-size: 13px;
  font-family: var(--font-sans);
  background: #fff;
}
.ssch_scharea .btn_submit {
  height: 42px;
  padding: 0 18px;
  background: var(--primary);
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 13px;
  font-family: var(--font-sans);
  cursor: pointer;
}
.ssch_option {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 13px;
  color: var(--stone-500);
}
.ssch_option label { display: flex; align-items: center; gap: 4px; cursor: pointer; }
#ssch_sort ul {
  display: flex;
  gap: 6px;
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
}
#ssch_sort li a {
  display: inline-block;
  padding: 6px 14px;
  border: 1px solid var(--border);
  border-radius: 20px;
  font-size: 12px;
  color: var(--stone-500);
  text-decoration: none;
}
#ssch_sort li a:hover, #ssch_sort li a.on {
  border-color: var(--primary);
  color: var(--primary);
  background: var(--couponcms-green-100);
}

/* ═══════════════════════════════════════════════════════════════════
   사용후기 (#sit_use_list)
   ═══════════════════════════════════════════════════════════════════ */
#sit_use_list { padding: 0; }
.sit_use_top {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-bottom: 20px;
}
.sit_use_top h4 { flex: 1; font-size: 13px; color: var(--stone-500); }
#sit_use_wbtn { display: flex; gap: 8px; }
#sit_use_wbtn a {
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 12px;
  color: var(--stone-500);
  text-decoration: none;
  transition: all var(--dur-base);
}
#sit_use_wbtn a:hover { border-color: var(--primary); color: var(--primary); }
#sit_use_wbtn .itemuse_form {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
}
#sit_use_ol { list-style: none; padding: 0; margin: 0; }
.sit_use_li {
  display: flex;
  gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid var(--border);
}
.sit_thum img { width: 80px; height: 80px; object-fit: cover; border-radius: 6px; display: block; }
.sit_use_dl { flex: 1; font-size: 13px; }
.sit_use_dl dt { display: none; }
.sit_use_dl dd { margin: 0 0 4px; color: var(--stone-500); }
.sit_use_dl dd.sit_use_name { font-weight: 600; color: var(--charcoal-800); }
.sit_use_dl dd.sit_use_subj a { color: var(--charcoal-800); font-weight: 500; text-decoration: none; }
.sit_use_dl dd.sit_use_content { color: var(--stone-500); line-height: 1.6; }

/* ═══════════════════════════════════════════════════════════════════
   상품문의 (#sit_qa)
   ═══════════════════════════════════════════════════════════════════ */
#sit_qa_form .ccms-btn,
#itemqa_write { margin-bottom: 16px; }
.sit_qa_li {
  padding: 16px 0;
  border-bottom: 1px solid var(--border);
  font-size: 13px;
}
.sit_qa_li .qa_subject a { color: var(--charcoal-800); font-weight: 500; text-decoration: none; }
.sit_qa_li .qa_name { color: var(--stone-500); font-size: 12px; margin-top: 4px; }

/* ═══════════════════════════════════════════════════════════════════
   주문조회 (orderinquiry / orderinquiryview)
   basic 테마 상세 CSS가 coreuk에 빠지며 깨짐 → #sod_fin 전용으로 복구
   ※ 개인결제결과(personalpayresult)도 #sod_fin 공유 → 2열 그리드/섹션카드는
      테마 주문상세(.ccms-container)에만 적용
   ═══════════════════════════════════════════════════════════════════ */
#sod_fin.ccms-container {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 28px 40px;
  max-width: 1100px;
  margin: 0 auto;
  padding: 40px 20px 80px;
  align-items: start;
}
#sod_fin.ccms-container > .ccms-page-head,
#sod_fin.ccms-container > .ccms-order-done,
#sod_fin.ccms-container > #sod_fin_no,
#sod_fin.ccms-container > #sod_fin_list {
  grid-column: 1 / -1;
}

/* 주문 직후 완료 배너 (1회) */
.ccms-order-done {
  margin: 0 0 28px;
  padding: 28px 24px;
  background: var(--sand, #f5f0e8);
  border: 1px solid var(--border, #e8e2d9);
  border-radius: 12px;
  text-align: center;
  box-sizing: border-box;
}
.ccms-order-done__ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--charcoal-800, #2c2620);
  color: #fbf9f4;
  font-size: 22px;
  line-height: 1;
}
.ccms-order-done .ccms-display-sm {
  margin: 16px 0 0;
}
.ccms-order-done__msg {
  margin: 12px 0 0;
  color: var(--stone-500, #6b6558);
  font-size: 14px;
  line-height: 1.65;
}
.ccms-order-done__msg strong {
  color: var(--charcoal-800, #2c2620);
}
.ccms-order-done__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 22px;
}
.ccms-order-done__actions .ccms-btn {
  min-width: 140px;
  justify-content: center;
}

#sod_fin_no {
  font-size: 14px;
  color: var(--stone-500);
  margin: 0 0 8px;
  padding: 12px 16px;
  background: var(--sand);
  border: 1px solid var(--border);
  border-radius: 8px;
}
#sod_fin_no strong { color: var(--charcoal-800); font-weight: 700; }

#sod_fin_list h2,
#sod_fin .sod_left > h2,
#sod_fin_od h2, #sod_fin_dvr h2, #sod_fin_buyer h2,
#sod_fin_pay h2, #sod_fin_pay h3, #sod_fin_pt h2, #sod_fin_memo h2,
#sod_fin_orderer h3, #sod_fin_receiver h3, #sod_fin_dvr h3 {
  font-size: 15px;
  font-weight: 700;
  color: var(--charcoal-800);
  margin: 0 0 14px;
  padding: 0 0 10px;
  border-bottom: 1px solid var(--charcoal-800);
  background: none;
}

#sod_fin.ccms-container section,
#sod_fin.ccms-container > #sod_fin_list {
  margin-bottom: 0;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
}
#sod_fin .sod_left {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
#sod_fin .sod_left > h2 {
  margin-bottom: 0;
  border-bottom: none;
  padding: 0;
}
#sod_fin .sod_right {
  position: sticky;
  top: 80px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

#sod_fin .tbl_head01,
#sod_fin .tbl_head03 {
  border: none;
  background: none;
  width: 100%;
  font-size: 13px;
  margin: 0;
}
#sod_fin .tbl_head01 table,
#sod_fin .tbl_head03 table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
}
#sod_fin .tbl_head01 th,
#sod_fin .tbl_head03 th {
  background: var(--sand);
  color: var(--stone-500);
  font-weight: 500;
  padding: 10px 12px;
  border: 1px solid var(--border);
  text-align: center;
  white-space: nowrap;
}
#sod_fin .tbl_head01 td,
#sod_fin .tbl_head03 td {
  padding: 14px 12px;
  border: 1px solid var(--border);
  vertical-align: middle;
  color: var(--charcoal-800);
}
#sod_fin .tbl_head01 .text_right,
#sod_fin .tbl_head03 .text_right,
#sod_fin .td_numbig {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
#sod_fin .td_mngsmall,
#sod_fin .td_dvr { text-align: center; }

/* 상품명 셀: 썸네일+이름 가로 정렬 (basic absolute 레이아웃 대체) */
#sod_fin_list .td_prd {
  position: static;
  padding: 14px 12px !important;
  min-height: 0;
  text-align: left;
}
#sod_fin_list .td_prd .sod_img,
#sod_fin_list .td_prd .sod_name {
  position: static;
  display: inline-block;
  vertical-align: middle;
  min-height: 0;
}
#sod_fin_list .td_prd .sod_img {
  width: 55px;
  margin-right: 12px;
}
#sod_fin_list .td_prd .sod_img img {
  display: block;
  width: 55px;
  height: 55px;
  object-fit: cover;
  border-radius: 6px;
}
#sod_fin_list .td_prd .sod_name {
  max-width: calc(100% - 75px);
}
#sod_fin_list .sod_name a {
  font-weight: 600;
  color: var(--charcoal-800);
  text-decoration: none;
  line-height: 1.45;
}
#sod_fin_list .sod_name a:hover { text-decoration: underline; }
#sod_fin_list .sod_opt {
  margin-top: 4px;
  font-size: 12px;
  color: var(--stone-500);
}
#sod_fin_list #th_itqty,
#sod_fin_list #th_itst { width: 72px; }
#sod_fin_list #th_itprice,
#sod_fin_list #th_itpt,
#sod_fin_list #th_itsum { width: 96px; }
#sod_fin_list #th_itsd { width: 64px; }

/* 상태설명: 기본 숨김 (버튼으로 토글) */
#sod_sts_wrap {
  margin-top: 16px;
  text-align: right;
}
#sod_sts_explan { display: none; margin-top: 12px; text-align: left; }
#sod_fin_legend {
  margin: 0 0 10px;
  padding: 14px 16px;
  background: var(--sand);
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.6;
  color: var(--stone-600);
}
#sod_fin_legend:after { display: block; visibility: hidden; clear: both; content: ""; }
#sod_fin_legend dt {
  clear: both;
  float: left;
  width: 48px;
  margin: 0 0 6px;
  font-weight: 700;
  color: var(--charcoal-800);
}
#sod_fin_legend dd { float: left; margin: 0 0 6px; width: calc(100% - 56px); }
#sod_sts_wrap .btn_frmline,
#sod_fin .btn_frmline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 34px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #fff;
  color: var(--stone-600);
  font-size: 13px;
  font-family: var(--font-sans);
  cursor: pointer;
  text-decoration: none;
}

/* 주문 금액 요약 (#sod_bsk_tot2) — 주문서 #sod_frm 스코프와 분리된 전용 스타일 */
#sod_fin #sod_bsk_tot2 {
  list-style: none;
  margin: 0;
  padding: 20px 22px;
  background: var(--sand);
  border: 1px solid var(--border);
  border-radius: 12px;
}
#sod_fin #sod_bsk_tot2 li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
  font-size: 13px;
  color: var(--stone-500);
  line-height: 1.4;
  text-align: right;
}
#sod_fin #sod_bsk_tot2 li:last-child { border-bottom: none; }
#sod_fin #sod_bsk_tot2 li span {
  flex: 0 0 auto;
  text-align: left;
  color: var(--stone-500);
}
#sod_fin #sod_bsk_tot2 li strong {
  flex: 1 1 auto;
  text-align: right;
  color: var(--charcoal-800);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
#sod_fin #sod_bsk_tot2 li.sod_bsk_cnt,
#sod_fin #sod_bsk_tot2 li.sod_fin_tot {
  font-size: 14px;
  font-weight: 700;
  color: var(--charcoal-800);
  background: transparent;
}
#sod_fin #sod_bsk_tot2 li.sod_fin_tot strong {
  color: var(--primary);
  font-size: 15px;
}
#sod_fin #sod_bsk_tot2 li#alrdy div {
  flex: 1 0 100%;
  margin-top: 8px;
  text-align: right;
  font-size: 12px;
  font-weight: 400;
  color: var(--stone-500);
}
#sod_fin #sod_bsk_tot2 li#alrdy div p {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 4px;
  padding: 6px 10px;
  background: #fff;
  border-radius: 6px;
}
#sod_fin #sod_bsk_tot2 li#alrdy .title { color: var(--stone-500); }

/* 결제정보 리스트 */
#sod_fin_pay ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
#sod_fin_pay li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
  font-size: 13px;
  line-height: 1.5;
}
#sod_fin_pay li:last-child { border-bottom: none; }
#sod_fin_pay li > strong {
  flex: 0 0 88px;
  float: none;
  width: auto;
  margin: 0;
  color: var(--stone-500);
  font-weight: 500;
}
#sod_fin_pay li > span {
  flex: 1 1 auto;
  float: none;
  width: auto;
  color: var(--charcoal-800);
  text-align: right;
  word-break: break-all;
}

/* 주문자/수령인 테이블 */
#sod_fin .sod_left .tbl_head01,
#sod_fin .sod_left .tbl_wrap {
  padding: 0;
  background: none;
  border: none;
}
#sod_fin .sod_left th {
  width: 110px;
  text-align: left;
  color: var(--stone-500);
  background: var(--sand);
  font-weight: 500;
}
#sod_fin .sod_left td {
  text-align: left;
  background: #fff;
}

/* 주문 취소 */
#sod_fin_cancel { text-align: center; }
#sod_fin_cancel h2 {
  margin: 0 0 12px;
  padding: 0 0 10px;
  border-bottom: 1px solid var(--border);
  text-align: left;
  font-size: 15px;
}
#sod_fin_cancel p {
  margin: 0;
  padding: 14px;
  text-align: center;
  background: #fff5f5;
  border: 1px solid #f0c2c2;
  border-radius: 8px;
  color: #b42318;
  font-size: 14px;
  font-weight: 600;
}
#sod_cancel_pop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 999;
}
#sod_fin_cancelfrm {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  width: min(360px, calc(100vw - 40px));
  margin: 0;
  padding: 0;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow-lg);
  text-align: left;
  overflow: hidden;
}
#sod_fin_cancelfrm .sod_cancel_head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 16px 14px 20px;
  border-bottom: 1px solid var(--border);
}
#sod_fin_cancelfrm h2,
#sod_fin_cancelfrm #sod_cancel_title {
  margin: 0;
  padding: 0;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--charcoal-800);
  border: 0;
  background: transparent;
}
#sod_fin_cancelfrm form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 20px;
}
#sod_fin_cancelfrm .frm_input {
  width: 100%;
  height: 44px;
  margin: 0;
  padding: 0 14px;
  border: 1px solid var(--border-strong);
  border-radius: 6px;
  box-sizing: border-box;
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--charcoal-800);
  background: #fff;
}
#sod_fin_cancelfrm .frm_input:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(27, 94, 58, .12);
}
#sod_fin_cancelfrm .ccms-btn {
  width: 100%;
  height: 44px;
  justify-content: center;
}
.sod_fin_bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(38, 35, 30, .4);
}
.sod_cls_btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--stone-400);
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
}
.sod_cls_btn:hover {
  background: var(--stone-100);
  color: var(--charcoal-800);
}

#sod_fin .btn01, #sod_fin .btn02, #sod_fin .btn_submit {
  display: inline-flex;
  align-items: center;
  height: 36px;
  padding: 0 14px;
  border-radius: 6px;
  font-size: 13px;
  cursor: pointer;
  text-decoration: none;
  border: 1px solid var(--border);
  color: var(--stone-500);
  background: #fff;
  font-family: var(--font-sans);
}
#sod_fin .btn_submit {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
}

@media (max-width: 960px) {
  #sod_fin.ccms-container {
    grid-template-columns: 1fr;
  }
  #sod_fin.ccms-container .sod_right { position: static; }
}

/* ═══════════════════════════════════════════════════════════════════
   리뷰 (itemuse.skin.php)
   ═══════════════════════════════════════════════════════════════════ */
.ccms-reviews { padding: 32px 0 0; }
.ccms-reviews-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.ccms-reviews-score { display: flex; align-items: center; gap: 4px; }
.ccms-reviews-score .bi-star-fill { color: #f4b942; font-size: 16px; }
.ccms-reviews-score .bi-star { color: var(--stone-300); font-size: 16px; }
.ccms-reviews-cnt { font-size: 13px; color: var(--stone-500); margin-left: 6px; }
.ccms-reviews-cnt-label { font-size: 14px; font-weight: 600; color: var(--charcoal-800); }
.ccms-reviews-actions { display: flex; gap: 8px; }
.ccms-review-list { list-style: none; margin: 0; padding: 0; }
.ccms-review-item { border-top: 1px solid var(--border); }
.ccms-review-item:last-child { border-bottom: 1px solid var(--border); }
.ccms-review-top {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 0;
}
.ccms-review-thumb { flex-shrink: 0; width: 64px; height: 64px; border-radius: 6px; overflow: hidden; }
.ccms-review-thumb img { width: 100%; height: 100%; object-fit: cover; }
.ccms-review-meta { flex: 1; min-width: 0; }
.ccms-review-stars .bi-star-fill { color: #f4b942; font-size: 13px; }
.ccms-review-stars .bi-star { color: var(--stone-300); font-size: 13px; }
.ccms-review-subject { font-size: 14px; font-weight: 500; color: var(--charcoal-800); margin: 4px 0; }
.ccms-review-info { font-size: 12px; color: var(--stone-400); display: flex; gap: 8px; }
.ccms-review-date::before { content: '·'; margin-right: 4px; }
.ccms-review-toggle {
  flex-shrink: 0;
  background: none; border: none;
  font-size: 14px; color: var(--stone-400);
  cursor: pointer; padding: 4px;
}
.ccms-review-body { padding: 0 0 16px; }
.ccms-review-content { font-size: 14px; line-height: 1.7; color: var(--charcoal-800); }
.ccms-review-cmd { display: flex; gap: 12px; margin-top: 10px; font-size: 13px; }
.ccms-review-reply {
  margin-top: 12px;
  background: var(--cream-50, #f5f2ec);
  border-radius: 8px;
  padding: 12px 14px;
}
.ccms-review-reply-badge {
  display: inline-block;
  font-size: 11px; font-weight: 600;
  color: var(--primary);
  background: rgba(58,92,68,.1);
  padding: 2px 8px; border-radius: 20px;
  margin-bottom: 6px;
}
.ccms-review-reply-tit { font-size: 13px; font-weight: 600; color: var(--charcoal-800); margin-bottom: 4px; }
.ccms-review-reply-body { font-size: 13px; color: var(--stone-600); }
.ccms-reviews-paging { margin-top: 20px; text-align: center; }

/* 모달 공통 (리뷰/Q&A 작성 팝업) */
.ccms-modal-wrap {
  min-height: 100vh;
  background: var(--cream, #f3ede6);
  padding: 32px 20px 48px;
  box-sizing: border-box;
}
.ccms-modal {
  max-width: 720px;
  margin: 0 auto;
  padding: 0;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(26, 22, 18, .08);
  overflow: hidden;
}
.ccms-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 24px 18px;
  border-bottom: 1px solid var(--border);
  background: #fff;
}
.ccms-modal-head-text { min-width: 0; }
.ccms-modal-eyebrow {
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--primary);
}
.ccms-modal-title {
  font-size: 22px;
  font-weight: 700;
  margin: 0;
  color: var(--charcoal-800);
  letter-spacing: -0.02em;
  line-height: 1.3;
}
.ccms-modal-close {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: -4px -6px 0 0;
  background: transparent;
  border: 0;
  border-radius: 8px;
  font-size: 16px;
  cursor: pointer;
  color: var(--stone-500);
  line-height: 1;
}
.ccms-modal-close:hover {
  background: var(--cream, #f3ede6);
  color: var(--charcoal-800);
}
.ccms-modal-body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.ccms-modal-foot {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 16px 24px 22px;
  border-top: 1px solid var(--border);
  background: var(--cream, #f3ede6);
}
.ccms-modal-foot .ccms-btn {
  min-width: 112px;
  height: 44px;
  justify-content: center;
}

/* 리뷰 작성 — 상품 요약 */
.ccms-review-product {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0;
  padding: 16px 24px;
  border-bottom: 1px solid var(--border);
  background: var(--couponcms-green-50, #f4f9f5);
}
.ccms-review-product-thumb {
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--border);
}
.ccms-review-product-thumb img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}
.ccms-review-product-meta {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ccms-review-product-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--primary);
}
.ccms-review-product-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--charcoal-800);
  line-height: 1.4;
  word-break: keep-all;
}

/* 별점 선택기 */
.ccms-review-score-row { gap: 10px; }
.ccms-review-score-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.ccms-review-score-hint {
  font-size: 13px;
  font-weight: 600;
  color: var(--primary);
}
.ccms-star-pick {
  display: inline-flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  gap: 6px;
}
.ccms-star-pick input { display: none; }
.ccms-star-pick label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  border-radius: 8px;
  font-size: 26px;
  color: var(--stone-300);
  cursor: pointer;
  transition: color .15s, background .15s, transform .15s;
  line-height: 1;
}
.ccms-star-pick label i { display: block; line-height: 1; }
.ccms-star-pick input:checked ~ label,
.ccms-star-pick label:hover,
.ccms-star-pick label.hovered { color: #f4b942; }
.ccms-star-pick label:hover,
.ccms-star-pick label.hovered { background: rgba(244, 185, 66, .12); transform: translateY(-1px); }

/* 에디터 박스 — SmartEditor 크롬 정리 */
.ccms-editor-box {
  border: 1px solid var(--border-strong, #d9d2c6);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}
.ccms-editor-box .cke_sc {
  margin: 0;
  padding: 10px 12px 0;
  text-align: right;
  background: var(--cream, #f3ede6);
  border-bottom: 1px solid var(--border);
}
.ccms-editor-box .btn_cke_sc {
  height: 30px;
  border-color: var(--border-strong);
  background: #fff;
}
.ccms-editor-box .cke_sc_def {
  margin: 0;
  border: 0;
  border-radius: 0;
  border-bottom: 1px solid var(--border);
}
.ccms-editor-box textarea,
.ccms-editor-box iframe {
  max-width: 100% !important;
}
.ccms-review-form .ccms-editor-box .smarteditor2,
.ccms-review-form .ccms-editor-box .wr_content {
  margin: 0;
}

/* 폼 공통 */
.ccms-form-row { display: flex; flex-direction: column; gap: 6px; }
.ccms-form-row-inline { flex-direction: row; align-items: center; }
.ccms-form-row-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ccms-form-label { font-size: 13px; font-weight: 500; color: var(--charcoal-800); }
.ccms-req { color: var(--primary); }
.ccms-checkbox-label { display: flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; }
.ccms-checkbox-label input { width: 16px; height: 16px; accent-color: var(--primary); }
.ccms-select,
.ccms-input {
  box-sizing: border-box;
  width: 100%;
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--charcoal-800);
  background: #fff;
  border: 1px solid var(--border-strong, #d9d2c6);
  border-radius: 6px;
}
.ccms-select {
  height: 44px;
  padding: 0 36px 0 14px;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236b6558' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}
.ccms-input {
  height: 44px;
  padding: 0 14px;
}
.ccms-select:focus,
.ccms-input:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(27, 94, 58, .12);
}

/* ═══════════════════════════════════════════════════════════════════
   상품문의 (itemqa.skin.php)
   ═══════════════════════════════════════════════════════════════════ */
.ccms-qa { padding: 32px 0 0; }
.ccms-qa-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.ccms-qa-cnt { font-size: 14px; font-weight: 600; color: var(--charcoal-800); }
.ccms-qa-actions { display: flex; gap: 8px; }
.ccms-qa-list { list-style: none; margin: 0; padding: 0; }
.ccms-qa-item { border-top: 1px solid var(--border); }
.ccms-qa-item:last-child { border-bottom: 1px solid var(--border); }
.ccms-qa-row {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 14px 0;
  background: none; border: none;
  cursor: pointer;
  text-align: left;
}
.ccms-qa-badge {
  flex-shrink: 0;
  font-size: 11px; font-weight: 600;
  padding: 2px 8px; border-radius: 20px;
  white-space: nowrap;
}
.ccms-qa-badge.answered { background: rgba(58,92,68,.1); color: var(--primary); }
.ccms-qa-badge.waiting { background: var(--cream-50, #f5f2ec); color: var(--stone-500); }
.ccms-qa-subject { flex: 1; font-size: 14px; color: var(--charcoal-800); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ccms-qa-info { flex-shrink: 0; display: flex; gap: 6px; font-size: 12px; color: var(--stone-400); white-space: nowrap; }
.ccms-qa-date::before { content: '·'; margin-right: 4px; }
.ccms-qa-arrow { font-size: 12px; color: var(--stone-400); flex-shrink: 0; }
.ccms-qa-body { padding: 0 0 16px 0; }
.ccms-qa-block { display: flex; gap: 12px; padding: 12px 0; }
.ccms-qa-block + .ccms-qa-block { border-top: 1px dashed var(--border); }
.ccms-qa-alp {
  flex-shrink: 0;
  width: 24px; height: 24px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700;
}
.ccms-qa-q .ccms-qa-alp { background: var(--charcoal-800); color: #fff; }
.ccms-qa-a .ccms-qa-alp { background: var(--primary); color: #fff; }
.ccms-qa-text { flex: 1; font-size: 14px; line-height: 1.7; color: var(--charcoal-800); }
.ccms-qa-cmd { display: flex; gap: 12px; margin-top: 8px; margin-left: 36px; font-size: 13px; }
.ccms-qa-paging { margin-top: 20px; text-align: center; }

/* ═══════════════════════════════════════════════════════════════════
   연관상품 (relation.10.skin.php)
   ═══════════════════════════════════════════════════════════════════ */
.ccms-related { padding: 40px 0 0; position: relative; }
.ccms-related-title { font-size: 20px; font-weight: 700; color: var(--charcoal-800); margin: 4px 0 20px; }
.ccms-related-track {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding-bottom: 4px;
}
.ccms-related-track::-webkit-scrollbar { display: none; }
.ccms-rel-card {
  flex: 0 0 220px;
  text-decoration: none;
  color: inherit;
}
.ccms-rel-card .ccms-pcard-img {
  width: 220px; height: 220px;
  position: relative;
  overflow: hidden; border-radius: 8px;
}
.ccms-rel-card .ccms-pcard-img img {
  width: 100% !important; height: 100% !important; min-width: 100%; min-height: 100%;
  object-fit: cover !important; transition: transform .3s;
}
.ccms-rel-card:hover .ccms-pcard-img img { transform: scale(1.04); }
.ccms-rel-prev, .ccms-rel-next {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 36px; height: 36px;
  background: #fff; border: 1px solid var(--border);
  border-radius: 50%; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; color: var(--charcoal-800);
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
  z-index: 2; transition: box-shadow .2s;
}
.ccms-rel-prev:hover, .ccms-rel-next:hover { box-shadow: 0 4px 16px rgba(0,0,0,.14); }
.ccms-rel-prev { left: -18px; }
.ccms-rel-next { right: -18px; }

/* ═══════════════════════════════════════════════════════════════════
   전체 리뷰 목록 페이지 (itemuselist.skin.php / itemuse.php)
   ═══════════════════════════════════════════════════════════════════ */
#sps_sch {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 16px 0 24px;
  flex-wrap: wrap;
}
#sps_sch select,
#sps_sch .sch_wr { display: flex; align-items: center; gap: 4px; }
#sps_sch select { padding: 8px 12px; border: 1px solid var(--border); border-radius: 6px; font-family: inherit; font-size: 14px; background: #fff; }
#sps_sch .sch_input { padding: 8px 12px; border: 1px solid var(--border); border-radius: 6px; font-family: inherit; font-size: 14px; min-width: 220px; }
#sps_sch .sch_btn { padding: 8px 14px; background: var(--charcoal-800); color: #fff; border: none; border-radius: 6px; cursor: pointer; font-size: 14px; }
#sps_sch a { font-size: 13px; color: var(--stone-500); text-decoration: none; margin-left: 8px; }

#sps ol { list-style: none; margin: 0; padding: 0; }
#sps li { border-top: 1px solid var(--border); padding: 20px 0; display: grid; grid-template-columns: 100px 1fr; gap: 20px; }
#sps li:last-child { border-bottom: 1px solid var(--border); }
#sps .sps_img { width: 100px; }
#sps .sps_img img { width: 100px; height: 100px; object-fit: cover; border-radius: 8px; }
#sps .sps_img span { display: block; font-size: 12px; color: var(--stone-500); margin-top: 4px; }
#sps .sps_section { display: flex; flex-direction: column; gap: 4px; }
#sps .sps_pd_name { font-size: 12px; color: var(--stone-500); }
#sps .sps_rv_tit { font-size: 14px; font-weight: 600; color: var(--charcoal-800); }
#sps .sps_dl { display: flex; gap: 12px; font-size: 12px; color: var(--stone-400); }
#sps .sps_dl dt { display: none; }
#sps .review_detail { display: inline-block; margin-top: 6px; padding: 4px 12px; font-size: 13px; border: 1px solid var(--border); border-radius: 20px; cursor: pointer; background: none; }
#sps .review_detail_cnt { display: none; margin-top: 12px; background: var(--cream-50, #f5f2ec); border-radius: 8px; padding: 16px; }
#sps_empty { text-align: center; padding: 60px 0; color: var(--stone-400); }

/* ═══════════════════════════════════════════════════════════════════
   1:1 문의 목록 페이지 (bbs/qalist.php)
   ═══════════════════════════════════════════════════════════════════ */
#bo_list {
  max-width: 1280px;
  margin: 56px auto 100px;
  padding: 0 40px;
  box-sizing: border-box;
}
#bo_list .tbl_wrap {
  width: 100%;
  overflow-x: auto;
}
#bo_list .tbl_head01 table, #bo_list .tbl_head03 table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  table-layout: fixed;
}
#bo_list .tbl_head01 th, #bo_list .tbl_head03 th {
  background: var(--sand); color: var(--stone-500); font-weight: 600; font-size: 12px;
  padding: 12px 10px; border-bottom: 1px solid var(--border); text-align: center;
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}
#bo_list .tbl_head01 td, #bo_list .tbl_head03 td {
  padding: 14px 10px; border-bottom: 1px solid var(--border);
  font-size: 13px; color: var(--charcoal-800); text-align: center;
  vertical-align: middle;
}
#bo_list .tbl_head01 td.td_subject, #bo_list .tbl_head03 td.td_subject { text-align: left; }
#bo_list .tbl_head01 tr:last-child td, #bo_list .tbl_head03 tr:last-child td { border-bottom: none; }
#bo_list .tbl_head01 a, #bo_list .tbl_head03 a { color: var(--primary); text-decoration: none; }
#bo_list .tbl_head01 .empty_table, #bo_list .tbl_head03 .empty_table {
  text-align: center; color: var(--stone-400); padding: 40px 0;
}
#bo_list .tbl_head01 caption, #bo_list .tbl_head03 caption { font-size: 0; height: 0; }

/* 열 너비 — 번호 세로 깨짐·등록일 줄바꿈 방지 */
#bo_list col.col_chk { width: 48px; }
#bo_list col.col_num { width: 72px; }
#bo_list col.col_subject { width: auto; }
#bo_list col.col_name { width: 110px; }
#bo_list col.col_date { width: 120px; }
#bo_list col.col_stat { width: 110px; }
#bo_list .td_chk { width: 48px !important; }
#bo_list .td_num { width: 72px !important; white-space: nowrap !important; }
#bo_list .td_subject { width: auto; }
#bo_list .td_name { width: 110px !important; white-space: nowrap !important; }
#bo_list .td_date { width: 120px !important; white-space: nowrap !important; letter-spacing: 0; }
#bo_list .td_stat { width: 110px !important; white-space: nowrap !important; }
#bo_list .bo_cate_link {
  float: none !important;
  display: inline-flex !important;
  align-items: center;
  height: 22px;
  margin-right: 8px;
  padding: 0 8px !important;
  line-height: 1 !important;
  border-radius: 4px;
  background: var(--couponcms-green-50, #f4f9f5) !important;
  color: var(--primary) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  vertical-align: middle;
}
#bo_list .bo_tit {
  display: inline;
  color: var(--charcoal-800);
  font-weight: 600;
}
#bo_list .txt_done,
#bo_list .txt_rdy {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  height: 28px;
  padding: 0 10px !important;
  border-radius: 4px;
  font-size: 12px !important;
  font-weight: 700;
  line-height: 1 !important;
}
#bo_list .txt_done {
  background: rgba(31, 122, 61, .12) !important;
  color: var(--primary) !important;
}
#bo_list .txt_rdy {
  background: var(--sand, #ebe3d8) !important;
  color: var(--stone-500) !important;
}
/* 카테고리 탭 */
#bo_cate { margin-bottom: 24px; }
#bo_cate h2 { font-size: 0; }
#bo_cate_ul { display: flex; gap: 8px; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
#bo_cate_ul li a {
  display: inline-block;
  background: #fff; border: 1px solid var(--border);
  padding: 7px 16px; border-radius: 999px;
  font-size: 13px; color: var(--stone-500); cursor: pointer;
  transition: all var(--dur-base); text-decoration: none;
}
#bo_cate_ul li a:hover { border-color: var(--primary); color: var(--primary); }
#bo_cate_ul li a#bo_cate_on { background: var(--primary); color: #fbf9f4; border-color: var(--primary); }

#bo_btn_top {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 0 20px; border-bottom: 2px solid var(--charcoal-800);
}
#bo_list_total { font-size: 13px; color: var(--stone-500); }
.btn_bo_user { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; }
.btn_bo_user > li { position: relative; }
.btn_bo_user .btn,
.btn_bo_user .btn_admin,
.btn_bo_user .btn_b01,
.btn_bo_user a,
.btn_bo_user button {
  display: inline-flex; align-items: center; justify-content: center; gap: 4px;
  height: 36px; padding: 0 14px; border: 1px solid #ccc5b8; border-radius: 6px;
  font-size: 13px; color: #26231e; background: #fff;
  cursor: pointer; text-decoration: none; font-weight: 500;
  line-height: 1; vertical-align: middle;
}
.btn_bo_user .btn_admin { color: #26231e; }
.btn_bo_user .btn:hover,
.btn_bo_user .btn_admin:hover,
.btn_bo_user .btn_b01:hover,
.btn_bo_user a:hover,
.btn_bo_user button:hover { border-color: #1f7a3d; color: #1f7a3d; background: #fff; }
.btn_bo_user .ccms-btn { height: 34px; }

/* 1:1문의 검색 팝업 */
#bo_list .bo_sch_wrap {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1200;
  width: auto;
  height: auto;
}
#bo_list .bo_sch_bg {
  position: absolute;
  inset: 0;
  background: rgba(26, 22, 18, .45);
}
#bo_list .bo_sch.ccms-qa-sch,
#bo_list .bo_sch {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(360px, calc(100vw - 32px));
  margin: 0;
  padding: 0;
  max-height: none;
  overflow: visible;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(26, 22, 18, .16);
  box-sizing: border-box;
}
#bo_list .ccms-qa-sch-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--border);
}
#bo_list .bo_sch h3,
#bo_list .ccms-qa-sch-head h3 {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 18px;
  font-weight: 700;
  color: var(--charcoal-800);
  line-height: 1.3;
}
#bo_list .bo_sch .bo_sch_cls {
  position: static;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--stone-500);
  font-size: 16px;
  cursor: pointer;
  line-height: 1;
}
#bo_list .bo_sch .bo_sch_cls:hover {
  background: var(--cream, #f3ede6);
  color: var(--charcoal-800);
}
#bo_list .bo_sch form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 20px;
}
#bo_list .bo_sch select,
#bo_list .bo_sch .ccms-select {
  width: 100%;
  height: 44px;
  padding: 0 36px 0 14px;
  border: 1px solid var(--border-strong, #d9d2c6);
  border-radius: 6px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236b6558' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 14px center;
  box-shadow: none;
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--charcoal-800);
  appearance: none;
  box-sizing: border-box;
}
#bo_list .bo_sch select:focus,
#bo_list .bo_sch .ccms-select:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(27, 94, 58, .12);
}
#bo_list .bo_sch .sch_bar {
  display: flex;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: 0 6px 0 0;
  border: 1px solid var(--border-strong, #d9d2c6);
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
  box-sizing: border-box;
  overflow: hidden;
}
#bo_list .bo_sch .sch_bar:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(27, 94, 58, .12);
}
#bo_list .bo_sch .sch_input,
#bo_list .bo_sch .ccms-input {
  float: none;
  flex: 1;
  width: auto;
  min-width: 0;
  height: 44px;
  padding: 0 14px;
  border: 0;
  background: transparent;
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--charcoal-800);
  box-sizing: border-box;
}
#bo_list .bo_sch .sch_input:focus {
  outline: none;
}
#bo_list .bo_sch .sch_btn {
  float: none;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--stone-500);
  font-size: 16px;
  cursor: pointer;
}
#bo_list .bo_sch .sch_btn:hover {
  background: var(--couponcms-green-50, #f4f9f5);
  color: var(--primary);
}
.txt_done { color: var(--primary); font-weight: 600; font-size: 12px; }
.txt_rdy  { color: var(--stone-400); font-size: 12px; }
.bo_fx { margin-top: 16px; }

/* ═══════════════════════════════════════════════════════════════════
   전체 Q&A 목록 페이지 (itemqalist.skin.php / itemqa.php)
   ═══════════════════════════════════════════════════════════════════ */
#sqa_sch {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 16px 0 24px;
  flex-wrap: wrap;
}
#sqa_sch select { padding: 8px 12px; border: 1px solid var(--border); border-radius: 6px; font-family: inherit; font-size: 14px; background: #fff; }
#sqa_sch .sch_input { padding: 8px 12px; border: 1px solid var(--border); border-radius: 6px; font-family: inherit; font-size: 14px; min-width: 220px; }
#sqa_sch .sch_btn { padding: 8px 14px; background: var(--charcoal-800); color: #fff; border: none; border-radius: 6px; cursor: pointer; font-size: 14px; }
#sqa_sch a { font-size: 13px; color: var(--stone-500); text-decoration: none; margin-left: 8px; }

#sqa ol { list-style: none; margin: 0; padding: 0; }
#sqa li { border-top: 1px solid var(--border); }
#sqa li:last-child { border-bottom: 1px solid var(--border); }
#sqa .sit_qa_li_title {
  display: flex; align-items: center; gap: 10px;
  width: 100%; padding: 14px 0;
  background: none; border: none; cursor: pointer; text-align: left;
  font-size: 14px; color: var(--charcoal-800);
}
#sqa .sit_qaa_done { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 20px; background: rgba(58,92,68,.1); color: var(--primary); flex-shrink: 0; }
#sqa .sit_qaa_yet  { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 20px; background: var(--cream-50, #f5f2ec); color: var(--stone-500); flex-shrink: 0; }
#sqa .sit_qa_dl { display: flex; gap: 12px; font-size: 12px; color: var(--stone-400); padding: 0 0 10px; }
#sqa .sit_qa_dl dt { display: none; }
#sqa .sit_qa_con { padding: 0 0 16px; }
#sqa .sit_qa_p { background: var(--cream-50, #f5f2ec); border-radius: 8px; padding: 16px; }
#sqa .sit_qa_qaq, #sqa .sit_qa_qaa { display: flex; gap: 12px; }
#sqa .sit_qa_qaq + .sit_qa_qaa { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--border); }
#sqa .qa_alp { flex-shrink: 0; width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; }
#sqa .sit_qa_qaq .qa_alp { background: var(--charcoal-800); color: #fff; }
#sqa .sit_qa_qaa .qa_alp { background: var(--primary); color: #fff; }

/* ═══════════════════════════════════════════════════════════════════
   전체 페이지 공통 — 검색바 / 리뷰 리스트 / Q&A 리스트
   ═══════════════════════════════════════════════════════════════════ */
.ccms-page-wrap { max-width: 860px; margin: 0 auto; padding: 0 0 60px; }

.ccms-search-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 20px 0 24px;
  flex-wrap: wrap;
}
.ccms-search-bar-input { display: flex; align-items: center; gap: 4px; flex: 1; min-width: 240px; }
.ccms-search-bar-input .ccms-input { flex: 1; }
.ccms-select-sm { padding: 8px 12px; border: 1px solid var(--border); border-radius: 6px; font-family: inherit; font-size: 13px; background: #fff; }

/* 전체 리뷰 리스트 */
.ccms-rlist { list-style: none; margin: 0; padding: 0; }
.ccms-rlist-item {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  grid-template-rows: auto auto;
  column-gap: 16px;
  row-gap: 0;
  padding: 20px 0;
  border-top: 1px solid var(--border);
  position: relative;
}
.ccms-rlist-item:last-child { border-bottom: 1px solid var(--border); }
.ccms-rlist-product {
  grid-column: 1; grid-row: 1;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  text-decoration: none;
}
.ccms-rlist-product img { width: 80px; height: 80px; object-fit: cover; border-radius: 6px; }
.ccms-rlist-product-name { font-size: 11px; color: var(--stone-400); text-align: center; line-height: 1.3; }
.ccms-rlist-body { grid-column: 2; grid-row: 1; }
.ccms-rlist-subject { font-size: 15px; font-weight: 600; color: var(--charcoal-800); margin: 4px 0; }
.ccms-rlist-thumb { display: flex; gap: 6px; margin-top: 8px; }
.ccms-rlist-thumb img { width: 60px; height: 60px; object-fit: cover; border-radius: 4px; }
.ccms-rlist-detail {
  grid-column: 1 / -1; grid-row: 2;
  padding: 16px 0 0;
  border-top: 1px dashed var(--border);
  margin-top: 12px;
}

/* 전체 Q&A 리스트 */
.ccms-qalist { list-style: none; margin: 0; padding: 0; }
.ccms-qalist-item { border-top: 1px solid var(--border); }
.ccms-qalist-item:last-child { border-bottom: 1px solid var(--border); }
.ccms-qalist-product {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 0 0;
  text-decoration: none;
  font-size: 13px; color: var(--stone-500);
}
.ccms-qalist-product img { width: 40px; height: 40px; object-fit: cover; border-radius: 4px; flex-shrink: 0; }

/* 이벤트 박스 */
.ccms-events { padding: 40px 0; }
.ccms-event-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.ccms-event-card { background: #fbf9f4; border-radius: 10px; overflow: hidden; border: 1px solid var(--border); }
.ccms-event-banner {
  position: relative;
  display: block;
  aspect-ratio: 2/1;
  overflow: hidden;
  background: linear-gradient(135deg, var(--sand) 0%, var(--ivory) 100%);
  text-decoration: none;
  color: inherit;
}
.ccms-event-banner img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .3s;
  display: block;
}
.ccms-event-banner:hover img { transform: scale(1.03); }
.ccms-event-banner-copy {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 48px 20px 18px;
  background: linear-gradient(180deg, transparent 0%, rgba(28, 24, 20, 0.72) 55%, rgba(28, 24, 20, 0.88) 100%);
  display: flex;
  flex-direction: column;
  gap: 4px;
  box-sizing: border-box;
}
.ccms-event-banner-ey {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brand-yellow, #f5e6a8);
}
.ccms-event-banner-title {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  color: #fbf9f4;
}
.ccms-event-banner-lead {
  font-size: 13px;
  line-height: 1.45;
  color: rgba(251, 249, 244, 0.82);
  margin-top: 2px;
}
.ccms-event-banner--text .ccms-event-banner-copy {
  position: absolute;
  inset: 0;
  justify-content: flex-end;
  padding: 24px 20px;
  background: linear-gradient(160deg, rgba(47, 107, 79, 0.92) 0%, rgba(28, 24, 20, 0.9) 100%);
}
.ccms-event-title-link { display: block; padding: 20px; font-size: 16px; font-weight: 700; color: var(--charcoal-800); text-decoration: none; background: var(--cream-50, #f5f2ec); }
.ccms-event-items { padding: 12px 12px 16px; display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-start; }
.ccms-event-item { display: flex; flex-direction: column; align-items: center; gap: 4px; text-decoration: none; width: 100px; }
.ccms-event-item-img { position: relative; width: 100px; height: 100px; border-radius: 6px; overflow: hidden; }
.ccms-event-item-img img { width: 100%; height: 100%; object-fit: cover; }
.ccms-event-sale {
  position: absolute; top: 6px; left: 6px; z-index: 1;
  padding: 2px 6px; border-radius: 3px;
  background: var(--rose-500, #e84c97); color: #fff;
  font-size: 10px; font-weight: 700; line-height: 1.2;
}
.ccms-event-item-name { font-size: 12px; color: var(--charcoal-800); text-align: center; line-height: 1.3; }
.ccms-event-item-price {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center;
  gap: 4px; font-size: 12px; font-weight: 600; color: var(--primary);
}
.ccms-event-was {
  font-size: 11px; font-weight: 500; color: var(--stone-400);
  text-decoration: line-through;
}
.ccms-event-now { color: var(--charcoal-800); font-weight: 700; }
.ccms-event-off { color: var(--rose-500, #e84c97); font-weight: 700; }
.ccms-event-more {
  align-self: flex-end;
  font-size: 12px; color: var(--stone-400); text-decoration: none;
  margin-left: auto; margin-top: 14px;
  padding: 4px 8px; border: 1px solid var(--border); border-radius: 20px; white-space: nowrap;
}

/* 페이지네이션 공통 */
.ccms-paging { margin: 48px auto; text-align: center; }
.ccms-paging .pg_wrap { margin: 0; }

/* ═══════════════════════════════════════════════════════════════════
   오늘 본 상품 (boxtodayview) 사이드 패널
   ═══════════════════════════════════════════════════════════════════ */
/* 최근본 / 장바구니 / 찜 사이드 패널 공통 — 가로 넘침 방지 */
#today_view,
#sbsk,
#wish,
#today_view .ccms-cart-box-list,
#sbsk .ccms-cart-box-list,
#wish .ccms-cart-box-list,
#today_view .ccms-cart-box-row,
#sbsk .ccms-cart-box-row,
#wish .ccms-cart-box-row {
  overflow-x: hidden;
  max-width: 100%;
}
#tabs_con .ccms-cart-box { max-width: 100%; }
#tabs_con .ccms-cart-box-footer .ccms-btn { max-width: 100%; box-sizing: border-box; }
/* 스킨 style.css 의 #stv_pg { position:fixed; width:229px } 무력화 */
#today_view #stv_pg,
.ccms-stv-nav #stv_pg {
  position: static;
  width: auto;
  right: auto;
  bottom: auto;
  margin: 0;
  padding: 0;
  background: transparent;
  line-height: inherit;
  text-align: center;
}
.ccms-stv-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 8px 0;
  border-top: 1px solid var(--border);
}
.ccms-stv-nav button {
  background: none; border: none; cursor: pointer;
  font-size: 14px; color: var(--stone-400);
  width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%; transition: background .15s;
}
.ccms-stv-nav button:hover { background: var(--cream-50); }
#stv_pg { font-size: 12px; color: var(--stone-400); }

/* ═══════════════════════════════════════════════════════════════════
   검색 결과 페이지 추가 스타일
   ═══════════════════════════════════════════════════════════════════ */
.ssch-header { padding: 0 0 20px; }
.ssch-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--stone-400); }
.ssch_scharea { position: relative; display: flex; align-items: center; gap: 8px; }
.ssch_scharea .ssch-icon { position: static; transform: none; }
.ssch_option {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding: 8px 0;
}
.ssch-price { display: flex; align-items: center; gap: 6px; }
.ssch-price-input { width: 100px; }
#ssch_cate ul { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0 0 16px; padding: 0; }
#ssch_cate ul li a {
  display: inline-flex; align-items: center;
  padding: 5px 14px;
  border: 1px solid var(--border);
  border-radius: 20px;
  font-size: 13px; color: var(--stone-500);
  text-decoration: none; background: #fff;
  transition: all .15s;
}
#ssch_cate ul li a span { font-size: 11px; margin-left: 4px; color: var(--stone-300); }
#ssch_cate ul li a.on,
#ssch_cate ul li a:hover { background: #26231e; color: #fff; border-color: #26231e; }
#ssch_sort_all {
  display: flex; flex-wrap: wrap; gap: 6px;
  list-style: none; margin: 0 0 24px; padding: 0;
}
#ssch_sort_all li a {
  display: inline-flex; align-items: center;
  padding: 5px 14px;
  border: 1px solid var(--border);
  border-radius: 20px;
  font-size: 13px; color: var(--stone-500);
  text-decoration: none; background: #fff;
  transition: all .15s;
}
#ssch_sort_all li a.on,
#ssch_sort_all li a:hover { background: var(--charcoal-800); color: #fff; border-color: var(--charcoal-800); }
.ccms-admin-bar { padding: 8px 0; }

/* ═══════════════════════════════════════════════════════════════════
   이미지 확대 팝업 (largeimage.skin.php)
   ═══════════════════════════════════════════════════════════════════ */
.ccms-largeimg-wrap {
  display: flex; flex-direction: column;
  min-height: 100vh; background: #fff; padding: 16px;
  font-family: inherit;
}
.ccms-largeimg-main { flex: 1; position: relative; min-height: 300px; }
.ccms-largeimg-slide { display: none; }
.ccms-largeimg-slide.visible { display: block; }
.ccms-largeimg-slide img { max-width: 100%; height: auto; display: block; margin: 0 auto; }
.ccms-largeimg-slide a { display: block; text-align: center; }
.ccms-largeimg-thumbs {
  display: flex; gap: 8px; flex-wrap: wrap;
  padding: 12px 0;
  border-top: 1px solid var(--border);
  margin-top: 12px;
}
.ccms-largeimg-thumb { opacity: .5; transition: opacity .15s; border: 2px solid transparent; border-radius: 4px; overflow: hidden; }
.ccms-largeimg-thumb img { width: 60px; height: 60px; object-fit: cover; display: block; }
.ccms-largeimg-thumb.on,
.ccms-largeimg-thumb:hover { opacity: 1; border-color: var(--primary); }
.ccms-largeimg-foot { padding-top: 12px; text-align: right; }

/* ═══════════════════════════════════════════════════════════════════
   메인 배너 슬라이더 (mainbanner.10.skin.php)
   ═══════════════════════════════════════════════════════════════════ */
.ccms-banner {
  position: relative;
  overflow: hidden;
  background: var(--charcoal-800);
  border-radius: 0;
}
/* 단일 이미지: 이전 flex 트랙 (가로 1탭) */
.ccms-banner:not(.ccms-banner--puzzle) .ccms-banner-stage {
  display: flex;
  overflow: hidden;
  scroll-behavior: smooth;
}
.ccms-banner:not(.ccms-banner--puzzle) .ccms-banner-slide {
  flex: 0 0 100%;
  width: 100%;
}
/* 2장 이상: 퍼즐/페이드 전환용 — 슬라이드 스택 */
.ccms-banner--puzzle .ccms-banner-stage {
  position: relative;
  z-index: 0;
  overflow: hidden;
  height: 100%;
  touch-action: pan-y;
}
.ccms-banner--puzzle .ccms-banner-slide {
  position: absolute;
  left: 0; top: 0; right: 0; bottom: 0;
  width: 100%; height: 100%;
  margin: 0; padding: 0;
  flex: none; opacity: 0;
  z-index: 0;
  transition: none;
  pointer-events: none;
  will-change: auto;
}
.ccms-banner--puzzle .ccms-banner-slide.is-active {
  opacity: 1;
  z-index: 2;
  pointer-events: auto;
}
.ccms-banner--puzzle .ccms-bn-copy {
  transition: opacity 0.35s var(--ease-standard, cubic-bezier(0.4, 0, 0.2, 1));
}
.ccms-banner--puzzle .ccms-bn-copy.is-out { opacity: 0; }
.ccms-bn-puzzle {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  overflow: hidden;
}
.ccms-bn-puzzle-tile {
  position: absolute;
  overflow: hidden;
  will-change: transform, opacity;
  backface-visibility: hidden;
  background-repeat: no-repeat;
  /* 기본(애님·지연 JS에서 덮어씀) */
  transition: transform 0.62s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.48s cubic-bezier(0.4, 0, 0.2, 1);
}
.ccms-bn-puzzle-tile.ccms-bn-tile--out {
  transform: scale(0.35) translateY(12px) rotate(1.2deg) !important;
  opacity: 0 !important;
}
.ccms-banner--puzzle.is-anim { pointer-events: none; }
.ccms-banner--puzzle.is-anim .ccms-bn-arrow { pointer-events: none; opacity: 0.4; }
/* 이미지 래퍼 a만 전체 높이 — CTA(.ccms-bn-btn)는 제외 */
.ccms-banner--puzzle .ccms-banner-slide > a {
  display: block;
  height: 100%;
}
.ccms-banner--puzzle .ccms-banner-slide > a img,
.ccms-banner--puzzle .ccms-banner-slide > img { height: 100%; }
/* 단일/멀티 공통 기본(멀티에서 is-active 쪽이 위 규칙) */
.ccms-banner-slide {
  width: 100%;
}
.ccms-banner-slide img,
.ccms-banner-slide a img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.ccms-bn-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px; height: 44px;
  background: rgba(255,255,255,.75);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  font-size: 18px;
  color: var(--charcoal-800);
  display: flex; align-items: center; justify-content: center;
  transition: background .15s;
  z-index: 10;
}
.ccms-bn-arrow:hover { background: #fff; }
.ccms-bn-prev { left: 16px; }
.ccms-bn-next { right: 16px; }
.ccms-bn-dots {
  position: absolute;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 6px;
  z-index: 10;
}
.ccms-bn-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: rgba(255,255,255,.5);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background .2s, width .2s;
}
.ccms-bn-dot.on { background: #fff; width: 20px; border-radius: 4px; }
.ccms-bn-counter {
  position: absolute;
  bottom: 14px;
  right: 16px;
  font-size: 12px;
  color: rgba(255,255,255,.8);
  background: rgba(0,0,0,.3);
  padding: 2px 8px;
  border-radius: 20px;
  z-index: 10;
}

/* ── Banner overlay copy ────────────────────────────────────────── */
.ccms-banner-slide { position: relative; }
.ccms-bn-copy {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 0 80px 72px;
  background: linear-gradient(to top, rgba(0,0,0,.55) 0%, transparent 55%);
  pointer-events: none;
}
.ccms-bn-title {
  color: #fff; font-size: 48px; font-weight: 700; line-height: 1.15;
  margin: 0 0 12px; max-width: 680px;
  text-shadow: 0 2px 10px rgba(0,0,0,.3);
  pointer-events: auto;
}
.ccms-bn-sub {
  color: rgba(255,255,255,.85); font-size: 16px; line-height: 1.6;
  margin: 0 0 28px; max-width: 520px;
  text-shadow: 0 1px 4px rgba(0,0,0,.25);
  pointer-events: auto;
}
.ccms-bn-btn {
  align-self: flex-start;
  flex: 0 0 auto;
  height: 48px;
  pointer-events: auto;
}

/* ═══════════════════════════════════════════════════════════════════
   쿠폰존 (couponzone.10.skin.php)
   ═══════════════════════════════════════════════════════════════════ */
.ccms-cz-section { padding: 32px 0; }
.ccms-cz-section + .ccms-cz-section { border-top: 1px solid var(--border); }
.ccms-cz-head { font-size: 20px; font-weight: 700; margin-bottom: 6px; color: var(--charcoal-800); }
.ccms-cz-desc { font-size: 14px; color: var(--stone-500); margin-bottom: 20px; }
.ccms-cz-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
.ccms-cz-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fbf9f4;
}
.ccms-cz-left { display: flex; align-items: flex-start; gap: 16px; flex: 1; min-width: 0; }
.ccms-cz-img { width: 80px; height: 80px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
.ccms-cz-info { flex: 1; min-width: 0; }
.ccms-cz-name { font-size: 15px; font-weight: 600; color: var(--charcoal-800); margin-bottom: 4px; }
.ccms-cz-price { font-size: 18px; font-weight: 700; color: var(--primary); margin-bottom: 8px; }
.ccms-cz-price strong { font-size: 22px; }
.ccms-cz-meta { position: relative; display: inline-block; margin-bottom: 6px; }
.ccms-cz-target-btn {
  font-size: 12px;
  color: var(--stone-500);
  background: none;
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 3px 10px;
  cursor: pointer;
  display: inline-flex; align-items: center; gap: 4px;
  transition: border-color .15s;
}
.ccms-cz-target-btn:hover { border-color: var(--primary); color: var(--primary); }
.ccms-cz-popup {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 100;
  width: 260px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.ccms-cz-popup-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 14px 10px;
  font-size: 13px; font-weight: 600;
  border-bottom: 1px solid var(--border);
}
.ccms-cz-popup-cls {
  background: none; border: none; cursor: pointer;
  font-size: 14px; color: var(--stone-400);
}
.ccms-cz-popup-body { list-style: none; padding: 12px 14px; margin: 0; font-size: 13px; color: var(--stone-600); line-height: 1.8; }
.ccms-cz-period { font-size: 12px; color: var(--stone-400); }
.ccms-cz-right { flex-shrink: 0; }
.ccms-cz-right .ccms-btn:disabled { opacity: .45; cursor: not-allowed; }

/* ═══════════════════════════════════════════════
   ccms-pcard-h — 가로형 상품 카드 (list.30)
═══════════════════════════════════════════════ */
.ccms-list-h { display: flex; flex-direction: column; gap: 12px; }
.ccms-pcard-h {
  display: flex; gap: 16px; align-items: flex-start;
  padding: 16px; background: #fff;
  border: 1px solid var(--border); border-radius: 12px;
}
.ccms-pcard-h-img {
  position: relative; flex-shrink: 0;
  width: 120px; height: 120px;
  border-radius: 8px; overflow: hidden;
  background: var(--stone-100, #f3f0eb);
}
.ccms-pcard-h-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ccms-pcard-h-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.ccms-pcard-h-btns { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.ccms-pcard-basic { font-size: 13px; color: var(--stone-500); line-height: 1.5; }

/* ═══════════════════════════════════════════════
   ccms-pcard-hover-btns — 이미지 위 호버 버튼 (main.40)
═══════════════════════════════════════════════ */
.ccms-pcard-hover-btns {
  position: absolute; bottom: 0; left: 0; right: 0;
  display: flex; justify-content: center;
  padding: 8px;
  transform: translateY(100%);
  transition: transform .2s ease;
}
.ccms-pcard:hover .ccms-pcard-hover-btns { transform: translateY(0); }

/* ═══════════════════════════════════════════════
   ccms-pcard-cart — 카드 하단 장바구니 버튼 (list.40)
═══════════════════════════════════════════════ */
.ccms-pcard-cart { width: 100%; margin-top: 8px; }
.ccms-pcard-sns { display: flex; gap: 6px; margin-top: 8px; }

/* ═══════════════════════════════════════════════
   롤링 상품 (main.20 / main.50)
═══════════════════════════════════════════════ */
.ccms-sctrl { list-style: none; margin: 0 0 10px; padding: 0; display: flex; gap: 6px; }
.ccms-sctrl button {
  padding: 3px 10px; font-size: 11px;
  border: 1px solid var(--border); border-radius: 4px;
  background: #fff; color: var(--stone-500); cursor: pointer; line-height: 1.6;
}
.ccms-sctrl button:hover { background: var(--stone-100); color: var(--charcoal-800); }

.ccms-smt-20 { position: relative; overflow: hidden; }
.ccms-smt-20 .sct_ul {
  position: absolute; top: 0; left: 0; width: 100%;
  display: flex; gap: 20px;
  list-style: none; margin: 0; padding: 0;
}
.ccms-smt-20 .sct_ul_first { position: relative; }

.ccms-smt-item { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; }
.ccms-smt-img {
  display: block; flex-shrink: 0;
  width: 72px; height: 72px;
  overflow: hidden; border-radius: 6px;
  background: var(--stone-100);
}
.ccms-smt-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.ccms-smt-item:hover .ccms-smt-img img { transform: scale(1.05); }
.ccms-smt-body { flex: 1; min-width: 0; }
.ccms-smt-name {
  display: block; font-size: 13px; color: var(--charcoal-800);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  line-height: 1.4;
}
.ccms-smt-name:hover { color: var(--primary); }
.ccms-smt-price { font-size: 13px; font-weight: 600; margin-top: 4px; color: var(--charcoal-900); }
.ccms-smt-price s { font-weight: 400; color: var(--stone-400); margin-right: 4px; font-size: 12px; }
.ccms-empty-sm { font-size: 13px; color: var(--stone-400); padding: 8px 0; }

/* ═══════════════════════════════════════════════════════════════════
   타입 리스트 페이지 (listtype.php) — ccms-grid-4 가 shop-content 직계 자식일 때
   category 페이지는 ccms-container 안에 있으므로 이 선택자에 해당하지 않음
   ═══════════════════════════════════════════════════════════════════ */
.shop-content > .ccms-grid-4,
.shop-content > .ccms-grid-3,
.shop-content > .ccms-grid-5 {
  max-width: 1280px;
  margin: 48px auto 40px;
  padding-left: 40px;
  padding-right: 40px;
}
/* 타입 리스트 페이지 — 빈 상태 & 페이징 */
.shop-content > .sct_noitem {
  max-width: 1280px;
  margin: 48px auto 0;
  padding: 60px 40px;
  text-align: center;
  color: var(--stone-400);
  font-size: 15px;
}
/* 페이지네이션이 shop-content 직계 자식인 경우 */
.shop-content > #pagingnav,
.shop-content > .pg_wrap,
.shop-content > .ccms-paging {
  max-width: 1280px;
  margin: 48px auto;
  padding: 0 40px;
  text-align: center;
}

/* ═══════════════════════════════════════════════════════════════════
   content 페이지 (/content/company 등)
   ═══════════════════════════════════════════════════════════════════ */
/* 내용관리(약관·브랜드스토리 등) — 흰 카드 + 아이보리(위·아래) 띠 */
.ccms-content-wrap {
  /* 흰 박스 바깥: #wrapper --ivory. #ctt margin-top/bottom과 함께 쌓여 간격이 됨 */
  /* .ccms-container 병기 시 padding 단축(20px 0)은 좌우 40px를 덮음 */
  padding-top: 20px;
  padding-bottom: 40px;
  box-sizing: border-box;
  display: flow-root; /* #ctt margin-top 이 위 요소로 접히지 않게 */
}
#ctt {
  max-width: 800px;
  /* 헤더·푸터(아이보리)와 흰 카드 사이 명시적 간격 — 스킨에서 margin:0 으로 덮지 말 것 */
  margin: 20px auto;
  /* 흰 박스 안쪽 여백 (본문이 테 두르지 않게) */
  padding: 40px 40px 48px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid var(--stone-100);
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(38, 35, 30, 0.06);
}
#ctt header { margin: 0 0 0; padding: 0 0 20px; border-bottom: 2px solid var(--border); }
#ctt header .ccms-eyebrow { margin-bottom: 10px; }
#ctt header h1 {
  font-size: 28px; font-weight: 700; color: var(--charcoal-800);
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  line-height: 1.3;
}
#ctt_con {
  font-size: 15px; line-height: 1.85; color: var(--charcoal-800);
  /* 구분선 아래 본문 들여쓰기(안쪽) + 아래 끝 숨 */
  padding: 36px 0 0;
  margin: 0;
  min-height: 120px;
}
#ctt_con p { margin-bottom: 1em; }
#ctt_con h2, #ctt_con h3 { margin: 1.6em 0 0.6em; font-weight: 700; }
#ctt_con a { color: var(--primary); text-decoration: underline; }
#ctt_con table { width: 100%; border-collapse: collapse; margin: 1.2em 0; font-size: 13px; }
#ctt_con .ccms-content-note {
  margin-top: 2em;
  padding: 12px 14px;
  font-size: 13px;
  color: var(--stone-500);
  background: var(--ivory, #f7f4ef);
  border-radius: 8px;
}
#ctt_con table th, #ctt_con table td { border: 1px solid var(--border); padding: 10px 14px; text-align: left; }
#ctt_con table th { background: var(--cream); font-weight: 600; }

/* ═══════════════════════════════════════════════════════════════════
   메인 · SHOP BY CATEGORY (1대 + 4, 분류 ca_1·ca_2)
   ═══════════════════════════════════════════════════════════════════ */
.ccms-cat-bento-wrap { margin-top: 12px; }
/* 제작 과정 영상 (PC·모바일 공통) */
.ccms-video-frame {
  position: relative;
  width: 100%;
  margin-top: 12px;
  border-radius: 10px;
  overflow: hidden;
  background: #000;
  border: 1px solid var(--border);
}
.ccms-video {
  display: block;
  width: 100%;
  height: auto;
}
/* 상품 섹션 제목 — Discover Our 스타일 (PC·모바일 공통) */
.ccms-disc-head { text-align: center; margin: 0 auto 22px; }
.ccms-disc-eyebrow {
  display: block;
  font-family: Georgia, 'Times New Roman', serif;
  font-style: italic;
  font-size: 18px;
  color: var(--stone-500, #8a7f70);
  letter-spacing: .3px;
}
.ccms-disc-title {
  margin: 4px 0 3px;
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 1.5px;
  color: var(--ink, #2c2620);
  line-height: 1.15;
}
.ccms-disc-sub {
  display: block;
  font-size: 13px;
  letter-spacing: 3px;
  color: var(--stone-400, #a99f90);
}
.ccms-disc-link {
  display: inline-block;
  margin-top: 12px;
  font-size: 13px;
  color: var(--stone-500, #8a7f70);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
}
/* PC 메인 카테고리 균일 그리드 (대분류 전체 노출) */
.ccms-cat-grid {
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: auto;
  gap: 12px;
  align-items: stretch;
  height: auto; /* 구버전 height:420px 잔여로 2행이 베스트 섹션으로 넘치지 않게 */
}
.ccms-cat-grid-tile {
  position: relative; display: block;
  height: 0;
  padding-top: 72%; /* 가로:세로 비율 확정 높이 (aspect-ratio 미지원 브라우저에서도 겹침 방지) */
  border-radius: 8px; overflow: hidden;
  background-size: cover; background-position: center;
  text-decoration: none; color: #fbf9f4;
  border: 1px solid var(--border);
}
@media (max-width: 768px) {
  .ccms-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ccms-cat-grid-tile { padding-top: 78%; }
}
.ccms-cat-bento-wrap--hero-only .ccms-cat-bento { grid-template-columns: 1fr; min-height: 320px; }
.ccms-cat-bento-wrap--hero-only .ccms-cat-bento-grid { display: none; }
.ccms-cat-bento {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) minmax(0, 0.95fr);
  grid-template-rows: 1fr 1fr;
  gap: 12px;
  min-height: 360px;
}
.ccms-cat-bento-hero {
  grid-row: 1 / -1;
  grid-column: 1 / 2;
  position: relative;
  display: block;
  border-radius: 8px; overflow: hidden;
  background-size: cover; background-position: center;
  min-height: 200px;
  text-decoration: none; color: #fbf9f4;
  border: 1px solid var(--border);
}
.ccms-cat-bento-grid {
  grid-column: 2 / 4;
  grid-row: 1 / 3;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 12px;
  min-height: 0;
}
.ccms-cat-bento-tile {
  position: relative; display: block;
  border-radius: 8px; overflow: hidden;
  background-size: cover; background-position: center;
  min-height: 0;
  text-decoration: none; color: #fbf9f4;
  border: 1px solid var(--border);
}
.ccms-cat-bento-hero-overlay,
.ccms-cat-bento-hero-overlay--sm {
  position: absolute; left: 0; right: 0; bottom: 0; top: 0;
  display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end;
  padding: 20px 18px;
  background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(16, 14, 10, 0.78) 100%);
}
.ccms-cat-bento-hero-overlay--sm { padding: 12px 10px; }
.ccms-cat-bento-hero-ko {
  font-size: 16px; font-weight: 700; line-height: 1.3;
  text-shadow: 0 1px 2px rgba(0,0,0,.4);
}
.ccms-cat-bento-hero-en {
  font-size: 11px; font-weight: 500; letter-spacing: 0.08em;
  opacity: 0.9; margin-top: 2px; text-transform: uppercase;
  text-shadow: 0 1px 2px rgba(0,0,0,.4);
}
.ccms-cat-bento-hero:hover,
.ccms-cat-bento-tile:hover { filter: brightness(1.04); }
@media (max-width: 1024px) {
  .ccms-cat-bento {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }
  .ccms-cat-bento-hero { grid-row: auto; grid-column: 1 / -1; min-height: 220px; }
  .ccms-cat-bento-grid { grid-column: 1 / -1; grid-row: auto; min-height: 200px; }
}

/* ═══════════════════════════════════════════════════════════════════
   카테고리 원형 탭 (메인 페이지)
   ═══════════════════════════════════════════════════════════════════ */
.ccms-cat-row {
  display: flex; flex-wrap: wrap; gap: 20px 32px;
  justify-content: center; padding: 4px 0;
}
.ccms-cat-pill {
  display: flex; flex-direction: column; align-items: center;
  gap: 8px; text-decoration: none; color: var(--charcoal-800);
  font-size: 12px; font-weight: 500; letter-spacing: 0.01em;
  transition: color var(--dur-base);
}
.ccms-cat-pill:hover { color: var(--primary); }
.ccms-cat-circle {
  width: 64px; height: 64px; border-radius: 50%;
  background: var(--cream); border: 1px solid var(--stone-100);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; color: var(--charcoal-700);
  transition: background var(--dur-base), border-color var(--dur-base), color var(--dur-base);
}
.ccms-cat-pill:hover .ccms-cat-circle {
  background: var(--couponcms-green-100);
  border-color: var(--couponcms-green-300);
  color: var(--primary);
}

/* ═══════════════════════════════════════════════════════════════════
   분류 허브 /shop/categories (1·2단)
   ═══════════════════════════════════════════════════════════════════ */
.ccms-cat-land { min-height: 60vh; }
.ccms-cat-land-hero {
  background: linear-gradient(180deg, var(--sand) 0%, var(--ivory) 100%);
  border-bottom: 1px solid var(--border);
  padding: 40px 0 36px;
}
.ccms-cat-land-eyebrow {
  margin: 0; font-size: 10px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--primary);
}
.ccms-cat-land-h1 {
  margin: 8px 0 0; font-family: var(--font-display);
  font-size: 32px; font-weight: 600; color: var(--charcoal-800);
  line-height: 1.2;
}
.ccms-cat-land-lead { margin: 8px 0 0; font-size: 14px; color: var(--stone-500); }
/* .ccms-cat-land-body는 .ccms-container와 동일 요소: padding 단축(32px 0 80px) 쓰면 좌·우 40px가 0으로 덮임 */
.ccms-cat-land-body { padding-top: 32px; padding-bottom: 0; }
.ccms-cat-land-body > .ccms-paging {
  margin: 48px auto;
  text-align: center;
}
/* 유형별 목록(베스트/신상/세일) — 카테고리 히어로 + 상품 그리드 */
.ccms-listtype-body > .ccms-grid-4,
.ccms-listtype-body > .ccms-grid-3,
.ccms-listtype-body > .ccms-grid-5 {
  margin: 0;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}
.ccms-listtype-body > .ccms-paging,
.ccms-cat-land-body > .ccms-paging,
.ccms-plp-main > .ccms-paging {
  /* 상품 ↔ 페이징 ↔ 푸터 상·하 동일 (부모 padding-bottom 추가하지 않음) */
  margin: 48px auto;
  padding: 0;
  text-align: center;
}
/* 이벤트 상세 히어로 — 배너 이미지 배경 */
.ccms-event-land-hero--img {
  position: relative;
  background-size: cover;
  background-position: center;
  background-color: var(--charcoal-800);
  border-bottom: 0;
}
.ccms-event-land-hero--img::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(28,24,20,.45) 0%, rgba(28,24,20,.78) 100%);
}
.ccms-event-land-hero--img .ccms-container { position: relative; z-index: 1; }
.ccms-event-land-hero--img .ccms-cat-land-eyebrow { color: var(--brand-yellow, #f5e6a8); }
.ccms-event-land-hero--img .ccms-cat-land-h1,
.ccms-event-land-hero--img .ccms-cat-land-lead { color: #fbf9f4; }
.ccms-event-land-body > #sct_sortlst { margin-bottom: 8px; }
.ccms-event-land-body > .ccms-grid-4 {
  margin: 0;
  max-width: none;
  padding: 0;
}
/* 고객센터 FAQ — page-head */
.ccms-faq-page .ccms-page-head {
  margin-bottom: 28px;
}
.ccms-faq-page #faq_sch,
.ccms-faq-page #bo_cate,
.ccms-faq-page #faq_wrap {
  margin-left: 0;
  margin-right: 0;
}
.ccms-faq-page .ccms-paging {
  margin: 48px auto;
}
/* Help 1:1 — page-head */
.ccms-qa-page #bo_list {
  max-width: none;
  margin: 0 0 80px;
  padding: 0;
}
.ccms-cat-land-empty { text-align: center; padding: 60px 0; color: var(--stone-400); }
.ccms-cat-land-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px;
  width: 100%;
  box-sizing: border-box;
}
@media (min-width: 1000px) { .ccms-cat-land-grid { grid-template-columns: repeat(3, 1fr); } }
.ccms-cat-land-block {
  background: #fff; border: 1px solid var(--border); border-radius: 12px;
  overflow: hidden; box-shadow: var(--shadow-sm);
}
.ccms-cat-land-l1 { display: block; text-decoration: none; color: inherit; }
.ccms-cat-land-l1img {
  height: 180px; background-color: var(--sand); background-size: cover; background-position: center;
  transition: transform 400ms ease;
}
.ccms-cat-land-l1:hover .ccms-cat-land-l1img { transform: scale(1.03); }
.ccms-cat-land-l1body { padding: 16px 18px; }
.ccms-cat-land-l1name { margin: 0; font-size: 18px; font-weight: 700; color: var(--charcoal-800); }
.ccms-cat-land-cnt { margin: 4px 0 0; font-size: 12px; color: var(--stone-400); }
.ccms-cat-land-l2 { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--border); }
.ccms-cat-land-l2 li { border-bottom: 1px solid var(--border); }
.ccms-cat-land-l2 li:last-child { border-bottom: 0; }
.ccms-cat-land-l2a {
  display: flex; align-items: center; gap: 10px; padding: 10px 14px;
  text-decoration: none; color: var(--charcoal-800); font-size: 14px;
  transition: background var(--dur-base);
}
.ccms-cat-land-l2a:hover { background: var(--ivory); }
.ccms-cat-land-l2th {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: 8px;
  background-color: var(--sand); background-size: cover; background-position: center;
  border: 1px solid var(--border);
}
.ccms-cat-land-l2txt { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.ccms-cat-land-l2name { font-weight: 500; }
.ccms-cat-land-l2 .ccms-cat-land-cnt { font-size: 12px; color: var(--stone-400); margin: 0; }

/* ═══════════════════════════════════════════════════════════════════
   PC 1:1문의 작성 (bbs/qawrite.php)
   ═══════════════════════════════════════════════════════════════════ */
#bo_w.ccms-qawrite {
  max-width: 860px;
  margin: 40px auto 80px;
  padding: 0 40px;
  box-sizing: border-box;
}
#bo_w.ccms-qawrite .ccms-qawrite-title,
#bo_w.ccms-qawrite > h2.ccms-qawrite-title {
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  color: var(--charcoal-800);
  overflow: visible !important;
  text-indent: 0 !important;
}
#bo_w.ccms-qawrite .form_01 ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
#bo_w.ccms-qawrite .frm_input,
#bo_w.ccms-qawrite select,
#bo_w.ccms-qawrite textarea {
  width: 100% !important;
  float: none !important;
  box-sizing: border-box;
  height: 48px;
  padding: 0 14px;
  border: 1px solid var(--border-strong);
  border-radius: 6px;
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--charcoal-800);
  background: #fff;
}
#bo_w.ccms-qawrite .bo_w_mail,
#bo_w.ccms-qawrite .bo_w_hp {
  float: none !important;
  width: 100% !important;
}
#bo_w.ccms-qawrite .ccms-qawrite-check {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}
#bo_w.ccms-qawrite .ccms-qawrite-check input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--primary);
  flex-shrink: 0;
  cursor: pointer;
}
#bo_w.ccms-qawrite .ccms-qawrite-check label {
  margin: 0;
  padding: 0;
  color: var(--charcoal-800);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  line-height: 1.3;
}
#bo_w.ccms-qawrite textarea,
#bo_w.ccms-qawrite .wr_content textarea {
  height: auto;
  min-height: 180px;
  padding: 14px;
  line-height: 1.6;
}
#bo_w.ccms-qawrite .frm_input:focus,
#bo_w.ccms-qawrite select:focus,
#bo_w.ccms-qawrite textarea:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(27, 94, 58, .12);
}
#bo_w.ccms-qawrite .bo_w_flie .file_wr,
#bo_w.ccms-qawrite .file_wr {
  position: relative;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-height: 48px;
  padding: 0 14px 0 44px;
  border: 1px solid var(--border-strong) !important;
  border-radius: 6px !important;
  background: #fff !important;
}
#bo_w.ccms-qawrite .bo_w_flie .lb_icon {
  position: absolute;
  top: 0;
  left: 0;
  width: 44px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  color: var(--stone-500);
  font-size: 16px;
}
#bo_w.ccms-qawrite .bo_w_flie .frm_file {
  display: block;
  width: auto;
  height: auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  font-size: 13px;
  color: var(--charcoal-800);
}
#bo_w.ccms-qawrite .ccms-qawrite-actions {
  display: flex;
  gap: 10px;
  margin-top: 28px;
  justify-content: flex-end;
}
#bo_w.ccms-qawrite .ccms-qawrite-actions .ccms-btn {
  min-width: 120px;
  height: 48px;
  justify-content: center;
}

/* ═══════════════════════════════════════════════════════════════════
   PC 1:1문의 상세 (bbs/qaview.php)
   ═══════════════════════════════════════════════════════════════════ */
#bo_v.ccms-qaview {
  max-width: 860px;
  margin: 40px auto 80px;
  padding: 0 40px;
  box-sizing: border-box;
}
#bo_v.ccms-qaview > header {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}
#bo_v.ccms-qaview #bo_v_title {
  margin: 0 0 12px;
  padding: 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--charcoal-800);
  word-break: keep-all;
}
#bo_v.ccms-qaview #bo_v_title .bo_v_cate {
  display: inline-flex;
  align-items: center;
  height: 24px;
  margin-right: 8px;
  padding: 0 10px;
  border-radius: 4px;
  background: var(--couponcms-green-50, #f4f9f5) !important;
  color: var(--primary) !important;
  font-size: 12px;
  font-weight: 700;
  vertical-align: middle;
}
#bo_v.ccms-qaview #bo_v_title .bo_v_tit {
  display: inline;
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
  color: inherit;
}
#bo_v.ccms-qaview #bo_v_info {
  position: relative;
  margin: 0 0 20px;
  padding: 0 0 16px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--border);
  color: var(--stone-500);
  font-size: 13px;
}
#bo_v.ccms-qaview #bo_v_top {
  position: absolute;
  top: -4px;
  right: 0;
}
#bo_v.ccms-qaview #bo_v_top ul {
  background: transparent;
}
#bo_v.ccms-qaview .bo_v_com {
  display: flex;
  align-items: center;
  gap: 6px;
  float: none;
  margin: 0;
  padding: 0;
  list-style: none;
}
#bo_v.ccms-qaview .bo_v_com > li {
  float: none;
  margin: 0;
  position: relative;
}
#bo_v.ccms-qaview #bo_v_atc {
  min-height: 120px;
  margin: 0 0 24px;
  padding: 24px 0;
  background: transparent;
  border: 0;
  height: auto !important;
}
#bo_v.ccms-qaview #bo_v_con {
  margin-bottom: 0;
  font-size: 15px;
  line-height: 1.75;
  color: var(--charcoal-800);
  word-break: keep-all;
}
#bo_v.ccms-qaview #bo_v_file {
  margin: 16px 0 0;
  padding: 12px 14px;
  background: var(--cream, #f3ede6);
  border-radius: 8px;
}
#bo_v.ccms-qaview #bo_v_file a {
  color: var(--primary);
}
#bo_v.ccms-qaview .bo_v_nb {
  display: flex;
  gap: 8px;
  margin: 0 0 28px;
  padding: 0;
  list-style: none;
}
#bo_v.ccms-qaview .bo_v_nb li {
  float: none;
  margin: 0;
  width: auto;
  flex: 1;
  text-align: left;
  font-size: 13px;
}
#bo_v.ccms-qaview .bo_v_nb li:first-child { margin-right: 0; }
#bo_v.ccms-qaview .bo_v_nb a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--stone-500);
  text-decoration: none;
}
#bo_v.ccms-qaview .bo_v_nb a:hover { color: var(--primary); }

/* 답변 본문 */
#bo_v.ccms-qaview #bo_v_ans {
  position: relative;
  margin: 0 0 28px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
  overflow: visible;
}
#bo_v.ccms-qaview #bo_v_ans header {
  position: static;
  background: transparent !important;
  border: 0;
}
#bo_v.ccms-qaview #bo_v_ans h2 {
  margin: 0;
  padding: 20px 56px 10px 20px;
  font-size: 18px;
  color: var(--charcoal-800);
}
#bo_v.ccms-qaview #bo_v_ans h2 span,
#bo_v.ccms-qaview #bo_v_ans .bo_v_reply {
  display: inline-flex;
  align-items: center;
  height: 22px;
  margin-right: 8px;
  padding: 0 8px;
  border: 1px solid var(--couponcms-green-200, #cfe3d6);
  border-radius: 999px;
  background: var(--couponcms-green-50, #f4f9f5);
  color: var(--primary);
  font-size: 11px;
  font-weight: 700;
}
#bo_v.ccms-qaview #ans_datetime {
  padding: 0 20px 16px;
  border-bottom: 1px solid var(--border);
  background: transparent;
  color: var(--stone-500);
  font-size: 13px;
}
#bo_v.ccms-qaview #ans_add {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 20;
  text-align: right;
}
#bo_v.ccms-qaview #ans_add .btn_more_add {
  width: 34px;
  min-width: 34px;
  padding: 0;
  justify-content: center;
}
#bo_v.ccms-qaview #ans_add .more_add {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  margin: 0;
  padding: 6px 0;
  list-style: none;
  min-width: 120px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(26, 22, 18, .08);
  z-index: 30;
}
#bo_v.ccms-qaview #ans_add .more_add:before,
#bo_v.ccms-qaview #ans_add .more_add:after {
  display: none;
}
#bo_v.ccms-qaview #ans_add .more_add li {
  margin: 0;
  border: 0 !important;
}
#bo_v.ccms-qaview #ans_add .more_add a {
  display: block;
  padding: 10px 14px;
  color: var(--charcoal-800);
  font-size: 13px;
  font-weight: 500;
  text-align: left;
  text-decoration: none;
  line-height: 1.3;
  background: transparent;
  border: 0;
}
#bo_v.ccms-qaview #ans_add .more_add a:hover {
  background: var(--cream, #f3ede6);
  color: var(--primary);
}
#bo_v.ccms-qaview #ans_con {
  padding: 20px;
  line-height: 1.75;
  color: var(--charcoal-800);
}
#bo_v.ccms-qaview .bo_v_btn {
  margin: 0 0 28px;
  text-align: center;
}
#bo_v.ccms-qaview .more_opt {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  margin: 0;
  padding: 6px 0;
  list-style: none;
  min-width: 110px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(26, 22, 18, .08);
  z-index: 30;
}
#bo_v.ccms-qaview .more_opt:before,
#bo_v.ccms-qaview .more_opt:after {
  display: none;
}
#bo_v.ccms-qaview .more_opt li {
  float: none;
  width: auto;
  margin: 0;
  border: 0;
}
#bo_v.ccms-qaview .more_opt a {
  display: block;
  padding: 10px 14px;
  color: var(--charcoal-800);
  font-size: 13px;
  text-decoration: none;
}
#bo_v.ccms-qaview .more_opt a:hover {
  background: var(--cream, #f3ede6);
  color: var(--primary);
}

/* 답변등록 폼 */
#bo_v.ccms-qaview #bo_v_ans_form,
#bo_v.ccms-qaview .ccms-qa-ans-form {
  margin: 8px 0 0;
  padding: 24px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
  box-sizing: border-box;
}
#bo_v.ccms-qaview .ccms-qa-ans-form-title,
#bo_v.ccms-qaview #bo_v_ans_form > h2 {
  margin: 0 0 20px !important;
  font-size: 20px !important;
  font-weight: 700;
  color: var(--charcoal-800);
}
#bo_v.ccms-qaview #bo_v_ans_form .form_01 ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
#bo_v.ccms-qaview #bo_v_ans_form .frm_input,
#bo_v.ccms-qaview #bo_v_ans_form .full_input {
  width: 100% !important;
  box-sizing: border-box;
  height: 48px;
  padding: 0 14px;
  border: 1px solid var(--border-strong);
  border-radius: 6px;
  background: #fff;
  font-size: 14px;
  color: var(--charcoal-800);
}
#bo_v.ccms-qaview #bo_v_ans_form .frm_input:focus {
  outline: none;
  border-color: var(--primary);
}
#bo_v.ccms-qaview #bo_v_ans_form .wr_content,
#bo_v.ccms-qaview #bo_v_ans_form .qa_content_wrap {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
#bo_v.ccms-qaview #bo_v_ans_form .wr_content iframe,
#bo_v.ccms-qaview #bo_v_ans_form .wr_content textarea,
#bo_v.ccms-qaview #bo_v_ans_form textarea {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}
#bo_v.ccms-qaview #bo_v_ans_form .bo_w_flie .file_wr,
#bo_v.ccms-qaview #bo_v_ans_form .file_wr {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 0 14px 0 44px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--cream, #f3ede6);
}
#bo_v.ccms-qaview #bo_v_ans_form .bo_w_flie .frm_file,
#bo_v.ccms-qaview #bo_v_ans_form .file_wr .frm_file {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 13px;
  color: var(--charcoal-800);
}
#bo_v.ccms-qaview #bo_v_ans_form .bo_w_flie .lb_icon {
  position: absolute;
  top: 0;
  left: 0;
  width: 44px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--stone-500);
  font-size: 16px;
}
#bo_v.ccms-qaview #bo_v_ans_form .ccms-qawrite-actions,
#bo_v.ccms-qaview #bo_v_ans_form .btn_confirm {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 24px;
}
#bo_v.ccms-qaview #bo_v_ans_form .ccms-btn {
  min-width: 120px;
  height: 48px;
  justify-content: center;
}
#bo_v.ccms-qaview #ans_msg {
  margin: 0;
  padding: 40px 20px;
  border-radius: 12px;
  background: var(--cream, #f3ede6);
  color: var(--stone-500);
  text-align: center;
}
#bo_v.ccms-qaview #bo_v_rel {
  margin: 0;
  padding: 28px 0 0;
  border-top: 1px solid var(--border);
}
#bo_v.ccms-qaview #bo_v_rel h2 {
  margin: 0 0 14px;
  font-size: 18px;
  color: var(--charcoal-800);
}

/* SmartEditor 단축키 일람 — PC(default_shop)에 누락된 레이아웃 복구 */
.cke_sc {
  margin: 0 0 8px;
  text-align: right;
}
.btn_cke_sc {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 12px;
  border: 1px solid var(--border-strong);
  border-radius: 6px;
  background: #fff;
  color: var(--charcoal-800);
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  line-height: 1;
}
.btn_cke_sc:hover {
  border-color: var(--primary);
  color: var(--primary);
}
.cke_sc_def {
  margin: 8px 0 12px;
  padding: 16px 18px 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--cream, #f3ede6);
  text-align: center;
  box-sizing: border-box;
}
.cke_sc_def dl {
  display: grid;
  grid-template-columns: 140px 1fr 140px 1fr;
  gap: 0 16px;
  margin: 0 0 12px;
  padding: 0;
  text-align: left;
}
.cke_sc_def dt,
.cke_sc_def dd {
  float: none;
  margin: 0;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
  box-sizing: border-box;
  line-height: 1.4;
}
.cke_sc_def dt {
  font-weight: 700;
  font-size: 13px;
  color: var(--charcoal-800);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.cke_sc_def dd {
  font-size: 13px;
  color: var(--stone-500);
}
.cke_sc_def .btn_cke_sc_close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 34px;
  padding: 0 16px;
  border: 1px solid var(--border-strong);
  border-radius: 6px;
  background: #fff;
  color: var(--charcoal-800);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.cke_sc_def .btn_cke_sc_close:hover {
  border-color: var(--primary);
  color: var(--primary);
}
@media (max-width: 720px) {
  .cke_sc_def dl {
    grid-template-columns: 120px 1fr;
  }
}
