/* 지킴몰 화면 스타일 v0.6
   PC = 시안 E(카테고리·랭킹형), 모바일(767px 이하) = 시안 D(체계형)
   글꼴 Pretendard Variable (사이트에 포함, /fonts/pretendard)
   모티프: 밴드 한 장 — 캡슐 모양(필터·태그), 통기 구멍 점무늬(브랜드 면), 영수증 톱니(증빙) */

:root {
  --ink: #0A1A3F;
  --ink2: #2B3A5C;
  --muted: #5A6478;
  --faint: #8D96A8;
  --blue: #1E56E0;
  --blue-d: #1440B8;
  --blue-l: #4B7BF2;
  --sky: #EAF1FF;
  --sky2: #DCE7FF;
  --surface: #F5F7FB;
  --line: #E4E9F2;
  --line2: #D3DBE8;
  --mint: #0E9F8E;
  --mint-d: #0B7A6E;
  --mint-l: #E1F6F2;
  --yellow: #FFD84D;
  --ok: #0B7A6E;
  --okbg: #E1F6F2;
  --warn: #8F5200;
  --warnbg: #FFF4DB;
  --bad: #C2341F;
  --badbg: #FDEEEC;
  --r: 14px;
  --sh-1: 0 1px 2px rgba(10, 26, 63, .06), 0 2px 8px rgba(10, 26, 63, .04);
  --sh-2: 0 2px 4px rgba(10, 26, 63, .05), 0 14px 30px -12px rgba(20, 64, 184, .28);
  --sh-3: 0 6px 12px rgba(10, 26, 63, .06), 0 30px 64px -24px rgba(10, 26, 63, .38);
  --dots-w: radial-gradient(circle, rgba(255, 255, 255, .1) 1.3px, transparent 1.7px);
  --dots-b: radial-gradient(circle, rgba(30, 86, 224, .13) 1.3px, transparent 1.7px);
  /* 남색·파란 면의 고운 입자 (인쇄물 느낌) */
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .11 -.035'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --studio: radial-gradient(130% 95% at 50% 10%, #FFFFFF 0%, #F5F7FB 50%, #E6EAF2 100%);
  --font: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;
  /* 하위 호환 (관리자 화면) */
  --sky-old: var(--sky);
}

/* ───────── 기본 ───────── */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
body {
  margin: 0; background: #fff; color: var(--ink);
  font-family: var(--font); font-size: 15px; line-height: 1.6; font-weight: 450;
  letter-spacing: -.012em; word-break: keep-all; overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; }
img, svg { vertical-align: middle; }
a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
button, input, select, textarea { font: inherit; letter-spacing: inherit; }
:focus-visible { outline: 3px solid rgba(30, 86, 224, .5); outline-offset: 2px; border-radius: 6px; }
::selection { background: #CFE0FF; }
h1, h2, h3, h4 { letter-spacing: -.035em; line-height: 1.3; color: var(--ink); }
h1 { font-size: 30px; font-weight: 800; margin: 0 0 20px; }
h2 { font-size: 22px; font-weight: 800; margin: 32px 0 14px; }
h3 { font-size: 17px; font-weight: 700; margin: 22px 0 10px; }
p { margin: 0 0 10px; }
.num, .price, .pc-price, .sum, .ci-amt { font-variant-numeric: tabular-nums; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ico { display: inline-flex; line-height: 0; flex: none; }
.wrap { max-width: 1248px; margin: 0 auto; padding: 0 24px; }
main { padding: 40px 0 96px; min-height: 56vh; }
main.flush { padding-top: 0; }
.lead { color: var(--muted); margin: -10px 0 22px; font-size: 16px; }
.muted { color: var(--muted); }
.small { font-size: 13px; }
.right { text-align: right; }
.mt { margin-top: 16px; }
.mb0 { margin-bottom: 0; }
.inline { display: inline; }
.flex { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.price { font-weight: 800; font-size: 18px; }
@media (min-width: 768px) { .m-only { display: none !important; } }

/* ───────── 버튼 ───────── */
.btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 46px; padding: 0 20px; border-radius: 12px; border: 1.5px solid #1B4FD6;
  background: linear-gradient(180deg, #2C64F0 0%, #1E56E0 100%); color: #fff; font-size: 15px; font-weight: 700; line-height: 1.2;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 2px rgba(10, 26, 63, .1), 0 10px 20px -12px rgba(30, 86, 224, .8);
  cursor: pointer; text-decoration: none !important; white-space: nowrap;
  transition: background-color .15s, border-color .15s, color .15s, box-shadow .2s, transform .15s;
}
.btn:hover { background: linear-gradient(180deg, #2459E6 0%, #1748C9 100%); border-color: #1644BE; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), 0 1px 2px rgba(10, 26, 63, .1), 0 14px 24px -12px rgba(30, 86, 224, .9); transform: translateY(-1px); }
.btn:active { transform: translateY(1px); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 1px 2px rgba(10, 26, 63, .12); }
.btn.sm { min-height: 36px; padding: 0 14px; font-size: 13px; border-radius: 10px; }
.btn.lg { min-height: 56px; padding: 0 24px; font-size: 16px; border-radius: 14px; }
.btn.block { width: 100%; }
.btn.line { background: #fff; color: var(--blue); border-color: var(--blue); box-shadow: 0 1px 2px rgba(10, 26, 63, .06); }
.btn.line:hover { background: var(--sky); box-shadow: 0 8px 18px -12px rgba(30, 86, 224, .55); }
.btn.gray { background: #fff; color: var(--ink); border-color: var(--line2); box-shadow: 0 1px 2px rgba(10, 26, 63, .05); }
.btn.gray:hover { background: var(--surface); border-color: #C4CDDC; box-shadow: 0 8px 18px -14px rgba(10, 26, 63, .5); }
.btn.dark { background: linear-gradient(180deg, #1A2E5E 0%, #0A1A3F 100%); border-color: #0A1A3F; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 1px 2px rgba(10, 26, 63, .14), 0 10px 20px -12px rgba(10, 26, 63, .8); }
.btn.dark:hover { background: linear-gradient(180deg, #213769 0%, #10224D 100%); border-color: #10224D; }
.btn.white { background: #fff; border-color: #fff; color: var(--ink); box-shadow: 0 1px 2px rgba(10, 26, 63, .1), 0 10px 22px -12px rgba(5, 14, 38, .55); }
.btn.white:hover { background: #F2F6FF; border-color: #F2F6FF; }
.btn.ghost-w { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .4); color: #fff; box-shadow: none; }
.btn.ghost-w:hover { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .6); }
.btn.danger { background: #fff; color: var(--bad); border-color: #F0C2BA; box-shadow: none; }
.btn.danger:hover { background: var(--badbg); }
.btn[disabled], .btn[aria-disabled=true] { opacity: .45; cursor: not-allowed; pointer-events: none; box-shadow: none; }
.btn .ico svg { width: 18px; height: 18px; }

/* ───────── 입력 ───────── */
form .row { margin-bottom: 16px; }
label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 7px; color: var(--ink2); }
.hint { color: var(--muted); font-size: 13px; font-weight: 450; }
input[type=text], input[type=email], input[type=password], input[type=tel], input[type=date], input[type=number], input[type=search], select, textarea {
  width: 100%; height: 50px; padding: 0 14px; border: 1.5px solid var(--line2); border-radius: 12px;
  font-size: 15px; background: #fff; color: var(--ink); transition: border-color .15s, box-shadow .15s;
}
textarea { height: auto; min-height: 110px; padding: 12px 14px; }
select { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%235A6478' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m3 5 4 4 4-4'/%3E%3C/svg%3E") no-repeat right 14px center; padding-right: 38px; }
input::placeholder, textarea::placeholder { color: #9AA3B5; }
input:hover, select:hover, textarea:hover { border-color: #B9C4D8; }
input:focus, select:focus, textarea:focus { outline: 0; border-color: var(--blue); box-shadow: 0 0 0 4px rgba(30, 86, 224, .13); }
input[type=file] { font-size: 14px; color: var(--muted); max-width: 100%; }
input[type=file]::file-selector-button { margin-right: 12px; height: 40px; padding: 0 16px; border: 1.5px solid var(--line2); border-radius: 10px; background: #fff; color: var(--ink); font: inherit; font-weight: 600; cursor: pointer; }
input[type=file]::file-selector-button:hover { background: var(--surface); }
.check { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; font-size: 14px; color: var(--ink); margin: 0 0 10px; cursor: pointer; }
.check input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--blue); flex: none; }
.pw { position: relative; }
.pw input { padding-right: 52px; }
.pw button { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: 0; background: none; color: var(--faint); border-radius: 10px; cursor: pointer; display: grid; place-items: center; }
.pw button:hover { color: var(--ink); background: var(--surface); }

/* ───────── 표·카드·배지·알림 ───────── */
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { padding: 12px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { background: var(--surface); font-weight: 700; white-space: nowrap; color: var(--ink2); font-size: 13px; }
td.num, th.num { text-align: right; white-space: nowrap; }
.tbl { overflow-x: auto; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.tbl table tr:last-child td, .tbl table tr:last-child th { border-bottom: 0; }
.card { border: 1px solid var(--line); border-radius: 18px; padding: 24px; background: #fff; }
.card h3:first-child { margin-top: 0; }
.sky { background: var(--surface); border-radius: 18px; padding: 24px; }
.grid { display: grid; gap: 16px; }
.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.split { display: grid; gap: 28px; grid-template-columns: minmax(0, 1fr) 360px; align-items: start; }
.badge { display: inline-flex; align-items: center; gap: 4px; height: 24px; padding: 0 9px; border-radius: 999px; font-size: 12px; font-weight: 700; background: var(--sky); color: var(--blue-d); white-space: nowrap; letter-spacing: -.01em; vertical-align: middle; }
.badge.md { background: var(--mint-l); color: var(--mint-d); }
.badge.gray { background: #EEF1F6; color: #4A5468; }
.badge.new { background: var(--yellow); color: #3D3000; }
.badge.ok { background: var(--okbg); color: var(--ok); }
.badge.warn { background: var(--warnbg); color: var(--warn); }
.badge.bad { background: var(--badbg); color: var(--bad); }
.badge.navy { background: var(--ink); color: #fff; }
.flash { display: flex; gap: 10px; align-items: flex-start; padding: 14px 18px; border-radius: 14px; margin-bottom: 18px; font-weight: 600; font-size: 14px; line-height: 1.55; }
.flash::before { content: ""; flex: none; width: 8px; height: 8px; margin-top: 7px; border-radius: 50%; background: currentColor; }
.flash.ok { background: var(--okbg); color: var(--ok); }
.flash.warn { background: var(--warnbg); color: var(--warn); }
.flash.bad { background: var(--badbg); color: var(--bad); }
.flash.info { background: var(--sky); color: var(--blue-d); }
.flash a { color: inherit; text-decoration: underline; }
.kv { display: grid; grid-template-columns: minmax(96px, 150px) 1fr; gap: 12px 16px; font-size: 14px; margin: 0; }
.kv dt { color: var(--muted); }
.kv dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.sum { display: flex; justify-content: space-between; padding: 7px 0; font-size: 15px; }
.sum.total { border-top: 1px solid var(--line); margin-top: 8px; padding-top: 16px; font-weight: 800; font-size: 19px; }
.sum.total span:last-child { color: var(--blue); }
.pcard { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; background: #fff; }
.pcard .img { aspect-ratio: 4/3; background: var(--surface); display: grid; place-items: center; color: var(--muted); overflow: hidden; }
.pcard .img img { width: 100%; height: 100%; object-fit: cover; }
.pcard .body { padding: 14px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.pcard .name { font-weight: 700; color: var(--ink); }
.admin-nav { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 24px; padding: 6px; background: var(--surface); border-radius: 14px; width: fit-content; max-width: 100%; }
.admin-nav a { padding: 8px 14px; border-radius: 10px; font-weight: 700; font-size: 14px; color: var(--ink2); text-decoration: none !important; }
.admin-nav a:hover { background: #fff; }
.admin-nav a.on { background: var(--ink); color: #fff; }
.empty { position: relative; background: var(--surface); border-radius: 20px; padding: 48px 24px; text-align: center; color: var(--muted); font-size: 15px; overflow: hidden; }
.empty img { width: 120px; margin: 0 auto 14px; display: block; }
.empty b { display: block; color: var(--ink); font-size: 17px; margin-bottom: 4px; }
.empty .btns { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-top: 18px; }

/* ───────── 상단 띠·헤더 (PC) ───────── */
.hd-m { display: none; }
.strip { background: var(--ink); color: rgba(255, 255, 255, .78); font-size: 13px; }
.strip .wrap { display: flex; align-items: center; gap: 18px; height: 38px; }
.strip .item { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.strip .item .ico { color: var(--yellow); }
.strip .sep { width: 1px; height: 12px; background: rgba(255, 255, 255, .22); }
.strip .end { margin-left: auto; display: flex; gap: 18px; align-items: center; }
.strip a { color: rgba(255, 255, 255, .82); }
.strip a:hover { color: #fff; }
.strip strong { color: #fff; font-weight: 700; }
.hd-main { display: flex; align-items: center; gap: 28px; height: 96px; }
.logo { display: inline-flex; align-items: center; gap: 10px; font-size: 28px; font-weight: 800; letter-spacing: -.05em; color: var(--ink); text-decoration: none !important; flex: none; line-height: 1; }
.logo .ico svg { width: 38px; height: 38px; }
.logo small { font-size: 12px; font-weight: 600; letter-spacing: -.01em; color: var(--muted); margin-left: 2px; align-self: flex-end; margin-bottom: 3px; }
.search { position: relative; flex: 1; max-width: 560px; margin: 0 auto; display: flex; align-items: center; height: 52px; border: 2px solid var(--ink); border-radius: 999px; background: #fff; padding: 0 6px 0 24px; transition: box-shadow .2s, border-color .2s; }
.search:focus-within { border-color: var(--blue); box-shadow: 0 0 0 5px rgba(30, 86, 224, .12); }
.search input, .search input:focus { flex: 1; min-width: 0; height: 100%; border: 0; box-shadow: none; padding: 0; background: transparent; font-size: 15px; }
.search button { width: 40px; height: 40px; border: 0; border-radius: 999px; background: var(--ink); color: #fff; display: grid; place-items: center; cursor: pointer; flex: none; }
.search button:hover { background: var(--blue); }
.search button svg { width: 19px; height: 19px; }
.quick { display: flex; align-items: center; gap: 4px; flex: none; }
.quick > a, .quick summary { position: relative; display: flex; flex-direction: column; align-items: center; gap: 5px; min-width: 70px; padding: 8px 8px 6px; border-radius: 14px; font-size: 12px; font-weight: 600; color: var(--ink2); text-decoration: none !important; cursor: pointer; list-style: none; }
.quick > a:hover, .quick summary:hover, .quick details[open] summary { background: var(--surface); }
.quick summary::-webkit-details-marker { display: none; }
.quick .ico svg { width: 26px; height: 26px; }
.cnt { position: absolute; top: 2px; right: 12px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: var(--blue); color: #fff; font-size: 11px; font-weight: 800; line-height: 19px; text-align: center; box-shadow: 0 0 0 2px #fff; font-variant-numeric: tabular-nums; }
.dd { position: relative; }
.dd-menu { position: absolute; right: 0; top: calc(100% + 10px); width: 248px; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--sh-3); padding: 8px; z-index: 70; }
.dd-menu .who { padding: 12px 12px 14px; margin-bottom: 6px; border-bottom: 1px solid var(--line); }
.dd-menu .who b { display: block; font-size: 15px; font-weight: 800; }
.dd-menu .who span { font-size: 12px; color: var(--muted); }
.dd-menu a, .dd-menu button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border: 0; border-radius: 10px; background: none; font-size: 14px; font-weight: 500; color: var(--ink); text-align: left; cursor: pointer; text-decoration: none !important; }
.dd-menu a:hover, .dd-menu button:hover { background: var(--surface); }
.dd-menu .ico svg { width: 18px; height: 18px; color: var(--muted); }
.dd-menu form { margin: 0; }
.gnb { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; position: relative; z-index: 40; }
.gnb .wrap { display: flex; align-items: stretch; height: 58px; }
.allcat { position: relative; width: 220px; flex: none; }
.allcat > a { display: flex; align-items: center; gap: 10px; height: 100%; padding: 0 20px; background: var(--ink); color: #fff; font-weight: 700; font-size: 15px; text-decoration: none !important; }
.allcat > a .ico svg { width: 20px; height: 20px; }
.mega { display: none; position: absolute; left: 0; top: 100%; width: 760px; grid-template-columns: 1.5fr 1fr 1fr; gap: 28px; padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: 0 0 22px 22px; box-shadow: var(--sh-3); z-index: 60; }
.allcat:hover .mega, .allcat:focus-within .mega { display: grid; }
body.home .allcat .mega { display: none !important; }
.mega h4 { margin: 0 0 10px; font-size: 13px; font-weight: 600; color: var(--muted); letter-spacing: -.01em; }
.mega .mlines { display: grid; gap: 6px; }
.mega .mlines a { display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: 14px; color: var(--ink); font-weight: 700; font-size: 15px; text-decoration: none !important; }
.mega .mlines a:hover { background: var(--surface); }
.mega .mlines .th { width: 48px; height: 48px; border-radius: 12px; display: grid; place-items: center; flex: none; }
.mega .mlines .th img { width: 40px; height: 40px; }
.mega ul { list-style: none; margin: 0; padding: 0; }
.mega li a { display: block; padding: 8px 0; color: var(--ink2); font-weight: 500; text-decoration: none !important; }
.mega li a:hover { color: var(--blue); }
.gnb-links { flex: 1; display: flex; align-items: stretch; padding-left: 12px; min-width: 0; }
.gnb-links a { position: relative; display: flex; align-items: center; padding: 0 15px; font-size: 16px; font-weight: 600; color: var(--ink2); text-decoration: none !important; white-space: nowrap; }
.gnb-links a.strong { font-weight: 800; color: var(--ink); }
.gnb-links a::after { content: ""; position: absolute; left: 15px; right: 15px; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--blue); transform: scaleX(0); transition: transform .2s; }
.gnb-links a:hover::after, .gnb-links a.on::after { transform: scaleX(1); }
.gnb-links a.on { color: var(--blue); }
.gnb-links .bar { align-self: center; width: 1px; height: 16px; background: var(--line2); margin: 0 8px; }
.gnb-links .end { margin-left: auto; font-size: 14px; font-weight: 500; color: var(--muted); padding-right: 0; }
.gnb-links .end::after { display: none; }

/* 손님·관리자 헤더 */
.hd-simple { background: #fff; border-bottom: 1px solid var(--line); }
.hd-simple .wrap { display: flex; align-items: center; gap: 16px; min-height: 72px; flex-wrap: wrap; }
.hd-simple .logo { font-size: 24px; }
.hd-simple .logo .ico svg { width: 32px; height: 32px; }
.hd-simple nav { margin-left: auto; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: 14px; }
.hd-simple nav > a:not(.btn) { color: var(--ink2); font-weight: 600; padding: 8px 6px; }
.hd-simple.on-dark { background: var(--ink); border-bottom-color: rgba(255, 255, 255, .08); }
.hd-simple.on-dark .logo { color: #fff; }
.hd-simple.on-dark nav > a:not(.btn) { color: rgba(255, 255, 255, .85); }

/* ───────── 모바일 헤더·하단 메뉴 ───────── */
.hd-m .bar { height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 0 6px 0 16px; }
.hd-m .logo { font-size: 21px; gap: 8px; }
.hd-m .logo .ico svg { width: 28px; height: 28px; }
.hd-m .icons { display: flex; }
.hd-m .icons a, .hd-m .sub a { position: relative; width: 46px; height: 46px; display: grid; place-items: center; color: var(--ink); border-radius: 12px; }
.hd-m .icons .ico svg { width: 25px; height: 25px; }
.hd-m .cnt { top: 6px; right: 4px; }
.hd-m .sub { display: grid; grid-template-columns: 46px 1fr 46px; align-items: center; height: 58px; padding: 0 6px; }
.hd-m .sub p { margin: 0; text-align: center; font-size: 16px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pills { display: flex; gap: 8px; overflow-x: auto; padding: 2px 16px 12px; scrollbar-width: none; }
.pills::-webkit-scrollbar { display: none; }
.pills a { flex: none; height: 36px; padding: 0 15px; border-radius: 999px; border: 1px solid var(--line2); background: #fff; color: var(--ink2); font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; text-decoration: none !important; }
.pills a.on { background: var(--ink); border-color: var(--ink); color: #fff; font-weight: 700; }
.tabbar, .actionbar { display: none; }

/* ───────── 토스트 ───────── */
.toast { position: fixed; left: 50%; bottom: 32px; z-index: 90; display: flex; align-items: center; gap: 14px; padding: 14px 14px 14px 18px; border-radius: 16px; background: var(--ink); color: #fff; box-shadow: var(--sh-3); font-size: 15px; font-weight: 600; transform: translateX(-50%); animation: toast-in .35s cubic-bezier(.2, .9, .3, 1.2) both, toast-out .4s ease 4.2s forwards; max-width: calc(100vw - 32px); }
.toast .ico { width: 28px; height: 28px; border-radius: 50%; background: var(--mint); display: grid; place-items: center; }
.toast .ico svg { width: 16px; height: 16px; }
.toast a { color: var(--yellow); font-weight: 700; white-space: nowrap; }
.toast button { width: 32px; height: 32px; border: 0; border-radius: 8px; background: transparent; color: rgba(255, 255, 255, .6); cursor: pointer; display: grid; place-items: center; }
.toast button:hover { color: #fff; background: rgba(255, 255, 255, .08); }
@keyframes toast-in { from { opacity: 0; transform: translate(-50%, 16px) scale(.96); } to { opacity: 1; transform: translate(-50%, 0) scale(1); } }
@keyframes toast-out { to { opacity: 0; transform: translate(-50%, 12px); visibility: hidden; } }

/* ───────── 푸터 ───────── */
.ft { background: var(--ink); background-image: var(--dots-w); background-size: 16px 16px; color: rgba(255, 255, 255, .6); font-size: 13px; line-height: 1.85; padding: 56px 0 44px; }
.ft a { color: rgba(255, 255, 255, .85); }
.ft-top { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 40px; padding-bottom: 32px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.ft .logo { color: #fff; font-size: 24px; }
.ft .logo .ico svg { width: 32px; height: 32px; }
.ft-about p { margin: 14px 0 0; max-width: 340px; font-size: 14px; }
.ft-cs .k { color: rgba(255, 255, 255, .6); font-size: 13px; font-weight: 600; }
.ft-cs b { display: block; color: #fff; font-size: 28px; font-weight: 800; letter-spacing: -.03em; line-height: 1.3; margin: 2px 0 6px; font-variant-numeric: tabular-nums; }
.ft-links { display: grid; grid-template-columns: repeat(2, max-content); gap: 6px 28px; align-content: start; }
.ft-links a { font-weight: 600; font-size: 14px; color: #fff; }
.ft-links a.pp { color: var(--yellow); font-weight: 800; }
.ft-biz { padding-top: 26px; display: grid; gap: 1px; }
.ft-biz .co { color: #fff; font-weight: 700; font-size: 14px; margin-bottom: 4px; }
.ft-biz p { margin: 0; }
.ft-note { margin-top: 20px; color: rgba(255, 255, 255, .42); font-size: 12px; }
/* 예전 푸터 클래스 (관리자 등) */
footer.biz { border-top: 1px solid var(--line); padding: 26px 0 40px; font-size: 13px; color: var(--muted); }

/* ───────── 상품 카드 ───────── */
.tone-band { background: #EEF3FF; }
.tone-clear { background: #E7F1FF; }
.tone-mix { background: #EEF0FF; }
.tone-dressing { background: #FFF3E2; }
.tone-film { background: #E4F5F7; }
.tone-pad { background: #F3F0FF; }
.tone-box { background: #EDF2FF; }
.tone-photo { background: #F4F6FA; }
.tone-pack { background: linear-gradient(180deg, rgba(216, 223, 235, 0) 62%, rgba(206, 214, 228, .5) 100%), var(--studio); }
.plist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px 24px; }
.plist.c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 18px; }
.plist.c2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
.pc { position: relative; min-width: 0; scroll-margin-top: 110px; }
.pc-img { position: relative; aspect-ratio: 1 / 1; border-radius: 20px; overflow: hidden; isolation: isolate; }
.pc-img::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(10, 26, 63, .045); pointer-events: none; }
.pc-link { position: absolute; inset: 0; display: grid; place-items: center; }
.pc-illus { width: 76%; height: 76%; object-fit: contain; transition: transform .45s cubic-bezier(.2, .8, .2, 1); }
.pc-photo { width: 100%; height: 100%; object-fit: cover; transition: transform .45s cubic-bezier(.2, .8, .2, 1); }
.pc:hover .pc-illus { transform: scale(1.05) rotate(-3deg); }
.pc:hover .pc-photo { transform: scale(1.04); }
.rank { position: absolute; left: 12px; top: 12px; z-index: 2; min-width: 36px; height: 36px; padding: 0 8px; border-radius: 11px; background: #fff; color: var(--ink); font-size: 16px; font-weight: 800; letter-spacing: -.02em; display: grid; place-items: center; box-shadow: var(--sh-1); font-variant-numeric: tabular-nums; }
.rank.top { background: var(--ink); color: #fff; }
.rank.top::after { content: ""; position: absolute; top: -3px; right: -3px; width: 10px; height: 10px; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 0 2px #fff; }
.sticker { position: absolute; left: 12px; top: 12px; z-index: 2; height: 28px; padding: 0 10px; border-radius: 8px; background: var(--yellow); color: #3D3000; font-size: 12px; font-weight: 800; display: grid; place-items: center; transform: rotate(-4deg); box-shadow: 0 2px 6px rgba(138, 106, 0, .2); }
.qadd { position: absolute; right: 12px; bottom: 12px; z-index: 2; margin: 0; }
.qadd button { width: 46px; height: 46px; border: 0; border-radius: 50%; background: #fff; color: var(--blue); display: grid; place-items: center; cursor: pointer; box-shadow: var(--sh-2); transition: background-color .15s, color .15s, transform .15s; }
.qadd button:hover { background: var(--blue); color: #fff; transform: scale(1.06); }
.qadd button svg { width: 21px; height: 21px; }
.incart, .soldout { position: absolute; right: 12px; bottom: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 11px; border-radius: 999px; font-size: 12px; font-weight: 700; text-decoration: none !important; }
.incart { background: var(--mint); color: #fff; box-shadow: 0 4px 12px -4px rgba(14, 159, 142, .6); }
.incart svg { width: 14px; height: 14px; }
.soldout { background: rgba(10, 26, 63, .72); color: #fff; }
.pc.out .pc-illus, .pc.out .pc-photo { opacity: .5; filter: grayscale(.4); }
.pc-body { padding-top: 14px; }
.pc-maker { margin: 0 0 3px; font-size: 13px; color: var(--muted); font-weight: 500; }
.pc-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 15.5px; line-height: 1.45; font-weight: 500; color: var(--ink); text-decoration: none !important; min-height: 2.9em; }
.pc-name:hover { color: var(--blue); }
.pc-sub { display: none; margin: 2px 0 0; font-size: 12.5px; color: var(--muted); }
.pc-price { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin: 8px 0 0; }
.pc-price b { font-size: 20px; font-weight: 800; letter-spacing: -.03em; }
.pc-price b small { font-size: 15px; font-weight: 700; margin-left: 1px; }
.pc-price .unit { font-size: 12.5px; color: var(--muted); font-weight: 500; }
.tags { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 5px; }
.tags .badge { height: 22px; padding: 0 8px; font-size: 11.5px; }
.c3 .pc-maker, .c3 .tags { display: none; }
.c3 .pc-name { font-size: 14.5px; }
.c3 .pc-price b { font-size: 17px; }

/* 늘 사던 것 줄 */
.rlist { list-style: none; margin: 0; padding: 0; }
.rr { display: grid; grid-template-columns: 84px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 110px; }
.rr:first-child { padding-top: 4px; }
.rr-thumb { width: 84px; height: 84px; border-radius: 16px; display: grid; place-items: center; overflow: hidden; }
.rr-thumb > img { width: 82%; height: 82%; object-fit: contain; }
.rr-thumb > img.pc-photo { width: 100%; height: 100%; object-fit: cover; }
.rr-name { display: block; font-size: 15px; font-weight: 600; color: var(--ink); text-decoration: none !important; }
.rr-name:hover { color: var(--blue); }
.rr-sub { margin: 3px 0 0; font-size: 13px; color: var(--muted); }
.rr-sub .last { display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 8px; border-radius: 6px; background: var(--surface); color: var(--ink2); font-weight: 600; font-size: 12px; margin-right: 6px; }
.rr-price { margin: 4px 0 0; font-size: 17px; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.rr-act { display: flex; align-items: center; gap: 8px; }
.rr-act form { margin: 0; display: flex; gap: 6px; align-items: center; }
.rr-act input[type=number] { width: 76px; height: 40px; padding: 0 10px; text-align: center; }
.pill-ok { display: inline-flex; align-items: center; gap: 5px; height: 32px; padding: 0 12px; border-radius: 999px; background: var(--mint-l); color: var(--mint-d); font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.pill-ok svg { width: 14px; height: 14px; }

/* ───────── 섹션 공통 ───────── */
.sec { margin-top: 88px; }
.sec-h { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px 20px; margin-bottom: 26px; flex-wrap: wrap; }
.sec-h h2 { margin: 0; font-size: 28px; font-weight: 800; letter-spacing: -.045em; }
.sec-h h2 small { font-size: 16px; font-weight: 600; color: var(--muted); margin-left: 6px; letter-spacing: -.01em; }
.sec-h p { margin: 6px 0 0; font-size: 14.5px; color: var(--muted); }
.more { display: inline-flex; align-items: center; gap: 2px; font-size: 14px; font-weight: 600; color: var(--muted); white-space: nowrap; text-decoration: none !important; }
.more:hover { color: var(--blue); }
.more svg { width: 16px; height: 16px; }
.tabs-pill { display: flex; gap: 6px; flex-wrap: wrap; }
.tabs-pill [role=tab] { height: 40px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--line2); background: #fff; color: var(--ink2); font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; cursor: pointer; text-decoration: none !important; transition: background-color .15s, color .15s, border-color .15s; }
.tabs-pill [role=tab]:hover { border-color: var(--ink); }
.tabs-pill [role=tab][aria-selected=true] { background: var(--ink); border-color: var(--ink); color: #fff; }
.page-h { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.page-h h1 { margin: 0; font-size: 32px; letter-spacing: -.045em; }
.page-h h1 small { font-size: 17px; font-weight: 600; color: var(--muted); margin-left: 6px; letter-spacing: -.01em; }
.page-h p { margin: 8px 0 0; color: var(--muted); font-size: 15px; }
.crumbs { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--faint); margin-bottom: 14px; flex-wrap: wrap; }
.crumbs a { color: var(--muted); }
.crumbs svg { width: 14px; height: 14px; }

/* ───────── 홈 ───────── */
.home-flow { display: flex; flex-direction: column; }
.hero { display: grid; grid-template-columns: 220px minmax(0, 1fr) 288px; gap: 20px; padding-top: 22px; }
.catpanel { margin-top: -22px; border-radius: 0 0 22px 22px; background: var(--ink); background-image: var(--dots-w); background-size: 14px 14px; color: #fff; display: flex; flex-direction: column; overflow: hidden; }
.catpanel ul { list-style: none; margin: 0; padding: 14px 0 10px; flex: 1; }
.catpanel li a { display: flex; align-items: center; gap: 10px; padding: 11px 20px; font-size: 15px; font-weight: 700; color: #fff; text-decoration: none !important; transition: background-color .15s; }
.catpanel li a:hover { background: rgba(255, 255, 255, .07); }
.catpanel li a .th { width: 30px; height: 30px; border-radius: 9px; background: rgba(255, 255, 255, .1); display: grid; place-items: center; flex: none; }
.catpanel li a .th img { width: 26px; height: 26px; }
.catpanel li a .n { margin-left: auto; color: #9FB4DE; font-weight: 500; font-size: 13px; font-variant-numeric: tabular-nums; }
.catpanel li.sep { height: 1px; margin: 8px 20px; background: rgba(255, 255, 255, .12); }
.catpanel li.sub a { font-size: 14px; font-weight: 500; color: #C8D4EE; padding: 8px 20px; }
.catpanel .two { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(255, 255, 255, .12); }
.catpanel .two a { text-align: center; padding: 14px 0; font-size: 13px; font-weight: 700; color: #fff; text-decoration: none !important; }
.catpanel .two a + a { border-left: 1px solid rgba(255, 255, 255, .12); }
.catpanel .two a:hover { background: rgba(255, 255, 255, .07); }
/* 슬라이드 */
.carousel { position: relative; border-radius: 26px; overflow: hidden; min-height: 432px; background: var(--blue); isolation: isolate; }
.slides { display: flex; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.slides::-webkit-scrollbar { display: none; }
.slide { position: relative; flex: 0 0 100%; scroll-snap-align: start; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 44%); align-items: center; gap: 12px; padding: 44px 36px 84px 52px; min-height: 432px; overflow: hidden; }
.slide::before { content: ""; position: absolute; inset: 0; background-size: 15px 15px; -webkit-mask-image: linear-gradient(100deg, transparent 35%, #000 85%); mask-image: linear-gradient(100deg, transparent 35%, #000 85%); pointer-events: none; }
.slide.s-blue { background: linear-gradient(135deg, #2C64F0 0%, #1440B8 100%); color: #fff; }
.slide.s-blue::before { background-image: var(--dots-w); }
.slide.s-sky { background: linear-gradient(135deg, #F4F8FF 0%, #D9E5FF 100%); color: var(--ink); }
.slide.s-sky::before { background-image: var(--dots-b); }
.slide.s-mint { background: linear-gradient(135deg, #F0FBF8 0%, #C4EDE5 100%); color: var(--ink); }
.slide.s-mint::before { background-image: radial-gradient(circle, rgba(14, 159, 142, .16) 1.3px, transparent 1.7px); }
.s-copy { position: relative; z-index: 1; }
.s-kicker { display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 14px 0 10px; border-radius: 999px; font-size: 13px; font-weight: 700; background: rgba(255, 255, 255, .16); color: #fff; }
.s-kicker svg { width: 17px; height: 17px; }
.s-sky .s-kicker { background: #fff; color: var(--blue); box-shadow: var(--sh-1); }
.s-mint .s-kicker { background: #fff; color: var(--mint-d); box-shadow: var(--sh-1); }
.s-title { margin: 20px 0 0; font-size: 40px; line-height: 1.26; font-weight: 800; letter-spacing: -.05em; }
.s-sub { margin: 14px 0 0; font-size: 16.5px; line-height: 1.6; opacity: .88; max-width: 400px; }
.s-cta { margin-top: 28px; display: flex; gap: 8px; }
.s-blue .btn.white { color: var(--blue-d); }
.s-art { position: relative; z-index: 1; width: 100%; max-width: 380px; justify-self: center; }
.s-art img { width: 100%; display: block; }
.car-ctl { position: absolute; left: 52px; bottom: 26px; z-index: 3; display: flex; align-items: center; gap: 6px; }
.car-ctl .count { min-width: 64px; height: 38px; padding: 0 12px; border-radius: 999px; background: rgba(10, 26, 63, .32); color: #fff; font-size: 13px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; font-variant-numeric: tabular-nums; backdrop-filter: blur(6px); }
.car-ctl button { width: 38px; height: 38px; border: 0; border-radius: 50%; background: rgba(10, 26, 63, .32); color: #fff; display: grid; place-items: center; cursor: pointer; backdrop-filter: blur(6px); transition: background-color .15s; }
.car-ctl button:hover { background: rgba(10, 26, 63, .55); }
.car-ctl button svg { width: 18px; height: 18px; }
.car-ctl .i-play { display: none; }
.carousel.paused .car-ctl .i-play { display: block; }
.carousel.paused .car-ctl .i-pause { display: none; }
.dots { display: none; }
/* 옆 카드 */
.side { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); gap: 16px; min-width: 0; }
.side > * { min-width: 0; }
.mycard { border: 1px solid var(--line); border-radius: 22px; padding: 20px; background: #fff; }
.mycard-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.mycard-h b { font-size: 16px; font-weight: 800; letter-spacing: -.03em; }
.ostat { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 14px; background: var(--surface); border-radius: 16px; }
.ostat a { display: flex; flex-direction: column; align-items: center; padding: 14px 4px 12px; color: var(--ink); text-decoration: none !important; border-radius: 16px; }
.ostat a:hover { background: var(--sky); }
.ostat a + a { border-left: 1px solid var(--line); border-radius: 0; }
.ostat strong { font-size: 26px; font-weight: 800; line-height: 1.15; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.ostat strong.zero { color: #B8C0CF; }
.ostat span { font-size: 12px; color: var(--muted); font-weight: 600; margin-top: 2px; }
.olatest { margin-top: 14px; display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--ink); text-decoration: none !important; }
.olatest .t { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.olatest .d { color: var(--faint); font-weight: 500; }
.again { position: relative; overflow: hidden; border-radius: 22px; padding: 22px; background: var(--ink); background-image: var(--dots-w); background-size: 14px 14px; color: #fff; display: flex; flex-direction: column; min-height: 196px; }
.again .k { margin: 0; font-size: 13px; color: rgba(255, 255, 255, .66); font-weight: 600; }
.again > b, .again > div > b { display: block; margin-top: 6px; font-size: 20px; line-height: 1.35; letter-spacing: -.035em; max-width: 190px; }
.again .meta { margin: 8px 0 0; font-size: 13px; color: rgba(255, 255, 255, .7); }
.again form, .again .go { margin: auto 0 0; padding-top: 16px; position: relative; z-index: 1; }
.again .btn { min-height: 42px; font-size: 14px; }
.again > img.again-art { position: absolute; right: -30px; bottom: -36px; width: 150px; transform: rotate(-10deg); opacity: .95; pointer-events: none; }
/* 서비스 안내 */
.svc { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 22px; background: #fff; }
.svc li { display: flex; gap: 14px; align-items: center; padding: 20px 22px; min-width: 0; }
.svc li + li { border-left: 1px solid var(--line); }
.svc .ic { flex: none; width: 48px; height: 48px; border-radius: 15px; background: var(--sky); color: var(--blue); display: grid; place-items: center; }
.svc .ic svg { width: 24px; height: 24px; }
.svc li:nth-child(2) .ic { background: var(--mint-l); color: var(--mint-d); }
.svc li:nth-child(3) .ic { background: #FFF4D6; color: #9A6B00; }
.svc li:nth-child(4) .ic { background: #F0ECFF; color: #5B45C9; }
.svc b { display: block; font-size: 15px; font-weight: 700; letter-spacing: -.02em; }
.svc span { display: block; font-size: 13px; color: var(--muted); line-height: 1.45; margin-top: 2px; }
/* 모바일 홈 바로가기 */
.m-quick { display: none; }
/* 새 상품 | 늘 사던 것 */
.duo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; }
.duo > section { margin-top: 0; min-width: 0; }
.duo > .new { padding-right: 40px; border-right: 1px solid var(--line); }
.duo > .reo { padding-left: 40px; }
.reo-box { border-top: 2px solid var(--ink); }
.reo-actions { margin-top: 18px; display: flex; gap: 8px; }
.reo-actions form { flex: 1; margin: 0; }
.reo-empty { display: flex; gap: 16px; align-items: center; padding: 22px; border-radius: 18px; background: var(--surface); color: var(--muted); font-size: 14px; }
.reo-empty img { width: 80px; flex: none; }
.reo-empty b { display: block; color: var(--ink); font-size: 15px; }
/* 증빙 안내 띠 */
.rband { position: relative; margin-top: 96px; padding: 56px 0 60px; background: var(--sky); background-image: var(--dots-b); background-size: 16px 16px; }
.rband::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; background: linear-gradient(-45deg, var(--sky) 6px, transparent 0) 0 0 / 12px 12px repeat-x, linear-gradient(45deg, var(--sky) 6px, transparent 0) 0 0 / 12px 12px repeat-x; }
.rband-in { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 40px; align-items: center; }
.rband h2 { margin: 0; font-size: 30px; line-height: 1.3; letter-spacing: -.045em; }
.rband .lead2 { margin: 12px 0 0; color: var(--ink2); font-size: 15px; }
.rband .more { margin-top: 18px; color: var(--blue); }
.rcards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.rcards li { position: relative; background: #fff; border-radius: 20px; padding: 24px 22px 22px; box-shadow: var(--sh-1); overflow: hidden; }
.rcards li::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 8px; background: linear-gradient(-45deg, var(--sky) 4px, transparent 0) 0 100% / 8px 8px repeat-x, linear-gradient(45deg, var(--sky) 4px, transparent 0) 0 100% / 8px 8px repeat-x; }
.rcards .ic { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; background: var(--sky); color: var(--blue); }
.rcards .ic svg { width: 22px; height: 22px; }
.rcards li:nth-child(2) .ic { background: var(--mint-l); color: var(--mint-d); }
.rcards li:nth-child(3) .ic { background: #EEF1F6; color: #4A5468; }
.rcards .when { margin: 16px 0 0; font-size: 13px; font-weight: 600; color: var(--muted); }
.rcards b { display: block; margin-top: 2px; font-size: 18px; letter-spacing: -.03em; }
.rcards p { margin: 8px 0 0; font-size: 13.5px; color: var(--muted); line-height: 1.6; }
/* 제품군 */
.lineblk { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 28px; align-items: stretch; }
.lineblk + .lineblk { margin-top: 40px; }
.linepanel { position: relative; overflow: hidden; border-radius: 28px; padding: 32px; display: flex; flex-direction: column; min-height: 320px; }
.linepanel .cnt-l { display: inline-flex; align-self: flex-start; align-items: center; height: 28px; padding: 0 12px; border-radius: 999px; background: rgba(255, 255, 255, .8); font-size: 13px; font-weight: 700; color: var(--ink2); }
.linepanel h3 { margin: 14px 0 0; font-size: 34px; font-weight: 800; letter-spacing: -.05em; position: relative; z-index: 1; }
.linepanel ul { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 4px; position: relative; z-index: 1; max-width: 200px; }
.linepanel li { font-size: 13.5px; color: var(--ink2); line-height: 1.5; display: flex; gap: 8px; }
.linepanel li::before { content: ""; flex: none; width: 5px; height: 5px; border-radius: 50%; background: currentColor; opacity: .45; margin-top: 8px; }
.linepanel .btn { margin-top: auto; align-self: flex-start; position: relative; z-index: 1; }
.linepanel .art { position: absolute; right: -36px; bottom: -40px; width: 220px; transform: rotate(-6deg); pointer-events: none; }
.lineblk .sec-h.m-only { margin-bottom: 12px; }
/* 이용 안내 + 고객센터 */
.help { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 28px; align-items: stretch; }
.helplist { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--ink); }
.helplist a { display: grid; grid-template-columns: 46px minmax(0, 1fr) 20px; gap: 16px; align-items: center; padding: 18px 4px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none !important; }
.helplist a:hover { background: var(--surface); }
.helplist .ic { width: 46px; height: 46px; border-radius: 14px; background: var(--surface); color: var(--ink2); display: grid; place-items: center; }
.helplist .ic svg { width: 22px; height: 22px; }
.helplist b { display: block; font-size: 16px; letter-spacing: -.02em; }
.helplist span { display: block; font-size: 13.5px; color: var(--muted); margin-top: 1px; }
.helplist b { color: var(--ink); }
.helplist .chev { color: var(--faint); }
.cscard { position: relative; overflow: hidden; border-radius: 26px; padding: 30px; background: var(--blue); background-image: var(--dots-w); background-size: 14px 14px; color: #fff; display: flex; flex-direction: column; }
.cscard .k { margin: 0; font-size: 14px; font-weight: 700; color: rgba(255, 255, 255, .78); }
.cscard .n { margin: 6px 0 0; font-size: 34px; font-weight: 800; letter-spacing: -.035em; font-variant-numeric: tabular-nums; line-height: 1.2; }
.cscard .h { margin: 12px 0 0; font-size: 14px; line-height: 1.7; color: rgba(255, 255, 255, .82); }
.cscard .btns { margin-top: auto; padding-top: 22px; display: flex; gap: 8px; flex-wrap: wrap; }

/* ───────── 목록 ───────── */
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips a { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 18px 0 8px; border-radius: 999px; border: 1px solid var(--line2); background: #fff; color: var(--ink2); font-size: 14.5px; font-weight: 600; text-decoration: none !important; transition: border-color .15s, background-color .15s; }
.chips a.noimg { padding-left: 18px; }
.chips a:hover { border-color: var(--ink); }
.chips a .th { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; overflow: hidden; }
.chips a .th img { width: 26px; height: 26px; }
.chips a small { font-size: 12.5px; font-weight: 600; color: var(--faint); font-variant-numeric: tabular-nums; }
.chips a.on { background: var(--ink); border-color: var(--ink); color: #fff; }
.chips a.on small { color: rgba(255, 255, 255, .6); }
.toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin: 20px 0 28px; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.seg { display: inline-flex; padding: 4px; border-radius: 12px; background: var(--surface); gap: 2px; }
.seg a { height: 34px; padding: 0 14px; border-radius: 9px; display: inline-flex; align-items: center; font-size: 13.5px; font-weight: 600; color: var(--muted); text-decoration: none !important; }
.seg a:hover { color: var(--ink); }
.seg a.on { background: #fff; color: var(--ink); box-shadow: var(--sh-1); font-weight: 700; }
.sorts { display: flex; gap: 4px 4px; flex-wrap: wrap; font-size: 14px; align-items: center; }
.sorts a { color: var(--muted); padding: 6px 10px; border-radius: 8px; font-weight: 500; text-decoration: none !important; }
.sorts a:hover { color: var(--ink); background: var(--surface); }
.sorts a.on { color: var(--ink); font-weight: 800; }
.sorts a.on::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); margin-right: 6px; vertical-align: middle; position: relative; top: -1px; }
.group-h { display: flex; align-items: center; gap: 12px; margin: 8px 0 22px; }
.grp + .grp { margin-top: 56px; }
.group-h .th { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; }
.group-h .th img { width: 38px; height: 38px; }
.group-h h2 { margin: 0; font-size: 22px; }
.group-h small { font-size: 14px; font-weight: 600; color: var(--muted); }
.group-h .more { margin-left: auto; }
.result-note { font-size: 14px; color: var(--muted); margin: -12px 0 20px; }

/* ───────── 상품 상세 ───────── */
.detail { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 56px; align-items: start; }
.gallery .main { position: relative; aspect-ratio: 1 / 1; border-radius: 28px; display: grid; place-items: center; overflow: hidden; }
.gallery .main .pc-illus { width: 72%; height: 72%; }
.gallery .main .pc-photo { width: 100%; height: 100%; object-fit: cover; }
.gallery .main .sticker { left: 20px; top: 20px; height: 32px; font-size: 13px; }
.gallery .thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.gallery .thumbs a { aspect-ratio: 1 / 1; border-radius: 14px; overflow: hidden; border: 1px solid var(--line); display: block; }
.gallery .thumbs img { width: 100%; height: 100%; object-fit: cover; }
.info .tags { margin: 0; }
.info .tags .badge { height: 26px; font-size: 12.5px; padding: 0 10px; }
.info h1 { margin: 14px 0 0; font-size: 30px; line-height: 1.32; letter-spacing: -.045em; }
.info .maker { margin: 8px 0 0; color: var(--muted); font-size: 15px; }
.pricebox { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.pricebox .big { font-size: 36px; font-weight: 800; letter-spacing: -.04em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.pricebox .big small { font-size: 22px; font-weight: 700; margin-left: 2px; }
.pricebox .unit { font-size: 14px; color: var(--muted); font-weight: 600; padding: 4px 10px; border-radius: 8px; background: var(--surface); }
.info .vat { margin: 8px 0 0; font-size: 13px; color: var(--muted); }
.facts { margin: 22px 0 0; display: grid; grid-template-columns: 96px 1fr; gap: 10px 14px; font-size: 14px; padding: 18px 20px; border-radius: 18px; background: var(--surface); }
.facts dt { color: var(--muted); display: flex; align-items: center; gap: 6px; }
.facts dt svg { width: 16px; height: 16px; }
.facts dd { margin: 0; color: var(--ink); font-weight: 600; }
.buybox { margin-top: 18px; padding: 18px 20px; border: 1.5px solid var(--line2); border-radius: 18px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.buybox .lbl { margin: 0; font-size: 13px; color: var(--muted); font-weight: 600; }
.stepper { margin-top: 8px; display: inline-flex; align-items: center; border: 1.5px solid var(--line2); border-radius: 12px; overflow: hidden; background: #fff; }
.stepper button { width: 46px; height: 46px; border: 0; background: #fff; font-size: 20px; color: var(--ink2); cursor: pointer; display: grid; place-items: center; }
.stepper button:hover { background: var(--surface); }
.stepper button svg { width: 18px; height: 18px; }
.stepper input, .stepper input:focus { width: 66px; height: 46px; border: 0; border-left: 1px solid var(--line); border-right: 1px solid var(--line); border-radius: 0; text-align: center; padding: 0; font-weight: 700; font-size: 16px; box-shadow: none; -moz-appearance: textfield; }
.stepper input::-webkit-outer-spin-button, .stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.buybox .total { text-align: right; }
.buybox .total p:not(.lbl) { margin: 4px 0 0; font-size: 26px; font-weight: 800; letter-spacing: -.035em; color: var(--blue); font-variant-numeric: tabular-nums; }
.buybtns { margin-top: 14px; display: grid; grid-template-columns: 1fr 1.3fr; gap: 10px; }
.incart-note { margin-top: 12px; display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--mint-d); font-weight: 600; }
.incart-note svg { width: 16px; height: 16px; }
.anchors { position: sticky; top: 0; z-index: 30; margin-top: 64px; background: rgba(255, 255, 255, .92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.anchors a { flex: none; position: relative; padding: 16px 18px; font-size: 15px; font-weight: 700; color: var(--muted); text-decoration: none !important; }
.anchors a:hover { color: var(--ink); }
.anchors a::after { content: ""; position: absolute; left: 18px; right: 18px; bottom: -1px; height: 3px; border-radius: 3px; background: var(--ink); transform: scaleX(0); transition: transform .2s; }
.anchors a:hover::after { transform: scaleX(1); }
.dsec { padding-top: 40px; scroll-margin-top: 70px; }
.dsec h2 { margin: 0 0 18px; font-size: 21px; }
.dsec .kv { max-width: 760px; }
.dsec .kv dt, .dsec .kv dd { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.desc { max-width: 820px; font-size: 15.5px; line-height: 1.8; color: var(--ink2); }
.desc p { margin: 0 0 12px; }
.desc-empty { padding: 40px 24px; border: 1.5px dashed var(--line2); border-radius: 20px; text-align: center; color: var(--muted); font-size: 14px; }

/* ───────── 단계 표시 (장바구니 → 주문서 → 결제 → 완료) ───────── */
.steps-ind { list-style: none; margin: 0 0 28px; padding: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; font-weight: 600; color: var(--faint); }
.steps-ind li { display: flex; align-items: center; gap: 8px; }
.steps-ind li + li::before { content: ""; width: 28px; height: 2px; border-radius: 2px; background: var(--line2); margin-right: 0; }
.steps-ind .n { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); color: var(--faint); font-size: 12.5px; font-weight: 800; }
.steps-ind .done { color: var(--ink2); }
.steps-ind .done .n { background: var(--sky); color: var(--blue); }
.steps-ind .now { color: var(--ink); font-weight: 800; }
.steps-ind .now .n { background: var(--blue); color: #fff; box-shadow: 0 0 0 4px rgba(30, 86, 224, .15); }
.cart-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.cart-head h1 { margin: 0; }

/* ───────── 장바구니·주문서 ───────── */
.cart-list { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--ink); }
.ci { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 20px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line); }
.ci .rr-thumb { width: 96px; height: 96px; border-radius: 18px; }
.ci-name { font-size: 16px; font-weight: 600; color: var(--ink); text-decoration: none !important; }
.ci-name:hover { color: var(--blue); }
.ci-meta { margin: 4px 0 0; font-size: 13px; color: var(--muted); }
.ci-meta + .badge { margin-top: 6px; }
.ci-ctl { display: flex; align-items: center; gap: 14px; justify-content: flex-end; flex-wrap: wrap; }
.ci-ctl form { margin: 0; display: flex; align-items: center; gap: 6px; }
.ci-ctl input[type=number] { width: 84px; height: 40px; text-align: center; padding: 0 8px; font-weight: 700; }
.ci-amt { min-width: 104px; text-align: right; font-weight: 800; font-size: 18px; letter-spacing: -.02em; }
.ci .del { width: 36px; height: 36px; border: 0; border-radius: 10px; background: none; color: var(--faint); cursor: pointer; display: grid; place-items: center; }
.ci .del:hover { background: var(--badbg); color: var(--bad); }
.ci .del svg { width: 18px; height: 18px; }
.summary { position: sticky; top: 20px; border-radius: 22px; padding: 26px; background: #fff; border: 1px solid var(--line); box-shadow: var(--sh-2); }
.summary h2 { margin: 0 0 14px; font-size: 18px; }
.freebar { margin: 14px 0 4px; }
.freebar .track { height: 8px; border-radius: 999px; background: var(--surface); overflow: hidden; }
.freebar .fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--blue-l), var(--blue)); }
.freebar p { margin: 8px 0 0; font-size: 13px; color: var(--muted); }
.freebar p b { color: var(--blue); }
.freebar.done .fill { background: linear-gradient(90deg, #38C2AE, var(--mint)); }
.freebar.done p b { color: var(--mint-d); }
.paynote { margin: 14px 0 0; font-size: 12.5px; color: var(--faint); line-height: 1.6; }
.co-sec { border: 1px solid var(--line); border-radius: 22px; padding: 26px; background: #fff; }
.co-sec + .co-sec { margin-top: 16px; }
.co-sec h2 { margin: 0 0 18px; font-size: 18px; display: flex; align-items: center; gap: 10px; }
.co-sec h2 .n { width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: #fff; display: grid; place-items: center; font-size: 13px; }
.choice { display: grid; gap: 10px; }
.choice label { display: flex; gap: 12px; align-items: flex-start; padding: 16px 18px; border: 1.5px solid var(--line2); border-radius: 16px; cursor: pointer; margin: 0; font-weight: 500; transition: border-color .15s, background-color .15s; }
.choice label:hover { border-color: #B9C4D8; }
.choice label:has(input:checked) { border-color: var(--blue); background: #F7FAFF; box-shadow: 0 0 0 3px rgba(30, 86, 224, .08); }
.choice input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--blue); flex: none; }
.choice b { display: block; font-size: 15px; color: var(--ink); }
.choice span { display: block; font-size: 13px; color: var(--muted); margin-top: 2px; }

/* ───────── 주문 ───────── */
.olist { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.olist li a { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 18px 20px; border: 1px solid var(--line); border-radius: 20px; color: var(--ink); text-decoration: none !important; background: #fff; transition: border-color .15s, box-shadow .15s; }
.olist li a:hover { border-color: var(--line2); box-shadow: var(--sh-2); }
.olist .oi { width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; background: var(--surface); color: var(--ink2); }
.olist .oi svg { width: 26px; height: 26px; }
.olist .oi.paid { background: var(--sky); color: var(--blue); }
.olist .oi.shipped { background: var(--mint-l); color: var(--mint-d); }
.olist .d { font-size: 13px; color: var(--muted); }
.olist .n { display: block; font-weight: 700; font-size: 16px; margin-top: 2px; letter-spacing: -.02em; }
.olist .a { text-align: right; }
.olist .a b { display: block; font-size: 18px; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; margin-top: 4px; }
.olist .a .c { display: block; font-size: 12px; color: var(--muted); }
.timeline { list-style: none; margin: 0 0 24px; padding: 22px 24px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-radius: 22px; background: var(--surface); position: relative; }
.timeline li { position: relative; text-align: center; font-size: 13px; color: var(--faint); font-weight: 600; }
.timeline li::before { content: ""; position: absolute; top: 15px; left: -50%; right: 50%; height: 3px; background: var(--line2); z-index: 0; }
.timeline li:first-child::before { display: none; }
.timeline li .n { position: relative; z-index: 1; width: 32px; height: 32px; margin: 0 auto 8px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 2px solid var(--line2); color: var(--faint); }
.timeline li .n svg { width: 15px; height: 15px; }
.timeline li.done { color: var(--ink); }
.timeline li.done::before { background: var(--blue); }
.timeline li.done .n { background: var(--blue); border-color: var(--blue); color: #fff; }
.timeline li.now .n { box-shadow: 0 0 0 5px rgba(30, 86, 224, .16); }
.timeline li small { display: block; font-weight: 500; color: var(--muted); font-size: 12px; margin-top: 2px; }
.timeline.stop li.done::before { background: var(--line2); }
.success { display: flex; gap: 18px; align-items: center; padding: 24px 26px; border-radius: 22px; background: linear-gradient(135deg, #ECFAF7, #D2F2EC); margin-bottom: 20px; }
.success .ic { width: 52px; height: 52px; border-radius: 50%; background: var(--mint); color: #fff; display: grid; place-items: center; flex: none; box-shadow: 0 8px 20px -8px rgba(14, 159, 142, .7); }
.success .ic svg { width: 26px; height: 26px; }
.success b { display: block; font-size: 19px; letter-spacing: -.03em; }
.success span { color: var(--ink2); font-size: 14px; }

/* ───────── 내 정보 ───────── */
.profile { position: relative; overflow: hidden; display: flex; gap: 20px; align-items: center; padding: 28px; border-radius: 26px; background: var(--ink); background-image: var(--dots-w); background-size: 14px 14px; color: #fff; margin-bottom: 24px; }
.profile .av { width: 64px; height: 64px; border-radius: 20px; background: var(--blue); display: grid; place-items: center; flex: none; }
.profile .av svg { width: 34px; height: 34px; }
.profile b { display: block; font-size: 22px; letter-spacing: -.035em; }
.profile > div { position: relative; z-index: 1; min-width: 0; }
.profile span.pl { display: block; color: rgba(255, 255, 255, .7); font-size: 14px; }
.profile .badge { margin-left: 8px; }
.profile img { position: absolute; right: -20px; bottom: -40px; width: 180px; opacity: .9; transform: rotate(-12deg); }
.mymenu { list-style: none; margin: 0 0 20px; padding: 0; border-top: 2px solid var(--ink); }
.mymenu li a, .mymenu li button { display: flex; align-items: center; gap: 12px; width: 100%; padding: 16px 4px; border: 0; border-bottom: 1px solid var(--line); background: none; font-size: 15px; font-weight: 600; color: var(--ink); text-align: left; cursor: pointer; text-decoration: none !important; }
.mymenu .ico svg { width: 20px; height: 20px; color: var(--muted); }
.mymenu .chev { margin-left: auto; color: var(--faint); }
.mymenu form { margin: 0; }

/* ───────── 로그인 첫 화면 ───────── */
.gate { position: relative; overflow: hidden; background: var(--ink); color: #fff; isolation: isolate; }
.gate::before { content: ""; position: absolute; inset: 0; background-image: var(--dots-w); background-size: 16px 16px; -webkit-mask-image: radial-gradient(ellipse at 40% 60%, #000 20%, transparent 75%); mask-image: radial-gradient(ellipse at 40% 60%, #000 20%, transparent 75%); z-index: -1; }
.gate::after { content: ""; position: absolute; width: 900px; height: 900px; left: 18%; top: -10%; background: radial-gradient(circle, rgba(47, 104, 242, .38), transparent 62%); z-index: -1; }
.gate-in { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 40px; align-items: center; min-height: 640px; padding-top: 56px; padding-bottom: 72px; position: relative; }
.gate-copy { position: relative; z-index: 2; max-width: 500px; align-self: start; padding-top: 28px; }
.gate-chip { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 14px 0 10px; border-radius: 999px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .16); font-size: 13.5px; font-weight: 700; color: #DCE6FF; }
.gate-chip .ico svg { width: 18px; height: 18px; color: var(--yellow); }
.gate h1 { margin: 22px 0 0; color: #fff; font-size: 50px; line-height: 1.2; font-weight: 800; letter-spacing: -.055em; }
.gate .gate-p { margin: 20px 0 0; font-size: 16.5px; line-height: 1.7; color: rgba(255, 255, 255, .74); }
.gate-points { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.gate-points li { display: inline-flex; align-items: center; gap: 7px; height: 38px; padding: 0 14px 0 10px; border-radius: 12px; background: rgba(255, 255, 255, .07); font-size: 14px; font-weight: 600; color: #fff; }
.gate-points .ico { width: 22px; height: 22px; border-radius: 50%; background: var(--mint); display: grid; place-items: center; }
.gate-points .ico svg { width: 13px; height: 13px; }
.gate-card { position: relative; z-index: 3; background: #fff; color: var(--ink); border-radius: 28px; padding: 36px 34px 30px; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .06); }
.gate-card h2 { margin: 0; font-size: 26px; letter-spacing: -.045em; }
.gate-card .sub { margin: 6px 0 24px; color: var(--muted); font-size: 14px; }
.gate-card .or { display: flex; align-items: center; gap: 12px; margin: 24px 0 14px; color: var(--muted); font-size: 13px; }
.gate-card .or::before, .gate-card .or::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.gate-card .help { display: block; margin-top: 16px; font-size: 13px; color: var(--muted); line-height: 1.65; }
.gate-sec { margin-top: 96px; }
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; counter-reset: s; position: relative; }
.steps li { position: relative; background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: 30px 26px 28px; counter-increment: s; }
.steps li::after { content: ""; position: absolute; top: 52px; right: -21px; width: 22px; height: 2px; background-image: linear-gradient(90deg, var(--line2) 50%, transparent 50%); background-size: 6px 2px; }
.steps li:last-child::after { display: none; }
.steps .ic { width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; background: var(--sky); color: var(--blue); position: relative; }
.steps .ic svg { width: 28px; height: 28px; }
.steps .ic::after { content: counter(s); position: absolute; right: -8px; top: -8px; width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: #fff; font-size: 12.5px; font-weight: 800; display: grid; place-items: center; box-shadow: 0 0 0 3px #fff; }
.steps li:nth-child(2) .ic { background: var(--mint-l); color: var(--mint-d); }
.steps li:nth-child(3) .ic { background: #FFF4D6; color: #9A6B00; }
.steps b { display: block; margin-top: 18px; font-size: 18px; letter-spacing: -.03em; }
.steps p { margin: 8px 0 0; font-size: 14px; color: var(--muted); line-height: 1.65; }
.paycards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.paycards > div { border-radius: 22px; padding: 24px 22px; background: var(--surface); }
.paycards .ic { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; background: #fff; color: var(--blue); box-shadow: var(--sh-1); }
.paycards .ic svg { width: 22px; height: 22px; }
.paycards b { display: block; margin-top: 16px; font-size: 16px; letter-spacing: -.02em; }
.paycards p { margin: 6px 0 0; font-size: 13.5px; color: var(--muted); line-height: 1.6; }
.faq { border-top: 2px solid var(--ink); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; display: flex; align-items: center; gap: 14px; padding: 20px 4px; cursor: pointer; font-size: 16px; font-weight: 700; letter-spacing: -.02em; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .q { width: 30px; height: 30px; border-radius: 10px; background: var(--sky); color: var(--blue); display: grid; place-items: center; font-size: 14px; font-weight: 800; flex: none; }
.faq summary .chev { margin-left: auto; color: var(--faint); transition: transform .2s; }
.faq details[open] summary .chev { transform: rotate(180deg); }
.faq .a { padding: 0 4px 22px 48px; color: var(--ink2); font-size: 15px; line-height: 1.75; }
.cs-strip { margin-top: 96px; display: flex; align-items: center; gap: 24px; justify-content: space-between; flex-wrap: wrap; padding: 30px 34px; border-radius: 26px; background: var(--sky); background-image: var(--dots-b); background-size: 16px 16px; }
.cs-strip .k { margin: 0; font-size: 14px; color: var(--ink2); font-weight: 600; }
.cs-strip .n { margin: 4px 0 0; font-size: 30px; font-weight: 800; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.cs-strip .h { margin: 4px 0 0; font-size: 13.5px; color: var(--muted); }
.cs-strip .btns { display: flex; gap: 8px; flex-wrap: wrap; }

/* ───────── 가입 ───────── */
.auth { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 40px; align-items: start; }
.auth-aside { position: sticky; top: 24px; overflow: hidden; border-radius: 28px; padding: 34px 30px; background: var(--ink); background-image: var(--dots-w); background-size: 14px 14px; color: #fff; }
.auth-aside h1 { color: #fff; font-size: 30px; margin: 0; }
.auth-aside > p { margin: 12px 0 0; color: rgba(255, 255, 255, .72); font-size: 14.5px; line-height: 1.7; }
.auth-aside ol { list-style: none; margin: 26px 0 0; padding: 0; display: grid; gap: 16px; counter-reset: a; }
.auth-aside li { display: flex; gap: 12px; counter-increment: a; font-size: 14px; color: rgba(255, 255, 255, .78); line-height: 1.6; }
.auth-aside li::before { content: counter(a); flex: none; width: 26px; height: 26px; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 12.5px; }
.auth-aside li b { display: block; color: #fff; font-size: 15px; }
.auth-aside .art { display: block; width: 210px; margin: 26px -46px -66px auto; transform: rotate(-8deg); }
.formsec { border: 1px solid var(--line); border-radius: 24px; padding: 28px; background: #fff; }
.formsec + .formsec { margin-top: 16px; }
.formsec h2 { margin: 0 0 4px; font-size: 19px; display: flex; align-items: center; gap: 10px; }
.formsec h2 .n { width: 28px; height: 28px; border-radius: 50%; background: var(--blue); color: #fff; display: grid; place-items: center; font-size: 13px; }
.formsec .desc2 { margin: 0 0 20px 38px; font-size: 13.5px; color: var(--muted); }
.agree { display: grid; gap: 4px; padding: 16px 18px; border-radius: 16px; background: var(--surface); }
.agree .check { margin: 6px 0; }
.submitbar { margin-top: 20px; }

/* ───────── 정책·안내 ───────── */
.policy { max-width: 840px; }
.policy h1 { font-size: 34px; margin-bottom: 8px; }
.policy h2 { font-size: 18px; margin: 36px 0 12px; padding-left: 14px; border-left: 4px solid var(--blue); line-height: 1.35; }
.policy p, .policy li { font-size: 15px; line-height: 1.8; color: var(--ink2); }
.policy li { margin: 4px 0; }
.policy ol, .policy ul { padding-left: 22px; }
.policy .tbl { margin: 12px 0; }
.guide-top { display: flex; gap: 10px; flex-wrap: wrap; margin: 18px 0 8px; }
.guide-top a { display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border-radius: 999px; background: var(--surface); color: var(--ink2); font-weight: 600; font-size: 14px; text-decoration: none !important; }
.guide-top a:hover { background: var(--sky); color: var(--blue); }

/* ───────── 움직임 줄이기 ───────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .toast { animation: none; }
}

/* ───────── 태블릿 (768~1023) ───────── */
@media (max-width: 1023px) {
  .strip .opt { display: none; }
  .hd-main { gap: 18px; }
  .quick > a span.l, .quick summary span.l { display: none; }
  .quick > a, .quick summary { min-width: 52px; }
  .allcat { width: auto; }
  .gnb-links a { padding: 0 11px; font-size: 15px; }
  .gnb-links .end { display: none; }
  .hero { grid-template-columns: minmax(0, 1fr); }
  .catpanel { display: none; }
  .side { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .svc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .svc li:nth-child(3) { border-left: 0; }
  .svc li:nth-child(n+3) { border-top: 1px solid var(--line); }
  .plist { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .duo { grid-template-columns: 1fr; }
  .duo > .new { padding-right: 0; border-right: 0; }
  .duo > .reo { padding-left: 0; margin-top: 64px; }
  .rband-in { grid-template-columns: 1fr; gap: 24px; }
  .lineblk { grid-template-columns: 1fr; }
  .linepanel { min-height: 240px; }
  .help { grid-template-columns: 1fr; }
  .detail { gap: 32px; }
  .split { grid-template-columns: 1fr; }
  .summary { position: static; }
  .gate-in { grid-template-columns: 1fr; min-height: 0; }
  .gate-copy { max-width: 640px; }
  .steps { grid-template-columns: 1fr; }
  .steps li::after { display: none; }
  .paycards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .auth { grid-template-columns: 1fr; }
  .auth-aside { position: static; }
  .auth-aside .art { display: none; }
  .ft-top { grid-template-columns: 1fr 1fr; }
  .ft-links { grid-column: 1 / -1; }
}

/* ───────── 모바일 (767px 이하) — 시안 D ───────── */
@media (max-width: 767px) {
  body { font-size: 15px; }
  .wrap { padding: 0 16px; }
  h1 { font-size: 24px; }
  .pc-only { display: none !important; }
  .hd-pc { display: none; }
  .hd-m { display: block; }
  header.site { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .96); backdrop-filter: blur(10px); }
  header.site.scrolled { box-shadow: 0 1px 0 var(--line); }
  main { padding: 20px 0 48px; }
  main.flush { padding-top: 4px; }
  .g2, .g3, .g4, .split, .detail { grid-template-columns: 1fr; }
  .card { padding: 20px; border-radius: 16px; }
  body.tabs { padding-bottom: 76px; }
  body.acts { padding-bottom: 92px; }
  .tabbar { display: grid; position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; grid-template-columns: repeat(5, minmax(0, 1fr)); padding: 6px 4px calc(8px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .97); backdrop-filter: blur(12px); border-top: 1px solid var(--line); }
  .tabbar a { position: relative; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 6px 0 2px; font-size: 11px; font-weight: 700; color: var(--faint); text-decoration: none !important; }
  .tabbar a .ico svg { width: 24px; height: 24px; }
  .tabbar a.on { color: var(--ink); }
  .tabbar a.on .ico { color: var(--blue); }
  .tabbar a.on::before { content: ""; position: absolute; top: -7px; left: 50%; width: 22px; height: 3px; margin-left: -11px; border-radius: 0 0 3px 3px; background: var(--blue); }
  .tabbar .cnt { top: 0; left: 55%; right: auto; }
  .actionbar { display: grid; position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; grid-template-columns: 1fr 1.3fr; gap: 8px; padding: 10px 16px calc(12px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .97); backdrop-filter: blur(12px); border-top: 1px solid var(--line); }
  .actionbar .btn { min-height: 54px; font-size: 16px; border-radius: 14px; }
  .toast { bottom: calc(88px + env(safe-area-inset-bottom)); width: calc(100vw - 32px); }
  .ft { padding: 40px 0 32px; }
  .ft-top { grid-template-columns: 1fr; gap: 24px; }
  .ft-cs b { font-size: 24px; }
  /* 섹션 */
  .sec { margin-top: 44px; }
  .sec-h { margin-bottom: 14px; align-items: center; }
  .sec-h h2 { font-size: 20px; }
  .sec-h p { font-size: 13px; margin-top: 2px; }
  .page-h h1 { font-size: 24px; }
  .page-h { margin-bottom: 14px; }
  .tabs-pill { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 0 16px; scrollbar-width: none; width: calc(100% + 32px); }
  .tabs-pill::-webkit-scrollbar { display: none; }
  .tabs-pill [role=tab] { flex: none; height: 36px; padding: 0 15px; }
  /* 상품 카드 */
  .plist, .plist.c3, .plist.c2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; }
  .pc-img { border-radius: 16px; }
  .pc-maker { display: none; }
  .pc-body { padding-top: 10px; }
  .pc-name { font-size: 14px; min-height: 0; }
  .pc-price { margin-top: 4px; gap: 6px; }
  .pc-price b { font-size: 17px; }
  .pc-price b small { font-size: 14px; }
  .pc-price .unit { font-size: 11.5px; }
  .tags { margin-top: 6px; }
  .tags .badge { height: 20px; font-size: 11px; padding: 0 7px; border-radius: 6px; }
  .rank { left: 8px; top: 8px; min-width: 30px; height: 30px; font-size: 14px; border-radius: 9px; }
  .sticker { left: 8px; top: 8px; height: 24px; font-size: 11px; }
  .qadd { right: 8px; bottom: 8px; }
  .qadd button { width: 40px; height: 40px; }
  .qadd button svg { width: 19px; height: 19px; }
  .incart, .soldout { right: 8px; bottom: 10px; height: 26px; font-size: 11px; padding: 0 9px; }
  .plist.scroll { display: flex; overflow-x: auto; gap: 12px; margin: 0 -16px; padding: 0 16px 4px; scroll-snap-type: x mandatory; scroll-padding: 0 16px; scrollbar-width: none; }
  .plist.scroll::-webkit-scrollbar { display: none; }
  .plist.scroll .pc { flex: 0 0 148px; scroll-snap-align: start; }
  .plist.rows { display: block; }
  .plist.rows .pc { display: grid; grid-template-columns: 80px minmax(0, 1fr) 44px; gap: 14px; align-items: center; padding: 12px 0; border-top: 1px solid #EEF1F6; }
  .plist.rows .pc:first-child { border-top: 0; }
  .plist.rows .pc-img { position: static; width: 80px; height: 80px; border-radius: 16px; }
  .plist.rows .pc-img::after { display: none; }
  .plist.rows .pc-link { position: relative; width: 80px; height: 80px; border-radius: 16px; }
  .plist.rows .pc-body { padding-top: 0; }
  .plist.rows .rank { left: -6px; top: 4px; min-width: 26px; height: 26px; font-size: 12px; border-radius: 8px; }
  .plist.rows .rank.top::after { width: 8px; height: 8px; }
  .plist.rows .sticker { display: none; }
  .plist.rows .qadd, .plist.rows .incart, .plist.rows .soldout { right: 0; top: 50%; bottom: auto; transform: translateY(-50%); }
  .plist.rows .qadd button { box-shadow: none; border: 1.5px solid var(--line2); }
  .plist.rows .incart, .plist.rows .soldout { max-width: 80px; }
  .plist.rows:has(.incart) .pc, .plist.rows:has(.soldout) .pc { grid-template-columns: 80px minmax(0, 1fr) 80px; }
  .plist.rows .pc-name { min-height: 0; font-size: 15px; font-weight: 600; -webkit-line-clamp: 2; }
  .plist.rows .pc-sub { display: block; }
  .plist.rows .tags { display: none; }
  .plist.rows .pc-price { margin-top: 4px; }
  /* 늘 사던 것 */
  .rr { grid-template-columns: 68px minmax(0, 1fr) auto; gap: 12px; padding: 12px 0; }
  .rr:first-child { padding-top: 12px; }
  .rr-thumb { width: 68px; height: 68px; border-radius: 14px; }
  .rr-name { font-size: 14.5px; }
  .rr-sub { font-size: 12px; }
  .rr-sub .last { height: 20px; font-size: 11.5px; padding: 0 6px; }
  .rr-price { font-size: 16px; margin-top: 2px; }
  .rr-act input[type=number] { display: none; }
  .rr-act .btn { min-height: 38px; padding: 0 12px; font-size: 13px; }
  /* 홈 */
  .home-flow > * { order: 20; }
  .home-flow > .hero { order: 1; }
  .home-flow > .m-quick { order: 2; }
  .home-flow > .svc { order: 3; }
  .duo { display: contents; }
  .duo > .reo { order: 4; margin-top: 40px; padding: 0; }
  .home-flow > .sec-rank { order: 5; }
  .duo > .new { order: 6; margin-top: 44px; padding: 0; border: 0; }
  .home-flow > .rband { order: 7; }
  .home-flow > .lines { order: 8; }
  .home-flow > .help { order: 9; }
  .hero { display: block; padding-top: 2px; }
  .side { display: none; }
  .carousel { min-height: 0; border-radius: 22px; }
  .slide { grid-template-columns: minmax(0, 1fr) 118px; padding: 22px 16px 46px 22px; min-height: 196px; gap: 4px; }
  .slide::before { -webkit-mask-image: linear-gradient(100deg, transparent 40%, #000 95%); mask-image: linear-gradient(100deg, transparent 40%, #000 95%); }
  .s-kicker { height: 26px; font-size: 11.5px; padding: 0 10px 0 8px; gap: 5px; }
  .s-kicker svg { width: 14px; height: 14px; }
  .s-title { margin-top: 10px; font-size: 21px; line-height: 1.32; letter-spacing: -.045em; }
  .s-sub, .s-cta { display: none; }
  .s-art { max-width: 136px; margin-right: -12px; }
  .car-ctl { left: 22px; bottom: 14px; gap: 4px; }
  .car-ctl button { display: none; }
  .car-ctl .count { min-width: 0; height: 24px; font-size: 11.5px; padding: 0 9px; }
  .m-quick { display: block; }
  .m-search { margin-top: 16px; display: flex; align-items: center; height: 50px; padding: 0 6px 0 18px; border-radius: 999px; background: var(--surface); }
  .m-search input, .m-search input:focus { flex: 1; min-width: 0; height: 100%; border: 0; background: transparent; box-shadow: none; padding: 0; }
  .m-search button { width: 40px; height: 40px; border: 0; border-radius: 50%; background: transparent; color: var(--ink); display: grid; place-items: center; }
  .tiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px 8px; margin-top: 18px; text-align: center; }
  .tiles a { color: var(--ink); text-decoration: none !important; min-width: 0; }
  .tiles .t { display: grid; place-items: center; aspect-ratio: 1 / 1; border-radius: 18px; overflow: hidden; }
  .tiles .t > img { width: 78%; height: 78%; object-fit: contain; }
  .tiles .t > img.pc-photo { width: 100%; height: 100%; object-fit: cover; }
  .tiles .t.all { background: var(--surface); color: var(--ink2); }
  .tiles .t.fill { background: var(--blue); color: #fff; }
  .tiles .t svg { width: 26px; height: 26px; }
  .tiles .l { display: block; margin-top: 6px; font-size: 12px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: -.02em; }
  .m-orders { margin-top: 18px; display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 16px; background: var(--ink); color: #fff; text-decoration: none !important; }
  .m-orders .ic { width: 36px; height: 36px; border-radius: 11px; background: rgba(255, 255, 255, .12); display: grid; place-items: center; flex: none; }
  .m-orders .ic svg { width: 20px; height: 20px; }
  .m-orders .t { flex: 1; min-width: 0; font-size: 13px; color: rgba(255, 255, 255, .72); line-height: 1.45; }
  .m-orders .t b { display: block; color: #fff; font-size: 14px; }
  .m-orders .chev { color: rgba(255, 255, 255, .6); }
  .svc { display: flex; overflow-x: auto; gap: 10px; margin: 16px -16px 0; padding: 0 16px; border: 0; border-radius: 0; background: none; scrollbar-width: none; }
  .svc::-webkit-scrollbar { display: none; }
  .svc li { flex: 0 0 auto; padding: 12px 14px 12px 12px; gap: 10px; border: 1px solid var(--line); border-radius: 16px; }
  .svc li + li { border-left: 1px solid var(--line); }
  .svc li:nth-child(n+3) { border-top: 1px solid var(--line); }
  .svc .ic { width: 36px; height: 36px; border-radius: 11px; }
  .svc .ic svg { width: 19px; height: 19px; }
  .svc b { font-size: 13.5px; white-space: nowrap; }
  .svc div > span { display: none; }
  .reo-box { border-top: 0; }
  .reo-actions { margin-top: 10px; }
  .reo-empty { padding: 16px; }
  .reo-empty img { width: 60px; }
  .rband { margin: 48px -16px 0; padding: 32px 16px 36px; }
  .rband h2 { font-size: 21px; }
  .rband .lead2 { font-size: 14px; }
  .rcards { grid-template-columns: 1fr; gap: 10px; }
  .rcards li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 2px 14px; padding: 16px 16px 18px; }
  .rcards .ic { width: 40px; height: 40px; grid-row: span 3; }
  .rcards .when { margin: 0; font-size: 12px; }
  .rcards b { font-size: 16px; }
  .rcards p { margin: 4px 0 0; font-size: 13px; }
  .lines .sec-h.pc-only + .lineblk { margin-top: 0; }
  .lineblk { display: block; }
  .lineblk + .lineblk { margin-top: 36px; }
  .linepanel { display: none; }
  .help { display: flex; flex-direction: column; gap: 16px; }
  .helplist a { grid-template-columns: 40px minmax(0, 1fr) 18px; gap: 12px; padding: 14px 2px; }
  .helplist .ic { width: 40px; height: 40px; border-radius: 12px; }
  .helplist b { font-size: 15px; }
  .helplist span { font-size: 12.5px; }
  .cscard { padding: 24px; border-radius: 22px; }
  .cscard .n { font-size: 28px; }
  /* 목록 */
  .crumbs { display: none; }
  .chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 0 16px; scrollbar-width: none; }
  .chips::-webkit-scrollbar { display: none; }
  .chips a { flex: none; height: 40px; font-size: 14px; }
  .chips a .th { width: 26px; height: 26px; }
  .chips a .th img { width: 22px; height: 22px; }
  .toolbar { margin: 12px 0 6px; padding: 10px 0; border-top: 0; gap: 8px; }
  .seg a { height: 32px; padding: 0 11px; font-size: 13px; }
  .sorts { font-size: 13px; }
  .sorts a { padding: 4px 6px; }
  .group-h { margin: 8px 0 6px; gap: 10px; }
  .grp + .grp { margin-top: 32px; }
  .group-h .th { width: 36px; height: 36px; border-radius: 11px; }
  .group-h .th img { width: 30px; height: 30px; }
  .group-h h2 { font-size: 18px; }
  .m-search.list { margin: 0 0 14px; }
  /* 상세 */
  main.detail-page { padding-top: 0; }
  .detail { gap: 0; }
  .gallery { margin: 0 -16px; }
  .gallery .main { border-radius: 0; aspect-ratio: auto; height: 340px; }
  .gallery .main .pc-illus { width: 62%; height: 80%; }
  .gallery .thumbs { padding: 0 16px; }
  .info { padding-top: 20px; }
  .info h1 { font-size: 22px; margin-top: 10px; }
  .pricebox { margin-top: 16px; padding-top: 16px; }
  .pricebox .big { font-size: 28px; }
  .pricebox .big small { font-size: 18px; }
  .facts { margin-top: 16px; padding: 14px 16px; grid-template-columns: 84px 1fr; font-size: 13.5px; }
  .buybox { margin-top: 12px; padding: 14px 16px; }
  .buybox .total p:not(.lbl) { font-size: 22px; }
  .buybtns { display: none; }
  .anchors { top: 58px; margin: 32px -16px 0; padding: 0 8px; }
  .anchors a { padding: 14px 12px; font-size: 14px; }
  .dsec { padding-top: 28px; scroll-margin-top: 120px; }
  .dsec h2 { font-size: 18px; }
  .kv { grid-template-columns: 104px 1fr; }
  /* 장바구니·주문 */
  .steps-ind { font-size: 12.5px; gap: 6px; margin-bottom: 18px; }
  .steps-ind li + li::before { width: 12px; }
  .steps-ind .n { width: 22px; height: 22px; font-size: 11px; }
  .steps-ind li:not(.now) .t { display: none; }
  .ci { grid-template-columns: 72px minmax(0, 1fr); gap: 14px; padding: 16px 0; }
  .ci .rr-thumb { width: 72px; height: 72px; border-radius: 14px; }
  .ci-ctl { grid-column: 1 / -1; justify-content: space-between; gap: 10px; }
  .ci-amt { min-width: 0; font-size: 17px; margin-left: auto; }
  .summary { border-radius: 20px; padding: 22px; box-shadow: none; }
  .co-sec { padding: 20px; border-radius: 18px; }
  .olist li a { grid-template-columns: 44px minmax(0, 1fr); gap: 4px 14px; padding: 16px; }
  .olist .oi { width: 44px; height: 44px; border-radius: 13px; grid-row: span 2; }
  .olist .oi svg { width: 22px; height: 22px; }
  .olist .a { text-align: left; display: flex; align-items: center; gap: 8px; }
  .olist .a b { margin: 0; font-size: 16px; }
  .timeline { padding: 18px 8px; margin-bottom: 18px; }
  .timeline li { font-size: 12px; }
  .timeline li small { display: none; }
  .profile { padding: 22px; border-radius: 22px; }
  .profile b { font-size: 19px; }
  .profile img { width: 120px; right: -34px; bottom: -40px; opacity: .45; }
  .profile { align-items: flex-start; }
  /* 로그인 첫 화면 */
  .hd-simple .wrap { min-height: 60px; }
  .hd-simple .logo { font-size: 21px; }
  .hd-simple .logo .ico svg { width: 28px; height: 28px; }
  .hd-simple nav > a:not(.btn) { display: none; }
  .gate-in { padding-top: 28px; padding-bottom: 40px; gap: 24px; }
  .gate-copy { padding-top: 0; max-width: 100%; }
  .gate h1 { font-size: 30px; margin-top: 16px; letter-spacing: -.05em; }
  .gate .gate-p { font-size: 14.5px; margin-top: 12px; padding-right: 92px; }
  .gate-points { display: none; }
  .gate-card { padding: 26px 20px 22px; border-radius: 24px; }
  .gate-card h2 { font-size: 22px; }
  .gate-sec { margin-top: 56px; }
  .steps li { padding: 22px 20px; border-radius: 20px; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 0 16px; }
  .steps .ic { grid-row: span 2; }
  .steps b { margin-top: 2px; font-size: 16px; }
  .steps p { margin-top: 4px; font-size: 13.5px; }
  .paycards { grid-template-columns: 1fr; gap: 10px; }
  .paycards > div { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 0 14px; padding: 18px; border-radius: 18px; }
  .paycards .ic { grid-row: span 2; }
  .paycards b { margin-top: 0; font-size: 15px; }
  .paycards p { margin-top: 2px; font-size: 13px; }
  .faq summary { font-size: 15px; padding: 16px 2px; gap: 12px; }
  .faq .a { padding: 0 2px 18px 42px; font-size: 14px; }
  .cs-strip { margin-top: 56px; padding: 24px 20px; border-radius: 22px; }
  .cs-strip .n { font-size: 26px; }
  /* 가입 */
  .auth { gap: 16px; }
  .auth-aside { padding: 24px 22px; border-radius: 22px; }
  .auth-aside h1 { font-size: 24px; }
  .auth-aside ol { margin-top: 18px; gap: 12px; }
  .formsec { padding: 22px 18px; border-radius: 20px; }
  .formsec .desc2 { margin-left: 0; }
  .policy h1 { font-size: 26px; }
}
@media (max-width: 360px) {
  .tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .slide { grid-template-columns: minmax(0, 1fr) 96px; }
}

/* ───────── 추가 부품 ───────── */
html, body { overflow-x: clip; }
.steps-ind .n svg { width: 14px; height: 14px; }
.rank-tabs { margin: -8px 0 24px; }
.rband { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.again.wide { flex-direction: row; align-items: center; gap: 24px; min-height: 0; padding: 26px 30px; margin-bottom: 28px; border-radius: 24px; }
.again.wide > div { flex: 1; min-width: 0; position: relative; z-index: 1; }
.again.wide > div > b { max-width: none; font-size: 20px; }
.again.wide form { margin: 0; padding: 0; position: relative; z-index: 1; margin-right: 110px; }
.again.wide > img { position: absolute; width: 170px; right: -10px; bottom: -50px; transform: rotate(-10deg); pointer-events: none; }
.reo-page .rr:first-child { padding-top: 14px; }
.reo-page { border-top: 2px solid var(--ink); }
.timeline .n { font-size: 13px; font-weight: 800; }
.co-sec #payment-method, .co-sec #agreement { margin: -8px -8px 0; }
.page-h > .badge { height: 30px; padding: 0 12px; font-size: 13px; }
.policy > p.muted { font-size: 15.5px; }
@media (max-width: 1023px) {
  .again.wide form { margin-right: 0; }
  .again.wide > img, .again.wide > .trio { display: none; }
}
@media (max-width: 767px) {
  .rband { margin-top: 48px; padding: 32px 0 36px; }
  .rank-tabs { margin: -2px -16px 16px; }
  .again.wide { flex-direction: column; align-items: stretch; gap: 14px; padding: 20px; border-radius: 20px; margin-bottom: 18px; }
  .again.wide > div > b { font-size: 17px; }
  .again.wide .btn { width: 100%; }
  .reo-page { border-top: 0; }
  .page-h > .badge { align-self: flex-start; }
}

.cart-head .steps-ind { margin: 0 0 6px; }
@media (max-width: 1023px) {
  .duo .plist.c2 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .cart-head { align-items: center; }
  .cart-head .steps-ind { margin: 0; }
}

main.gate-main { padding: 0; }
@media (max-width: 767px) {
  main.gate-main { padding: 0; }
  .auth-aside ol { display: none; }
  .auth-aside > p { font-size: 13.5px; margin-top: 8px; }
}

/* ═════════════════════════ v0.5 ═════════════════════════
   상품 패키지 그림, 첫 화면 무대, 큰 순위 숫자, 제품군 배너, 상세 인증 카드·구매 줄, PC 고정 메뉴, 로그인 화면 */

/* ───────── 패키지 그림 (사진이 없는 상품) ─────────
   상자(앞·옆·윗면) + 제품 그림 + 바닥 그림자. 크기는 컨테이너 폭(cqw) 기준이라 어디에 넣어도 비율이 같다.
   --rx/--ry 로 각도, --tx/--ty 로 자리를 바꾼다 (카드에 올리면 살짝 돌아간다) */
.pk { position: relative; display: block; width: 100%; aspect-ratio: 1 / 1; container-type: inline-size; --c: #1E56E0; --c2: #1440B8; --rx: -9deg; --ry: -31deg; --tx: -7cqw; --ty: -1cqw; }
.k-band { --c: #1E56E0; --c2: #1440B8; }
.k-band-clear { --c: #2563EB; --c2: #1D4ED8; }
.k-band-mix { --c: #3B4CCA; --c2: #2D3BA8; }
.k-dressing { --c: #D4842A; --c2: #B26A17; }
.k-film { --c: #0E8F86; --c2: #0A716A; }
.k-pad { --c: #6B54D8; --c2: #553FB9; }
.k-box { --c: #0A1A3F; --c2: #050E26; }
.pk-shadow { position: absolute; left: 17%; right: 22%; bottom: 13.5%; height: 9%; border-radius: 50%; background: radial-gradient(closest-side, rgba(10, 26, 63, .34), rgba(10, 26, 63, 0)); filter: blur(1.4cqw); transition: transform .7s cubic-bezier(.2, .8, .2, 1), opacity .7s; }
.pk-shadow::after { content: ""; position: absolute; left: 14%; right: 24%; top: 34%; height: 30%; border-radius: 50%; background: rgba(10, 26, 63, .28); filter: blur(.8cqw); }
.pk-scene { position: absolute; inset: 0; display: grid; place-items: center; perspective: 150cqw; perspective-origin: 50% -10%; }
.pk-box { --w: 41cqw; --h: 53cqw; --d: 16cqw; position: relative; display: block; width: var(--w); height: var(--h); transform-style: preserve-3d; transform: translate(var(--tx), var(--ty)) rotateX(var(--rx)) rotateY(var(--ry)); transition: transform .7s cubic-bezier(.2, .8, .2, 1); }
.pk-f { position: absolute; left: 50%; top: 50%; display: block; overflow: hidden; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.pk-front { width: var(--w); height: var(--h); margin: calc(var(--h) / -2) 0 0 calc(var(--w) / -2); transform: translateZ(calc(var(--d) / 2)); background: linear-gradient(102deg, #FFFFFF 0%, #F7F9FC 55%, #ECF0F6 100%); }
.pk-front::after { content: ""; position: absolute; inset: 0; box-shadow: inset -.35cqw 0 0 rgba(10, 26, 63, .07), inset 0 -.35cqw 0 rgba(10, 26, 63, .05); }
.pk-side { width: var(--d); height: var(--h); margin: calc(var(--h) / -2) 0 0 calc(var(--d) / -2); transform: rotateY(90deg) translateZ(calc(var(--w) / 2)); background: linear-gradient(90deg, #D9DFEA 0%, #C3CCDB 100%); }
.pk-top { width: var(--w); height: var(--d); margin: calc(var(--d) / -2) 0 0 calc(var(--w) / -2); transform: rotateX(90deg) translateZ(calc(var(--h) / 2)); background: linear-gradient(180deg, color-mix(in srgb, var(--c) 55%, #fff) 0%, color-mix(in srgb, var(--c) 78%, #fff) 100%); }
.pk-top::after { content: ""; position: absolute; left: 0; right: 0; top: 46%; height: 8%; background: rgba(255, 255, 255, .28); }
.pk-band { position: absolute; left: 0; right: 0; top: 0; height: 31%; display: block; background: linear-gradient(160deg, var(--c) 0%, var(--c2) 100%); }
.pk-band::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1.1cqw; height: 1.1cqw; background: var(--c2); opacity: .35; }
.pk-side .pk-band { background: linear-gradient(90deg, var(--c2), color-mix(in srgb, var(--c2) 80%, #000)); }
.pk-brand { position: absolute; left: 3.2cqw; top: 2.8cqw; max-width: 24cqw; overflow: hidden; text-overflow: ellipsis; font-size: 2.5cqw; line-height: 1.2; font-weight: 700; color: rgba(255, 255, 255, .92); letter-spacing: -.01em; white-space: nowrap; }
.pk-pic { position: absolute; right: 2.8cqw; top: 2.4cqw; width: 9.4cqw; height: 9.4cqw; border-radius: 50%; background: rgba(255, 255, 255, .2); display: grid; place-items: center; box-shadow: inset 0 0 0 .3cqw rgba(255, 255, 255, .25); }
.pk-pic img { width: 7.6cqw; height: 7.6cqw; max-width: none; }
.pk-name { position: absolute; left: 3.2cqw; right: 3.2cqw; top: 35.5%; font-size: 4.1cqw; line-height: 1.24; font-weight: 800; color: #0A1A3F; letter-spacing: -.045em; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; word-break: keep-all; }
.pk-cnt { position: absolute; left: 3.2cqw; bottom: 9cqw; font-size: 6.6cqw; line-height: 1; font-weight: 800; color: var(--c); letter-spacing: -.04em; }
.pk-cat { position: absolute; left: 3.2cqw; right: 3.2cqw; bottom: 3cqw; padding-top: 1.5cqw; border-top: .25cqw solid #E1E6EE; font-size: 2.2cqw; line-height: 1.2; font-weight: 600; color: #5A6478; white-space: nowrap; overflow: hidden; }
.pk-vt { position: absolute; left: 50%; top: 66%; transform: translate(-50%, -50%) rotate(90deg); white-space: nowrap; font-size: 2.3cqw; font-weight: 700; letter-spacing: .02em; color: #7D889B; }
.pk-item { position: absolute; width: 44cqw; height: 44cqw; max-width: none; right: 5cqw; bottom: 5cqw; object-fit: contain; transform: rotate(-6deg); filter: drop-shadow(0 1.6cqw 2.2cqw rgba(10, 26, 63, .16)); transition: transform .7s cubic-bezier(.2, .8, .2, 1); }
.pk.k-dressing .pk-item { width: 34cqw; height: 34cqw; right: 6cqw; bottom: 7cqw; }
.pk.k-pad .pk-item, .pk.k-film .pk-item { width: 38cqw; height: 38cqw; }
.pk.k-box { --tx: 0cqw; }
/* 작은 크기: 글자를 줄이고 제품 그림만 */
@container (max-width: 150px) {
  .pk-name, .pk-cat, .pk-brand, .pk-vt { display: none; }
  .pk-cnt { bottom: 6cqw; font-size: 9cqw; }
  .pk-pic { width: 13cqw; height: 13cqw; }
  .pk-pic img { width: 10cqw; height: 10cqw; }
}
@container (max-width: 90px) {
  .pk-cnt, .pk-pic { display: none; }
  .pk-item { width: 50cqw; height: 50cqw; right: 2cqw; bottom: 2cqw; }
}
/* 카드에 올리면 상자가 조금 돌아 앞면이 보인다 */
.pc:hover .pk, .rr:hover .pk, .ci:hover .pk { --ry: -20deg; --ty: -2.4cqw; }
.pc:hover .pk-item { transform: rotate(-2deg) translate(-1.5cqw, -2.2cqw); }
.pc:hover .pk-shadow { transform: scale(.94); opacity: .85; }
.pc.out .pk { opacity: .55; filter: grayscale(.55); }
/* 사진 카드 (연출용 자리에 사진이 있는 상품) */
.ph-card { display: block; aspect-ratio: 1 / 1; border-radius: 22px; overflow: hidden; background: #fff; box-shadow: 0 2px 4px rgba(10, 26, 63, .08), 0 24px 48px -24px rgba(10, 26, 63, .55); }
.ph-card img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ───────── 제목 위 작은 표지 ───────── */
.eyebrow { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 9px; font-size: 12px; font-weight: 800; letter-spacing: .14em; line-height: 1; color: var(--blue); }
.eyebrow::before { content: ""; width: 14px; height: 2px; border-radius: 2px; background: currentColor; }
.sec-h h2 + p { margin-top: 7px; }

/* ───────── 큰 순위 숫자 ───────── */
.rank { left: 16px; top: 13px; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; height: auto; padding: 0; border-radius: 0; background: none; box-shadow: none; color: var(--ink); font-size: 40px; line-height: .9; font-weight: 800; letter-spacing: -.07em; text-shadow: 0 1px 0 rgba(255, 255, 255, .7); }
.rank::after { content: ""; width: 18px; height: 3px; margin-top: 8px; border-radius: 2px; background: currentColor; opacity: .9; }
.rank.top { color: var(--blue); background: none; }
.rank.top::after { position: static; top: auto; right: auto; width: 18px; height: 3px; border-radius: 2px; background: currentColor; box-shadow: none; }
.tone-photo .rank { left: 12px; top: 12px; min-width: 36px; height: 36px; padding: 0 8px; border-radius: 11px; background: #fff; display: grid; place-items: center; font-size: 16px; line-height: 1; letter-spacing: -.02em; box-shadow: var(--sh-1); text-shadow: none; }
.tone-photo .rank::after { display: none; }
.tone-photo .rank.top { background: var(--ink); color: #fff; }
.plist.top3 { margin-bottom: 52px; gap: 28px 24px; }
.plist.top3 .pc-img { border-radius: 26px; }
.plist.top3 .rank { left: 24px; top: 20px; font-size: 68px; }
.plist.top3 .rank::after { width: 26px; height: 4px; margin-top: 10px; }
.plist.top3 .pc-maker { display: block; }
.plist.top3 .tags { display: flex; }
.plist.top3 .pc-name { font-size: 17px; font-weight: 600; }
.plist.top3 .pc-price b { font-size: 23px; }
.plist.top3 .qadd button { width: 52px; height: 52px; }

/* ───────── 첫 화면 슬라이드: 상품 무대 ───────── */
.slide.s-navy { background: radial-gradient(70% 90% at 80% 45%, rgba(60, 116, 255, .55) 0%, rgba(60, 116, 255, 0) 62%), linear-gradient(135deg, #122860 0%, #0A1A3F 55%, #06112E 100%); color: #fff; }
.slide.s-navy::before { background-image: var(--dots-w); }
.slide.s-navy::after, .slide.s-blue::after { content: ""; position: absolute; inset: 0; background-image: var(--grain); background-size: 180px 180px; opacity: .55; pointer-events: none; }
.s-best .s-title, .s-new .s-title { font-size: 34px; line-height: 1.28; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.s-best .s-sub, .s-new .s-sub { font-size: 15px; margin-top: 10px; }
.s-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 10px; margin: 14px 0 0; }
.s-price b { font-size: 30px; font-weight: 800; letter-spacing: -.04em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.s-price b small { font-size: 18px; font-weight: 700; margin-left: 1px; }
.s-price span { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: 8px; font-size: 13px; font-weight: 700; background: rgba(255, 255, 255, .14); color: rgba(255, 255, 255, .92); }
.s-sky .s-price span { background: #fff; color: var(--blue-d); box-shadow: var(--sh-1); }
.slide.s-best, .slide.s-new { grid-template-columns: minmax(0, 1fr) minmax(0, 50%); padding-right: 20px; }
.s-art.stage { position: relative; display: block; width: 112%; max-width: 360px; aspect-ratio: 1 / 1; justify-self: center; margin: -10px -6% -24px 0; text-decoration: none !important; }
.stage .halo { position: absolute; left: 2%; right: 2%; top: 0; bottom: 12%; border-radius: 50%; background: radial-gradient(closest-side, rgba(255, 255, 255, .3), rgba(255, 255, 255, 0)); }
.stage .podium { position: absolute; left: 8%; right: 8%; bottom: 6%; height: 19%; border-radius: 50%; background: linear-gradient(180deg, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .06) 100%); box-shadow: inset 0 1.5px 0 rgba(255, 255, 255, .45), 0 26px 40px -18px rgba(0, 0, 0, .55); }
.s-sky .stage .halo { background: radial-gradient(closest-side, rgba(255, 255, 255, .95), rgba(255, 255, 255, 0)); }
.s-sky .stage .podium { background: linear-gradient(180deg, #FFFFFF 0%, #E4ECFC 100%); box-shadow: inset 0 1.5px 0 #fff, 0 24px 36px -18px rgba(20, 64, 184, .45); }
.stage > .pk, .stage > .ph-card { position: absolute; }
.stage .st-1 { width: 82%; left: 10%; bottom: 1%; z-index: 3; }
.stage .st-2 { width: 54%; left: -9%; bottom: 14%; z-index: 2; --ry: -40deg; }
.stage .st-3 { width: 51%; right: -10%; bottom: 16%; z-index: 1; --ry: -22deg; }
.stage .st-2 .pk-item, .stage .st-3 .pk-item { display: none; }
.stage .ph-card.st-1 { width: 58%; left: 21%; bottom: 14%; }
.stage .ph-card.st-2 { width: 38%; left: 0; bottom: 22%; transform: rotate(-6deg); }
.stage .ph-card.st-3 { width: 36%; right: 0; bottom: 24%; transform: rotate(6deg); }
.stage.solo .st-1 { width: 80%; left: 10%; bottom: 2%; }
.stage:hover .st-1 { --ry: -22deg; --ty: -2.6cqw; }
.st-no, .st-new { position: absolute; z-index: 4; display: flex; align-items: baseline; justify-content: center; gap: 1px; width: 68px; height: 68px; padding-top: 18px; border-radius: 50%; background: var(--yellow); color: #3D3000; font-size: 15px; font-weight: 800; box-shadow: 0 12px 26px -10px rgba(0, 0, 0, .5), inset 0 -3px 0 rgba(138, 106, 0, .18); transform: rotate(-10deg); }
.st-no { left: 4%; top: 6%; }
.st-no b { font-size: 30px; line-height: 1; letter-spacing: -.04em; }
.st-new { right: 6%; top: 8%; align-items: center; padding-top: 0; font-size: 15px; letter-spacing: .04em; background: var(--blue); color: #fff; box-shadow: 0 12px 26px -10px rgba(20, 64, 184, .7), inset 0 -3px 0 rgba(0, 0, 0, .15); }
.car-prog { display: block; width: 64px; height: 3px; margin-left: 8px; border-radius: 3px; overflow: hidden; background: rgba(10, 26, 63, .28); }
.car-prog i { display: block; width: 100%; height: 100%; border-radius: inherit; background: #fff; transform: scaleX(0); transform-origin: left center; }
.carousel.run .car-prog i { animation: car-prog 6s linear forwards; }
@keyframes car-prog { to { transform: scaleX(1); } }
.again > .again-pk { position: absolute; right: -22px; bottom: -30px; width: 150px; pointer-events: none; }
.again > .ph-card.again-pk { width: 104px; right: 16px; bottom: 16px; border-radius: 18px; transform: rotate(-6deg); }
.again.wide > .again-pk { right: 6px; bottom: -56px; width: 190px; }

/* ───────── 제품군 패널·배너 ───────── */
.linepanel { background: linear-gradient(160deg, color-mix(in srgb, var(--c) 6%, #fff) 0%, color-mix(in srgb, var(--c) 17%, #fff) 100%); isolation: isolate; }
.linepanel::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(circle, color-mix(in srgb, var(--c) 22%, transparent) 1.3px, transparent 1.7px); background-size: 15px 15px; -webkit-mask-image: linear-gradient(200deg, #000 0%, transparent 55%); mask-image: linear-gradient(200deg, #000 0%, transparent 55%); }
.linepanel .cnt-l { background: #fff; color: var(--c2); box-shadow: 0 1px 2px rgba(10, 26, 63, .06); }
.linepanel h3 { color: var(--ink); }
.trio { position: absolute; display: block; pointer-events: none; }
.trio > .pk, .trio > .ph-card { position: absolute; }
.trio .t1 { width: 64%; left: 20%; bottom: 0; z-index: 3; }
.trio .t2 { width: 47%; left: -2%; bottom: 17%; z-index: 2; --ry: -40deg; }
.trio .t3 { width: 45%; right: -4%; bottom: 21%; z-index: 1; --ry: -22deg; }
.trio .t2 .pk-item, .trio .t3 .pk-item { display: none; }
.trio.n1 .t1 { width: 78%; left: 14%; }
.trio .ph-card.t1 { width: 54%; left: 26%; bottom: 8%; }
.trio .ph-card.t2 { width: 38%; left: 2%; bottom: 26%; transform: rotate(-6deg); }
.trio .ph-card.t3 { width: 36%; right: 0; bottom: 30%; transform: rotate(6deg); }
.linepanel .trio { right: -28px; bottom: 50px; width: 284px; height: 284px; z-index: 0; }
.linepanel:hover .t1 { --ry: -22deg; --ty: -2.4cqw; }
.lhero { position: relative; overflow: hidden; isolation: isolate; display: flex; align-items: center; min-height: 236px; padding: 34px 44px; margin-bottom: 26px; border-radius: 28px; background: linear-gradient(115deg, color-mix(in srgb, var(--c) 5%, #fff) 0%, color-mix(in srgb, var(--c) 16%, #fff) 100%); }
.lhero::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(circle, color-mix(in srgb, var(--c) 22%, transparent) 1.3px, transparent 1.7px); background-size: 15px 15px; -webkit-mask-image: linear-gradient(90deg, transparent 30%, #000 85%); mask-image: linear-gradient(90deg, transparent 30%, #000 85%); }
.lh-copy { position: relative; z-index: 1; max-width: 56%; }
.lhero h1 { margin: 0; font-size: 44px; letter-spacing: -.055em; line-height: 1.15; }
.lhero h1 small { margin-left: 10px; font-size: 18px; font-weight: 700; color: var(--muted); letter-spacing: -.01em; }
.lhero .eyebrow { color: var(--c2); }
.lh-facts { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0 0; }
.lh-facts span { display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: 999px; background: rgba(255, 255, 255, .8); font-size: 13px; font-weight: 700; color: var(--ink2); box-shadow: 0 1px 2px rgba(10, 26, 63, .06); }
.lh-facts span:first-child { background: var(--c); color: #fff; box-shadow: 0 6px 14px -8px var(--c); }
.lh-copy > p:not(.lh-facts) { margin: 12px 0 0; color: var(--muted); }
.lhero .trio { right: 40px; bottom: -34px; width: 350px; height: 330px; }
.svc .ic { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), inset 0 -2px 0 rgba(10, 26, 63, .04); }
.svc li { transition: background-color .2s; }
.oi-row { display: flex; align-items: center; gap: 14px; }
.oi-th { flex: none; width: 56px; height: 56px; border-radius: 14px; overflow: hidden; display: grid; place-items: center; }
.oi-th > img.pc-photo { width: 100%; height: 100%; object-fit: cover; }
.again.wide > .trio { right: 14px; bottom: -24px; width: 196px; height: 196px; }
.again.wide:has(> .trio) form { margin-right: 178px; }
.aside-art { position: relative; display: block; height: 170px; margin: 16px -30px -34px 0; pointer-events: none; }
.aside-art > .pk { position: absolute; bottom: 0; }
.aside-art .a1 { width: 200px; right: 0; z-index: 2; }
.aside-art .a2 { width: 156px; right: 150px; bottom: 26px; z-index: 1; --ry: -40deg; }
.aside-art .a2 .pk-item { display: none; }
.aside-art .pk-shadow { background: radial-gradient(closest-side, rgba(0, 4, 20, .55), rgba(0, 4, 20, 0)); }
.again.wide > .trio .pk-shadow { opacity: .6; }
.pc-img { transition: box-shadow .35s, transform .35s cubic-bezier(.2, .8, .2, 1); }
.pc:hover .pc-img { box-shadow: 0 22px 40px -28px rgba(10, 26, 63, .45); }

/* ───────── 상품 상세 ───────── */
.gallery .main > .pk { width: auto; height: 100%; }
.gallery .main.tone-pack::before { content: ""; position: absolute; left: 50%; top: 4%; width: 72%; height: 66%; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(closest-side, rgba(255, 255, 255, .95), rgba(255, 255, 255, 0)); pointer-events: none; }
.gallery .main.tone-pack::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(10, 26, 63, .05); pointer-events: none; }
.gallery .main .sticker { z-index: 2; }
.cert { position: relative; overflow: hidden; display: flex; align-items: center; gap: 14px; margin-top: 12px; padding: 16px 18px; border-radius: 18px; border: 1px solid #CDEAE4; background: linear-gradient(135deg, #F4FBF9 0%, #E3F5F1 100%); }
.cert::after { content: ""; position: absolute; right: -34px; top: -38px; width: 130px; height: 130px; border-radius: 50%; border: 12px solid rgba(14, 159, 142, .07); pointer-events: none; }
.cert .ic { flex: none; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: var(--mint); color: #fff; box-shadow: 0 8px 18px -8px rgba(14, 159, 142, .8); }
.cert .ic svg { width: 22px; height: 22px; }
.cert > div { min-width: 0; }
.cert .k { margin: 0; font-size: 12.5px; font-weight: 700; color: var(--mint-d); }
.cert .v { margin: 2px 0 0; font-size: 17px; font-weight: 800; color: var(--ink); letter-spacing: -.01em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.cert .seal { position: relative; z-index: 1; margin-left: auto; flex: none; display: inline-flex; align-items: center; height: 30px; padding: 0 10px; border: 1.5px solid rgba(14, 159, 142, .55); border-radius: 8px; color: var(--mint-d); font-size: 12px; font-weight: 800; letter-spacing: .02em; transform: rotate(-5deg); background: rgba(255, 255, 255, .6); }
.dnav { position: sticky; top: 0; z-index: 30; margin-top: 64px; display: flex; align-items: center; gap: 16px; background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.dnav .anchors { position: static; flex: 1; min-width: 0; margin: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; border: 0; }
.dnav-buy { display: flex; align-items: center; gap: 8px; flex: none; }
.dn-name { max-width: 220px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 13.5px; font-weight: 600; color: var(--muted); }
.dn-price { margin-right: 6px; font-size: 18px; font-weight: 800; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.dnav-buy .btn { min-height: 40px; }

/* ───────── PC: 내려가도 주 메뉴가 위에 남는다 ───────── */
.gnb-logo, .gnb-cart { display: none; }
@media (min-width: 768px) {
  header.site { position: sticky; top: -134px; z-index: 60; background: #fff; }
  header.site.stuck .gnb { box-shadow: 0 12px 30px -20px rgba(10, 26, 63, .45); border-bottom-color: transparent; }
  header.site.stuck .gnb-logo { display: flex; align-items: center; padding-right: 18px; color: var(--ink); }
  header.site.stuck .gnb-logo svg { width: 32px; height: 32px; }
  header.site.stuck .gnb-cart { position: relative; display: grid; place-items: center; align-self: center; width: 44px; height: 44px; margin-left: 10px; border-radius: 12px; color: var(--ink); }
  header.site.stuck .gnb-cart:hover { background: var(--surface); }
  header.site.stuck .gnb-cart .cnt { top: 1px; right: 0; }
  .dnav { top: 58px; }
  .dsec { scroll-margin-top: 140px; }
  .summary { top: 82px; }
  html { scroll-padding-top: 80px; }
}

/* ───────── 남색·파란 면의 입자 ───────── */
.catpanel, .again, .cscard, .profile, .auth-aside, .m-orders { background-image: var(--grain), var(--dots-w); background-size: 180px 180px, 14px 14px; }
.ft { position: relative; overflow: hidden; background-image: var(--grain), var(--dots-w); background-size: 180px 180px, 16px 16px; }
.allcat > a { background-image: var(--grain); background-size: 180px 180px; }
.gate { background-image: var(--grain); background-size: 180px 180px; }
.ft-mark { max-width: 1248px; margin: 30px auto -.26em; padding: 0 24px; font-size: clamp(72px, 13vw, 168px); line-height: .9; font-weight: 800; letter-spacing: -.06em; color: transparent; background: linear-gradient(180deg, rgba(255, 255, 255, .075) 0%, rgba(255, 255, 255, 0) 78%); -webkit-background-clip: text; background-clip: text; -webkit-user-select: none; user-select: none; pointer-events: none; }

/* ───────── 로그인 첫 화면 ───────── */
.gate-art { position: absolute; z-index: 1; right: 316px; top: 96px; bottom: 0; width: 520px; pointer-events: none; }
.gate-art > .pk { position: absolute; }
.gate-art .g1 { width: 284px; left: 112px; bottom: 2px; z-index: 3; }
.gate-art .g2 { width: 204px; left: -8px; bottom: 56px; z-index: 2; --ry: -40deg; }
.gate-art .g3 { width: 190px; left: 322px; bottom: 88px; z-index: 1; --ry: -22deg; }
.gate-art.n2 .g1 { left: 210px; }
.gate-art.n2 .g2 { left: 60px; }
.gate-art .g2 .pk-item, .gate-art .g3 .pk-item { display: none; }
.gate-art .pk-shadow { background: radial-gradient(closest-side, rgba(0, 4, 20, .6), rgba(0, 4, 20, 0)); }
.ga-glow { position: absolute; left: 20px; right: 0; top: 120px; bottom: -20px; border-radius: 50%; background: radial-gradient(closest-side, rgba(84, 136, 255, .5), rgba(84, 136, 255, 0)); }
.ga-floor { position: absolute; left: 0; right: -20px; bottom: 16px; height: 120px; border-radius: 50%; background: radial-gradient(closest-side, rgba(255, 255, 255, .13), rgba(255, 255, 255, 0)); }
.ga-chip { position: absolute; z-index: 4; display: flex; align-items: center; gap: 10px; padding: 10px 16px 10px 10px; border-radius: 16px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .2); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 22px 44px -22px rgba(0, 0, 0, .7); color: #fff; white-space: nowrap; animation: ga-float 7s ease-in-out infinite; }
.ga-chip .ok { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--mint); box-shadow: 0 6px 14px -6px rgba(14, 159, 142, .9); }
.ga-chip .ok svg { width: 16px; height: 16px; }
.ga-chip small { display: block; font-size: 11.5px; line-height: 1.35; font-weight: 600; color: rgba(255, 255, 255, .7); }
.ga-chip b { display: block; font-size: 14px; line-height: 1.35; font-weight: 800; }
.ga-chip.c1 { left: 150px; top: 64px; }
.ga-chip.c2 { left: 0; bottom: 250px; animation-delay: -3.5s; }
@keyframes ga-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.locked { position: relative; overflow: hidden; border-radius: 28px; padding: 28px; background: var(--surface); }
.locked::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(245, 247, 251, .1) 0%, rgba(245, 247, 251, .75) 100%); pointer-events: none; }
.lk-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; filter: blur(2.4px) saturate(.85); opacity: .85; }
.lk-grid li { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.lk-img { display: block; margin-bottom: 6px; border-radius: 20px; overflow: hidden; background: linear-gradient(180deg, rgba(216, 223, 235, 0) 62%, rgba(206, 214, 228, .5) 100%), var(--studio); }
.lk-grid .bar { display: block; height: 12px; border-radius: 6px; background: #DCE2EC; }
.lk-grid .bar.w40 { width: 40%; height: 10px; }
.lk-grid .bar.w90 { width: 90%; }
.lk-grid .bar.w60 { width: 62%; }
.lk-grid .bar.price { width: 46%; height: 20px; margin-top: 4px; background: #C9D2E1; }
.lk-veil { position: absolute; z-index: 2; left: 50%; top: 50%; width: min(460px, calc(100% - 32px)); transform: translate(-50%, -50%); padding: 30px 28px 26px; border-radius: 24px; text-align: center; background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: var(--sh-3); }
.lk-ic { width: 56px; height: 56px; margin: 0 auto 14px; border-radius: 18px; display: grid; place-items: center; background: linear-gradient(180deg, #1A2E5E, #0A1A3F); color: #fff; box-shadow: 0 12px 24px -12px rgba(10, 26, 63, .8); }
.lk-ic svg { width: 26px; height: 26px; }
.lk-veil b { display: block; font-size: 20px; letter-spacing: -.035em; }
.lk-veil p { margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.lk-veil .btns { display: flex; gap: 8px; justify-content: center; margin-top: 18px; }
.lk-veil .btns .btn { min-width: 120px; }

/* ───────── 태블릿 ───────── */
@media (max-width: 1023px) {
  .gate-art { right: -20px; top: 80px; bottom: auto; height: 420px; transform: scale(.6); transform-origin: top right; }
  .ga-chip { display: none; }
  .lhero .trio { right: 10px; width: 250px; height: 236px; }
  .lh-copy { max-width: 62%; }
  .lk-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lk-grid li:nth-child(4) { display: none; }
  .dn-name { display: none; }
  .aside-art { display: none; }
  .again.wide:has(> .trio) form { margin-right: 0; }
}

/* ───────── 모바일 ───────── */
@media (max-width: 767px) {
  .rank { left: 10px; top: 9px; font-size: 30px; }
  .rank::after { width: 14px; height: 2.5px; margin-top: 6px; }
  .plist.rows .rank, .plist.top3.rows .rank { left: -6px; top: 4px; min-width: 26px; height: 26px; padding: 0 6px; display: grid; place-items: center; border-radius: 8px; background: #fff; color: var(--ink); font-size: 12px; line-height: 1; letter-spacing: -.02em; box-shadow: var(--sh-1); text-shadow: none; }
  .plist.rows .rank::after { display: none; }
  .plist.rows .rank.top { background: var(--ink); color: #fff; }
  .plist.top3 { margin-bottom: 0; }
  .plist.top3.rows .pc-maker, .plist.top3.rows .tags { display: none; }
  .plist.top3.rows .pc-name { font-size: 15px; }
  .plist.top3.rows .pc-price b { font-size: 17px; }
  .plist.top3.rows .qadd button { width: 40px; height: 40px; }
  .plist.rest.rows .pc:first-child { border-top: 1px solid #EEF1F6; }
  .eyebrow { font-size: 11px; margin-bottom: 6px; }
  /* 슬라이드 */
  .s-best .s-title, .s-new .s-title { font-size: 19px; -webkit-line-clamp: 3; }
  .s-price { margin-top: 8px; }
  .s-price b { font-size: 18px; }
  .s-price b small { font-size: 13px; }
  .s-price span { display: none; }
  .s-art.stage { max-width: 150px; margin-right: -16px; }
  .st-no, .st-new { width: 38px; height: 38px; padding-top: 9px; font-size: 10px; }
  .st-no b { font-size: 17px; }
  .st-new { padding-top: 0; font-size: 9.5px; }
  .car-prog { width: 40px; margin-left: 6px; }
  /* 제품군 배너 */
  .lhero { min-height: 148px; padding: 22px 20px; margin: 2px 0 16px; border-radius: 22px; }
  .lh-copy { max-width: 58%; }
  .lhero h1 { font-size: 28px; }
  .lhero h1 small { font-size: 15px; margin-left: 6px; }
  .lh-facts { margin-top: 10px; }
  .lh-facts span { height: 26px; padding: 0 10px; font-size: 12px; }
  .lh-facts span:nth-child(n+2) { display: none; }
  .lhero .trio { right: -6px; bottom: -14px; width: 168px; height: 160px; }
  /* 상세 */
  .gallery .main > .pk { height: 100%; }
  .cert { padding: 14px 16px; }
  .cert .v { font-size: 15.5px; }
  .cert .seal { display: none; }
  .dnav { top: 58px; margin: 32px -16px 0; padding: 0 8px; }
  .dnav .anchors { padding: 0; }
  /* 로그인 */
  .gate-art { right: -8px; top: 16px; transform: scale(.31); opacity: 1; }
  .gate-art .ga-glow { opacity: .7; }
  .gate .gate-p { padding-right: 0; }
  .gate h1 { padding-right: 96px; }
  .locked { padding: 16px; border-radius: 22px; margin: 0 -2px; }
  .lk-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .lk-grid li:nth-child(n+3) { display: none; }
  .lk-veil { padding: 22px 18px 18px; border-radius: 20px; }
  .lk-veil b { font-size: 17px; }
  .lk-veil p { font-size: 13px; }
  .lk-veil .btns .btn { min-width: 0; flex: 1; }
  .ft-mark { margin-top: 26px; }
  .oi-th { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .pk-box, .pk-item, .pk-shadow { transition: none; }
  .ga-chip { animation: none; }
  .carousel.run .car-prog i { animation: none; }
}

/* ═════════════════════════ v0.6 ═════════════════════════
   최소 주문 금액·환불 기간 안내, 지킴 처방전보관 무료 이용권(혜택 띠·구간 카드·이용권 카드), 정보 제공 동의 */
:root { --rx-c: #04A9FF; --rx-d: #0386D1; --rx-dd: #0369A8; --rx-l: #EAF7FF; --rx-line: #CDEBFB; }
.k-rx { --c: #0AA6F5; --c2: #0386D1; }
.tone-rx { background: #E5F6FF; }
.pk.k-rx .pk-item { width: 33cqw; height: 33cqw; right: 2cqw; bottom: 7cqw; transform: rotate(4deg); }

/* 상단 띠의 혜택 */
.strip .item.hl { color: #fff; font-weight: 700; text-decoration: none !important; }
.strip .item.hl .ico { color: var(--yellow); }
.strip .item.hl:hover { color: var(--yellow); }

/* 구간 카드 */
.tiers { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tier { position: relative; display: flex; align-items: center; gap: 12px; min-width: 0; padding: 12px 20px 12px 8px; border-radius: 22px; background: #fff; border: 1px solid var(--rx-line); box-shadow: 0 1px 2px rgba(10, 26, 63, .04); overflow: hidden; }
.tier-art { flex: none; width: 116px; }
.tier-txt { min-width: 0; }
.tier-k { display: block; font-size: 13px; font-weight: 700; color: var(--rx-d); }
.tier-v { display: block; margin-top: 3px; font-size: 19px; line-height: 1.3; font-weight: 800; letter-spacing: -.04em; color: var(--ink); word-break: keep-all; }
.tier-v em { font-style: normal; color: var(--rx-d); }
.tier.hot { background: linear-gradient(135deg, #22B6FF 0%, #0A8BE6 100%); border-color: transparent; box-shadow: 0 20px 36px -22px rgba(3, 134, 209, .9); }
.tier.hot::before { content: ""; position: absolute; inset: 0; background-image: var(--dots-w); background-size: 14px 14px; -webkit-mask-image: linear-gradient(90deg, transparent 30%, #000); mask-image: linear-gradient(90deg, transparent 30%, #000); pointer-events: none; }
.tier.hot .tier-k { color: rgba(255, 255, 255, .85); }
.tier.hot .tier-v { color: #fff; }
.tier.hot .tier-v em { color: var(--yellow); }
.tier.hot .pk-shadow { background: radial-gradient(closest-side, rgba(0, 40, 90, .45), rgba(0, 40, 90, 0)); }
.tiers.wide .tier { padding: 16px 26px 16px 12px; }
.tiers.wide .tier-art { width: 150px; }
.tiers.wide .tier-v { font-size: 22px; }

/* 홈 혜택 띠 */
.bband { position: relative; overflow: hidden; isolation: isolate; margin-top: 24px; display: grid; grid-template-columns: 290px minmax(0, 1fr) 200px; gap: 20px; align-items: stretch; padding: 24px; border-radius: 28px; background: linear-gradient(135deg, #F3FAFF 0%, #E0F3FF 100%); border: 1px solid #D4EEFD; }
.bband::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(circle, rgba(4, 169, 255, .16) 1.3px, transparent 1.7px); background-size: 15px 15px; -webkit-mask-image: linear-gradient(100deg, #000 0%, transparent 45%); mask-image: linear-gradient(100deg, #000 0%, transparent 45%); }
.bband .eyebrow, .gbenefit .eyebrow, .cpn-page .eyebrow { color: var(--rx-d); }
.bb-copy { align-self: center; padding-left: 6px; }
.bb-copy h2, .gb-copy h2 { margin: 0; font-size: 24px; line-height: 1.32; letter-spacing: -.045em; }
.bb-copy p { margin: 10px 0 0; font-size: 13.5px; line-height: 1.65; color: var(--ink2); }
.bb-copy .more, .gb-copy .more { margin-top: 12px; color: var(--rx-d); }
.bband .tiers { align-self: center; }
.bb-mine { display: flex; flex-direction: column; justify-content: center; padding: 18px 20px; border-radius: 20px; background: var(--ink); background-image: var(--grain), var(--dots-w); background-size: 180px 180px, 14px 14px; color: #fff; text-decoration: none !important; transition: transform .2s; }
.bb-mine:hover { transform: translateY(-2px); }
.bb-mine .k { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: rgba(255, 255, 255, .75); }
.bb-mine .k .ico svg { width: 17px; height: 17px; color: var(--yellow); }
.bb-mine b { margin-top: 6px; font-size: 40px; line-height: 1.05; font-weight: 800; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.bb-mine b small { font-size: 17px; font-weight: 700; margin-left: 3px; }
.bb-mine .s { margin-top: 4px; font-size: 12.5px; color: rgba(255, 255, 255, .7); }
.bb-mine .go { margin-top: 12px; display: inline-flex; align-items: center; gap: 2px; font-size: 13px; font-weight: 700; color: var(--yellow); }
.bb-mine .go svg { width: 15px; height: 15px; }

/* 첫 화면 혜택 슬라이드 */
.slide.s-rx { background: radial-gradient(60% 85% at 78% 42%, rgba(255, 255, 255, .38) 0%, rgba(255, 255, 255, 0) 62%), linear-gradient(135deg, #24B7FF 0%, #0A92EC 52%, #0870D4 100%); color: #fff; }
.slide.s-rx::before { background-image: var(--dots-w); }
.slide.s-rx::after { content: ""; position: absolute; inset: 0; background-image: var(--grain); background-size: 180px 180px; opacity: .5; pointer-events: none; }
.s-rx .s-kicker { background: rgba(10, 26, 63, .2); }
.s-pre { margin: 18px 0 0; font-size: 20px; font-weight: 700; letter-spacing: -.03em; opacity: .95; }
.s-rx .s-title { margin-top: 4px; font-size: 46px; line-height: 1.16; }
.s-chip { display: inline-flex; align-items: center; gap: 6px; margin: 16px 0 0; min-height: 34px; padding: 6px 14px 6px 10px; border-radius: 999px; background: rgba(10, 26, 63, .22); font-size: 13.5px; font-weight: 600; line-height: 1.3; }
.s-chip .ico svg { width: 16px; height: 16px; color: var(--yellow); }
.s-chip b { color: var(--yellow); }
.s-rx .s-cta { margin-top: 22px; }
.s-rx .btn.white { color: var(--rx-dd); }
.rxstage .st-1 { width: 80%; left: 15%; bottom: 2%; }
.rxstage .st-2 { width: 54%; left: -8%; bottom: 15%; }
.rxstage .pk-shadow { background: radial-gradient(closest-side, rgba(0, 50, 110, .5), rgba(0, 50, 110, 0)); }
.st-new.free { left: auto; right: 4%; top: 9%; background: var(--yellow); color: #3D3000; box-shadow: 0 12px 26px -10px rgba(0, 40, 90, .55), inset 0 -3px 0 rgba(138, 106, 0, .18); }

/* 상품 상세 혜택 한 줄 */
.bline { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 8px 16px 8px 6px; border-radius: 18px; background: linear-gradient(135deg, #F1FAFF 0%, #E1F3FF 100%); border: 1px solid var(--rx-line); color: var(--ink); text-decoration: none !important; transition: border-color .15s, box-shadow .15s; }
.bline:hover { border-color: #9FD9F8; box-shadow: 0 10px 24px -18px rgba(3, 134, 209, .9); }
.bl-art { flex: none; width: 66px; }
.bl-txt { flex: 1; min-width: 0; }
.bl-txt b { display: block; font-size: 14.5px; font-weight: 800; letter-spacing: -.02em; color: var(--rx-dd); }
.bl-txt span { display: block; margin-top: 1px; font-size: 12.5px; color: var(--muted); }
.bline > .ico { color: var(--rx-d); }

/* 장바구니·주문서 이용권 안내 */
.bnote { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding: 8px 14px 8px 4px; border-radius: 16px; background: #F3FAFF; border: 1.5px dashed #A7DBF7; }
.bnote.on { background: linear-gradient(135deg, #EAF7FF 0%, #D7EFFF 100%); border-style: solid; border-color: #A9DCF8; }
.bn-art { flex: none; width: 62px; }
.bnote b { display: block; font-size: 13.5px; line-height: 1.4; font-weight: 800; letter-spacing: -.02em; color: var(--rx-dd); }
.bnote span { display: block; margin-top: 2px; font-size: 12px; line-height: 1.45; color: var(--muted); }
.minbar .fill { background: linear-gradient(90deg, #7AD0FF, var(--rx-d)); }
.minbar p b { color: var(--rx-dd); }
.minbar.done .fill { background: linear-gradient(90deg, #38C2AE, var(--mint)); }
.minbar.done p b { color: var(--mint-d); }

/* 이용권 카드 (티켓) */
.cpn { position: relative; display: grid; grid-template-columns: 108px minmax(0, 1fr) auto; align-items: center; gap: 0 16px; padding: 10px 22px 10px 8px; border-radius: 22px; background: #fff; border: 1px solid var(--rx-line); box-shadow: 0 1px 2px rgba(10, 26, 63, .05), 0 16px 32px -26px rgba(3, 134, 209, .8); }
.cpn::before, .cpn::after { content: ""; position: absolute; left: 113px; width: 18px; height: 18px; border-radius: 50%; background: var(--page-bg, #fff); border: 1px solid var(--rx-line); }
.cpn::before { top: -10px; clip-path: inset(50% 0 0 0); }
.cpn::after { bottom: -10px; clip-path: inset(0 0 50% 0); }
.cpn-body { min-width: 0; padding: 6px 0 6px 18px; border-left: 2px dashed var(--rx-line); }
.cpn-k { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0; font-size: 13px; font-weight: 700; color: var(--rx-d); }
.cpn-st { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 6px; font-size: 11.5px; font-weight: 800; }
.cpn-st.ok { background: var(--rx-l); color: var(--rx-dd); }
.cpn-st.used, .cpn-st.expired { background: #EEF1F6; color: #4A5468; }
.cpn-st.void { background: var(--badbg); color: var(--bad); }
.cpn-v { margin: 4px 0 0; font-size: 26px; line-height: 1.15; font-weight: 800; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.cpn-v small { margin-left: 4px; font-size: 13.5px; font-weight: 600; letter-spacing: -.01em; color: var(--muted); }
.cpn-code { margin: 7px 0 0; font-size: 13px; color: var(--ink2); }
.cpn-code code { margin-left: 4px; padding: 4px 9px; border-radius: 8px; background: var(--rx-l); color: var(--rx-dd); font: 800 14px/1.2 var(--font); letter-spacing: .06em; -webkit-user-select: all; user-select: all; }
.cpn-meta { margin: 6px 0 0; font-size: 12.5px; color: var(--muted); }
.cpn-meta a { color: inherit; text-decoration: underline; }
.cpn.void, .cpn.used, .cpn.expired { background: #FAFBFD; box-shadow: none; }
.cpn.void .cpn-art, .cpn.expired .cpn-art { opacity: .5; filter: grayscale(1); }
.cpn.void .cpn-v { color: var(--faint); }
.ord-cpn { margin: 0 0 18px; }
.cpn-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.cpn-sum { display: grid; grid-template-columns: 1.5fr repeat(3, minmax(0, 1fr)) auto; gap: 12px; align-items: stretch; margin-bottom: 14px; }
.cpn-sum > div { padding: 16px 18px; border-radius: 18px; background: var(--surface); }
.cpn-sum > div span { display: block; font-size: 12.5px; font-weight: 600; color: var(--muted); }
.cpn-sum > div b { display: block; margin-top: 2px; font-size: 24px; font-weight: 800; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.cpn-sum > .big { background: linear-gradient(135deg, #22B6FF 0%, #0A8BE6 100%); color: #fff; box-shadow: 0 18px 32px -22px rgba(3, 134, 209, .9); }
.cpn-sum > .big span { color: rgba(255, 255, 255, .85); }
.cpn-sum > .big b { font-size: 34px; }
.cpn-sum > .big b small { font-size: 16px; margin-left: 2px; }
.cpn-sum > .btn { align-self: center; }
.cpn-how { margin-bottom: 22px; padding: 16px 20px; border-radius: 18px; border: 1px solid var(--rx-line); background: #F7FCFF; }
.cpn-how > b { font-size: 14.5px; }
.cpn-how ol { margin: 8px 0 10px; padding-left: 20px; font-size: 13.5px; line-height: 1.7; color: var(--ink2); }
.cpn-empty .e-art { display: block; width: 150px; margin: -10px auto 4px; }

/* 주문 상세: 취소·반품 요청 기간 */
.refundbox { margin-top: 16px; padding: 18px 20px; border-radius: 20px; border: 1px solid var(--line); background: #fff; }
.refundbox.closed { background: var(--surface); }
.rb-h { display: flex; align-items: flex-start; gap: 12px; }
.rb-h .ic { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--sky); color: var(--blue); }
.refundbox.closed .rb-h .ic { background: #E6EAF1; color: var(--muted); }
.rb-h .ic svg { width: 20px; height: 20px; }
.rb-h b { display: block; font-size: 15.5px; letter-spacing: -.02em; }
.rb-h span { display: block; margin-top: 2px; font-size: 13px; color: var(--muted); line-height: 1.6; }
.rb-form { display: flex; gap: 8px; margin: 14px 0 0 52px; }
.rb-form input { flex: 1; min-width: 0; height: 46px; }

/* 정보 제공 동의 */
.consent .cs-h { display: flex; align-items: center; gap: 14px; }
.consent .cs-h > div { flex: 1; min-width: 0; }
.consent .cs-h h3 { margin: 0 0 2px; }
.consent .cs-h .ic { flex: none; width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: var(--rx-l); color: var(--rx-d); }
.consent .cs-h .ic svg { width: 22px; height: 22px; }
.consent-d { margin-top: 10px; padding: 10px 14px; border-radius: 12px; background: var(--surface); font-size: 13px; }
.consent-d summary { cursor: pointer; font-weight: 700; color: var(--ink2); }
.consent-d .kv { margin: 10px 0 8px; grid-template-columns: 96px 1fr; gap: 6px 12px; }
.agree .consent-d { margin: 2px 0 6px 30px; background: #fff; }

/* 로그인 첫 화면: 회원 혜택 */
.gbenefit { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 28px; align-items: center; padding: 30px; border-radius: 28px; background: linear-gradient(135deg, #F3FAFF 0%, #DFF2FF 100%); border: 1px solid #D4EEFD; }
.gb-copy p { margin: 10px 0 0; font-size: 14px; line-height: 1.7; color: var(--ink2); }

@media (max-width: 1023px) {
  .bband { grid-template-columns: minmax(0, 1fr) 200px; }
  .bb-copy { grid-column: 1 / -1; }
  .gbenefit { grid-template-columns: 1fr; }
  .cpn-sum { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cpn-sum > .big { grid-column: 1 / -1; }
  .cpn-sum > .btn { grid-column: 1 / -1; }
  .cpn-list { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .home-flow > .bband { order: 3; }
  .home-flow > .svc { order: 4; }
  .bband { margin: 16px 0 0; grid-template-columns: 1fr; gap: 12px; padding: 18px 14px 14px; border-radius: 22px; }
  .bb-copy { padding: 0 4px; }
  .bb-copy h2, .gb-copy h2 { font-size: 19px; }
  .bb-copy p, .bb-copy .more { display: none; }
  .tiers { gap: 10px; }
  .tier { flex-direction: column; align-items: flex-start; gap: 0; padding: 4px 12px 14px; border-radius: 18px; }
  .tier-art { width: 100%; max-width: 128px; margin: 0 auto; }
  .tier-k { font-size: 11.5px; }
  .tier-v { font-size: 15px; }
  .tiers.wide .tier { padding: 4px 12px 14px; }
  .tiers.wide .tier-art { width: 100%; }
  .tiers.wide .tier-v { font-size: 16px; }
  .bb-mine { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 2px 10px; padding: 14px 16px; border-radius: 16px; }
  .bb-mine b { margin: 0; font-size: 24px; }
  .bb-mine b small { font-size: 13px; }
  .bb-mine .s { margin: 0; flex-basis: 100%; order: 3; }
  .bb-mine .go { margin: 0 0 0 auto; }
  .s-pre { margin-top: 8px; font-size: 13px; }
  .s-rx .s-title { margin-top: 2px; font-size: 24px; line-height: 1.2; }
  .s-chip { display: none; }
  .st-new.free { width: 38px; height: 38px; font-size: 9.5px; }
  .bline { padding: 6px 12px 6px 4px; }
  .bl-art { width: 56px; }
  .bl-txt b { font-size: 13.5px; }
  .cpn { grid-template-columns: 82px minmax(0, 1fr); padding: 8px 14px 12px 6px; gap: 0 12px; }
  .cpn::before, .cpn::after { left: 86px; }
  .cpn-body { padding-left: 14px; }
  .cpn-v { font-size: 22px; }
  .cpn-code code { font-size: 13px; }
  .cpn > .btn { grid-column: 1 / -1; margin: 10px 0 0; }
  .cpn-sum { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .cpn-sum > div { padding: 12px 14px; border-radius: 14px; }
  .cpn-sum > div b { font-size: 19px; }
  .cpn-sum > .big b { font-size: 28px; }
  .cpn-sum > div:nth-child(5) { display: none; }
  .rb-form { margin-left: 0; flex-direction: column; }
  .rb-form .btn { width: 100%; }
  .consent .cs-h { flex-wrap: wrap; }
  .consent .cs-h .btn { width: 100%; }
  .gbenefit { padding: 20px 16px; border-radius: 22px; gap: 16px; }
  .gb-copy p { font-size: 13px; }
}
.tbl tr:has(.oi-row) td { vertical-align: middle; }

/* 권장소비자가 · 약국 마진 (상품 카드·상세) */
.pc-msrp { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; margin: 3px 0 0; font-size: 12.5px; color: var(--muted); font-variant-numeric: tabular-nums; }
.pc-msrp b { color: var(--mint-d); font-weight: 750; }
.msrp.big { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 12px 0 0; font-size: 14px; color: var(--ink2); font-variant-numeric: tabular-nums; }
.msrp.big b { padding: 3px 10px; border-radius: 999px; background: var(--mint-l); color: var(--mint-d); font-size: 13px; font-weight: 750; }
@media (max-width: 767px) { .pc-msrp { font-size: 11.5px; gap: 0 6px; } }

/* ═════════════════════════ v0.7 ═════════════════════════
   구매 단위 표시, 이용권 누적 현황, 처방전 보관 서비스 안내(/rx-storage) */

/* 구매 단위 */
.badge.unit { background: #fff; color: var(--ink2); box-shadow: inset 0 0 0 1px var(--line2); }
.rr-sub .ou { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 6px; margin-right: 6px; box-shadow: inset 0 0 0 1px var(--line2); color: var(--ink2); font-weight: 600; font-size: 12px; }
.ci-meta .ou { color: var(--ink2); font-weight: 700; }
.buybox .lbl .ou-note { color: var(--blue-d); font-weight: 700; }
@media (max-width: 767px) { .rr-sub .ou { height: 20px; font-size: 11.5px; padding: 0 6px; } }

/* 이용권 누적 현황 (내 이용권) · 주문 상세 누적 안내 */
.stampbar { margin: 0 0 14px; padding: 14px 18px 12px; border-radius: 18px; border: 1px solid var(--rx-line); background: #F7FCFF; }
.stampbar .sb-h { display: flex; align-items: baseline; justify-content: space-between; gap: 6px 12px; flex-wrap: wrap; margin-bottom: 8px; }
.stampbar .sb-h b { font-size: 15.5px; letter-spacing: -.02em; color: var(--rx-dd); }
.stampbar .sb-h span { font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; }
.stampbar .track { background: #E3F2FC; }
.stampbar .sb-warn { margin: 8px 0 0; font-size: 12.5px; color: var(--warn); }
.ord-stamp { margin: 0 0 18px; color: var(--ink); text-decoration: none !important; }
.ord-stamp:hover { border-color: #9FD9F8; }

/* ── 처방전 보관 서비스 안내 ── */
main.rxs { padding-bottom: 96px; }
.rxs-hero { position: relative; overflow: hidden; isolation: isolate; color: #fff; background: radial-gradient(55% 90% at 78% 42%, rgba(255, 255, 255, .34) 0%, rgba(255, 255, 255, 0) 62%), linear-gradient(135deg, #24B7FF 0%, #0A92EC 52%, #0870D4 100%); }
.rxs-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--dots-w); background-size: 14px 14px; -webkit-mask-image: linear-gradient(100deg, #000 0%, transparent 55%); mask-image: linear-gradient(100deg, #000 0%, transparent 55%); }
.rxs-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--grain); background-size: 180px 180px; opacity: .5; pointer-events: none; }
.rxs-hero-in { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 24px; align-items: center; min-height: 440px; padding-top: 44px; padding-bottom: 44px; }
.rxs-kicker { display: inline-flex; align-items: center; gap: 8px; height: 34px; margin: 0; padding: 0 14px 0 10px; border-radius: 999px; background: rgba(10, 26, 63, .2); font-size: 13.5px; font-weight: 700; }
.rxs-kicker .ico svg { width: 18px; height: 18px; color: var(--yellow); }
.rxs-hero h1 { margin: 18px 0 0; color: #fff; font-size: 46px; line-height: 1.18; letter-spacing: -.05em; }
.rxs-lead { margin: 16px 0 0; max-width: 33em; font-size: 16.5px; line-height: 1.72; color: rgba(255, 255, 255, .92); }
.rxs-gift { display: inline-flex; align-items: center; gap: 8px; margin: 20px 0 0; padding: 9px 16px 9px 12px; border-radius: 14px; background: #fff; color: var(--ink); font-size: 14.5px; font-weight: 600; box-shadow: 0 16px 30px -18px rgba(0, 40, 90, .7); }
.rxs-gift .ico svg { width: 19px; height: 19px; color: var(--rx-d); }
.rxs-gift b { color: var(--rx-dd); font-weight: 800; }
.rxs-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.rxs-cta .btn.white { color: var(--rx-dd); }
.rxs-cta .btn .ico svg { width: 16px; height: 16px; }
.rxs-art.stage { position: relative; width: 100%; max-width: 400px; aspect-ratio: 1 / 1; justify-self: center; }
.rxs-art .halo { background: radial-gradient(closest-side, rgba(255, 255, 255, .4), rgba(255, 255, 255, 0)); }
.rxs-bubble { position: absolute; right: 0; top: 6%; z-index: 5; width: 108px; height: 108px; border-radius: 50%; display: grid; place-content: center; text-align: center; background: #fff; color: var(--rx-d); font-size: 13px; font-weight: 700; line-height: 1.3; box-shadow: 0 18px 30px -16px rgba(0, 40, 90, .65); }
.rxs-bubble b { display: block; font-size: 19px; font-weight: 800; letter-spacing: -.04em; color: var(--rx-dd); }

.rxs-nav { margin: 26px 0 0; }
.rxs-sec { margin-top: 72px; scroll-margin-top: 112px; }
.rxs-sec > h2 { margin: 0; font-size: 28px; letter-spacing: -.045em; }
.rxs-sub { margin: 8px 0 24px; max-width: 46em; font-size: 15px; line-height: 1.7; color: var(--muted); }

.steps.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.steps.four li { padding: 26px 22px 24px; }
.steps.four li:nth-child(4) .ic { background: var(--rx-l); color: var(--rx-d); }

.rxs-good { list-style: none; margin: 24px 0 0; padding: 22px 4px 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 28px; border-top: 1px dashed var(--line2); }
.rxs-good li { display: flex; align-items: flex-start; gap: 12px; }
.rxs-good .ic { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--surface); color: var(--ink2); }
.rxs-good .ic svg { width: 20px; height: 20px; }
.rxs-good b { display: block; font-size: 15.5px; letter-spacing: -.02em; }
.rxs-good li > div > span { display: block; margin-top: 2px; font-size: 13.5px; line-height: 1.6; color: var(--muted); }

.rxs-benefit { position: relative; overflow: hidden; isolation: isolate; padding: 30px; border-radius: 28px; background: linear-gradient(135deg, #F3FAFF 0%, #E0F3FF 100%); border: 1px solid #D4EEFD; }
.rxs-benefit::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(circle, rgba(4, 169, 255, .16) 1.3px, transparent 1.7px); background-size: 15px 15px; -webkit-mask-image: linear-gradient(100deg, #000 0%, transparent 45%); mask-image: linear-gradient(100deg, #000 0%, transparent 45%); }
.rxs-benefit .rxs-sub { color: var(--ink2); }
.rxs-mine { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 16px; margin-top: 14px; padding: 14px 18px; border-radius: 18px; background: var(--ink); background-image: var(--grain); background-size: 180px 180px; color: #fff; text-decoration: none !important; }
.rxs-mine > span:first-child { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: rgba(255, 255, 255, .75); }
.rxs-mine .ico svg { width: 17px; height: 17px; color: var(--yellow); }
.rxs-mine b { font-size: 17px; letter-spacing: -.02em; }
.rxs-mine b small { margin-left: 6px; font-size: 13px; font-weight: 600; color: rgba(255, 255, 255, .7); }
.rxs-mine .nx { font-size: 13px; font-weight: 700; color: var(--yellow); }
.rxs-mine > .ico:last-child { margin-left: auto; }
.rxs-mine > .ico:last-child svg { color: rgba(255, 255, 255, .7); }
.rxs-points { margin: 16px 0 0; padding-left: 20px; font-size: 14px; line-height: 1.8; color: var(--ink2); }

.rxs-use { list-style: none; margin: 22px 0 0; padding: 0; counter-reset: u; max-width: 860px; }
.rxs-use li { position: relative; counter-increment: u; padding: 0 0 22px 56px; }
.rxs-use li::before { content: counter(u); position: absolute; left: 0; top: 0; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--rx-l); color: var(--rx-dd); font-size: 15px; font-weight: 800; box-shadow: inset 0 0 0 1.5px var(--rx-line); }
.rxs-use li::after { content: ""; position: absolute; left: 17px; top: 42px; bottom: 6px; width: 2px; border-radius: 2px; background: var(--rx-line); }
.rxs-use li:last-child { padding-bottom: 0; }
.rxs-use li:last-child::after { display: none; }
.rxs-use b { display: block; font-size: 17px; line-height: 36px; letter-spacing: -.03em; }
.rxs-use p { margin: 0; font-size: 14.5px; line-height: 1.75; color: var(--ink2); }
.rxs-tip { display: flex; align-items: flex-start; gap: 10px; max-width: 860px; margin: 22px 0 0; padding: 14px 16px; border-radius: 16px; background: var(--surface); font-size: 14px; line-height: 1.65; color: var(--ink2); }
.rxs-tip .ico svg { width: 20px; height: 20px; color: var(--rx-d); }

/* 박스 옆면 기재 예시 — 실제 보관 박스의 회색 골판지 옆면과 기재 칸을 그대로 옮긴 그림 */
.rxs-pack-in { display: grid; grid-template-columns: minmax(0, 310px) minmax(0, 1fr); gap: 48px; align-items: start; }
.boxside { margin: 0; }
.bs-top { display: flex; align-items: center; gap: 10px; width: fit-content; margin: 0 0 10px 18px; padding: 7px 14px; border-radius: 10px; background: var(--ink); color: #fff; font-size: 12.5px; }
.bs-top span { color: rgba(255, 255, 255, .7); }
.bs-top b { font-size: 14px; letter-spacing: -.01em; }
.bs-face { position: relative; aspect-ratio: 230 / 335; padding: 9% 10% 8%; border-radius: 8px;
  background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .22) 0 2px, rgba(255, 255, 255, 0) 2px 9px), linear-gradient(180deg, #EFF1F4 0%, #E1E5EA 100%);
  box-shadow: inset 0 0 0 1px rgba(10, 26, 63, .08), inset -14px 0 24px -18px rgba(10, 26, 63, .35), 0 26px 44px -30px rgba(10, 26, 63, .55); }
.bs-logo { display: inline-flex; align-items: center; gap: 4px; font-size: 15px; font-weight: 800; color: var(--ink); letter-spacing: -.03em; }
/* 박스에 인쇄된 큰 표시 (옆면 아래쪽) */
.bs-face::after { content: "지킴"; position: absolute; right: 10%; bottom: 6%; font-size: 30px; font-weight: 900; letter-spacing: -.06em; color: rgba(10, 26, 63, .09); }
.bs-logo .ico svg { width: 22px; height: 22px; }
.bs-label { display: grid; grid-template-columns: 1fr; margin: 9% 0 0; }
.bs-label dt { margin-top: 10%; font-size: 12px; font-weight: 800; color: var(--ink2); letter-spacing: -.01em; }
.bs-label dt:first-child { margin-top: 0; }
.bs-label dd { margin: 4px 0 0; padding: 0 2px 5px; border-bottom: 1.5px solid #8E97A8; font-size: 15px; font-weight: 700; line-height: 1.35; color: #1946B8; letter-spacing: -.02em; transform: rotate(-1.2deg); transform-origin: left bottom; }
.bs-label dd small { font-size: 11.5px; font-weight: 600; color: #5F79BF; }
.boxside figcaption { margin-top: 12px; font-size: 13px; font-weight: 600; color: var(--ink2); }
.boxside figcaption span { display: block; margin-top: 2px; font-weight: 500; font-size: 12px; color: var(--faint); }
.rxs-rules { list-style: none; margin: 0; padding: 0; }
.rxs-rules li { display: flex; align-items: flex-start; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.rxs-rules li:first-child { padding-top: 4px; }
.rxs-rules li:last-child { border-bottom: 0; }
.rxs-rules .ic { flex: none; width: 26px; height: 26px; margin-top: 1px; border-radius: 50%; display: grid; place-items: center; background: var(--rx-d); color: #fff; }
.rxs-rules .ic svg { width: 15px; height: 15px; }
.rxs-rules b { display: block; font-size: 16px; letter-spacing: -.025em; }
.rxs-rules li > div > span { display: block; margin-top: 3px; font-size: 14px; line-height: 1.65; color: var(--muted); }

.rxs-notes { display: grid; grid-template-columns: minmax(150px, 250px) minmax(0, 1fr); max-width: 1000px; margin: 20px 0 0; border-top: 1px solid var(--line); }
.rxs-notes dt, .rxs-notes dd { margin: 0; padding: 16px 0; border-bottom: 1px solid var(--line); }
.rxs-notes dt { padding-right: 20px; font-size: 15px; font-weight: 700; letter-spacing: -.02em; }
.rxs-notes dd { font-size: 14.5px; line-height: 1.75; color: var(--ink2); }

.rxs-info-in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 24px; align-items: start; margin-top: 20px; }
.rxs-info .tbl th { width: 120px; }
.rxs-cs { display: grid; gap: 12px; }
.cs-card { padding: 18px 20px; border-radius: 18px; border: 1px solid var(--line); background: #fff; }
.cs-card .k { margin: 0; font-size: 12.5px; font-weight: 700; color: var(--rx-d); }
.cs-card b { display: block; margin-top: 4px; font-size: 17px; letter-spacing: -.02em; }
.cs-card p { margin: 6px 0 0; font-size: 14px; line-height: 1.7; color: var(--ink2); }
.cs-card .btn { margin-top: 12px; }
.cs-card .btn .ico svg { width: 15px; height: 15px; }
.rxs-foot { max-width: 60em; margin: 18px 0 0; font-size: 13px; line-height: 1.7; color: var(--muted); }

@media (max-width: 1023px) {
  .rxs-hero-in { grid-template-columns: minmax(0, 1fr) 260px; min-height: 0; }
  .rxs-hero h1 { font-size: 38px; }
  .steps.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rxs-pack-in { grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 28px; }
  .rxs-info-in { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .rxs-hero-in { grid-template-columns: 1fr; gap: 0; padding-top: 26px; padding-bottom: 4px; }
  .rxs-hero h1 { margin-top: 14px; font-size: 28px; }
  .rxs-lead { font-size: 14.5px; }
  .rxs-gift { font-size: 13.5px; }
  .rxs-cta .btn { flex: 1; }
  .rxs-art.stage { max-width: 230px; margin: 4px auto -10px; }
  .rxs-bubble { width: 84px; height: 84px; font-size: 11px; }
  .rxs-bubble b { font-size: 15px; }
  .rxs-sec { margin-top: 48px; scroll-margin-top: 72px; }
  .rxs-sec > h2 { font-size: 22px; }
  .rxs-sub { font-size: 14px; margin-bottom: 18px; }
  .steps.four { grid-template-columns: 1fr; }
  .rxs-good { grid-template-columns: 1fr; gap: 14px; }
  .rxs-benefit { padding: 20px 14px 16px; border-radius: 22px; }
  .rxs-mine b { font-size: 15px; }
  .rxs-use li { padding-left: 48px; }
  .rxs-use p { font-size: 14px; }
  .rxs-pack-in { grid-template-columns: 1fr; gap: 22px; }
  .boxside { max-width: 280px; margin: 0 auto; }
  .rxs-notes { grid-template-columns: 1fr; }
  .rxs-notes dt { padding-bottom: 4px; border-bottom: 0; }
  .rxs-notes dd { padding-top: 0; font-size: 14px; }
}

/* 상품 상세 이미지 — 상품 설명 자리에 이어 붙여 보인다 (가운데 860px) */
.dimgs { max-width: 860px; margin: 4px auto 0; border-radius: 18px; overflow: hidden; border: 1px solid var(--line); background: #fff; }
.dimgs img { display: block; width: 100%; height: auto; }
.desc + .dimgs { margin-top: 24px; }
@media (max-width: 767px) { .dimgs { margin-left: -16px; margin-right: -16px; border-radius: 0; border-left: 0; border-right: 0; } }

/* 상품 사진 고르기 */
.gallery .thumbs a { transition: border-color .15s, box-shadow .15s; }
.gallery .thumbs a.on { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(30, 86, 224, .25); }

/* ───────── v0.8 — 지킴몰 로고, 휴대폰 보완 ───────── */
/* 로고: 지킴 표지 + 지킴 글자 + 파란 '몰'과 작은 점 (가로:세로 = 391:81) */
.logo .brand { display: block; height: 36px; width: auto; }
.hd-simple .logo .brand { height: 32px; }
.hd-m .logo .brand { height: 26px; }
.ft .logo .brand { height: 32px; }
.brand-mark { display: block; width: auto; }
header.site.stuck .gnb-logo .brand-mark { height: 22px; }
.bs-logo .brand-mark { height: 13px; margin-right: 2px; }
@media (max-width: 767px) {
  .hd-simple .logo .brand { height: 26px; }
  .ft .logo .brand { height: 28px; }
}

/* v0.8 휴대폰 손질 ---------------------------------------------------------- */
/* 상품 상세 사진 띠: 휴대폰은 옆으로 넘기고, PC 는 아래 작은 사진으로 고른다 */
.gal-track { display: flex; width: 100%; height: 100%; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; border-radius: inherit; }
.gal-track::-webkit-scrollbar { display: none; }
.gal-track > img.pc-photo { flex: 0 0 100%; width: 100%; height: 100%; scroll-snap-align: start; scroll-snap-stop: always; }
.gal-track:focus-visible { outline: 3px solid var(--blue); outline-offset: -3px; }
.gal-count { position: absolute; right: 14px; bottom: 14px; z-index: 2; display: none; height: 26px; padding: 0 10px; border-radius: 13px; background: rgba(10, 26, 63, .6); color: rgba(255, 255, 255, .85); font-size: 12px; font-weight: 600; line-height: 26px; font-variant-numeric: tabular-nums; pointer-events: none; }
.gal-count b { color: #fff; font-weight: 800; }
/* 배송지: 우편번호 + 주소 */
.grid.addr { grid-template-columns: minmax(0, 150px) minmax(0, 1fr); row-gap: 0; }
/* 동의 내용 펼치기: 누르기 쉬운 높이 */
.consent-d { padding: 0 14px; }
.consent-d summary { padding: 10px 0; }
.consent-d[open] { padding-bottom: 10px; }
/* '전체보기'·'담김' 같은 작은 링크: 보이는 크기는 그대로, 누르는 자리만 넓힌다 */
.more { position: relative; }
.more::after { content: ""; position: absolute; inset: -10px -8px; }
.incart::after { content: ""; position: absolute; inset: -7px -6px; }
@media (max-width: 767px) {
  /* 아이폰은 글자가 16px 보다 작은 입력칸을 누르면 화면을 확대한다 */
  input[type=text], input[type=email], input[type=password], input[type=tel], input[type=date], input[type=number], input[type=search], select, textarea, .search input, .search input:focus { font-size: 16px; }
  .gallery .main.tone-photo { aspect-ratio: 1 / 1; height: auto; }
  .gallery .main.tone-photo .pc-photo { object-fit: contain; }
  .gallery .thumbs { display: none; }
  .gal-count { display: block; }
  .grid.addr { grid-template-columns: minmax(0, 1fr); }
  .grid.addr .row:first-child input { max-width: 160px; }
  .sorts a { padding: 9px 8px; }
}
/* 입력칸 줄 간격: 두 칸씩 놓는 묶음도 한 칸짜리와 같은 간격 (줄마다 아래 여백 16px 이 이미 있다) */
form .grid:has(> .row) { row-gap: 0; }
/* 동의 체크: 글줄 위아래까지 눌러도 체크되게 (보이는 간격은 그대로) */
.check { position: relative; }
.check::before { content: ""; position: absolute; inset: -5px -4px; }
/* 동의 글 속 링크(이용약관 등)는 넓힌 자리 위에 두어 누르면 링크가 열린다 */
.check a { position: relative; z-index: 1; }
/* 자동 채우기: 장바구니에서 빼고 계산한 줄 안내, 보내는 중인 버튼 */
.fc-warn { margin: 6px 0 0; font-size: 13px; font-weight: 600; color: var(--warn); }
form[data-sent] button[aria-disabled] { opacity: .6; pointer-events: none; }

/* v0.8 20만원 자동 채우기 ---------------------------------------------------- */
/* 장바구니 요약의 바로가기 */
.fill-cta { display: flex; align-items: center; gap: 12px; margin: 14px 0 4px; padding: 12px 14px; border-radius: 14px; background: var(--sky); color: var(--blue-d); text-decoration: none !important; transition: background-color .15s; }
.fill-cta:hover { background: var(--sky2); }
.fill-cta > .ico { width: 34px; height: 34px; border-radius: 10px; background: var(--blue); color: #fff; display: grid; place-items: center; box-shadow: 0 6px 14px -8px rgba(30, 86, 224, .9); }
.fill-cta > .ico svg { width: 18px; height: 18px; }
.fill-cta b { display: block; font-size: 14.5px; font-weight: 800; color: var(--ink); }
.fill-cta small { display: block; margin-top: 2px; font-size: 12.5px; line-height: 1.45; color: var(--ink2); }
/* 제안 카드: 담긴 금액(진한 칸) + 더 담을 금액(빗금 칸)이 20만원 선까지 이어진다 */
.fillcard { margin: 0 0 28px; padding: 24px 26px 22px; border-radius: 24px; background: #fff; border: 1.5px solid var(--sky2); box-shadow: var(--sh-2); scroll-margin-top: 96px; }
.fc-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; }
.fc-top h2 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 20px; letter-spacing: -.03em; }
.fc-top h2 .ico { color: var(--blue); }
.fc-top h2 .ico svg { width: 22px; height: 22px; }
.fc-lead { margin: 6px 0 0; max-width: 72ch; font-size: 15px; color: var(--ink2); }
.fc-lead b { color: var(--blue); font-weight: 800; }
.fc-bar { display: flex; height: 12px; margin: 18px 0 8px; border-radius: 999px; background: var(--surface); overflow: hidden; }
.fc-bar .now { background: var(--ink2); }
.fc-bar .add { background: repeating-linear-gradient(135deg, var(--blue) 0 5px, var(--blue-l) 5px 10px); }
.fc-bar .now + .add { box-shadow: inset 2px 0 0 #fff; }
.fc-scale { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12.5px; color: var(--muted); font-variant-numeric: tabular-nums; }
.fc-scale span { display: inline-flex; align-items: center; gap: 6px; }
.fc-scale .end { margin-left: auto; font-weight: 700; color: var(--ink2); }
.fc-scale .sw { width: 10px; height: 10px; border-radius: 3px; }
.fc-scale .sw.now { background: var(--ink2); }
.fc-scale .sw.add { background: repeating-linear-gradient(135deg, var(--blue) 0 2px, var(--blue-l) 2px 4px); }
.fc-list { list-style: none; margin: 14px 0 0; padding: 0; border-top: 1px solid var(--line); }
.fc-list li { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); }
.fc-th { width: 52px; height: 52px; border-radius: 12px; overflow: hidden; display: grid; place-items: center; }
.fc-th > img.pc-photo { width: 100%; height: 100%; object-fit: cover; }
.fc-th .pc-illus { width: 80%; height: 80%; }
.fc-name { min-width: 0; }
.fc-name a { display: block; font-size: 15px; font-weight: 600; color: var(--ink); text-decoration: none !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fc-name a:hover { color: var(--blue); }
.fc-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; margin-top: 2px; font-size: 13px; color: var(--muted); }
.fc-tag { display: inline-flex; align-items: center; height: 20px; padding: 0 7px; border-radius: 6px; background: var(--mint-l); color: var(--mint-d); font-size: 11.5px; font-weight: 700; }
.fc-num { display: flex; align-items: baseline; gap: 18px; }
.fc-qty { font-size: 14px; font-weight: 700; color: var(--blue-d); font-variant-numeric: tabular-nums; }
.fc-amt { min-width: 92px; text-align: right; font-size: 16px; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.fc-act { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 18px 0 0; }
.fc-btn-amt { font-weight: 600; opacity: .85; }
.fc-close { margin-left: auto; padding: 10px 6px; font-size: 14px; font-weight: 600; color: var(--muted); }
.fc-note { margin: 12px 0 0; max-width: 80ch; font-size: 12.5px; color: var(--muted); line-height: 1.6; }
.flash-act { display: inline; margin: 0 0 0 4px; }
.linkbtn { display: inline; padding: 0; border: 0; background: none; color: inherit; font: inherit; font-weight: 800; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.page-h .fill-go { flex: none; }
@media (max-width: 767px) {
  .fillcard { margin: 0 0 22px; padding: 18px 16px 16px; border-radius: 20px; box-shadow: var(--sh-1); }
  .fc-top h2 { font-size: 18px; }
  .fc-top .seg { width: 100%; }
  .fc-top .seg a { flex: 1; justify-content: center; }
  .fc-lead { font-size: 14px; }
  .fc-list li { grid-template-columns: 44px minmax(0, 1fr) auto; gap: 10px; }
  .fc-th { width: 44px; height: 44px; border-radius: 10px; }
  .fc-num { flex-direction: column; align-items: flex-end; gap: 0; }
  .fc-qty { font-size: 12.5px; }
  .fc-name a { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 14px; line-height: 1.4; }
  .fc-amt { min-width: 0; font-size: 15px; }
  .fc-act .btn { flex: 1 1 100%; }
  .fc-close { margin: 0 auto; }
  .page-h .fill-go { width: 100%; }
}
